Merge branch 'staging' of https://dev.sismedika.online/febio/aso into staging

This commit is contained in:
2024-03-07 16:11:56 +07:00
2 changed files with 55 additions and 21 deletions

View File

@@ -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)

View File

@@ -397,7 +397,7 @@ const dummyServices = [
const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
const createMenu = Boolean(anchorEl);
const importHospital = useRef<HTMLInputElement>(null);
const importClaimManagement = useRef<HTMLInputElement>(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 () => {
<input
type="file"
id="file"
ref={importHospital}
ref={importClaimManagement}
style={{ display: 'none' }}
onChange={handleImportChange}
accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, text/plain"
@@ -975,11 +975,12 @@ const handleExportReportFiled = async () => {
<Box sx={{ color: 'error.main', display: 'inline' }}>
{importResult.data.total_failed_row}
</Box>{' '}
Failed
Failed,
{/* {importResult.data.failed_rows.map((row, index) => (
<Typography variant='body' key={index} color="error"> [Code={row.code ? row.code : 'Required'}]</Typography>
))} */}
&nbsp;<u onClick={handleExportReportFiled} style={{cursor:'pointer'}}>Download Data Filed</u>
&nbsp;Report:
&nbsp;<u onClick={handleExportReportFiled} style={{cursor:'pointer'}}>Download Data Result Import</u>
</Box>
</Stack>
)}