Merge commit '664f2a7faa1345f59f91b68e09449be6d39f5548' into staging
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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++;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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'])
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -14,6 +14,7 @@ class Navigations extends Model
|
||||
'icon',
|
||||
'name',
|
||||
'parent_id',
|
||||
'permission'
|
||||
'permission',
|
||||
'urutan'
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
59
app/Models/OLDLMS/PrescriptionOrder.php
Executable file
59
app/Models/OLDLMS/PrescriptionOrder.php
Executable 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');
|
||||
}
|
||||
|
||||
}
|
||||
25
app/Models/OLDLMS/Relationship.php
Executable file
25
app/Models/OLDLMS/Relationship.php
Executable 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'
|
||||
];
|
||||
}
|
||||
@@ -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');
|
||||
|
||||
11
app/Models/PrescriptionOrder.php
Normal file
11
app/Models/PrescriptionOrder.php
Normal 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
0
bootstrap/cache/.gitignore
vendored
Executable file → Normal file
11783
composer.lock
generated
11783
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -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'],
|
||||
|
||||
@@ -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()),
|
||||
|
||||
56
database/seeders/HealthcareSeeder.php
Normal file
56
database/seeders/HealthcareSeeder.php
Normal 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
[
|
||||
|
||||
@@ -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"
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -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.');
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -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.');
|
||||
}
|
||||
|
||||
@@ -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}} >
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 !== '') {
|
||||
|
||||
@@ -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' } }}>
|
||||
|
||||
@@ -159,7 +159,6 @@ export default function List() {
|
||||
}, []);
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<form style={{ width: '100%' }}>
|
||||
<Grid container spacing={2} sx={{ justifyContent: 'space-between', alignItems: 'center' }}>
|
||||
|
||||
1
public/client-portal/assets/Box.c50b4a28.js
Normal file
1
public/client-portal/assets/Box.c50b4a28.js
Normal file
@@ -0,0 +1 @@
|
||||
import{a7 as o}from"./index.b0a49137.js";const t=o(),r=t;export{r as B};
|
||||
1
public/client-portal/assets/Index.11d3e7d2.js
Normal file
1
public/client-portal/assets/Index.11d3e7d2.js
Normal 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};
|
||||
1
public/client-portal/assets/Index.60f44b5c.js
Normal file
1
public/client-portal/assets/Index.60f44b5c.js
Normal 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};
|
||||
1
public/client-portal/assets/Index.7878a302.js
Normal file
1
public/client-portal/assets/Index.7878a302.js
Normal file
File diff suppressed because one or more lines are too long
1
public/client-portal/assets/Index.c96f2301.js
Normal file
1
public/client-portal/assets/Index.c96f2301.js
Normal 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};
|
||||
1
public/client-portal/assets/Index.d978c17c.js
Normal file
1
public/client-portal/assets/Index.d978c17c.js
Normal 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};
|
||||
1
public/client-portal/assets/ListMember.f5ebfa7c.js
Normal file
1
public/client-portal/assets/ListMember.f5ebfa7c.js
Normal 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
1
public/client-portal/assets/Stack.acc67e21.js
Normal file
1
public/client-portal/assets/Stack.acc67e21.js
Normal file
@@ -0,0 +1 @@
|
||||
import{a5 as t}from"./index.b0a49137.js";const a=t(),o=a;export{o as S};
|
||||
1
public/client-portal/assets/Table.08efdc83.js
Normal file
1
public/client-portal/assets/Table.08efdc83.js
Normal file
File diff suppressed because one or more lines are too long
@@ -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};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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};
|
||||
@@ -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};
|
||||
@@ -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
0
public/client-portal/manifest.json
Normal file → Executable 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} didn’t 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} didn’t 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")))}));
|
||||
|
||||
@@ -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
0
public/dashboard/.htaccess
Normal file → Executable 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.
BIN
public/files/Report-Appointment.xlsx
Normal file
BIN
public/files/Report-Appointment.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-10-01-2023-12-31.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-10-01-2023-12-31.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-11-01-2023-11-30.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-11-01-2023-11-30.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-11-11-2023-12-04.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-11-11-2023-12-04.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-11-13-2023-12-04.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-11-13-2023-12-04.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-11-26-2023-12-26.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-11-26-2023-12-26.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-11-27-2023-11-27.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-11-27-2023-11-27.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-11-27-2023-12-26.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-11-27-2023-12-26.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-11-29-2023-11-29.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-11-29-2023-11-29.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-12-09-2023-12-09.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-12-09-2023-12-09.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-12-20-2024-01-31.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-12-20-2024-01-31.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-12-31-2024-01-02.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-12-31-2024-01-02.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-12-31-2024-01-03.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-12-31-2024-01-03.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2023-12-31-2024-01-11.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2023-12-31-2024-01-11.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-01.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-01.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-02.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-02.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-05.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-05.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-06.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-06.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-08.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-08.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-17.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-17.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-20.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-20.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-22.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-22.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-23.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-23.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-24.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-24.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-31.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-01-31.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-02-01.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-02-01.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-02-22.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-02-22.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-02-29.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-02-29.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-03-04.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-03-04.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-03-12.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-03-12.xlsx
Normal file
Binary file not shown.
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-04-30.xlsx
Normal file
BIN
public/files/Report-Data-Alarm-Center-2024-01-01-2024-04-30.xlsx
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user