From 44c8e3e5f38ce5edc2c833c57afbc800f234a591 Mon Sep 17 00:00:00 2001 From: ivan-sim Date: Thu, 7 Mar 2024 10:21:38 +0700 Subject: [PATCH] Update --- .../Http/Controllers/Api/ClaimController.php | 47 ++++++++++++++++--- frontend/dashboard/src/pages/Claims/List.tsx | 29 ++++++------ 2 files changed, 55 insertions(+), 21 deletions(-) diff --git a/Modules/Internal/Http/Controllers/Api/ClaimController.php b/Modules/Internal/Http/Controllers/Api/ClaimController.php index b29e3f86..5b33b40c 100644 --- a/Modules/Internal/Http/Controllers/Api/ClaimController.php +++ b/Modules/Internal/Http/Controllers/Api/ClaimController.php @@ -139,6 +139,7 @@ class ClaimController extends Controller $processedData = $this->processCategoryNames($data); $importedRows = 0; + $result_rows = []; $failedRows = []; foreach ($processedData as $row) { @@ -146,7 +147,7 @@ class ClaimController extends Controller $affectedRows = DB::table('claim_requests') ->where('code','=', $row['code']) ->where('claim_management','=', 1) - ->where('status_claim_management.status', '=', 'received') + ->where('claim_requests.status_claim_management', '=', 'received') ->update([ 'status' => $row['qc'] == 'Y' ? 'approved' : 'declined', 'status_claim_management' => $row['qc'] == 'Y' ? 'approved' : 'declined', @@ -156,11 +157,39 @@ class ClaimController extends Controller ]); if ($affectedRows === 0) { + $check_status = DB::table('claim_requests') + ->where('code','=', $row['code']) + ->where('claim_management','=', 1) + ->select('status_claim_management') + ->first(); + if($check_status) + { + $row['error'] = 'Gagal update karena Status Claim sudah '.$check_status->status_claim_management; + } + else{ + $row['error'] = 'Gagal update karena Code tidak sesuai'; + } + $row['code_error'] = '500'; + $result_rows[] = $row; $failedRows[] = $row; } else { $importedRows += $affectedRows; + $row['code_error'] = '200'; + $row['error'] = 'Sukses'; + $result_rows[] = $row; } } catch (\Exception $e) { + $row['code_error'] = '500'; + $row['error'] = $e->getMessage(); + if(!$row['code']) + { + $row['error'] = 'Kolom Code wajib isi'; + } + if(!$row['qc']) + { + $row['error'] = 'Kolom QC wajib isi'; + } + $result_rows[] = $row; $failedRows[] = $row; } } @@ -170,7 +199,7 @@ class ClaimController extends Controller 'data' => [ 'total_success_row' => $importedRows, 'total_failed_row' => count($failedRows), - 'failed_rows' => $failedRows, + 'result_rows' => $result_rows, ], ]; @@ -377,11 +406,13 @@ class ClaimController extends Controller public function exportFiled(Request $request) { $writer = WriterEntityFactory::createXLSXWriter(); - $writer->openToFile(public_path('files/Report-Data-Filed-Import.xlsx')); + $writer->openToFile(public_path('files/Report-Data-Result-Import.xlsx')); $header = [ 'Code*', 'QC*', - 'Reason' + 'Reason', + 'Ingest Code', + 'Ingest Note' ]; $style = (new StyleBuilder()) ->setFontBold() @@ -402,7 +433,9 @@ class ClaimController extends Controller $rowData = [ $item['code'], $item['qc'], - $item['reason'] + $item['reason'], + $item['code_error'], + $item['error'] ]; $style = (new StyleBuilder()) //->setFontBold() @@ -435,8 +468,8 @@ class ClaimController extends Controller $writer->close(); return Helper::responseJson([ - 'file_name' => 'Report-Data-Filed-Import', - "file_url" => url('files/Report-Data-Filed-Import.xlsx') + 'file_name' => 'Report-Data-Result-Import', + "file_url" => url('files/Report-Data-Result-Import.xlsx') ]); } public function getProvider(Request $request) diff --git a/frontend/dashboard/src/pages/Claims/List.tsx b/frontend/dashboard/src/pages/Claims/List.tsx index 5de5511c..b18793f7 100644 --- a/frontend/dashboard/src/pages/Claims/List.tsx +++ b/frontend/dashboard/src/pages/Claims/List.tsx @@ -397,7 +397,7 @@ const dummyServices = [ const [anchorEl, setAnchorEl] = React.useState(null); const createMenu = Boolean(anchorEl); - const importHospital = useRef(null); + const importClaimManagement = useRef(null); const [currentImportFileName, setCurrentImportFileName] = useState(null); const [importLoading, setImportLoading] = useState(false); const [importResult, setImportResult] = useState(null); @@ -408,18 +408,18 @@ const dummyServices = [ setAnchorEl(null); }; const handleImportButton = () => { - if (importHospital?.current) { + if (importClaimManagement?.current) { handleClose(); - importHospital.current ? importHospital.current.click() : console.log('No File selected'); + importClaimManagement.current ? importClaimManagement.current.click() : console.log('No File selected'); } else { alert('No file selected'); } }; const handleCancelImportButton = () => { - if(importHospital.current) + if(importClaimManagement.current) { - importHospital.current.value = ''; - importHospital.current.dispatchEvent(new Event('change', { bubbles: true })); + importClaimManagement.current.value = ''; + importClaimManagement.current.dispatchEvent(new Event('change', { bubbles: true })); } }; const handleImportChange = (event: any) => { @@ -430,11 +430,11 @@ const dummyServices = [ } }; const handleUpload = () => { - if(importHospital.current && importHospital.current.files) + if(importClaimManagement.current && importClaimManagement.current.files) { - if (importHospital.current?.files.length) { + if (importClaimManagement.current?.files.length) { const formData = new FormData(); - formData.append('file', importHospital.current?.files[0]); + formData.append('file', importClaimManagement.current?.files[0]); setImportLoading(true); axios .post('claims/import', formData) @@ -443,7 +443,7 @@ const dummyServices = [ loadDataTableData(); setImportResult(response.data); setImportLoading(false); - enqueueSnackbar('Success Import Hospitals', { variant: 'success' }); + enqueueSnackbar('Success Import Claim Managemenet', { variant: 'success' }); }) .catch((response) => { enqueueSnackbar( @@ -474,7 +474,7 @@ const dummyServices = [ const handleExportReportFiled = async () => { await axios - .post('claims/exportFiled', { params: importResult?.data.failed_rows }) + .post('claims/exportFiled', { params: importResult?.data.result_rows }) .then((res) => { enqueueSnackbar('Data berhasil di Export', { variant: 'success', @@ -792,7 +792,7 @@ const handleExportReportFiled = async () => { { {importResult.data.total_failed_row} {' '} - Failed + Failed, {/* {importResult.data.failed_rows.map((row, index) => ( [Code={row.code ? row.code : 'Required'}] ))} */} -  Download Data Filed +  Report: +  Download Data Result Import )}