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-staging
/public/dashboard-copy
/public/client-portal
/public/client-portal-staging
/public/hospital-portal
/public/hospital-portal-staging
/public/files

View File

@@ -100,6 +100,7 @@ class MemberController extends Controller
// Provider
$providers = DB::table('organizations')
->where('organizations.type', '=', 'hospital')
->where('status', '=', 'active')
->select(
'organizations.id',
'organizations.name'
@@ -119,6 +120,16 @@ class MemberController extends Controller
$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 = DB::table('specialities')

View File

@@ -155,18 +155,18 @@ class RequestLogController extends Controller
}
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) {
// 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) {
// Rollback transaksi jika terjadi kesalahan
DB::rollBack();
// 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')
->limit(1)
->first();
$data['namaKaryawan'] = $dataNamaKaryawan->name;
if ($dataNamaKaryawan){
$data['namaKaryawan'] = $dataNamaKaryawan->name;
} else {
$data['namaKaryawan'] = $dataMember->name;
}
}
else{
$data['namaKaryawan'] = $dataMember->name;
@@ -717,6 +721,7 @@ class RequestLogController extends Controller
$dataClaimLog = DB::table('request_log_benefits')
->where('request_log_benefits.request_log_id', '=', $request_log_id)
->where('request_log_benefits.deleted_at', null)
->select(
'*',
DB::raw('
@@ -780,13 +785,13 @@ class RequestLogController extends Controller
->leftJoin('files', 'files.fileable_id', '=', 'signatures.id')
->where('files.fileable_type', '=', 'App\Models\Signature')
->where('signatures.type', '=', 2)
->where('signatures.user_id', '=', $dataRequestLog->approved_by)
->where('signatures.user_id', '=', $dataRequestLog->approved_final_log_by)
->select(
'files.path',
DB::raw('
(Select persons.name FROM users
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();

View File

@@ -441,7 +441,7 @@ class ClaimRequestController extends Controller
$import = new ImportService();
$import->read($fileRead);
$import->write($fileWrite, 'xsls');
foreach ($import->sheetsIterator() as $sheetIndex => $sheet) {
if ($sheetIndex == 1) { // Rename First Sheet to Writer
$firstWriterSheet = $import->writer->getCurrentSheet();
@@ -522,7 +522,7 @@ class ClaimRequestController extends Controller
Storage::delete('temp/' . $file_name);
$import->writer->close();
return [
'result_file' => [
'url' => Storage::disk('public')->url('temp/result-' . $file_name),
'name' => 'result-' . $file_name,
@@ -601,7 +601,7 @@ class ClaimRequestController extends Controller
->offset($offset)
->limit($limit)
->get();
$data = [];
if(count($memberList)>0){
$temp = [];
@@ -666,7 +666,7 @@ class ClaimRequestController extends Controller
$date = date('ymd');
// Menghasilkan kode dengan format yang diinginkan
return self::$code_prefix . $sparator. 'H' . $sparator. $provideCode . $sparator. $date. $sparator . $member->currentPolicy->code . $sparator. $member->member_id . $sparator. str_pad($next_number, 6, '0', STR_PAD_LEFT);
}
public function requestFiles(Request $request, $claim_id)
@@ -798,7 +798,7 @@ class ClaimRequestController extends Controller
// 'Reason',
'Diagnosis',
'Keterangan',
'Catatan',
'Catatan',
'Status',
'QC'
];
@@ -821,9 +821,9 @@ class ClaimRequestController extends Controller
foreach($results as $item)
{
// $gr_total += $item->tot_bill;
// $requestLogData = RequestLogBenefit::selectRaw('*,
// (SELECT code FROM benefits WHERE benefits.id = request_log_benefits.benefit_id) AS benefit_code,
// (SELECT description FROM benefits WHERE benefits.id = request_log_benefits.benefit_id) AS benefit_description,
// $requestLogData = RequestLogBenefit::selectRaw('*,
// (SELECT code FROM benefits WHERE benefits.id = request_log_benefits.benefit_id) AS benefit_code,
// (SELECT description FROM benefits WHERE benefits.id = request_log_benefits.benefit_id) AS benefit_description,
// sum(amount_incurred) AS total_incurred'
// )
// ->where(['request_log_id' => $item->request_log_id, 'deleted_at' => null])
@@ -835,7 +835,7 @@ class ClaimRequestController extends Controller
->select(
'*',
// DB::raw('SUM(request_log_benefits.amount_incurred) AS total_incurred'),
DB::raw('
(Select benefits.description FROM benefits
WHERE benefits.id = request_log_benefits.benefit_id LIMIT 1) AS benefit_description
@@ -848,10 +848,18 @@ class ClaimRequestController extends Controller
->get();
if ($item->member){
$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();
$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){
$payor = $item->member->currentCorporate->name;
} else {
@@ -862,7 +870,7 @@ class ClaimRequestController extends Controller
$planCode = '-';
$payor = '-';
}
if (!$requestLogData->isEmpty()){
foreach($requestLogData as $key => $data){
$no++;

View File

@@ -571,7 +571,7 @@ class CorporateController extends Controller
break;
case 'template-request-log':
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')
]);
break;

View File

@@ -70,6 +70,7 @@ class CorporateMemberController extends Controller
})
->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')
->groupBy('corporate_employees.member_id')
->paginate()
->appends($request->all());
return Helper::paginateResources(MemberDataTableResource::collection($members));
@@ -208,7 +209,7 @@ class CorporateMemberController extends Controller
$imported_member_data = 0;
$failed_member_data = [];
foreach ($reader->getSheetIterator() as $sheet) {
$doc_headers_indexes = [];
foreach ($sheet->getRowIterator() as $index => $row) {

View File

@@ -49,10 +49,11 @@ class DoctorRatingController extends Controller
$limit = $request->has('per_page') ? $request->input('per_page') : 50;
$results = DB::connection('oldlms')->table('tx_dokter_rating')
->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) {
$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 . "%");
});
})
@@ -72,6 +73,7 @@ class DoctorRatingController extends Controller
$query->where('tx_dokter_rating.dCreateOn', '<=', $end_date. ' 23:59:59');
});
})
// ->when($request->input('provider') , function ($query, $provider) {
// $query->where(function ($query) use ($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.sNotes',
'tx_dokter_rating.dCreateOn',
'tx_dokter_rating.nIDLivechat',
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
")
@@ -109,6 +112,7 @@ class DoctorRatingController extends Controller
'Rating',
'Review',
'Tanggal Konsultasi',
'ID Livechat',
];
$style = (new StyleBuilder())
->setFontBold()
@@ -124,7 +128,7 @@ class DoctorRatingController extends Controller
// ============================
$results = DB::connection('oldlms')->table('tx_dokter_rating')
->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) {
$query->where(function ($query) use ($search) {
$query->orWhere('tm_users.sFirstname', 'like', "%" . $search . "%");
@@ -162,7 +166,8 @@ class DoctorRatingController extends Controller
'tx_dokter_rating.dCreateOn',
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
")
"),
'tx_dokter_rating.nIDLivechat'
)
->get();
$no=0;
@@ -176,6 +181,7 @@ class DoctorRatingController extends Controller
$item->nRating,
$item->sNotes,
$item->dCreateOn,
$item->nIDLivechat,
];
$style = (new StyleBuilder())
//->setFontBold()
@@ -194,7 +200,8 @@ class DoctorRatingController extends Controller
'',
'',
'',
''
'',
'',
];
$style = (new StyleBuilder())
->setFontBold()

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -151,7 +151,7 @@ class ReportLogController extends Controller
*/
public function destroy(Request $request, $id)
{
}
@@ -211,23 +211,27 @@ class ReportLogController extends Controller
$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();
$parsedDateTime = Carbon::parse($row['created_at']);
$parsedDateTime->tz = 'Asia/Jakarta';
// $parsedDateTime->tz = 'Asia/Makassar';
$formattedDateTime = $parsedDateTime->format('Y-m-d H:i:s');
$timeInsertBenefit = RequestLogBenefit::where('request_log_id', $row['id'])->first();
if ($timeInsertBenefit){
$created_final_at = Carbon::parse($timeInsertBenefit->created_at);
$created_final_at = $created_final_at->format('Y-m-d H:i:s');
$durationFinalGl = Helper::differenceTime($timeInsertBenefit->created_at, $row['approved_final_log_at']);
} else {
$durationFinalGl = 0;
$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 = '-';
if ($row['import_system']) {
$approveByFgl = 'Import By Excel';
@@ -236,14 +240,15 @@ class ReportLogController extends Controller
} else if ($row['final_log'] == 1) {
$approveByFgl = Helper::userName($row['approved_final_log_by']);
}
$rowData = [
$row['code'], // code
$row['member'] ? $row['member']['name'] : '', // name
$row['member'] ? $row['member']['member_id'] : '', // member id
$formattedDateTime ? $formattedDateTime : "-" , // created at
$row['approved_at'], // submission date
Helper::userName($row['approved_by']), // created by
$row['approved_at'] ? $row['approved_at'] : '-', // submission date
$row['approved_by'] ? Helper::userName($row['approved_by']) : '-', // created by
$created_final_at ? $created_final_at : "-", // fgl create time
$row['approved_final_log_at'] ? $row['approved_final_log_at'] : "", // fgl submit time
$approveByFgl, // fgl create by

View File

@@ -13,10 +13,10 @@ use Carbon\Carbon;
class RequestLogBenefitController extends Controller
{
public function index(Request $request)
{
}
/**
@@ -35,7 +35,7 @@ class RequestLogBenefitController extends Controller
*/
public function show($id)
{
}
/**
@@ -74,7 +74,7 @@ class RequestLogBenefitController extends Controller
'excess_paid' => $value['excess_paid'],
'keterangan' => $value['keterangan'],
'created_by' => auth()->user()->id,
'reason' => $value['reason'] ? $value['reason'] : null ,
// 'reason' => $value['reason'] ? $value['reason'] : null ,
];
// Insert Data
@@ -90,10 +90,10 @@ class RequestLogBenefitController extends Controller
};
}
$requestLogBenefit = RequestLogBenefit::insert($data);
return $requestLogBenefit;
// $requestLogBenefit = RequestLogBenefit::insert($data);
// return $requestLogBenefit;
}
/**
@@ -125,7 +125,7 @@ class RequestLogBenefitController extends Controller
$requestLogBenefit->reason = $request->reason;
$requestLogBenefit->save();
return response()->json([
'error' => false,
'message' => 'Update succses',
@@ -147,5 +147,5 @@ class RequestLogBenefitController extends Controller
$requestLogBenefit->save();
}
}

View File

@@ -60,9 +60,11 @@ class RequestLogController extends Controller
$q->where('final_log', $final_log);
})
->when($request->search, function ($q, $search) {
$q->where('code', 'LIKE', "%".$search."%");
$q->orWhereHas('member', function ($subQuery) use ($search) {
$subQuery->where('name', 'LIKE', "%".$search."%");
$q->where(function ($subQuery) use ($search) {
$subQuery->where('code', 'LIKE', "%".$search."%")
->orWhereHas('member', function ($subSubQuery) use ($search) {
$subSubQuery->where('name', 'LIKE', "%".$search."%");
});
});
})
->when($request->orderBy, function ($q, $orderBy) use ($request) {
@@ -124,12 +126,11 @@ class RequestLogController extends Controller
'member_id' => 'required',
'service_code' => 'required',
]);
if ($request->member_id){
try {
$code = !empty($this->getNextCode($request)) ? $this->getNextCode($request) : null;
$member = Member::find($request->member_id);
$memberValid = false;
if ($member){
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
if (!empty($request->catatan)) {
// if (!empty($request->catatan)) {
$requestLog->catatan = $request->catatan;
}
// }
if (!empty($request->billing_no)) {
$requestLog->billing_no = $request->billing_no;
}
@@ -643,6 +644,8 @@ class RequestLogController extends Controller
public function importRequestLog(Request $request)
{
// setting tambahan php
Helper::setCustomPHPIniSettings();
$request->validate([
'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();
}
}
try {
$rowResponse = $this->requestLogService->handleImportRow($requestLog);
// Write Success Result to File
@@ -1102,12 +1103,12 @@ class RequestLogController extends Controller
// $last_number = RequestLog::max('code');
// $next_number = empty($last_number) ? 1 : ((int) explode('-', $last_number)[2] + 1);
// return self::makeCode($next_number);
$source = $request->source == 'client-portal' ? 'C' : 'H';
$organization = Organization::where(['id' => $request->organization_id, 'type' => 'hospital'])->first('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 = [
'source' => $source,
'provideCode' => $provideCode,
@@ -1116,11 +1117,12 @@ class RequestLogController extends Controller
'member_code' => $member->member_id,
];
$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]+$"')
->value('max_numeric_code');
// $next_number = 1;
if ($last_numeric_code) {
// // Jika ada kode sebelumnya, pecah kode dan tambahkan 1 ke angka terakhir
// $parts = explode('-', $last_code);
@@ -1219,4 +1221,10 @@ class RequestLogController extends Controller
// Jika file tidak ditemukan di penyimpanan, kirim respons JSON gagal
return Helper::responseJson(data: $request->toArray(), message: 'File deletion failed');
}
public function cekphp(){
phpinfo();
}
}

View File

@@ -565,7 +565,7 @@ class MemberEnrollmentService
$member_data = [
"name" => $row['name'] ?? null,
"member_id" => $row['member_id'] ?? null,
"member_id" => str_replace(" ", '',$row['member_id']) ?? null,
"payor_id" => $row['payor_id'] ?? null,
"nik" => $row['nik'] ?? 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,
"record_type" => $row['record_type'] ?? 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,
"bpjs_class" => $row['bpjs_class'] ?? null,
"nric" => $row['nric'] ?? null,
@@ -952,7 +952,6 @@ class MemberEnrollmentService
}
break;
case "2": // Member Information Update (Without Replacement Card)
$this->validateRow($row);
$member = Member::query()
->where('member_id', $row['member_id'])

View File

@@ -184,7 +184,7 @@ class RequestLogService
// $kodeOrganisasi = "ORG000" . $singkatan;
// Insert data ke tabel organizations
$organization = DB::table('organizations')->where('code', $row['organization_id'])->first();
if (!$organization){
throw new ImportRowException(__('Provider Not Found'), 0, null, $row);
}
@@ -219,7 +219,7 @@ class RequestLogService
} else {
$status = 'requested';
}
$service = Service::where('name', $row['service'])->first();
if ($service){
$serviceCode = $service->code;
@@ -237,7 +237,7 @@ class RequestLogService
$final_log = 1;
}
if ($row['diagnosis']){
if ($row['total_billing']){ // header
$data = [
'code' => $code,
'member_id' => $member->id,
@@ -258,36 +258,36 @@ class RequestLogService
'service_code' => $serviceCode,
'approved_final_log_at' => $row['approved_final_log_at'],
];
} else {
} else { // item
$data = [
'code' => $code,
'member_id' => $member->id,
'submission_date' => $row['submission_date'],
'discharge_date' => $row['discharge_date'],
'payment_type' => 'cashless',
'status' => $status,
'status_final_log' => $statusFinalLog,
'final_log' =>$final_log,
'import_system' =>TRUE,
'catatan' => $row['catatan'],
'type_of_member' => $row['type_of_member'],
'total_cob' => $row['total_cob'],
'diagnosis' => $row['diagnosis'],
'keterangan' => $row['keterangan'],
'policy_id' => $member->currentPolicy->id ?? null,
'organization_id' => $organization_id,
'service_code' => $serviceCode,
'approved_final_log_at' => $row['approved_final_log_at'],
// 'code' => $code,
// 'member_id' => $member->id,
// 'submission_date' => $row['submission_date'],
// 'discharge_date' => $row['discharge_date'],
// 'payment_type' => 'cashless',
// 'status' => $status,
// 'status_final_log' => $statusFinalLog,
// 'final_log' =>$final_log,
// 'import_system' =>TRUE,
// 'catatan' => $row['catatan'],
// 'type_of_member' => $row['type_of_member'],
// 'total_cob' => $row['total_cob'],
// 'diagnosis' => $row['diagnosis'],
// 'keterangan' => $row['keterangan'],
// 'policy_id' => $member->currentPolicy->id ?? null,
// 'organization_id' => $organization_id,
// 'service_code' => $serviceCode,
// 'approved_final_log_at' => $row['approved_final_log_at'],
];
}
if ($row['record_mode'] == 1){
$requestLog = RequestLog::updateOrCreate(
[
'member_id' => $member->id,
'submission_date' => $row['submission_date'],
'organization_id' => $organization_id,
],
$requestLog = RequestLog::create(
// [
// 'member_id' => $member->id,
// 'submission_date' => $row['submission_date'],
// 'organization_id' => $organization_id,
// ],
$data
);
} else if ($row['record_mode'] == 2) {
@@ -302,7 +302,7 @@ class RequestLogService
}
if ($benefit) { // jika tidak ada benefit nya maka belum ngisi benefit nya
// Delete item
// Delete item
if ($row['total_billing']){
RequestLogBenefit::where('request_log_id', '=', $requestLog->id)->delete();
}

View File

@@ -27,6 +27,7 @@ class ReportLogResource extends JsonResource
$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();
$parsedDateTime = Carbon::parse($this->created_at);
// $parsedDateTime->tz = 'Asia/Makassar';
$formattedDateTime = $parsedDateTime->format('Y-m-d H:i:s');
$timeInsertBenefit = RequestLogBenefit::where('request_log_id', $this->id)->first();
@@ -48,7 +49,7 @@ class ReportLogResource extends JsonResource
} else if ($this->final_log == 1) {
$approveByFgl = Helper::userName($this->approved_final_log_by);
}
$approveByGl = '-';
if ($this->import_system) {
$approveByGl = 'Import By Excel';
@@ -57,7 +58,7 @@ class ReportLogResource extends JsonResource
} else {
$approveByGl = Helper::userName($this->approved_by);
}
$data = [
'id' => $this->id,
'code' => $this->code,

View File

@@ -20,7 +20,7 @@ class RequestLogResource extends JsonResource
return [Str::slug($file->type, '_') => $file];
});
$provider = Organization::where('id', $this->organization_id)->first();
$data = [
'id' => $this->id,
'code' => $this->code,

View File

@@ -119,7 +119,7 @@ class AutocompleteController extends Controller {
$drugs = Drug::query()
->where([
'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')
->where(function ($query) use ($search) {

View File

@@ -39,8 +39,10 @@ class UserProfileResource extends JsonResource
$linking = true;
} else {
$member = Member::where('email', $this->sEmail)->get()->first();
$person = Person::where('phone', $this->sPhone)->get()->first();
if ($member || $person){ // Autolinking
// $person = Person::where('phone', $this->sPhone)->get()->first();
// dd($person);
if ($member){ // Autolinking
$corporateEmployee = CorporateEmployee::where('member_id', $member->id)->get()->first(); // cek corporate id empolyee/member
if ($corporateEmployee){
$corporate = Corporate::findOrFail($corporateEmployee->corporate_id)->automatic_linking; // cek autocomplete
@@ -76,11 +78,11 @@ class UserProfileResource extends JsonResource
};
if (count($memberProfile) > 0){
$urlAvatarDefault = $this->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
$avatarMember = $this->detail->sImage ?? $urlAvatarDefault;
$relationship = DB::connection('oldlms')->table('tm_hubungan_keluarga')->where('nID', $this->nIDHubunganKeluarga)->first('sHubunganKeluarga');
$dataUser = [
'id' => $this->nID,
'name' => $this->sFirstName . ' ' . $this->sLastName,
@@ -94,7 +96,7 @@ class UserProfileResource extends JsonResource
$urlAvatarDefault = $m['detail']['nIDJenisKelamin'] == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
$avatarMember = $m['detail']['sImage'] ?? $urlAvatarDefault;
$relationship = DB::connection('oldlms')->table('tm_hubungan_keluarga')->where('nID', $m['nIDHubunganKeluarga'])->first('sHubunganKeluarga');
$data = [
'id' => $m['nID'],
'name' => $m['full_name'],
@@ -112,17 +114,17 @@ class UserProfileResource extends JsonResource
$memberProfile = User::with('detail')->where('nIDUser', $nID)->get()->toArray();
$dataMember = User::with('detail')->where('nID', $nID)->get()->first();
if ($this->detail){
$urlAvatarDefault = $this->detail->nIDJenisKelamin == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
} else {
$urlAvatarDefault = 'https://linksehat.dev/assets/img/users/male-avatar.png';
}
$avatar = $this->detail->sImage ?? $urlAvatarDefault;
$avatarMember = $dataMember->detail->sImage ?? $urlAvatarDefault;
$relationship = DB::connection('oldlms')->table('tm_hubungan_keluarga')->where('nID', $this->nIDHubunganKeluarga)->first('sHubunganKeluarga');
$dataUser = [
'id' => $dataMember->nID,
'name' => $dataMember->sFirstName . ' ' . $dataMember->sLastName,
@@ -136,14 +138,14 @@ class UserProfileResource extends JsonResource
$urlAvatarDefault = $m['detail']['nIDJenisKelamin'] == 1 ? 'https://linksehat.dev/assets/img/users/male-avatar.png' : 'https://linksehat.dev/assets/img/users/female-avatar.png';
$avatarMember = $m['detail']['sImage'] ?? $urlAvatarDefault;
$relationship = DB::connection('oldlms')->table('tm_hubungan_keluarga')->where('nID', $m['nIDHubunganKeluarga'])->first('sHubunganKeluarga');
$data = [
'id' => $m['nID'],
'name' => $m['full_name'],
'relationship' => $relationship->sHubunganKeluarga,
'avatar' => $avatarMember,
];
array_push( $dataMemberProfile, $data);
}
}

View File

@@ -443,7 +443,7 @@ class Helper
public static function setCustomPHPIniSettings()
{
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('max_input_time ', '-1'); // Batas max time menunggu input max 5 menit
ini_set('memory_limit', '256M');

View File

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

View File

@@ -20,6 +20,10 @@ class Healthcare extends Model
protected $primaryKey = 'nID';
public $fillable = [
'sStatus'
];
public function commission()
{
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');
}
public function userInsurance()
{
return $this->belongsTo(UserInsurance::class, 'nIDUser', 'nIDUser');
}
public function doctor()
{
return $this->belongsTo(Dokter::class, 'nIDDokter', 'nIDUser');
@@ -74,4 +80,12 @@ class Livechat extends Model
public function summary(){
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');
}
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');
}
public function relation()
{
return $this->hasOne(Relationship::class, 'nID', 'nIDHubunganKeluarga');
}
public function insurances()
{
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' => [
'dump_database_seeder' => [
'driver' => 'single',
'path' => storage_path('logs/database_seeder.log'),
'level' => 'debug',
],
'stack' => [
'driver' => 'stack',
'channels' => ['single'],

View File

@@ -47,7 +47,7 @@ class ApotekMandiriInhealtSeeder extends Seeder
'code' => $previousCells[3]->getValue(),
'name' => $previousCells[4]->getValue(),
'type' => 'hospital',
'corporate_id_partner' => 5, // Mandiri Inhealth
'corporate_id_partner' => 8, // Mandiri Inhealth
'phone' => $previousCells[11]->getValue(),
'email' => isset($previousCells[12]) ? $previousCells[12]->getValue() : null,
'operational_day' => $this->expandDaysRange($previousCells[7]->getValue(), [$cells[7]->getValue()]),
@@ -91,7 +91,7 @@ class ApotekMandiriInhealtSeeder extends Seeder
'code' => $cells[3]->getValue(),
'name' => $cells[4]->getValue(),
'type' => 'hospital',
'corporate_id_partner' => 5, // Mandiri Inhealth
'corporate_id_partner' => 8, // Mandiri Inhealth
'phone' => $cells[11]->getValue(),
'email' => isset($cells[12]) ? $cells[12]->getValue() : null,
'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 Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Log;
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"
],
[
"AMALIA SETYASTUTI 0000008710-OB",
"AMALIA SETYASTUTI 0000008710-0B",
"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"
],
[
"ANDARU BRAHMONO ADI 081034937",
"ANDARU BRAHMONO ADI 0081034937",
"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"
],
[
"ANDI ENRIYANI 0000006689-OB",
"ANDI ENRIYANI 0000006689-0B",
"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"
],
[
"ENDRAWATI SALEH 000008181",
"ENDRAWATI SALEH 0000008181",
"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"
],
[
"FAHRY MUHAMMAD P.",
"FAHRY MUHAMMAD P. 0000006859-07",
"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"
],
[
"FIRDAUS YPS-552-OA",
"FIRDAUS YPS-552-0A",
"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"
],
[
"HASBULLAH 000008930",
"HASBULLAH 0000008930",
"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"
],
[
"INA KARTINI",
"INA KARTINI 0000008868-0B",
"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"
],
[
"Indrawati 00000011509",
"Indrawati 0000011509",
"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"
],
[
"MARIANI",
"MARIANI 0000010862-0B",
"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"
],
[
"MEILIN ATIKA 0081045835-OB",
"MEILIN ATIKA 0081045835-0B",
"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"
],
[
"MM.EMY YUNITA 0000008688-OB",
"MM.EMY YUNITA 0000008688-0B",
"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"
],
[
"MUH FARHAN 000007673-03",
"MUH FARHAN 0000007673-03",
"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"
],
[
"MUH. CHALIL FIQRI RAMADHAN 0000010357 - 01",
"MUH. CHALIL FIQRI RAMADHAN 0000010357-01",
"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"
],
[
"NURJASNAWATI",
"NURJASNAWATI 0000006382",
"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"
],
[
"ROY SIMON 00000011282",
"ROY SIMON 0000011282",
"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"
],
[
"SALMA ATIKAH I 000005983-02",
"SALMA ATIKAH I 0000005983-02",
"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"
],
[
"SEMUEL LANTUN MARUNTUNG 000011376",
"SEMUEL LANTUN MARUNTUNG 0000011376",
"https://drive.google.com/open?id=12PuZmOwuMEyNqrmtVwg3gg2l7aIdCr4c&usp=drive_copy"
],
[
@@ -1560,9 +1562,9 @@ class LinkDokument extends Seeder
"ZUL'IVAN ABDILLAH ZEIN 0000008482-02",
"https://drive.google.com/open?id=1P8tInjvTrq5AJ-m7l7bpFcipb7iYTgPJ&usp=drive_copy"
]
];
$result = [];
foreach($dataMember as $value){
$members = explode(" ",$value[0]);
@@ -1574,8 +1576,10 @@ class LinkDokument extends Seeder
$member->save();
} else {
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',
'path' => '/claim-requests',
'permission' => 'claim-request-list'
'children' => [
[
'title' => 'CLAIM REQUEST',
'path' => '/claim-requests',
'permission' => 'claim-request-list'
],
],
'permission' => null
],
// CLAIM MANAGEMENT
[
'title' => 'CLAIM MANAGEMENT',
'path' => '/claims',
'permission' => 'claim-management-list'
'children' => [
[
'title' => 'CLAIM MANAGEMENT',
'path' => '/claims',
'permission' => 'claim-management-list'
],
],
'permission' => null
],
// 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 = () => {
if (formData.type_of_member === "" && requestLog?.corporate_id === 5) { // corporate vale
if (formData.type_of_member == "" && requestLog?.corporate_id == 5) { // corporate vale
setError(true);
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 = () => {
if (formData.type_of_member === "" && requestLog?.corporate_id === 4) {
if (formData.type_of_member == "" && requestLog?.corporate_id == 5) {
setError(true);
alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
}

View File

@@ -302,6 +302,27 @@ export default function Detail() {
</CardExclusion> */}
</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 */}
<Grid item xs={12} md={12}>
<Card sx={{padding:2}} >

View File

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

View File

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

View File

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

View File

@@ -163,7 +163,7 @@ export default function List() {
</LocalizationProvider>
</Grid>
</Grid>
</form>
);
}
@@ -281,10 +281,10 @@ export default function List() {
? appliedParams
: Object.fromEntries([...searchParams.entries(), ['order', order], ['orderBy', orderBy]]);
const response = await axios.get('/report/logs', {
params: { ...parameters },
});
const response = await axios.get('/report/logs', {
params: { ...parameters },
});
setDataTableLoading(false);
setDataTableData(response.data);
};
@@ -314,7 +314,7 @@ export default function List() {
const { row } = props;
const [open, setOpen] = React.useState(false);
const [loadingApprove, setLoadingApprove] = React.useState(false);
return (
<React.Fragment>
<TableRow sx={{ '& > *': { borderBottom: 'unset' } }}>

View File

@@ -159,7 +159,6 @@ export default function List() {
}, []);
return (
<form style={{ width: '100%' }}>
<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" />
<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.4524613b.js"></script>
<script type="module" crossorigin src="/assets/index.731e3bcb.js"></script>
<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>

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>
<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 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">
<meta name="theme-color" content="#000000" />
<link rel="manifest" href="/manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="theme-color" content="#000000" />
<link rel="manifest" href="/manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<!-- Using Google Font -->
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link
href="https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&display=swap"
rel="stylesheet"
/>
<!-- Using Google Font -->
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<!-- Using Local Font -->
<link rel="stylesheet" type="text/css" href="/fonts/index.css" />
<!-- Using Local Font -->
<link rel="stylesheet" type="text/css" href="/fonts/index.css" />
<title>Dashboard</title>
<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>
<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.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>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</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="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="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