Merge commit '664f2a7faa1345f59f91b68e09449be6d39f5548' into staging

This commit is contained in:
Server D3 Linksehat
2025-06-05 09:27:55 +07:00
519 changed files with 2776 additions and 13035 deletions

0
..env.swp Normal file
View File

3
.gitignore vendored
View File

@@ -15,9 +15,12 @@ yarn-error.log
/public/dashboard /public/dashboard
/public/dashboard-staging /public/dashboard-staging
/public/dashboard-copy
/public/client-portal /public/client-portal
/public/client-portal-staging /public/client-portal-staging
/public/hospital-portal /public/hospital-portal
/public/hospital-portal-staging /public/hospital-portal-staging
/public/files

View File

@@ -100,6 +100,7 @@ class MemberController extends Controller
// Provider // Provider
$providers = DB::table('organizations') $providers = DB::table('organizations')
->where('organizations.type', '=', 'hospital') ->where('organizations.type', '=', 'hospital')
->where('status', '=', 'active')
->select( ->select(
'organizations.id', 'organizations.id',
'organizations.name' 'organizations.name'
@@ -119,6 +120,16 @@ class MemberController extends Controller
$res_data['companies'] = $companies; $res_data['companies'] = $companies;
//company
$companies = DB::table('corporates')
->where('corporates.active', '=', 1)
->select(
'corporates.id',
'corporates.name'
)
->get();
$res_data['companies'] = $companies;
// specialities // specialities
$specialities = DB::table('specialities') $specialities = DB::table('specialities')

View File

@@ -155,18 +155,18 @@ class RequestLogController extends Controller
} }
else else
{ {
return ApiResponse::apiResponse('Server Error', $data, trans('Message.server_error'), 500); return ApiResponse::apiResponse('Server Error 1', $data, trans('Message.server_error'), 500);
} }
} catch (\Exception $e) { } catch (\Exception $e) {
// Tangani kesalahan di sini // Tangani kesalahan di sini
return ApiResponse::apiResponse('Server Error', $data, $e->getMessage(), 500); return ApiResponse::apiResponse('Server Error 2', $data, $e->getMessage(), 500);
} }
} catch (\Exception $e) { } catch (\Exception $e) {
// Rollback transaksi jika terjadi kesalahan // Rollback transaksi jika terjadi kesalahan
DB::rollBack(); DB::rollBack();
// Handle error, bisa di-log atau dikembalikan sebagai response // Handle error, bisa di-log atau dikembalikan sebagai response
return ApiResponse::apiResponse('Server Error', $data, $e->getMessage(), 500); return ApiResponse::apiResponse('Server Error 3', $data, $e->getMessage(), 500);
} }
} }
} }
@@ -705,7 +705,11 @@ class RequestLogController extends Controller
->select('members.name') ->select('members.name')
->limit(1) ->limit(1)
->first(); ->first();
$data['namaKaryawan'] = $dataNamaKaryawan->name; if ($dataNamaKaryawan){
$data['namaKaryawan'] = $dataNamaKaryawan->name;
} else {
$data['namaKaryawan'] = $dataMember->name;
}
} }
else{ else{
$data['namaKaryawan'] = $dataMember->name; $data['namaKaryawan'] = $dataMember->name;
@@ -717,6 +721,7 @@ class RequestLogController extends Controller
$dataClaimLog = DB::table('request_log_benefits') $dataClaimLog = DB::table('request_log_benefits')
->where('request_log_benefits.request_log_id', '=', $request_log_id) ->where('request_log_benefits.request_log_id', '=', $request_log_id)
->where('request_log_benefits.deleted_at', null)
->select( ->select(
'*', '*',
DB::raw(' DB::raw('
@@ -780,13 +785,13 @@ class RequestLogController extends Controller
->leftJoin('files', 'files.fileable_id', '=', 'signatures.id') ->leftJoin('files', 'files.fileable_id', '=', 'signatures.id')
->where('files.fileable_type', '=', 'App\Models\Signature') ->where('files.fileable_type', '=', 'App\Models\Signature')
->where('signatures.type', '=', 2) ->where('signatures.type', '=', 2)
->where('signatures.user_id', '=', $dataRequestLog->approved_by) ->where('signatures.user_id', '=', $dataRequestLog->approved_final_log_by)
->select( ->select(
'files.path', 'files.path',
DB::raw(' DB::raw('
(Select persons.name FROM users (Select persons.name FROM users
LEFT JOIN persons ON users.person_id = persons.id LEFT JOIN persons ON users.person_id = persons.id
WHERE users.id = "'.$dataRequestLog->approved_by.'" LIMIT 1) AS name_approve WHERE users.id = "'.$dataRequestLog->approved_final_log_by.'" LIMIT 1) AS name_approve
') ')
) )
->first(); ->first();

View File

@@ -848,10 +848,18 @@ class ClaimRequestController extends Controller
->get(); ->get();
if ($item->member){ if ($item->member){
$member = Member::where('member_id', $item->member->principal_id)->first(); $member = Member::where('member_id', $item->member->principal_id)->first();
$memberPrincipal = $member->name; if ($member){
$memberPrincipal = $member->name;
} else {
$memberPrincipal = '-';
}
$memberPlan = MemberPlan::where('member_id', $item->member->id)->get('plan_id')->toArray(); $memberPlan = MemberPlan::where('member_id', $item->member->id)->get('plan_id')->toArray();
$plan= Plan::whereIn('id', $memberPlan)->where('service_code', $item->requestLog->service_code)->first(); $plan= Plan::whereIn('id', $memberPlan)->where('service_code', $item->requestLog->service_code)->first();
$planCode = $plan->code; if ($plan){
$planCode = $plan->code;
} else {
$planCode = '-';
}
if ($item->member->currentCorporate->id == $item->requestLog->organization->corporate_id_partner){ if ($item->member->currentCorporate->id == $item->requestLog->organization->corporate_id_partner){
$payor = $item->member->currentCorporate->name; $payor = $item->member->currentCorporate->name;
} else { } else {

View File

@@ -571,7 +571,7 @@ class CorporateController extends Controller
break; break;
case 'template-request-log': case 'template-request-log':
return Helper::responseJson([ return Helper::responseJson([
'file_name' => "Template Import Request LOG.xlsx.xlsx", 'file_name' => "Template Import Request LOG.xlsx",
"file_url" => url('files/Template Import Request LOG.xlsx') "file_url" => url('files/Template Import Request LOG.xlsx')
]); ]);
break; break;

View File

@@ -70,6 +70,7 @@ class CorporateMemberController extends Controller
}) })
->select('members.*') ->select('members.*')
->selectRaw('(SELECT GROUP_CONCAT(files_mcu.original_name SEPARATOR ", ") AS file_mcu_names from files_mcu WHERE files_mcu.memberid = members.id) AS file_mcu_names') ->selectRaw('(SELECT GROUP_CONCAT(files_mcu.original_name SEPARATOR ", ") AS file_mcu_names from files_mcu WHERE files_mcu.memberid = members.id) AS file_mcu_names')
->groupBy('corporate_employees.member_id')
->paginate() ->paginate()
->appends($request->all()); ->appends($request->all());
return Helper::paginateResources(MemberDataTableResource::collection($members)); return Helper::paginateResources(MemberDataTableResource::collection($members));

View File

@@ -49,10 +49,11 @@ class DoctorRatingController extends Controller
$limit = $request->has('per_page') ? $request->input('per_page') : 50; $limit = $request->has('per_page') ? $request->input('per_page') : 50;
$results = DB::connection('oldlms')->table('tx_dokter_rating') $results = DB::connection('oldlms')->table('tx_dokter_rating')
->leftJoin('tm_users', 'tx_dokter_rating.nIDUser', '=', 'tm_users.nID') ->leftJoin('tm_users', 'tx_dokter_rating.nIDUser', '=', 'tm_users.nID')
->leftJoin('tm_dokter', 'tx_dokter_rating.nIDDokter', '=', 'tm_dokter.nID') ->leftJoin('tm_dokter', 'tx_dokter_rating.nIDDokter', '=', 'tm_dokter.nIDUser')
->when($request->input('search'), function ($query, $search) { ->when($request->input('search'), function ($query, $search) {
$query->where(function ($query) use ($search) { $query->where(function ($query) use ($search) {
$query->orWhere('tm_users.sFirstname', 'like', "%" . $search . "%"); $query->orWhere('tm_users.sFirstName', 'like', "%" . $search . "%");
$query->orWhere('tm_users.sLastName', 'like', "%" . $search . "%");
$query->orWhere('tx_dokter_rating.sNotes', 'like', "%" . $search . "%"); $query->orWhere('tx_dokter_rating.sNotes', 'like', "%" . $search . "%");
}); });
}) })
@@ -72,6 +73,7 @@ class DoctorRatingController extends Controller
$query->where('tx_dokter_rating.dCreateOn', '<=', $end_date. ' 23:59:59'); $query->where('tx_dokter_rating.dCreateOn', '<=', $end_date. ' 23:59:59');
}); });
}) })
// ->when($request->input('provider') , function ($query, $provider) { // ->when($request->input('provider') , function ($query, $provider) {
// $query->where(function ($query) use ($provider) { // $query->where(function ($query) use ($provider) {
// $query->where('request_logs.organization_id', '=', $provider); // $query->where('request_logs.organization_id', '=', $provider);
@@ -85,6 +87,7 @@ class DoctorRatingController extends Controller
'tx_dokter_rating.nRating as rating', 'tx_dokter_rating.nRating as rating',
'tx_dokter_rating.sNotes', 'tx_dokter_rating.sNotes',
'tx_dokter_rating.dCreateOn', 'tx_dokter_rating.dCreateOn',
'tx_dokter_rating.nIDLivechat',
DB::connection('oldlms')->raw(" DB::connection('oldlms')->raw("
(SELECT CONCAT(tm_users.sFirstName, ' ', IFNULL(tm_users.sMiddleName, ''), ' ', IFNULL(tm_users.sLastName, '')) FROM tm_users WHERE tm_users.nID = tm_dokter.nIDUser LIMIT 1) AS nama_dokter (SELECT CONCAT(tm_users.sFirstName, ' ', IFNULL(tm_users.sMiddleName, ''), ' ', IFNULL(tm_users.sLastName, '')) FROM tm_users WHERE tm_users.nID = tm_dokter.nIDUser LIMIT 1) AS nama_dokter
") ")
@@ -109,6 +112,7 @@ class DoctorRatingController extends Controller
'Rating', 'Rating',
'Review', 'Review',
'Tanggal Konsultasi', 'Tanggal Konsultasi',
'ID Livechat',
]; ];
$style = (new StyleBuilder()) $style = (new StyleBuilder())
->setFontBold() ->setFontBold()
@@ -124,7 +128,7 @@ class DoctorRatingController extends Controller
// ============================ // ============================
$results = DB::connection('oldlms')->table('tx_dokter_rating') $results = DB::connection('oldlms')->table('tx_dokter_rating')
->leftJoin('tm_users', 'tx_dokter_rating.nIDUser', '=', 'tm_users.nID') ->leftJoin('tm_users', 'tx_dokter_rating.nIDUser', '=', 'tm_users.nID')
->leftJoin('tm_dokter', 'tx_dokter_rating.nIDDokter', '=', 'tm_dokter.nID') ->leftJoin('tm_dokter', 'tx_dokter_rating.nIDDokter', '=', 'tm_dokter.nIDUser')
->when($request->input('search'), function ($query, $search) { ->when($request->input('search'), function ($query, $search) {
$query->where(function ($query) use ($search) { $query->where(function ($query) use ($search) {
$query->orWhere('tm_users.sFirstname', 'like', "%" . $search . "%"); $query->orWhere('tm_users.sFirstname', 'like', "%" . $search . "%");
@@ -162,7 +166,8 @@ class DoctorRatingController extends Controller
'tx_dokter_rating.dCreateOn', 'tx_dokter_rating.dCreateOn',
DB::connection('oldlms')->raw(" DB::connection('oldlms')->raw("
(SELECT CONCAT(tm_users.sFirstName, ' ', IFNULL(tm_users.sMiddleName, ''), ' ', IFNULL(tm_users.sLastName, '')) FROM tm_users WHERE tm_users.nID = tm_dokter.nIDUser LIMIT 1) AS nama_dokter (SELECT CONCAT(tm_users.sFirstName, ' ', IFNULL(tm_users.sMiddleName, ''), ' ', IFNULL(tm_users.sLastName, '')) FROM tm_users WHERE tm_users.nID = tm_dokter.nIDUser LIMIT 1) AS nama_dokter
") "),
'tx_dokter_rating.nIDLivechat'
) )
->get(); ->get();
$no=0; $no=0;
@@ -176,6 +181,7 @@ class DoctorRatingController extends Controller
$item->nRating, $item->nRating,
$item->sNotes, $item->sNotes,
$item->dCreateOn, $item->dCreateOn,
$item->nIDLivechat,
]; ];
$style = (new StyleBuilder()) $style = (new StyleBuilder())
//->setFontBold() //->setFontBold()
@@ -194,7 +200,8 @@ class DoctorRatingController extends Controller
'', '',
'', '',
'', '',
'' '',
'',
]; ];
$style = (new StyleBuilder()) $style = (new StyleBuilder())
->setFontBold() ->setFontBold()

View File

@@ -45,7 +45,6 @@ class PrescriptionController extends Controller
->orWhere('sKodeResep', 'LIKE', '%' . $search . "%"); ->orWhere('sKodeResep', 'LIKE', '%' . $search . "%");
}); });
} }
if (($request->has('prescription_start') || $request->has('prescription_end')) if (($request->has('prescription_start') || $request->has('prescription_end'))
&& !empty($request->prescription_start) && !empty($request->prescription_start)
&& !empty($request->prescription_end) && !empty($request->prescription_end)

File diff suppressed because it is too large Load Diff

View File

@@ -211,7 +211,7 @@ class ReportLogController extends Controller
$provider = Organization::where('id', $row['organization_id'])->first(); $provider = Organization::where('id', $row['organization_id'])->first();
$documentQty = File::where(['fileable_type' => 'App\Models\RequestLog', 'fileable_id' => $row['id'], 'deleted_at' => null])->get()->toArray(); $documentQty = File::where(['fileable_type' => 'App\Models\RequestLog', 'fileable_id' => $row['id'], 'deleted_at' => null])->get()->toArray();
$parsedDateTime = Carbon::parse($row['created_at']); $parsedDateTime = Carbon::parse($row['created_at']);
$parsedDateTime->tz = 'Asia/Jakarta'; // $parsedDateTime->tz = 'Asia/Makassar';
$formattedDateTime = $parsedDateTime->format('Y-m-d H:i:s'); $formattedDateTime = $parsedDateTime->format('Y-m-d H:i:s');
$timeInsertBenefit = RequestLogBenefit::where('request_log_id', $row['id'])->first(); $timeInsertBenefit = RequestLogBenefit::where('request_log_id', $row['id'])->first();
@@ -226,7 +226,11 @@ class ReportLogController extends Controller
$created_final_at = false; $created_final_at = false;
} }
$durationGl = Helper::differenceTime($formattedDateTime, $row['approved_at']); if ($row['approved_at']){
$durationGl = Helper::differenceTime($formattedDateTime, $row['approved_at']);
} else {
$durationGl = 0;
}
$approveByFgl = '-'; $approveByFgl = '-';
if ($row['import_system']) { if ($row['import_system']) {
@@ -237,13 +241,14 @@ class ReportLogController extends Controller
$approveByFgl = Helper::userName($row['approved_final_log_by']); $approveByFgl = Helper::userName($row['approved_final_log_by']);
} }
$rowData = [ $rowData = [
$row['code'], // code $row['code'], // code
$row['member'] ? $row['member']['name'] : '', // name $row['member'] ? $row['member']['name'] : '', // name
$row['member'] ? $row['member']['member_id'] : '', // member id $row['member'] ? $row['member']['member_id'] : '', // member id
$formattedDateTime ? $formattedDateTime : "-" , // created at $formattedDateTime ? $formattedDateTime : "-" , // created at
$row['approved_at'], // submission date $row['approved_at'] ? $row['approved_at'] : '-', // submission date
Helper::userName($row['approved_by']), // created by $row['approved_by'] ? Helper::userName($row['approved_by']) : '-', // created by
$created_final_at ? $created_final_at : "-", // fgl create time $created_final_at ? $created_final_at : "-", // fgl create time
$row['approved_final_log_at'] ? $row['approved_final_log_at'] : "", // fgl submit time $row['approved_final_log_at'] ? $row['approved_final_log_at'] : "", // fgl submit time
$approveByFgl, // fgl create by $approveByFgl, // fgl create by

View File

@@ -74,7 +74,7 @@ class RequestLogBenefitController extends Controller
'excess_paid' => $value['excess_paid'], 'excess_paid' => $value['excess_paid'],
'keterangan' => $value['keterangan'], 'keterangan' => $value['keterangan'],
'created_by' => auth()->user()->id, 'created_by' => auth()->user()->id,
'reason' => $value['reason'] ? $value['reason'] : null , // 'reason' => $value['reason'] ? $value['reason'] : null ,
]; ];
// Insert Data // Insert Data
@@ -92,8 +92,8 @@ class RequestLogBenefitController extends Controller
} }
$requestLogBenefit = RequestLogBenefit::insert($data); // $requestLogBenefit = RequestLogBenefit::insert($data);
return $requestLogBenefit; // return $requestLogBenefit;
} }
/** /**

View File

@@ -60,9 +60,11 @@ class RequestLogController extends Controller
$q->where('final_log', $final_log); $q->where('final_log', $final_log);
}) })
->when($request->search, function ($q, $search) { ->when($request->search, function ($q, $search) {
$q->where('code', 'LIKE', "%".$search."%"); $q->where(function ($subQuery) use ($search) {
$q->orWhereHas('member', function ($subQuery) use ($search) { $subQuery->where('code', 'LIKE', "%".$search."%")
$subQuery->where('name', 'LIKE', "%".$search."%"); ->orWhereHas('member', function ($subSubQuery) use ($search) {
$subSubQuery->where('name', 'LIKE', "%".$search."%");
});
}); });
}) })
->when($request->orderBy, function ($q, $orderBy) use ($request) { ->when($request->orderBy, function ($q, $orderBy) use ($request) {
@@ -124,12 +126,11 @@ class RequestLogController extends Controller
'member_id' => 'required', 'member_id' => 'required',
'service_code' => 'required', 'service_code' => 'required',
]); ]);
if ($request->member_id){ if ($request->member_id){
try { try {
$code = !empty($this->getNextCode($request)) ? $this->getNextCode($request) : null; $code = !empty($this->getNextCode($request)) ? $this->getNextCode($request) : null;
$member = Member::find($request->member_id);
$member = Member::find($request->member_id);
$memberValid = false; $memberValid = false;
if ($member){ if ($member){
if (($member->members_effective_date <= date('Y-m-d')) && if (($member->members_effective_date <= date('Y-m-d')) &&
@@ -486,9 +487,9 @@ class RequestLogController extends Controller
// Update Request LOG untuk lanjut ke Final LOG // Update Request LOG untuk lanjut ke Final LOG
if (!empty($request->catatan)) { // if (!empty($request->catatan)) {
$requestLog->catatan = $request->catatan; $requestLog->catatan = $request->catatan;
} // }
if (!empty($request->billing_no)) { if (!empty($request->billing_no)) {
$requestLog->billing_no = $request->billing_no; $requestLog->billing_no = $request->billing_no;
} }
@@ -643,6 +644,8 @@ class RequestLogController extends Controller
public function importRequestLog(Request $request) public function importRequestLog(Request $request)
{ {
// setting tambahan php
Helper::setCustomPHPIniSettings();
$request->validate([ $request->validate([
'file' => 'required|file|mimes:xls,xlsx,csv,txt', 'file' => 'required|file|mimes:xls,xlsx,csv,txt',
]); ]);
@@ -687,8 +690,6 @@ class RequestLogController extends Controller
$requestLog[$headers_map_to_table_fields[$doc_headers_indexes[$header_index]]] = $cell->getValue(); $requestLog[$headers_map_to_table_fields[$doc_headers_indexes[$header_index]]] = $cell->getValue();
} }
} }
try { try {
$rowResponse = $this->requestLogService->handleImportRow($requestLog); $rowResponse = $this->requestLogService->handleImportRow($requestLog);
// Write Success Result to File // Write Success Result to File
@@ -1102,11 +1103,11 @@ class RequestLogController extends Controller
// $last_number = RequestLog::max('code'); // $last_number = RequestLog::max('code');
// $next_number = empty($last_number) ? 1 : ((int) explode('-', $last_number)[2] + 1); // $next_number = empty($last_number) ? 1 : ((int) explode('-', $last_number)[2] + 1);
// return self::makeCode($next_number); // return self::makeCode($next_number);
$source = $request->source == 'client-portal' ? 'C' : 'H'; $source = $request->source == 'client-portal' ? 'C' : 'H';
$organization = Organization::where(['id' => $request->organization_id, 'type' => 'hospital'])->first('code'); $organization = Organization::where(['id' => $request->organization_id, 'type' => 'hospital'])->first('code');
$provideCode = $organization ? $organization->code : ''; $provideCode = $organization ? $organization->code : '';
$member = Member::with('currentCorporate')->where(['id' => $request->member_id])->first(); $member = Member::with(['currentCorporate','currentPolicy' ])->where(['id' => $request->member_id])->first();
$data = [ $data = [
'source' => $source, 'source' => $source,
@@ -1116,11 +1117,12 @@ class RequestLogController extends Controller
'member_code' => $member->member_id, 'member_code' => $member->member_id,
]; ];
$last_numeric_code = RequestLog::select(DB::raw('MAX(CAST(SUBSTRING_INDEX(code, ".", -1) AS SIGNED)) as max_numeric_code')) $last_numeric_code = RequestLog::select(DB::raw('MAX(CAST(SUBSTRING_INDEX(code, ".", -1) AS SIGNED)) as max_numeric_code'))
->whereRaw('SUBSTRING_INDEX(code, ".", -1) REGEXP "^[0-9]+$"') ->whereRaw('SUBSTRING_INDEX(code, ".", -1) REGEXP "^[0-9]+$"')
->value('max_numeric_code'); ->value('max_numeric_code');
// $next_number = 1; // $next_number = 1;
if ($last_numeric_code) { if ($last_numeric_code) {
// // Jika ada kode sebelumnya, pecah kode dan tambahkan 1 ke angka terakhir // // Jika ada kode sebelumnya, pecah kode dan tambahkan 1 ke angka terakhir
// $parts = explode('-', $last_code); // $parts = explode('-', $last_code);
@@ -1219,4 +1221,10 @@ class RequestLogController extends Controller
// Jika file tidak ditemukan di penyimpanan, kirim respons JSON gagal // Jika file tidak ditemukan di penyimpanan, kirim respons JSON gagal
return Helper::responseJson(data: $request->toArray(), message: 'File deletion failed'); return Helper::responseJson(data: $request->toArray(), message: 'File deletion failed');
} }
public function cekphp(){
phpinfo();
}
} }

View File

@@ -565,7 +565,7 @@ class MemberEnrollmentService
$member_data = [ $member_data = [
"name" => $row['name'] ?? null, "name" => $row['name'] ?? null,
"member_id" => $row['member_id'] ?? null, "member_id" => str_replace(" ", '',$row['member_id']) ?? null,
"payor_id" => $row['payor_id'] ?? null, "payor_id" => $row['payor_id'] ?? null,
"nik" => $row['nik'] ?? null, "nik" => $row['nik'] ?? null,
// "birth_date" => $row['date_of_birth'] ? date("Y-m-d",$row['date_of_birth']) : null, // "birth_date" => $row['date_of_birth'] ? date("Y-m-d",$row['date_of_birth']) : null,
@@ -576,7 +576,7 @@ class MemberEnrollmentService
"marital_status" => $row['marital_status'] ?? null, "marital_status" => $row['marital_status'] ?? null,
"record_type" => $row['record_type'] ?? null, "record_type" => $row['record_type'] ?? null,
"record_mode" => $row['record_mode'] ?? null, "record_mode" => $row['record_mode'] ?? null,
"principal_id" => $row['principal_id'] ?? null, "principal_id" => isset($row['principal_id']) ? str_replace("'", '', $row['principal_id']) : null,
"relation_with_principal" => $row['relationship_with_principal'] ?? null, "relation_with_principal" => $row['relationship_with_principal'] ?? null,
"bpjs_class" => $row['bpjs_class'] ?? null, "bpjs_class" => $row['bpjs_class'] ?? null,
"nric" => $row['nric'] ?? null, "nric" => $row['nric'] ?? null,
@@ -952,7 +952,6 @@ class MemberEnrollmentService
} }
break; break;
case "2": // Member Information Update (Without Replacement Card) case "2": // Member Information Update (Without Replacement Card)
$this->validateRow($row); $this->validateRow($row);
$member = Member::query() $member = Member::query()
->where('member_id', $row['member_id']) ->where('member_id', $row['member_id'])

View File

@@ -237,7 +237,7 @@ class RequestLogService
$final_log = 1; $final_log = 1;
} }
if ($row['diagnosis']){ if ($row['total_billing']){ // header
$data = [ $data = [
'code' => $code, 'code' => $code,
'member_id' => $member->id, 'member_id' => $member->id,
@@ -258,36 +258,36 @@ class RequestLogService
'service_code' => $serviceCode, 'service_code' => $serviceCode,
'approved_final_log_at' => $row['approved_final_log_at'], 'approved_final_log_at' => $row['approved_final_log_at'],
]; ];
} else { } else { // item
$data = [ $data = [
'code' => $code, // 'code' => $code,
'member_id' => $member->id, // 'member_id' => $member->id,
'submission_date' => $row['submission_date'], // 'submission_date' => $row['submission_date'],
'discharge_date' => $row['discharge_date'], // 'discharge_date' => $row['discharge_date'],
'payment_type' => 'cashless', // 'payment_type' => 'cashless',
'status' => $status, // 'status' => $status,
'status_final_log' => $statusFinalLog, // 'status_final_log' => $statusFinalLog,
'final_log' =>$final_log, // 'final_log' =>$final_log,
'import_system' =>TRUE, // 'import_system' =>TRUE,
'catatan' => $row['catatan'], // 'catatan' => $row['catatan'],
'type_of_member' => $row['type_of_member'], // 'type_of_member' => $row['type_of_member'],
'total_cob' => $row['total_cob'], // 'total_cob' => $row['total_cob'],
'diagnosis' => $row['diagnosis'], // 'diagnosis' => $row['diagnosis'],
'keterangan' => $row['keterangan'], // 'keterangan' => $row['keterangan'],
'policy_id' => $member->currentPolicy->id ?? null, // 'policy_id' => $member->currentPolicy->id ?? null,
'organization_id' => $organization_id, // 'organization_id' => $organization_id,
'service_code' => $serviceCode, // 'service_code' => $serviceCode,
'approved_final_log_at' => $row['approved_final_log_at'], // 'approved_final_log_at' => $row['approved_final_log_at'],
]; ];
} }
if ($row['record_mode'] == 1){ if ($row['record_mode'] == 1){
$requestLog = RequestLog::updateOrCreate( $requestLog = RequestLog::create(
[ // [
'member_id' => $member->id, // 'member_id' => $member->id,
'submission_date' => $row['submission_date'], // 'submission_date' => $row['submission_date'],
'organization_id' => $organization_id, // 'organization_id' => $organization_id,
], // ],
$data $data
); );
} else if ($row['record_mode'] == 2) { } else if ($row['record_mode'] == 2) {

View File

@@ -27,6 +27,7 @@ class ReportLogResource extends JsonResource
$provider = Organization::where('id', $this->organization_id)->first(); $provider = Organization::where('id', $this->organization_id)->first();
$documentQty = File::where(['fileable_type' => 'App\Models\RequestLog', 'fileable_id' => $this->id, 'deleted_at' => null])->get()->toArray(); $documentQty = File::where(['fileable_type' => 'App\Models\RequestLog', 'fileable_id' => $this->id, 'deleted_at' => null])->get()->toArray();
$parsedDateTime = Carbon::parse($this->created_at); $parsedDateTime = Carbon::parse($this->created_at);
// $parsedDateTime->tz = 'Asia/Makassar';
$formattedDateTime = $parsedDateTime->format('Y-m-d H:i:s'); $formattedDateTime = $parsedDateTime->format('Y-m-d H:i:s');
$timeInsertBenefit = RequestLogBenefit::where('request_log_id', $this->id)->first(); $timeInsertBenefit = RequestLogBenefit::where('request_log_id', $this->id)->first();

View File

@@ -119,7 +119,7 @@ class AutocompleteController extends Controller {
$drugs = Drug::query() $drugs = Drug::query()
->where([ ->where([
'atc_code' => $request->provider, // ini untuk menggunakan list obat yang baru 'atc_code' => $request->provider, // ini untuk menggunakan list obat yang baru
'active' => 1, 'active' => 1, // ini untuk menggunakan list obat yang baru
]) ])
->whereNotNull('id_setara') ->whereNotNull('id_setara')
->where(function ($query) use ($search) { ->where(function ($query) use ($search) {

View File

@@ -39,8 +39,10 @@ class UserProfileResource extends JsonResource
$linking = true; $linking = true;
} else { } else {
$member = Member::where('email', $this->sEmail)->get()->first(); $member = Member::where('email', $this->sEmail)->get()->first();
$person = Person::where('phone', $this->sPhone)->get()->first(); // $person = Person::where('phone', $this->sPhone)->get()->first();
if ($member || $person){ // Autolinking // dd($person);
if ($member){ // Autolinking
$corporateEmployee = CorporateEmployee::where('member_id', $member->id)->get()->first(); // cek corporate id empolyee/member $corporateEmployee = CorporateEmployee::where('member_id', $member->id)->get()->first(); // cek corporate id empolyee/member
if ($corporateEmployee){ if ($corporateEmployee){
$corporate = Corporate::findOrFail($corporateEmployee->corporate_id)->automatic_linking; // cek autocomplete $corporate = Corporate::findOrFail($corporateEmployee->corporate_id)->automatic_linking; // cek autocomplete

View File

@@ -443,7 +443,7 @@ class Helper
public static function setCustomPHPIniSettings() public static function setCustomPHPIniSettings()
{ {
ini_set('max_execution_time', '-1'); // Waktu untuk execution suatu function atau script ini_set('max_execution_time', '-1'); // Waktu untuk execution suatu function atau script
ini_set('post_max_size', '32M'); // Batas post Yang di Upload ini_set('post_max_size', '100M'); // Batas post Yang di Upload
ini_set('upload_max_filesize', '100M'); // Batas File yang di Upload ini_set('upload_max_filesize', '100M'); // Batas File yang di Upload
ini_set('max_input_time ', '-1'); // Batas max time menunggu input max 5 menit ini_set('max_input_time ', '-1'); // Batas max time menunggu input max 5 menit
ini_set('memory_limit', '256M'); ini_set('memory_limit', '256M');

View File

@@ -14,6 +14,7 @@ class Navigations extends Model
'icon', 'icon',
'name', 'name',
'parent_id', 'parent_id',
'permission' 'permission',
'urutan'
]; ];
} }

View File

@@ -20,6 +20,10 @@ class Healthcare extends Model
protected $primaryKey = 'nID'; protected $primaryKey = 'nID';
public $fillable = [
'sStatus'
];
public function commission() public function commission()
{ {
return $this->hasOne(HealthcareCommission::class, 'nIDHealthcare', 'nID')->where('sStatus', 1); return $this->hasOne(HealthcareCommission::class, 'nIDHealthcare', 'nID')->where('sStatus', 1);

View File

@@ -55,6 +55,12 @@ class Livechat extends Model
return $this->belongsTo(User::class, 'nIDUser', 'nID'); return $this->belongsTo(User::class, 'nIDUser', 'nID');
} }
public function userInsurance()
{
return $this->belongsTo(UserInsurance::class, 'nIDUser', 'nIDUser');
}
public function doctor() public function doctor()
{ {
return $this->belongsTo(Dokter::class, 'nIDDokter', 'nIDUser'); return $this->belongsTo(Dokter::class, 'nIDDokter', 'nIDUser');
@@ -74,4 +80,12 @@ class Livechat extends Model
public function summary(){ public function summary(){
return $this->belongsTo(LivechatSummary::class, 'nID', 'nIDLivechat'); return $this->belongsTo(LivechatSummary::class, 'nID', 'nIDLivechat');
} }
public function prescription(){
return $this->belongsTo(Prescription::class, 'nID', 'nIDLivechat');
}
public function rujukan(){
return $this->belongsTo(Rujukan::class, 'nID', 'nIDLivechat');
}
} }

View File

@@ -66,4 +66,14 @@ class Prescription extends Model
return $this->belongsTo(Livechat::class, 'nIDLivechat', 'nID'); return $this->belongsTo(Livechat::class, 'nIDLivechat', 'nID');
} }
public function order()
{
return $this->hasMany(PrescriptionItem::class, 'nIDPrescription', 'nID');
}
public function payment()
{
return $this->hasOne(PrescriptionOrder::class, 'nIDPrescription', 'nID');
}
} }

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;
class PrescriptionOrder extends Model
{
use HasFactory;
protected $fillable = [
'nIDPrescription',
'sItemCode',
'sOriginCode',
'sItemName',
'nQty',
'sSatuan',
'sSigna',
'sNote',
'nHarga',
'isRacikan',
'ParentCode',
];
// public $sStatusNames = [
// 0 => 'Menunggu Konfirmasi',
// 1 => 'Diterima',
// 2 => 'Ditolak',
// 3 => 'Selesai',
// 4 => 'Expired',
// ];
const CREATED_AT = 'dCreateOn';
const UPDATED_AT = 'dUpdateOn';
const DELETED_AT = 'dDeleteOn';
protected $connection = 'oldlms';
protected $table = 'tx_prescription_orders';
// protected $appends = [
// 'status_name',
// ];
protected $casts = [
'dTanggalResep' => 'datetime',
];
protected $primaryKey = 'nID';
public function order()
{
return $this->belongsTo(Prescription::class, 'nIDPrescription', 'nIDPrescription');
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Relationship extends Model
{
use HasFactory;
const CREATED_AT = 'dCreateOn';
const UPDATED_AT = 'dUpdateOn';
const DELETED_AT = 'dDeleteOn';
protected $connection = 'oldlms';
protected $primaryKey = 'nID';
protected $table = 'tm_hubungan_keluarga';
protected $fillable = [
'nID',
'sHubunganKeluarga'
];
}

View File

@@ -64,6 +64,11 @@ class User extends Authenticatable
return $this->hasOne(UserDetail::class, 'nIDUser', 'nID'); return $this->hasOne(UserDetail::class, 'nIDUser', 'nID');
} }
public function relation()
{
return $this->hasOne(Relationship::class, 'nID', 'nIDHubunganKeluarga');
}
public function insurances() public function insurances()
{ {
return $this->hasMany(UserInsurance::class, 'nIDUser', 'nID'); return $this->hasMany(UserInsurance::class, 'nIDUser', 'nID');

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PrescriptionOrder extends Model
{
use HasFactory;
}

0
bootstrap/cache/.gitignore vendored Executable file → Normal file
View File

11783
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -51,6 +51,12 @@ return [
*/ */
'channels' => [ 'channels' => [
'dump_database_seeder' => [
'driver' => 'single',
'path' => storage_path('logs/database_seeder.log'),
'level' => 'debug',
],
'stack' => [ 'stack' => [
'driver' => 'stack', 'driver' => 'stack',
'channels' => ['single'], 'channels' => ['single'],

View File

@@ -47,7 +47,7 @@ class ApotekMandiriInhealtSeeder extends Seeder
'code' => $previousCells[3]->getValue(), 'code' => $previousCells[3]->getValue(),
'name' => $previousCells[4]->getValue(), 'name' => $previousCells[4]->getValue(),
'type' => 'hospital', 'type' => 'hospital',
'corporate_id_partner' => 5, // Mandiri Inhealth 'corporate_id_partner' => 8, // Mandiri Inhealth
'phone' => $previousCells[11]->getValue(), 'phone' => $previousCells[11]->getValue(),
'email' => isset($previousCells[12]) ? $previousCells[12]->getValue() : null, 'email' => isset($previousCells[12]) ? $previousCells[12]->getValue() : null,
'operational_day' => $this->expandDaysRange($previousCells[7]->getValue(), [$cells[7]->getValue()]), 'operational_day' => $this->expandDaysRange($previousCells[7]->getValue(), [$cells[7]->getValue()]),
@@ -91,7 +91,7 @@ class ApotekMandiriInhealtSeeder extends Seeder
'code' => $cells[3]->getValue(), 'code' => $cells[3]->getValue(),
'name' => $cells[4]->getValue(), 'name' => $cells[4]->getValue(),
'type' => 'hospital', 'type' => 'hospital',
'corporate_id_partner' => 5, // Mandiri Inhealth 'corporate_id_partner' => 8, // Mandiri Inhealth
'phone' => $cells[11]->getValue(), 'phone' => $cells[11]->getValue(),
'email' => isset($cells[12]) ? $cells[12]->getValue() : null, 'email' => isset($cells[12]) ? $cells[12]->getValue() : null,
'operational_day' => $this->expandDaysRange($cells[7]->getValue()), 'operational_day' => $this->expandDaysRange($cells[7]->getValue()),

View File

@@ -0,0 +1,56 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Log;
use App\Models\Organization;
use App\Models\OLDLMS\Healthcare;
use Exception;
class HealthcareSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$datas = Organization::with('addresses')
->where('type', 'hospital')
->whereNotNull('corporate_id_partner')
->get();
foreach ($datas as $data) {
// Fetch related healthcare record
$healthCare = Healthcare::where('sHealthcare', 'like', '%' . $data->name . '%')->first();
$healthCareData = [
'sHealthCare' => $data->name,
'sAlamat' => $data->addresses->first()->text ?? null, // Assuming addresses is a collection
'nIDCountry' => 1,
'sStatus' => 1,
];
try {
if ($healthCare) {
// Update healthcare record
$healthCare->update($healthCareData);
} else {
// Insert healthcare record
$healthCareData = [
'sHealthCare' => $data->name,
'sAlamat' => $data->addresses->first()->text ?? null, // Assuming addresses is a collection
'nIDCountry' => 1,
'sStatus' => 1,
'nIDHealthCareCategory' => 1
];
Healthcare::create($healthCareData);
}
} catch (Exception $e) {
dd($e->getMessage());
}
}
}
}

View File

@@ -5,6 +5,8 @@ namespace Database\Seeders;
use App\Models\Member; use App\Models\Member;
use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Log;
class LinkDokument extends Seeder class LinkDokument extends Seeder
{ {
@@ -153,7 +155,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1Qf_2OTqwD-KBlU-C2og4dIC2jxRcNW9w&usp=drive_copy" "https://drive.google.com/open?id=1Qf_2OTqwD-KBlU-C2og4dIC2jxRcNW9w&usp=drive_copy"
], ],
[ [
"AMALIA SETYASTUTI 0000008710-OB", "AMALIA SETYASTUTI 0000008710-0B",
"https://drive.google.com/open?id=1sx_yCqrpZn8PXZodlqTXcTG2Cf1U0nHK&usp=drive_copy" "https://drive.google.com/open?id=1sx_yCqrpZn8PXZodlqTXcTG2Cf1U0nHK&usp=drive_copy"
], ],
[ [
@@ -177,7 +179,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1zawFd3Wtq72aQwOrXP-uhyvjTn8XxFPo&usp=drive_copy" "https://drive.google.com/open?id=1zawFd3Wtq72aQwOrXP-uhyvjTn8XxFPo&usp=drive_copy"
], ],
[ [
"ANDARU BRAHMONO ADI 081034937", "ANDARU BRAHMONO ADI 0081034937",
"https://drive.google.com/open?id=1Gmq7xtRI0jgyemp5hMfJ4Mw03zM4Nu9V&usp=drive_copy" "https://drive.google.com/open?id=1Gmq7xtRI0jgyemp5hMfJ4Mw03zM4Nu9V&usp=drive_copy"
], ],
[ [
@@ -193,7 +195,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1pj3Nvh1JN1YpE54EgS1sRg4Ra8ABMkMu&usp=drive_copy" "https://drive.google.com/open?id=1pj3Nvh1JN1YpE54EgS1sRg4Ra8ABMkMu&usp=drive_copy"
], ],
[ [
"ANDI ENRIYANI 0000006689-OB", "ANDI ENRIYANI 0000006689-0B",
"https://drive.google.com/open?id=1EHAgvchuA2wfCrcgHnUet02xosQubZOW&usp=drive_copy" "https://drive.google.com/open?id=1EHAgvchuA2wfCrcgHnUet02xosQubZOW&usp=drive_copy"
], ],
[ [
@@ -445,7 +447,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1T5utNJ_686dYGSWnpN3Zw-Hf2iBm7vQA&usp=drive_copy" "https://drive.google.com/open?id=1T5utNJ_686dYGSWnpN3Zw-Hf2iBm7vQA&usp=drive_copy"
], ],
[ [
"ENDRAWATI SALEH 000008181", "ENDRAWATI SALEH 0000008181",
"https://drive.google.com/open?id=1iVtBQWq9BeMFjYvS8dQFCv_WSLpwT9Hj&usp=drive_copy" "https://drive.google.com/open?id=1iVtBQWq9BeMFjYvS8dQFCv_WSLpwT9Hj&usp=drive_copy"
], ],
[ [
@@ -469,7 +471,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1r2ZPt1o4oYIFss8AzK_HMKS7EGMd19jm&usp=drive_copy" "https://drive.google.com/open?id=1r2ZPt1o4oYIFss8AzK_HMKS7EGMd19jm&usp=drive_copy"
], ],
[ [
"FAHRY MUHAMMAD P.", "FAHRY MUHAMMAD P. 0000006859-07",
"https://drive.google.com/open?id=1IAqfVVRQwXkZ_pRWhbgOkVd2FMRGakzi&usp=drive_copy" "https://drive.google.com/open?id=1IAqfVVRQwXkZ_pRWhbgOkVd2FMRGakzi&usp=drive_copy"
], ],
[ [
@@ -505,7 +507,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1-WZtyhv8MSJ9wdNzBScNfl7jbdqWzrvO&usp=drive_copy" "https://drive.google.com/open?id=1-WZtyhv8MSJ9wdNzBScNfl7jbdqWzrvO&usp=drive_copy"
], ],
[ [
"FIRDAUS YPS-552-OA", "FIRDAUS YPS-552-0A",
"https://drive.google.com/open?id=174Kivy5T1x9LYh93DtuaBvoBmoZVWHWt&usp=drive_copy" "https://drive.google.com/open?id=174Kivy5T1x9LYh93DtuaBvoBmoZVWHWt&usp=drive_copy"
], ],
[ [
@@ -601,7 +603,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1sg2YyPt_s5-RkD0uou0dhDuBDEMZYZGy&usp=drive_copy" "https://drive.google.com/open?id=1sg2YyPt_s5-RkD0uou0dhDuBDEMZYZGy&usp=drive_copy"
], ],
[ [
"HASBULLAH 000008930", "HASBULLAH 0000008930",
"https://drive.google.com/open?id=1x0Jt7Mu2mPi_F4mITmzwf1f6E0M6-nLA&usp=drive_copy" "https://drive.google.com/open?id=1x0Jt7Mu2mPi_F4mITmzwf1f6E0M6-nLA&usp=drive_copy"
], ],
[ [
@@ -661,7 +663,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1jS01S5hAf4o_bOwF4n33JepzgxeoMxJL&usp=drive_copy" "https://drive.google.com/open?id=1jS01S5hAf4o_bOwF4n33JepzgxeoMxJL&usp=drive_copy"
], ],
[ [
"INA KARTINI", "INA KARTINI 0000008868-0B",
"https://drive.google.com/open?id=1uKrFuWkG-ksAimD9UbjT_263GHqJwTG_&usp=drive_copy" "https://drive.google.com/open?id=1uKrFuWkG-ksAimD9UbjT_263GHqJwTG_&usp=drive_copy"
], ],
[ [
@@ -677,7 +679,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1-blxaGx5wW7o648z0wUMZQB9bDJNvEvj&usp=drive_copy" "https://drive.google.com/open?id=1-blxaGx5wW7o648z0wUMZQB9bDJNvEvj&usp=drive_copy"
], ],
[ [
"Indrawati 00000011509", "Indrawati 0000011509",
"https://drive.google.com/open?id=1KBOOkIPupS3f_KDR6vIaYXfk7klo_cS5&usp=drive_copy" "https://drive.google.com/open?id=1KBOOkIPupS3f_KDR6vIaYXfk7klo_cS5&usp=drive_copy"
], ],
[ [
@@ -825,7 +827,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1ydkRHgLjblk9SMbaUkKV297BHWRfp6jt&usp=drive_copy" "https://drive.google.com/open?id=1ydkRHgLjblk9SMbaUkKV297BHWRfp6jt&usp=drive_copy"
], ],
[ [
"MARIANI", "MARIANI 0000010862-0B",
"https://drive.google.com/open?id=1Fa25aI-DkOatFsUK1hLMbNJDfJijUT2r&usp=drive_copy" "https://drive.google.com/open?id=1Fa25aI-DkOatFsUK1hLMbNJDfJijUT2r&usp=drive_copy"
], ],
[ [
@@ -865,7 +867,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1cr6sO7o5O3uc-t1Ui1AddOHGtzxkhP6f&usp=drive_copy" "https://drive.google.com/open?id=1cr6sO7o5O3uc-t1Ui1AddOHGtzxkhP6f&usp=drive_copy"
], ],
[ [
"MEILIN ATIKA 0081045835-OB", "MEILIN ATIKA 0081045835-0B",
"https://drive.google.com/open?id=1FCB1CUOTkF55UcHkvb-25cypGNjAfxxg&usp=drive_copy" "https://drive.google.com/open?id=1FCB1CUOTkF55UcHkvb-25cypGNjAfxxg&usp=drive_copy"
], ],
[ [
@@ -881,7 +883,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=13xI9zG9Uam9RqWf175WlN7ECEswFoHFP&usp=drive_copy" "https://drive.google.com/open?id=13xI9zG9Uam9RqWf175WlN7ECEswFoHFP&usp=drive_copy"
], ],
[ [
"MM.EMY YUNITA 0000008688-OB", "MM.EMY YUNITA 0000008688-0B",
"https://drive.google.com/open?id=1TLXQbIGiCD2PuU4_u4Gx63hFrP6hYWOg&usp=drive_copy" "https://drive.google.com/open?id=1TLXQbIGiCD2PuU4_u4Gx63hFrP6hYWOg&usp=drive_copy"
], ],
[ [
@@ -901,7 +903,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1M9-yl2Z8ffDQqqPuUBNgp4crrHKOGnRe&usp=drive_copy" "https://drive.google.com/open?id=1M9-yl2Z8ffDQqqPuUBNgp4crrHKOGnRe&usp=drive_copy"
], ],
[ [
"MUH FARHAN 000007673-03", "MUH FARHAN 0000007673-03",
"https://drive.google.com/open?id=1EApwqKI2e9bPU18SvphSgoqsOJrpyC9Q&usp=drive_copy" "https://drive.google.com/open?id=1EApwqKI2e9bPU18SvphSgoqsOJrpyC9Q&usp=drive_copy"
], ],
[ [
@@ -909,7 +911,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1U-V6h40_ryGJIQU-Ao3y7CfLO8KzEPbH&usp=drive_copy" "https://drive.google.com/open?id=1U-V6h40_ryGJIQU-Ao3y7CfLO8KzEPbH&usp=drive_copy"
], ],
[ [
"MUH. CHALIL FIQRI RAMADHAN 0000010357 - 01", "MUH. CHALIL FIQRI RAMADHAN 0000010357-01",
"https://drive.google.com/open?id=1ZoNsfzFMP0tA_dCaAf2NE8lUJ1LYHwy7&usp=drive_copy" "https://drive.google.com/open?id=1ZoNsfzFMP0tA_dCaAf2NE8lUJ1LYHwy7&usp=drive_copy"
], ],
[ [
@@ -1097,7 +1099,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1sF1zboKoTRtVeHDjbAYjZn0V5cRHcYX8&usp=drive_copy" "https://drive.google.com/open?id=1sF1zboKoTRtVeHDjbAYjZn0V5cRHcYX8&usp=drive_copy"
], ],
[ [
"NURJASNAWATI", "NURJASNAWATI 0000006382",
"https://drive.google.com/open?id=1Q89gZZ92mjXFrPqji1YJtJXn0wWDLpHZ&usp=drive_copy" "https://drive.google.com/open?id=1Q89gZZ92mjXFrPqji1YJtJXn0wWDLpHZ&usp=drive_copy"
], ],
[ [
@@ -1265,7 +1267,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1blcicnrpIkVw5kalnPvveh5R2fdfwMaN&usp=drive_copy" "https://drive.google.com/open?id=1blcicnrpIkVw5kalnPvveh5R2fdfwMaN&usp=drive_copy"
], ],
[ [
"ROY SIMON 00000011282", "ROY SIMON 0000011282",
"https://drive.google.com/open?id=1Sx5JF8fuMCDhLimiQTWUsX6u_XuI26nw&usp=drive_copy" "https://drive.google.com/open?id=1Sx5JF8fuMCDhLimiQTWUsX6u_XuI26nw&usp=drive_copy"
], ],
[ [
@@ -1289,7 +1291,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1Qs_8vFc02lMRvifI8MyS2Zvz4TRa4Arc&usp=drive_copy" "https://drive.google.com/open?id=1Qs_8vFc02lMRvifI8MyS2Zvz4TRa4Arc&usp=drive_copy"
], ],
[ [
"SALMA ATIKAH I 000005983-02", "SALMA ATIKAH I 0000005983-02",
"https://drive.google.com/open?id=10jSCldY6NGmnJkvHz4Gcy-45XO4I0bKk&usp=drive_copy" "https://drive.google.com/open?id=10jSCldY6NGmnJkvHz4Gcy-45XO4I0bKk&usp=drive_copy"
], ],
[ [
@@ -1313,7 +1315,7 @@ class LinkDokument extends Seeder
"https://drive.google.com/open?id=1c2-0aGXlaJrjDRDF9S9GsVW2RDWA9Xu2&usp=drive_copy" "https://drive.google.com/open?id=1c2-0aGXlaJrjDRDF9S9GsVW2RDWA9Xu2&usp=drive_copy"
], ],
[ [
"SEMUEL LANTUN MARUNTUNG 000011376", "SEMUEL LANTUN MARUNTUNG 0000011376",
"https://drive.google.com/open?id=12PuZmOwuMEyNqrmtVwg3gg2l7aIdCr4c&usp=drive_copy" "https://drive.google.com/open?id=12PuZmOwuMEyNqrmtVwg3gg2l7aIdCr4c&usp=drive_copy"
], ],
[ [
@@ -1574,8 +1576,10 @@ class LinkDokument extends Seeder
$member->save(); $member->save();
} else { } else {
array_push($result, $value); array_push($result, $value);
$this->command->error($value[0]);
Log::channel('dump_database_seeder')->error('Member atas nama ' . $value[0] . ' gagal!');
} }
} }
dd($result); Log::channel('dump_database_seeder')->error('Seeder End ' . now());
} }
} }

View File

@@ -100,13 +100,27 @@ class NavigationSeeder extends Seeder
[ [
'title' => 'CLAIM REQUEST', 'title' => 'CLAIM REQUEST',
'path' => '/claim-requests', 'path' => '/claim-requests',
'permission' => 'claim-request-list' 'children' => [
[
'title' => 'CLAIM REQUEST',
'path' => '/claim-requests',
'permission' => 'claim-request-list'
],
],
'permission' => null
], ],
// CLAIM MANAGEMENT // CLAIM MANAGEMENT
[ [
'title' => 'CLAIM MANAGEMENT', 'title' => 'CLAIM MANAGEMENT',
'path' => '/claims', 'path' => '/claims',
'permission' => 'claim-management-list' 'children' => [
[
'title' => 'CLAIM MANAGEMENT',
'path' => '/claims',
'permission' => 'claim-management-list'
],
],
'permission' => null
], ],
// CASE MANAGEMENT // CASE MANAGEMENT
[ [

View File

@@ -0,0 +1,206 @@
import MuiDialog from "@/components/MuiDialog";
import { Autocomplete, Button, Card, Checkbox, DialogActions, Grid, TextField, Typography } from "@mui/material";
import { Paper } from "@mui/material";
import { Stack } from '@mui/material';
import React, { useEffect, useState } from 'react';
import { DetailFinalLogType } from "../Model/Types";
import { fDateOnly, fDateTimesecond, toTitleCase } from "@/utils/formatTime";
import axios from "@/utils/axios";
import { enqueueSnackbar } from "notistack";
import { useNavigate } from "react-router";
type DialogConfirmationType = {
openDialog: boolean;
setOpenDialog: any;
onSubmit?: void;
approve: string;
requestLog: DetailFinalLogType|undefined;
}
export default function DialogConfirmation({requestLog, setOpenDialog, openDialog, approve, onSubmit} : DialogConfirmationType ) {
const navigate = useNavigate();
const [formData, setFormData] = useState({
discharge_date: requestLog?.discharge_date,
id: requestLog?.id,
status: approve || '',
catatan: '',
icdCodes: requestLog?.diagnosis.length ? requestLog.diagnosis.map(diagnosis => ({ value: diagnosis.id, label: diagnosis.name })) : []
});
const [icdOptions, setIcdOptions] = useState([
{ value: '-', label: '-' }
]);
useEffect(() => {
// Ambil data dari API dan atur opsi ICD
axios.get('diagnosis')
.then((response) => {
setIcdOptions(response.data.data);
})
.catch((error) => {
console.error('Error fetching ICD options:', error);
});
}, []); // useEffect dijalankan hanya sekali saat komponen dimount
useEffect(() => {
// Update formData setiap kali approve berubah
setFormData(prevData => ({
...prevData,
status: approve || '',
}));
}, [approve]);
const handleChange = (field, value) => {
setFormData((prevData) => ({
...prevData,
[field]: value,
}));
};
const handleApprove = () => {
setFormData((prevData) => ({
...prevData,
status: approve,
}));
handleSubmit();
};
const handleSubmit = () => {
axios
.post(`customer-service/request/final-log`, formData)
.then((response) => {
enqueueSnackbar('Verification Request LOG Success', { variant: 'success' });
setOpenDialog(false);
if (requestLog?.service_type == 'Inpatient'){
navigate('/case_management/inpatient_monitoring');
} else {
navigate('/custormer-service/final-log');
}
})
.catch(({ response }) => {
enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' });
});
}
const style1 = {
color: '#919EAB',
width: '30%'
}
const style2 = {
width: '70%'
}
const marginBottom1 = {
marginBottom: 1,
}
const marginBottom2 = {
marginBottom: 2,
}
const handleCloseDialog = () => {
setOpenDialog(false);
}
const getContent = () => (
<Stack spacing={1} marginTop={2}>
<Typography variant="subtitle2">Are you sure to {approve == 'approved' ? 'approve' : 'deciline'} this final log ?</Typography>
<Grid item xs={12} md={12} marginTop={4}>
<Card sx={{padding:2, marginTop:2}} >
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Member ID</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.member_id}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Policy Number</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.policy_number}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Name</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.name}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Submission Date</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.submission_date ? fDateTimesecond(requestLog?.submission_date) : '-'}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Claim Method</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.claim_method ? toTitleCase(requestLog?.claim_method) : '-'}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Service Type</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.service_type}</Typography>
</Stack>
</Card>
<Card sx={{padding:2, marginTop:2}} >
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Discharge Date</Typography>
<TextField
label="Discharge Date"
variant="outlined"
fullWidth
type="date"
value={formData.discharge_date ? fDateOnly(formData.discharge_date) : ''}
onChange={(e) => handleChange('discharge_date', e.target.value)}
/>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Catatan</Typography>
<TextField
label="Catatan"
variant="outlined"
fullWidth
value={formData.catatan}
onChange={(e) => handleChange('catatan', e.target.value)}
/>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Diagnosis ICD - X</Typography>
<Autocomplete
multiple
options={icdOptions}
getOptionLabel={(option) => option.label}
fullWidth
value={icdOptions.filter((icd) => formData.icdCodes.includes(icd.value))}
onChange={(e, newValues) => handleChange('icdCodes', newValues.map((value) => value.value))}
renderInput={(params) => (
<TextField
{...params}
label="Diagnosis ICD - X"
variant="outlined"
/>
)}
/>
</Stack>
</Card>
</Grid>
<DialogActions>
<Button variant="outlined" sx={{color: '#212B36', borderColor: '#919EAB52'}} onClick={handleCloseDialog}>Cancel</Button>
{approve == 'approved' ? (
<Button color="primary" variant="contained" onClick={() => handleApprove()}>Approve</Button>
) : (
<Button color="error" variant="contained" onClick={() => handleApprove()}>Decline</Button>
) }
</DialogActions>
</Stack>
);
return (
<MuiDialog
title={{name: "Confirmation"}}
openDialog={openDialog}
setOpenDialog={setOpenDialog}
content={getContent()}
maxWidth="xl"
/>
);
}

View File

@@ -73,7 +73,7 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo
} }
const handleSubmit = () => { const handleSubmit = () => {
if (formData.type_of_member === "" && requestLog?.corporate_id === 5) { // corporate vale if (formData.type_of_member == "" && requestLog?.corporate_id == 5) { // corporate vale
setError(true); setError(true);
alert('Silakan pilih Type Of Member sebelum mengirimkan data.'); alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
} }

View File

@@ -0,0 +1,284 @@
import MuiDialog from "@/components/MuiDialog";
import { Autocomplete, Button, Card, Checkbox, DialogActions, Grid, TextField, Typography } from "@mui/material";
import { Paper } from "@mui/material";
import { Stack } from '@mui/material';
import React, { useEffect, useState } from 'react';
import { DetailFinalLogType } from "../Model/Types";
import { fDateOnly, fDateTimesecond, toTitleCase } from "@/utils/formatTime";
import axios from "@/utils/axios";
import { enqueueSnackbar } from "notistack";
import { useNavigate } from "react-router";
type DialogConfirmationType = {
openDialog: boolean;
setOpenDialog: any;
onSubmit?: void;
requestLog: DetailFinalLogType|undefined;
}
export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialog, onSubmit} : DialogConfirmationType ) {
const navigate = useNavigate();
const [formData, setFormData] = useState({
billing_no: requestLog?.billing_no,
invoice_no: requestLog?.invoice_no,
discharge_date: requestLog?.discharge_date,
id: requestLog?.id,
catatan: requestLog?.catatan,
icdCodes: requestLog?.diagnosis
? requestLog?.diagnosis.map(diagnosis => diagnosis.code)
: [],
reason: requestLog?.reason
});
const [icdOptions, setIcdOptions] = useState([
{ value: '-', label: '-' }
]);
useEffect(() => {
// Ambil data dari API dan atur opsi ICD
axios.get('diagnosis')
.then((response) => {
setIcdOptions(response.data.data);
})
.catch((error) => {
console.error('Error fetching ICD options:', error);
});
}, []); // useEffect dijalankan hanya sekali saat komponen dimount
useEffect(() => {
if (requestLog) {
setFormData({
discharge_date: requestLog.discharge_date,
billing_no: requestLog.billing_no,
invoice_no: requestLog.invoice_no,
id: requestLog.id,
catatan: requestLog.catatan,
icdCodes: requestLog.diagnosis
? requestLog.diagnosis.map(diagnosis => diagnosis.code)
: [],
reason: requestLog.reason
});
}
}, [requestLog]);
const handleChange = (field, value) => {
setFormData((prevData) => ({
...prevData,
[field]: value,
}));
if (field === 'reason') {
setIsReasonSelected(!!value);
}
};
const handleApprove = () => {
setFormData((prevData) => ({
...prevData,
}));
handleSubmit();
};
const handleSubmit = () => {
if (isReasonSelected && formData.reason !== '') {
axios
.post(`customer-service/request/final-log`, formData)
.then((response) => {
enqueueSnackbar('Verification Request LOG Success', { variant: 'success' });
setOpenDialog(false);
navigate('/custormer-service/final-log/detail/' + requestLog?.id)
window.location.reload()
})
.catch(({ response }) => {
enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' });
});
} else {
setIsReasonSelected(false);
alert('Silakan pilih alasan sebelum mengirimkan data.');
}
}
const style1 = {
color: '#919EAB',
width: '30%'
}
const style2 = {
width: '70%'
}
const marginBottom1 = {
marginBottom: 1,
}
const marginBottom2 = {
marginBottom: 2,
}
const resetForm = () => {
setFormData({
discharge_date: requestLog?.discharge_date,
id: requestLog?.id,
billing_no: requestLog?.billing_no,
invoice_no: requestLog?.invoice_no,
catatan: requestLog?.catatan,
icdCodes: requestLog?.diagnosis
? requestLog?.diagnosis.map(diagnosis => diagnosis.code)
: [],
reason: requestLog?.reason
});
};
const [isReasonSelected, setIsReasonSelected] = useState(true);
const handleCloseDialog = () => {
setOpenDialog(false);
resetForm();
}
const reasons = [
{ value: 'agreement', label: 'Agreement changed' },
{ value: 'endorsement', label: 'Endorsement' },
{ value: 'renewal', label: 'Renewal' },
{ value: 'wrong_setting', label: 'Wrong Setting' },
// Add more options as needed
];
const getContent = () => (
<Stack spacing={1} marginTop={2}>
<Typography variant="subtitle2">Are you sure to edit this final log ?</Typography>
<Grid item xs={12} md={12} marginTop={4}>
<Card sx={{padding:2, marginTop:2}} >
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Member ID</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.member_id}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Policy Number</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.policy_number}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Name</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.name}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Submission Date</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.submission_date ? fDateTimesecond(requestLog?.submission_date) : '-'}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Claim Method</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.claim_method ? toTitleCase(requestLog?.claim_method) : '-'}</Typography>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom1}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Service Type</Typography>
<Typography variant='subtitle2' sx={style2} gutterBottom>{requestLog?.service_type}</Typography>
</Stack>
</Card>
<Card sx={{padding:2, marginTop:2}} >
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Invoice Number</Typography>
<TextField
label="Invoice Number"
variant="outlined"
fullWidth
value={formData.invoice_no}
onChange={(e) => handleChange('invoice_no', e.target.value)}
/>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Billing Number</Typography>
<TextField
label="Billing Number"
variant="outlined"
fullWidth
value={formData.billing_no}
onChange={(e) => handleChange('billing_no', e.target.value)}
/>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Discharge Date</Typography>
<TextField
label="Discharge Date"
variant="outlined"
fullWidth
type="date"
value={formData.discharge_date ? fDateOnly(formData.discharge_date) : '-'}
onChange={(e) => handleChange('discharge_date', e.target.value)}
/>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Catatan</Typography>
<TextField
label="Catatan"
variant="outlined"
fullWidth
value={formData.catatan}
onChange={(e) => handleChange('catatan', e.target.value)}
/>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Diagnosis ICD - X</Typography>
<Autocomplete
multiple
options={icdOptions}
getOptionLabel={(option) => option.label}
fullWidth
value={icdOptions.filter((icd) => formData.icdCodes.includes(icd.value))}
onChange={(e, newValues) => {
const selectedCodes = newValues.map((value) => value.value);
setFormData({ ...formData, icdCodes: selectedCodes });
}}
renderInput={(params) => (
<TextField
{...params}
label="Diagnosis ICD - X"
variant="outlined"
/>
)}
/>
</Stack>
<Stack direction='row' spacing={2} sx={marginBottom2}>
<Typography variant='subtitle2' sx={style1} gutterBottom>Reason*</Typography>
<Autocomplete
options={reasons}
getOptionLabel={(option) => option.label}
fullWidth
value={reasons.find((r) => r.value === formData.reason) || null} // Use find to match the default value
onChange={(e, newValue) => handleChange('reason', newValue?.value)}
renderInput={(params) => (
<TextField
{...params}
label="Reason"
variant="outlined"
required
error={!isReasonSelected} // Menandai input sebagai salah jika opsi tidak dipilih
helperText={!isReasonSelected ? 'Alasan harus dipilih' : ''}
/>
)}
/>
</Stack>
</Card>
</Grid>
<DialogActions>
<Button variant="outlined" sx={{color: '#212B36', borderColor: '#919EAB52'}} onClick={handleCloseDialog}>Cancel</Button>
<Button color="primary" variant="contained" onClick={() => handleApprove()}>Update</Button>
</DialogActions>
</Stack>
);
return (
<MuiDialog
title={{name: "Update"}}
openDialog={openDialog}
setOpenDialog={setOpenDialog}
content={getContent()}
maxWidth="xl"
/>
);
}

View File

@@ -96,7 +96,7 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo
const handleSubmit = () => { const handleSubmit = () => {
if (formData.type_of_member === "" && requestLog?.corporate_id === 4) { if (formData.type_of_member == "" && requestLog?.corporate_id == 5) {
setError(true); setError(true);
alert('Silakan pilih Type Of Member sebelum mengirimkan data.'); alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
} }

View File

@@ -302,6 +302,27 @@ export default function Detail() {
</CardExclusion> */} </CardExclusion> */}
</Grid> </Grid>
{/* Hospital Care */}
{/* <Grid item xs={12} md={12}>
<Card sx={{padding:2}} >
<Stack direction="row" alignItems="center" sx={{marginBottom: 4}}>
<Typography variant='subtitle1' sx={{color: '#19BBBB'}} gutterBottom>History of Hospital Care</Typography>
<Button variant="outlined" startIcon={<AddIcon/>} sx={{marginLeft: 'auto'}} onClick={() => {
setDialogHospital(true);
}} >
<Typography variant="button" display="block">History</Typography>
</Button>
</Stack>
</Card>
<DialogHospitalCare
requestLog={requestLog}
openDialog={openDialogHospital}
setOpenDialog={setDialogHospital}
>
</DialogHospitalCare>
</Grid> */}
{/* Benefit */} {/* Benefit */}
<Grid item xs={12} md={12}> <Grid item xs={12} md={12}>
<Card sx={{padding:2}} > <Card sx={{padding:2}} >

View File

@@ -41,6 +41,7 @@ export type DetailFinalLogType = {
date_of_birth : string, date_of_birth : string,
gender : string, gender : string,
marital_status : string, marital_status : string,
admission_date : string,
submission_date : string, submission_date : string,
admission_date : string, admission_date : string,
approved_final_log_at : string, approved_final_log_at : string,

View File

@@ -58,7 +58,7 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo
const handleSubmit = () => { const handleSubmit = () => {
if (formData.type_of_member === "" && requestLog?.corporate_id === 5) { if (formData.type_of_member == "" && requestLog?.corporate_id == 5) {
setError(true); setError(true);
alert('Silakan pilih Type Of Member sebelum mengirimkan data.'); alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
} else { } else {

View File

@@ -68,7 +68,7 @@ export default function DialogEditInformation({requestLog, setOpenDialog, openDi
const handleSubmit = () => { const handleSubmit = () => {
if (formData.type_of_member === "" && requestLog?.corporate_id === 5) { if (formData.type_of_member == "" && requestLog?.corporate_id == 5) {
setError(true); setError(true);
alert('Silakan pilih Type Of Member sebelum mengirimkan data.'); alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
} else if (isReasonSelected && formData.reason !== '') { } else if (isReasonSelected && formData.reason !== '') {

View File

@@ -281,9 +281,9 @@ export default function List() {
? appliedParams ? appliedParams
: Object.fromEntries([...searchParams.entries(), ['order', order], ['orderBy', orderBy]]); : Object.fromEntries([...searchParams.entries(), ['order', order], ['orderBy', orderBy]]);
const response = await axios.get('/report/logs', { const response = await axios.get('/report/logs', {
params: { ...parameters }, params: { ...parameters },
}); });
setDataTableLoading(false); setDataTableLoading(false);
setDataTableData(response.data); setDataTableData(response.data);

View File

@@ -159,7 +159,6 @@ export default function List() {
}, []); }, []);
return ( return (
<form style={{ width: '100%' }}> <form style={{ width: '100%' }}>
<Grid container spacing={2} sx={{ justifyContent: 'space-between', alignItems: 'center' }}> <Grid container spacing={2} sx={{ justifyContent: 'space-between', alignItems: 'center' }}>

View File

@@ -0,0 +1 @@
import{a7 as o}from"./index.b0a49137.js";const t=o(),r=t;export{r as B};

View File

@@ -0,0 +1 @@
import{P as H}from"./Page.e9d8cc16.js";import{n as V,r,Z as $,$ as U,a0 as y,j as e,T as _,F as W,f as E,a4 as Y,S as Z,Y as q,a2 as z}from"./index.b0a49137.js";import{T as J}from"./Table.08efdc83.js";import{f as P}from"./formatTime.0646b9d0.js";import{T as K}from"./TableMoreMenu.0bdaf78f.js";import{d as Q}from"./VisibilityOutlined.ab7a612c.js";import{L as i}from"./Label.f33248ec.js";import{H as X}from"./HeaderBreadcrumbs.c70f1305.js";import{G as D}from"./Grid.97ae8bc1.js";import"./Box.c50b4a28.js";import"./TablePagination.dc161c5e.js";import"./KeyboardArrowRight.fd8a1844.js";import"./LastPage.9e90b034.js";import"./TableRow.41459f01.js";import"./useId.c3f149cd.js";import"./TextField.08c1cc6c.js";import"./InputAdornment.b72719ba.js";import"./Search.cbee36ce.js";import"./LoadingButton.6a53b4e1.js";import"./generateUtilityClasses.06032f54.js";import"./TableContainer.58606ed5.js";import"./TableHead.c7022a42.js";import"./index.49ea62c1.js";import"./jsx-runtime_commonjs-proxy.b87625c0.js";function j(){const c=V(),{corporateValue:l}=r.exports.useContext($),[T,I]=r.exports.useState([]),[C,m]=r.exports.useState(!0),w={isLoading:C,setIsLoading:m},[s,d]=U(),[n,p]=r.exports.useState({}),k={searchParams:s,setSearchParams:d,appliedParams:n,setAppliedParams:p},[u,v]=r.exports.useState("asc"),[f,N]=r.exports.useState("fullName"),O={order:u,setOrder:v,orderBy:f,setOrderBy:N},[L,g]=r.exports.useState(0),[M,S]=r.exports.useState(10),[x,b]=r.exports.useState({current_page:0,from:0,last_page:0,links:[],path:"",per_page:0,to:0,total:0}),B={page:L,setPage:g,rowsPerPage:M,setRowsPerPage:S,paginationTable:x,setPaginationTable:b},[h,R]=r.exports.useState(""),A={useSearchs:!0,searchText:h,setSearchText:R,handleSearchSubmit:async o=>{if(o.preventDefault(),h===""){s.delete("search");const a=Object.fromEntries([...s.entries()]);p(a)}else{const a=Object.fromEntries([...s.entries(),["search",h]]);p(a)}}},F={useExport:!0,startDate:"",endDate:"",status:"all",handleExportReport:async()=>{y.get(l+"/export-members/list").then(o=>{const a=document.createElement("a");a.href=o.data.data.file_url,a.setAttribute("download",o.data.data.file_name),document.body.appendChild(a),a.click()})}},G=[{id:"memberId",align:"left",label:"Member ID",isSort:!0},{id:"fullName",align:"left",label:"Name",isSort:!0},{id:"start_date",align:"center",label:"Start Date",isSort:!0},{id:"end_date",align:"center",label:"End Date",isSort:!0},{id:"status",align:"center",label:"Status",isSort:!0},{id:"action",align:"center",label:"",isSort:!0}];return r.exports.useEffect(()=>{(async()=>{m(!0),await new Promise(t=>setTimeout(t,250));const o=Object.keys(n).length!==0?n:Object.fromEntries([...s.entries(),["order",u],["orderBy",f]]),a=await y.get(`${l}/members?type=employee-data`,{params:{...o}});if(d(o),I(a.data.data.map(t=>({...t,status:t.status===1?e(i,{color:"success",children:"Active"}):e(i,{color:"error",children:"Inactive"}),start_date:e(i,{children:t.start_date?P(t.start_date):""}),end_date:e(i,{children:t.end_date?P(t.end_date):""}),fullName:e(_,{variant:"body2",children:t.fullName}),memberId:e(_,{variant:"body2",children:t.memberId}),action:e(K,{actions:e(W,{children:E(Y,{onClick:()=>c("/employee-data/user-profile/"+t.personId),children:[e(Q,{}),"View"]})})})}))),b(a.data),S(a.data.per_page),s.get("page")){const t=parseInt(s.get("page"))-1;x.current_page=t,g(t)}m(!1)})()},[n,s,u,f,d,l]),e(Z,{children:e(J,{headCells:G,rows:T,orders:O,paginations:B,loadings:w,params:k,searchs:A,exportReport:F})})}function Ie(){const{themeStretch:c}=q();return e(H,{title:"Employee Data",children:E(z,{maxWidth:c?!1:"xl",children:[e(X,{heading:"Employee Data",links:[{name:"Case Management"},{name:"Employee Data",href:"/employee-data"}]}),e(D,{container:!0,children:e(D,{item:!0,xs:12,lg:12,md:12,children:e(j,{})})})]})})}export{Ie as default};

View File

@@ -0,0 +1 @@
import{Y as U,r as e,Z as W,$ as Z,a0 as k,j as s,G as P,a1 as c,f as q,a2 as z,T as H}from"./index.b0a49137.js";import{P as J}from"./Page.e9d8cc16.js";import{T as K}from"./Table.08efdc83.js";import{S as Q}from"./Stack.acc67e21.js";import{G as C}from"./Grid.97ae8bc1.js";import"./Box.c50b4a28.js";import"./TablePagination.dc161c5e.js";import"./KeyboardArrowRight.fd8a1844.js";import"./LastPage.9e90b034.js";import"./TableRow.41459f01.js";import"./useId.c3f149cd.js";import"./TextField.08c1cc6c.js";import"./InputAdornment.b72719ba.js";import"./Search.cbee36ce.js";import"./LoadingButton.6a53b4e1.js";import"./generateUtilityClasses.06032f54.js";import"./TableContainer.58606ed5.js";import"./TableHead.c7022a42.js";function xe(){const{themeStretch:D}=U(),{corporateValue:l}=e.exports.useContext(W),p=new AbortController,[y,j]=e.exports.useState([]),[O,d]=e.exports.useState(!0),T={isLoading:O,setIsLoading:d},[t,m]=Z(),[n,o]=e.exports.useState({}),w={searchParams:t,setSearchParams:m,appliedParams:n,setAppliedParams:o},[u,E]=e.exports.useState("asc"),[g,I]=e.exports.useState("fullName"),_={order:u,setOrder:E,orderBy:g,setOrderBy:I},[B,f]=e.exports.useState(0),[A,S]=e.exports.useState(10),[x,v]=e.exports.useState({current_page:0,from:0,last_page:0,links:[],path:"",per_page:0,to:0,total:0}),G={page:B,setPage:f,rowsPerPage:A,setRowsPerPage:S,paginationTable:x,setPaginationTable:v},[h,N]=e.exports.useState(""),R={useSearchs:!1,searchText:h,setSearchText:N,handleSearchSubmit:async r=>{if(r.preventDefault(),h===""){t.delete("search");const a=Object.fromEntries([...t.entries()]);o(a)}else{const a=Object.fromEntries([...t.entries(),["search",h]]);o(a)}}},[V,Y]=e.exports.useState("all"),[$,L]=e.exports.useState([]),M={useFilter:!0,config:{label:"Division",divisionValue:V,divisionData:$,handleDivisionChange:r=>{if(Y(r.target.value),r.target.value==="all"){t.delete("division");const a=Object.fromEntries([...t.entries()]);o(a)}else{const a=Object.fromEntries([...t.entries(),["division",r.target.value]]);o(a)}}}},F=[{id:"memberId",align:"left",label:"Member ID",isSort:!0},{id:"fullName",align:"center",label:"Name",isSort:!0},{id:"division",align:"center",label:"Divisi",isSort:!0},{id:"status",align:"center",label:"Status",isSort:!0},{id:"action",align:"right",label:"",isSort:!1}];return e.exports.useEffect(()=>((async()=>{try{d(!0);const r=Object.keys(n).length!==0?n:Object.fromEntries([...t.entries(),["order",u],["orderBy",g]]),[a,b]=await Promise.all([k.get(`${l}/division`,{signal:p.signal}),k.get(`${l}/members`,{params:{...r},signal:p.signal})]);if(m(r),L(a.data),j(b.data.data.map(i=>({...i,status:i.status===1?s(P,{sx:{backgroundColor:"rgba(84, 214, 44, 0.16)",color:c.dark.success.dark,paddingY:0,"&:hover":{backgroundColor:"rgba(84, 214, 44, 0.32)",color:c.dark.success.darker}},children:"Active"}):s(P,{sx:{backgroundColor:"rgba(255, 72, 66, 0.16)",color:c.dark.error.dark,paddingY:0,"&:hover":{backgroundColor:"rgba(255, 72, 66, 0.32)",color:c.dark.error.darker}},children:"Inactive"})}))),v(b.data),S(b.data.per_page),t.get("page")){const i=parseInt(t.get("page"))-1;x.current_page=i,f(i)}d(!1)}catch(r){console.error("Error fetching data:",r.message)}})(),()=>{p.abort()}),[n,t,u,g,m,l]),s(J,{title:"Dashboard",children:q(z,{maxWidth:D?!1:"xl",children:[s(Q,{direction:"row",justifyContent:"space-between",children:s(H,{variant:"h3",component:"h1",paragraph:!0,children:"Dashboard"})}),s(C,{container:!0,spacing:2,children:s(C,{item:!0,xs:12,lg:12,md:12,children:s(K,{headCells:F,rows:y,orders:_,paginations:G,loadings:T,params:w,searchs:R,filters:M})})})]})})}export{xe as default};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{P as x}from"./Page.e9d8cc16.js";import{n as C,r as t,Z as b,a0 as S,j as e,T as _,G as I,f as a,F as y,a4 as d,S as L,Y as T,a2 as j}from"./index.b0a49137.js";import{T as k}from"./Table.08efdc83.js";import{T as w}from"./TableMoreMenu.0bdaf78f.js";import{r as D,i as E,a as M}from"./jsx-runtime_commonjs-proxy.b87625c0.js";import{d as q}from"./VisibilityOutlined.ab7a612c.js";import{H as P}from"./HeaderBreadcrumbs.c70f1305.js";import{G as p}from"./Grid.97ae8bc1.js";import"./Box.c50b4a28.js";import"./TablePagination.dc161c5e.js";import"./KeyboardArrowRight.fd8a1844.js";import"./LastPage.9e90b034.js";import"./TableRow.41459f01.js";import"./useId.c3f149cd.js";import"./TextField.08c1cc6c.js";import"./InputAdornment.b72719ba.js";import"./Search.cbee36ce.js";import"./LoadingButton.6a53b4e1.js";import"./generateUtilityClasses.06032f54.js";import"./TableContainer.58606ed5.js";import"./TableHead.c7022a42.js";var s={},R=E.exports;Object.defineProperty(s,"__esModule",{value:!0});var m=s.default=void 0,$=R(D()),A=M,G=(0,$.default)((0,A.jsx)("path",{d:"m14.06 9.02.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z"}),"EditOutlined");m=s.default=G;function H(){const r=C(),{corporateValue:n}=t.exports.useContext(b),l=new AbortController,[u,f]=t.exports.useState([]),[g,o]=t.exports.useState(!0),h={isLoading:g,setIsLoading:o},v=[{id:"code",align:"left",label:"Code",isSort:!1},{id:"name",align:"left",label:"Name",isSort:!1},{id:"active",align:"center",label:"Status",isSort:!1},{id:"action",align:"center",label:"",isSort:!1}];return t.exports.useEffect(()=>{(async()=>{try{o(!0);const[i]=await Promise.all([S.get(`${n}/corporate`,{signal:l.signal})]);f(i.data.data.map(c=>({...c,active:c.active===1?e(_,{variant:"overline",sx:{backgroundColor:"rgba(84, 214, 44, 0.16)",color:"#229A16",paddingX:1.5,paddingY:1,display:"inline-flex",alignItems:"center",borderRadius:"10px"},children:"Active"}):e(I,{variant:"outlined",color:"error",children:"Inactive"}),action:e(w,{actions:a(y,{children:[a(d,{onClick:()=>r("/corporate/edit"),children:[e(m,{}),"Edit"]}),a(d,{onClick:()=>r("/corporate/view"),children:[e(q,{}),"View"]})]})})}))),o(!1)}catch(i){console.error("Error fetching data:",i.message)}return()=>{l.abort()}})()},[n]),e(L,{children:e(k,{headCells:v,rows:u,loadings:h})})}function ne(){const{themeStretch:r}=T();return e(x,{title:"Corporate",children:a(j,{maxWidth:r?!1:"xl",children:[e(P,{heading:"Corporate",links:[{name:"Dashboard",href:"/dashboard"},{name:"Corporates",href:"/corporates"}]}),e(p,{container:!0,children:e(p,{item:!0,xs:12,lg:12,md:12,children:e(H,{})})})]})})}export{ne as default};

View File

@@ -0,0 +1 @@
import{P as X}from"./Page.e9d8cc16.js";import{n as ee,r,Z as te,$ as ae,a0 as O,j as n,f as m,F as re,a4 as P,S as se,m as v,Y as ne,a2 as oe}from"./index.b0a49137.js";import{D as ie,T as le}from"./Table.08efdc83.js";import{f as w}from"./formatTime.0646b9d0.js";import{T as ce}from"./TableMoreMenu.0bdaf78f.js";import{d as de}from"./VisibilityOutlined.ab7a612c.js";import{L as k}from"./Label.f33248ec.js";import{H as me}from"./HeaderBreadcrumbs.c70f1305.js";import{G as y}from"./Grid.97ae8bc1.js";import"./Box.c50b4a28.js";import"./TablePagination.dc161c5e.js";import"./KeyboardArrowRight.fd8a1844.js";import"./LastPage.9e90b034.js";import"./TableRow.41459f01.js";import"./useId.c3f149cd.js";import"./TextField.08c1cc6c.js";import"./InputAdornment.b72719ba.js";import"./Search.cbee36ce.js";import"./LoadingButton.6a53b4e1.js";import"./generateUtilityClasses.06032f54.js";import"./TableContainer.58606ed5.js";import"./TableHead.c7022a42.js";import"./index.49ea62c1.js";import"./jsx-runtime_commonjs-proxy.b87625c0.js";function pe(){const p=ee(),{corporateValue:u}=r.exports.useContext(te),[T,V]=r.exports.useState([]),j=a=>{window.open(a,"_blank")},[S,c]=r.exports.useState(!0),I={isLoading:S,setIsLoading:c},[t,D]=ae(),[d,o]=r.exports.useState({}),L={searchParams:t,setSearchParams:D,appliedParams:d,setAppliedParams:o},[h,M]=r.exports.useState("desc"),[f,A]=r.exports.useState("request_date"),F={order:h,setOrder:M,orderBy:f,setOrderBy:A},[B,x]=r.exports.useState(0),[G,b]=r.exports.useState(10),[_,C]=r.exports.useState({current_page:0,from:0,last_page:0,links:[],path:"",per_page:0,to:0,total:0}),R={page:B,setPage:x,rowsPerPage:G,setRowsPerPage:b,paginationTable:_,setPaginationTable:C},[g,N]=r.exports.useState(""),q={useSearchs:!0,searchText:g,setSearchText:N,handleSearchSubmit:async a=>{if(a.preventDefault(),g===""){t.delete("search");const e=Object.fromEntries([...t.entries()]);o(e)}else{const e=Object.fromEntries([...t.entries(),["search",g]]);o(e)}}},[E,z]=r.exports.useState("all"),[H,$]=r.exports.useState([]),U={useFilter:!1,config:{label:"Status",statusValue:E,statusData:H,handleStatusChange:a=>{if(z(a.target.value),a.target.value==="all"){t.delete("status");const e=Object.fromEntries([...t.entries()]);o(e)}else{const e=Object.fromEntries([...t.entries(),["status",a.target.value]]);o(e)}}}},[i,W]=r.exports.useState(""),Y={useFilter:!0,startDate:i,setStartDate:W,handleStartDateChange:async a=>{if(a.preventDefault(),i===""){t.delete("start_date");const e=Object.fromEntries([...t.entries()]);o(e)}else{const e=Object.fromEntries([...t.entries(),["start_date",i]]);o(e)}}},[l,Z]=r.exports.useState(""),J={useFilter:!0,endDate:l,setEndDate:Z,handleEndDateChange:async a=>{if(a.preventDefault(),l===""){t.delete("end_date");const e=Object.fromEntries([...t.entries()]);o(e)}else{const e=Object.fromEntries([...t.entries(),["end_date",l]]);o(e)}}},K={useExport:!0,startDate:i,endDate:l,status:E,handleExportReport:async()=>{var a=Object.fromEntries([...t.entries()]);c(!0),await O.get(u+"/claims/exportAlrmCenter/"+(i||"all")+"/"+(l||"all"),{params:a}).then(e=>{v("Data berhasil di Export",{variant:"success",anchorOrigin:{horizontal:"right",vertical:"top"}}),c(!1),document.location.href=e.data.data.file_url}).catch(e=>v("Data Gagal di Export",{variant:"error",anchorOrigin:{horizontal:"right",vertical:"top"}}))}},Q=[{id:"memberId",align:"left",label:"Member ID",isSort:!0},{id:"fullName",align:"left",label:"Name",isSort:!0},{id:"start_date",align:"center",label:"Start Date",isSort:!0},{id:"end_date",align:"center",label:"End Date",isSort:!0},{id:"action",align:"center",label:"",isSort:!1}];return r.exports.useEffect(()=>{(async()=>{c(!0),await new Promise(s=>setTimeout(s,250));const a=Object.keys(d).length!==0?d:Object.fromEntries([...t.entries(),["order",h],["orderBy",f]]),e=await O.get(`${u}/members?type=alarm-center`,{params:{...a}});if($([{id:1,name:"Done"},{id:0,name:"On Going"}]),V(e.data.data.map(s=>({...s,start_date:s.start_date&&s.start_date!="0000-00-00"?n(k,{children:w(s.start_date)}):"-",end_date:s.end_date&&s.end_date!="0000-00-00"?n(k,{children:w(s.end_date)}):"-",action:n(ce,{actions:m(re,{children:[m(P,{onClick:()=>p("member/"+s.id),children:[n(de,{}),"View"]}),m(P,{onClick:()=>j(s.link_document),children:[n(ie,{}),"Document Member"]})]})})}))),C(e.data),b(e.data.per_page),t.get("page")){const s=parseInt(t.get("page"))-1;_.current_page=s,x(s)}c(!1)})()},[d,t,h,f,D,u]),n(se,{children:n(le,{headCells:Q,rows:T,orders:F,paginations:R,loadings:I,params:L,searchs:q,filterStatus:U,filterStartDate:Y,filterEndDate:J,exportReport:K,exportLoading:S})})}function ze(){const{themeStretch:p}=ne();return n(X,{title:"Alarm Center",children:m(oe,{maxWidth:p?!1:"xl",children:[n(me,{heading:"Alarm Center",links:[{name:"Case Management",href:"/alarm-center"},{name:"Alarm Center",href:"/alarm-center"}]}),n(y,{container:!0,children:n(y,{item:!0,xs:12,lg:12,md:12,children:n(pe,{})})})]})})}export{ze as default};

View File

@@ -0,0 +1 @@
import{n as A,r as t,Z as E,au as F,$ as V,a0 as N,f as r,j as a,F as R,a4 as U,S as w,T as Z}from"./index.b0a49137.js";import{T as q}from"./Table.08efdc83.js";import{d as z}from"./ArrowBackIos.b2aa057a.js";import{f as T}from"./formatTime.0646b9d0.js";import{T as H}from"./TableMoreMenu.0bdaf78f.js";import{d as J}from"./VisibilityOutlined.ab7a612c.js";import{L as n}from"./Label.f33248ec.js";import{G as m}from"./Grid.97ae8bc1.js";import"./Box.c50b4a28.js";import"./TablePagination.dc161c5e.js";import"./KeyboardArrowRight.fd8a1844.js";import"./LastPage.9e90b034.js";import"./TableRow.41459f01.js";import"./useId.c3f149cd.js";import"./TextField.08c1cc6c.js";import"./InputAdornment.b72719ba.js";import"./Search.cbee36ce.js";import"./LoadingButton.6a53b4e1.js";import"./generateUtilityClasses.06032f54.js";import"./TableContainer.58606ed5.js";import"./TableHead.c7022a42.js";import"./jsx-runtime_commonjs-proxy.b87625c0.js";import"./index.49ea62c1.js";function xe(){const g=A(),{corporateValue:u}=t.exports.useContext(E),[f,b]=t.exports.useState({full_name:"",paginations:[]}),{id:y}=F(),[v,c]=t.exports.useState(!0),C={isLoading:v,setIsLoading:c},[s,l]=V(),[i,D]=t.exports.useState({}),k={searchParams:s,setSearchParams:l,appliedParams:i,setAppliedParams:D},[p,I]=t.exports.useState("asc"),[d,L]=t.exports.useState("admission_date"),O={order:p,setOrder:I,orderBy:d,setOrderBy:L},[$,h]=t.exports.useState(0),[B,x]=t.exports.useState(10),[S,_]=t.exports.useState({current_page:0,from:0,last_page:0,links:[],path:"",per_page:0,to:0,total:0}),G={page:$,setPage:h,rowsPerPage:B,setRowsPerPage:x,paginationTable:S,setPaginationTable:_},M=[{id:"admission_date",align:"center",label:"Admission Date",isSort:!0},{id:"discharge_date",align:"center",label:"Discharge Date",isSort:!0},{id:"code",align:"left",label:"Code",isSort:!0,width:5},{id:"provider_name",align:"left",label:"Provider",isSort:!1},{id:"service_type",align:"center",label:"Service Type",isSort:!1},{id:"status",align:"center",label:"Status",isSort:!1},{id:"action",align:"center",label:"",isSort:!1}];return t.exports.useEffect(()=>{(async()=>{c(!0),await new Promise(e=>setTimeout(e,250));const P=Object.keys(i).length!==0?i:Object.fromEntries([...s.entries(),["order",p],["orderBy",d]]),o=await N.get(`${u}/alarm-center-members/${y}`,{params:{...P}});if(l(P),b({full_name:o.data.full_name,paginations:o.data.paginations.data.map(e=>({...e,admission_date:e.admission_date?r(n,{children:[" ",T(e.admission_date)," "]}):"",discharge_date:e.discharge_date?r(n,{children:[" ",T(e.discharge_date)," "]}):"",status:e.status==="Done"?a(n,{color:"success",children:"Done"}):a(n,{color:"warning",children:"Ongoing"}),action:a(H,{actions:a(R,{children:r(U,{onClick:()=>g("service-monitoring/"+e.id),children:[a(J,{}),"View"]})})})}))}),_(o.data.paginations),x(o.data.paginations.per_page),s.get("page")){const e=parseInt(s.get("page"))-1;S.current_page=e,h(e)}c(!1)})()},[i,s,p,d,l,u]),r(m,{container:!0,spacing:8,padding:3,children:[a(m,{item:!0,xs:12,children:r(w,{direction:"row",alignItems:"center",gap:3,children:[a(z,{onClick:()=>g("/alarm-center"),sx:{cursor:"pointer"}}),a(Z,{variant:"h5",sx:{flexGrow:1},children:f.full_name})]})}),a(m,{item:!0,xs:12,children:a(w,{children:a(q,{headCells:M,rows:f.paginations,orders:O,paginations:G,loadings:C,params:k})})})]})}export{xe as default};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{a5 as t}from"./index.b0a49137.js";const a=t(),o=a;export{o as S};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{r,i as t,a}from"./jsx-runtime_commonjs-proxy.08daee49.js";var e={},i=t.exports;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,s=i(r()),l=a,d=(0,s.default)((0,l.jsx)("path",{d:"M12 6c3.79 0 7.17 2.13 8.82 5.5C19.17 14.87 15.79 17 12 17s-7.17-2.13-8.82-5.5C4.83 8.13 8.21 6 12 6m0-2C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 5c1.38 0 2.5 1.12 2.5 2.5S13.38 14 12 14s-2.5-1.12-2.5-2.5S10.62 9 12 9m0-2c-2.48 0-4.5 2.02-4.5 4.5S9.52 16 12 16s4.5-2.02 4.5-4.5S14.48 7 12 7z"}),"VisibilityOutlined");u=e.default=d;export{u as d}; import{r,i as t,a}from"./jsx-runtime_commonjs-proxy.b87625c0.js";var e={},i=t.exports;Object.defineProperty(e,"__esModule",{value:!0});var u=e.default=void 0,s=i(r()),l=a,d=(0,s.default)((0,l.jsx)("path",{d:"M12 6c3.79 0 7.17 2.13 8.82 5.5C19.17 14.87 15.79 17 12 17s-7.17-2.13-8.82-5.5C4.83 8.13 8.21 6 12 6m0-2C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 5c1.38 0 2.5 1.12 2.5 2.5S13.38 14 12 14s-2.5-1.12-2.5-2.5S10.62 9 12 9m0-2c-2.48 0-4.5 2.02-4.5 4.5S9.52 16 12 16s4.5-2.02 4.5-4.5S14.48 7 12 7z"}),"VisibilityOutlined");u=e.default=d;export{u as d};

View File

@@ -1 +1 @@
import{ag as u,b as s,ah as c,c as i,ai as l,aj as p,ak as f,al as d,am as m,an as _,ao as g,ap as v,aq as b,ar as I,as as o,at as q}from"./index.4524613b.js";import{u as C}from"./useId.5c752e65.js";function S(e,r){return()=>null}function E(e,r){return()=>null}function N(e,r,a,h,F){return null}const x={configure:e=>{u.configure(e)}},y=Object.freeze(Object.defineProperty({__proto__:null,unstable_ClassNameGenerator:x,capitalize:s,createChainedFunction:c,createSvgIcon:i,debounce:l,deprecatedPropType:S,isMuiElement:p,ownerDocument:f,ownerWindow:d,requirePropFactory:E,setRef:m,unstable_useEnhancedEffect:_,unstable_useId:C,unsupportedProp:N,useControlled:g,useEventCallback:v,useForkRef:b,useIsFocusVisible:I},Symbol.toStringTag,{value:"Module"}));var P={exports:{}};(function(e){function r(a){return a&&a.__esModule?a:{default:a}}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(P);var t={};const R=o(y);var n;function O(){return n||(n=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=R}(t)),t}const j=o(q);export{j as a,P as i,O as r}; import{ag as u,b as s,ah as c,c as i,ai as l,aj as p,ak as f,al as d,am as m,an as _,ao as g,ap as v,aq as b,ar as I,as as o,at as q}from"./index.b0a49137.js";import{u as C}from"./useId.c3f149cd.js";function S(e,r){return()=>null}function E(e,r){return()=>null}function N(e,r,a,h,F){return null}const x={configure:e=>{u.configure(e)}},y=Object.freeze(Object.defineProperty({__proto__:null,unstable_ClassNameGenerator:x,capitalize:s,createChainedFunction:c,createSvgIcon:i,debounce:l,deprecatedPropType:S,isMuiElement:p,ownerDocument:f,ownerWindow:d,requirePropFactory:E,setRef:m,unstable_useEnhancedEffect:_,unstable_useId:C,unsupportedProp:N,useControlled:g,useEventCallback:v,useForkRef:b,useIsFocusVisible:I},Symbol.toStringTag,{value:"Module"}));var P={exports:{}};(function(e){function r(a){return a&&a.__esModule?a:{default:a}}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(P);var t={};const R=o(y);var n;function O(){return n||(n=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=R}(t)),t}const j=o(q);export{j as a,P as i,O as r};

View File

@@ -1 +1 @@
import{r as u,X as c}from"./index.4524613b.js";let s=0;function l(t){const[e,a]=u.exports.useState(t),o=t||e;return u.exports.useEffect(()=>{e==null&&(s+=1,a(`mui-${s}`))},[e]),o}const n=c["useId"];function r(t){if(n!==void 0){const e=n();return t!=null?t:e}return l(t)}export{r as u}; import{r as u,X as c}from"./index.b0a49137.js";let s=0;function l(t){const[e,a]=u.exports.useState(t),o=t||e;return u.exports.useEffect(()=>{e==null&&(s+=1,a(`mui-${s}`))},[e]),o}const n=c["useId"];function r(t){if(n!==void 0){const e=n();return t!=null?t:e}return l(t)}export{r as u};

View File

@@ -27,7 +27,7 @@
content="The starting point for your next project with Minimal UI Kit, built on the newest version of Material-UI ©, ready to be customized to your style" /> content="The starting point for your next project with Minimal UI Kit, built on the newest version of Material-UI ©, ready to be customized to your style" />
<meta name="keywords" content="react,material,kit,application,dashboard,admin,template" /> <meta name="keywords" content="react,material,kit,application,dashboard,admin,template" />
<meta name="author" content="Minimal UI Kit" /> <meta name="author" content="Minimal UI Kit" />
<script type="module" crossorigin src="/assets/index.4524613b.js"></script> <script type="module" crossorigin src="/assets/index.731e3bcb.js"></script>
<link rel="stylesheet" href="/assets/index.d13d3ea4.css"> <link rel="stylesheet" href="/assets/index.d13d3ea4.css">
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head> <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>

0
public/client-portal/manifest.json Normal file → Executable file
View File

View File

@@ -1 +1 @@
if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didnt register its module`);return s})));self.define=(i,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let u={};const a=s=>l(s,n),t={module:{uri:n},exports:u,require:a};e[n]=Promise.all(i.map((s=>t[s]||a(s)))).then((s=>(r(...s),u)))}}define(["./workbox-e0782b83"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/ArrowBackIos.720b1306.js",revision:null},{url:"assets/Box.522fc68e.js",revision:null},{url:"assets/Card.4734268d.js",revision:null},{url:"assets/Checkbox.e8ad52b3.js",revision:null},{url:"assets/Close.10859109.js",revision:null},{url:"assets/Detail.47a133d1.js",revision:null},{url:"assets/DetailHistory.165c4876.js",revision:null},{url:"assets/DialogDetailClaim.36d22b6d.js",revision:null},{url:"assets/DialogDetailClaim.52b819df.js",revision:null},{url:"assets/Form.a56fd31b.js",revision:null},{url:"assets/formatNumber.e535a2a3.js",revision:null},{url:"assets/formatTime.0646b9d0.js",revision:null},{url:"assets/generateUtilityClasses.06032f54.js",revision:null},{url:"assets/Grid.63392dc1.js",revision:null},{url:"assets/HeaderBreadcrumbs.f593a2a7.js",revision:null},{url:"assets/Index.0c12c5d1.js",revision:null},{url:"assets/Index.1aa270d9.js",revision:null},{url:"assets/Index.2d5138ff.js",revision:null},{url:"assets/index.4524613b.js",revision:null},{url:"assets/index.49ea62c1.js",revision:null},{url:"assets/Index.7c3e31bb.js",revision:null},{url:"assets/Index.b9875b0b.js",revision:null},{url:"assets/index.d13d3ea4.css",revision:null},{url:"assets/Index.da883486.js",revision:null},{url:"assets/Index.e38eb6a9.js",revision:null},{url:"assets/InputAdornment.c3b5c49a.js",revision:null},{url:"assets/isObject.095d1ac4.js",revision:null},{url:"assets/jsx-runtime_commonjs-proxy.08daee49.js",revision:null},{url:"assets/KeyboardArrowRight.dfbe216b.js",revision:null},{url:"assets/Label.c0ab61c4.js",revision:null},{url:"assets/LastPage.928f2cf3.js",revision:null},{url:"assets/LinearProgress.9a82ef9e.js",revision:null},{url:"assets/ListMember.e89bdca7.js",revision:null},{url:"assets/LoadingButton.1d571e70.js",revision:null},{url:"assets/Login.6480bcbf.js",revision:null},{url:"assets/Page.b1f38576.js",revision:null},{url:"assets/Page404.025eccc4.js",revision:null},{url:"assets/RHFTextField.595782a5.css",revision:null},{url:"assets/RHFTextField.8217bd7f.js",revision:null},{url:"assets/Search.a632f4d1.js",revision:null},{url:"assets/ServiceMonitoring.58b537ac.js",revision:null},{url:"assets/Show.2b72d98f.js",revision:null},{url:"assets/Show.628bd514.js",revision:null},{url:"assets/Skeleton.a14cd0e0.js",revision:null},{url:"assets/Stack.2fe98e42.js",revision:null},{url:"assets/Stepper.3a0cdbba.js",revision:null},{url:"assets/SwitchBase.e250c68d.js",revision:null},{url:"assets/Table.b404960e.js",revision:null},{url:"assets/TableContainer.e4a601db.js",revision:null},{url:"assets/TableHead.2295a13e.js",revision:null},{url:"assets/TableMoreMenu.fbaa38aa.js",revision:null},{url:"assets/TablePagination.a2995130.js",revision:null},{url:"assets/TableRow.184bd340.js",revision:null},{url:"assets/TextField.489cf1ea.js",revision:null},{url:"assets/TimelineSeparator.a58cb5be.js",revision:null},{url:"assets/useId.5c752e65.js",revision:null},{url:"assets/UserProfile.16d07aad.js",revision:null},{url:"assets/UserProfile.727584d1.js",revision:null},{url:"assets/VisibilityOutlined.7d63b3a6.js",revision:null},{url:"fonts/index.css",revision:"8711e169f3dc54f34d839f18d7acef21"},{url:"index.html",revision:"637f486e8521cd2b48b3cd0dd423346b"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"manifest.webmanifest",revision:"ced57fe94e88ec3187bcd0a36e2e178f"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))})); if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()})).then((()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didnt register its module`);return s})));self.define=(i,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let u={};const a=s=>l(s,n),t={module:{uri:n},exports:u,require:a};e[n]=Promise.all(i.map((s=>t[s]||a(s)))).then((s=>(r(...s),u)))}}define(["./workbox-e0782b83"],(function(s){"use strict";self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"assets/ArrowBackIos.b2aa057a.js",revision:null},{url:"assets/Box.c50b4a28.js",revision:null},{url:"assets/Card.a4168b31.js",revision:null},{url:"assets/Checkbox.362ad1e0.js",revision:null},{url:"assets/Close.6dbec378.js",revision:null},{url:"assets/Detail.2294ea3c.js",revision:null},{url:"assets/DetailHistory.a6f310d0.js",revision:null},{url:"assets/DialogDetailClaim.42799191.js",revision:null},{url:"assets/DialogDetailClaim.e074ae9e.js",revision:null},{url:"assets/Form.7231f39a.js",revision:null},{url:"assets/formatNumber.0b88db94.js",revision:null},{url:"assets/formatTime.0646b9d0.js",revision:null},{url:"assets/generateUtilityClasses.06032f54.js",revision:null},{url:"assets/Grid.97ae8bc1.js",revision:null},{url:"assets/HeaderBreadcrumbs.c70f1305.js",revision:null},{url:"assets/Index.11d3e7d2.js",revision:null},{url:"assets/index.49ea62c1.js",revision:null},{url:"assets/Index.60f44b5c.js",revision:null},{url:"assets/Index.7878a302.js",revision:null},{url:"assets/index.b0a49137.js",revision:null},{url:"assets/Index.c41bef42.js",revision:null},{url:"assets/Index.c60e3cfb.js",revision:null},{url:"assets/Index.c96f2301.js",revision:null},{url:"assets/index.d13d3ea4.css",revision:null},{url:"assets/Index.d978c17c.js",revision:null},{url:"assets/InputAdornment.b72719ba.js",revision:null},{url:"assets/isObject.095d1ac4.js",revision:null},{url:"assets/jsx-runtime_commonjs-proxy.b87625c0.js",revision:null},{url:"assets/KeyboardArrowRight.fd8a1844.js",revision:null},{url:"assets/Label.f33248ec.js",revision:null},{url:"assets/LastPage.9e90b034.js",revision:null},{url:"assets/LinearProgress.c8f69e54.js",revision:null},{url:"assets/ListMember.f5ebfa7c.js",revision:null},{url:"assets/LoadingButton.6a53b4e1.js",revision:null},{url:"assets/Login.b8d0a4bd.js",revision:null},{url:"assets/Page.e9d8cc16.js",revision:null},{url:"assets/Page404.9f1640bb.js",revision:null},{url:"assets/RHFTextField.595782a5.css",revision:null},{url:"assets/RHFTextField.dd20c932.js",revision:null},{url:"assets/Search.cbee36ce.js",revision:null},{url:"assets/ServiceMonitoring.ee79bad4.js",revision:null},{url:"assets/Show.5637cca2.js",revision:null},{url:"assets/Show.cf119cea.js",revision:null},{url:"assets/Skeleton.cbf2214f.js",revision:null},{url:"assets/Stack.acc67e21.js",revision:null},{url:"assets/Stepper.49691c4e.js",revision:null},{url:"assets/SwitchBase.6ffeba1b.js",revision:null},{url:"assets/Table.08efdc83.js",revision:null},{url:"assets/TableContainer.58606ed5.js",revision:null},{url:"assets/TableHead.c7022a42.js",revision:null},{url:"assets/TableMoreMenu.0bdaf78f.js",revision:null},{url:"assets/TablePagination.dc161c5e.js",revision:null},{url:"assets/TableRow.41459f01.js",revision:null},{url:"assets/TextField.08c1cc6c.js",revision:null},{url:"assets/TimelineSeparator.77b9b667.js",revision:null},{url:"assets/useId.c3f149cd.js",revision:null},{url:"assets/UserProfile.bf6cca27.js",revision:null},{url:"assets/UserProfile.f57891cf.js",revision:null},{url:"assets/VisibilityOutlined.ab7a612c.js",revision:null},{url:"fonts/index.css",revision:"8711e169f3dc54f34d839f18d7acef21"},{url:"index.html",revision:"9ec5ef70693140a75ce73026f8df435a"},{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"manifest.webmanifest",revision:"ced57fe94e88ec3187bcd0a36e2e178f"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html")))}));

View File

@@ -1,38 +1,41 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="utf-8" />
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png" />
<head> <meta name="theme-color" content="#000000" />
<meta charset="utf-8" /> <link rel="manifest" href="/manifest.json" />
<!-- Favicon --> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png">
<meta name="theme-color" content="#000000" /> <!-- Using Google Font -->
<link rel="manifest" href="/manifest.json" /> <link rel="preconnect" href="https://fonts.gstatic.com" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <link
href="https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet"
/>
<!-- Using Google Font --> <!-- Using Local Font -->
<link rel="preconnect" href="https://fonts.gstatic.com"> <link rel="stylesheet" type="text/css" href="/fonts/index.css" />
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<!-- Using Local Font --> <title>Dashboard</title>
<link rel="stylesheet" type="text/css" href="/fonts/index.css" /> <meta
name="description"
content="The starting point for your next project with Minimal UI Kit, built on the newest version of Material-UI ©, ready to be customized to your style"
/>
<meta name="keywords" content="react,material,kit,application,dashboard,admin,template" />
<meta name="author" content="Minimal UI Kit" />
<script type="module" crossorigin src="/assets/index.ad84f0bb.js"></script>
<link rel="stylesheet" href="/assets/index.c91e36b5.css">
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
<title>Dashboard</title> <body>
<meta name="description" <noscript>You need to enable JavaScript to run this app.</noscript>
content="The starting point for your next project with Minimal UI Kit, built on the newest version of Material-UI ©, ready to be customized to your style" /> <div id="root"></div>
<meta name="keywords" content="react,material,kit,application,dashboard,admin,template" />
<meta name="author" content="Minimal UI Kit" />
<script type="module" crossorigin src="/assets/index.2f1827e7.js"></script>
<link rel="stylesheet" href="/assets/index.c91e36b5.css">
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body> </body>
</html> </html>

File diff suppressed because one or more lines are too long

0
public/dashboard/.htaccess Normal file → Executable file
View File

View File

@@ -28,7 +28,7 @@
/> />
<meta name="keywords" content="react,material,kit,application,dashboard,admin,template" /> <meta name="keywords" content="react,material,kit,application,dashboard,admin,template" />
<meta name="author" content="Minimal UI Kit" /> <meta name="author" content="Minimal UI Kit" />
<script type="module" crossorigin src="/assets/index.9c13c9a7.js"></script> <script type="module" crossorigin src="/assets/index.aa89c309.js"></script>
<link rel="stylesheet" href="/assets/index.c91e36b5.css"> <link rel="stylesheet" href="/assets/index.c91e36b5.css">
<link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head> <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>

File diff suppressed because one or more lines are too long

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More