Update Import Billing & Invoice

This commit is contained in:
ivan-sim
2024-05-21 17:01:56 +07:00
parent 81311928da
commit 6fef852e2c
5 changed files with 251 additions and 18 deletions

View File

@@ -115,13 +115,12 @@ export default function List() {
const handleClose = () => {
setAnchorEl(null);
};
const handleImportButton = () => {
const [paramImport, setParamImport] = useState('');
const handleImportButton = (param:any) => {
setParamImport(param);
if (importForm?.current) {
handleClose();
importForm.current ? importForm.current.click() : console.log('No File selected');
} else {
alert('No file selected');
}
};
@@ -144,12 +143,18 @@ export default function List() {
formData.append('file', importForm.current?.files[0]);
setImportLoading(true);
let url = 'claim-requests/import';
if(paramImport == 'invoice')
{
url = 'customer-service/request/import-invoice'
}
axios
.post(`claim-requests/import`, formData)
.post(`${url}`, formData)
.then((response) => {
handleCancelImportButton();
loadDataTableData();
// loadDataTableData();
setImportResult(response.data);
setParamImport(response.data.metaData);
// alert('Succesfully read '+ response.data.total_successed_row + ' with ' + response.data.total_failed_row + ' failed rows');
setImportLoading(false);
})
@@ -166,6 +171,28 @@ export default function List() {
}
};
const handleExportReportFiled = async () => {
await axios
.post('customer-service/request/exportFiledInvoice', { params: importResult?.data.result_rows })
.then((res) => {
enqueueSnackbar('Data berhasil di Export', {
variant: 'success',
anchorOrigin: { horizontal: 'right', vertical: 'top' },
});
setImportLoading(false);
document.location.href = res.data.data.file_url;
})
.catch((err) =>
enqueueSnackbar('Data Gagal di Export', {
variant: 'error',
anchorOrigin: { horizontal: 'right', vertical: 'top' },
})
);
};
const handleGetTemplate = (type :string) => {
axios.get('corporates/import-document-example/' + type)
.then((response) => {
@@ -220,9 +247,11 @@ export default function List() {
'aria-labelledby': 'basic-button',
}}
>
<MenuItem onClick={handleImportButton}>Import</MenuItem>
<MenuItem onClick={() => {handleImportButton('claim')}}>Import</MenuItem>
<MenuItem onClick={() => {handleGetTemplate('claim-request')}}>Download Template</MenuItem>
<MenuItem onClick={() => {handleGetData('data-plan-benefit')}}>Download Claim Request</MenuItem>
<MenuItem onClick={() => {handleImportButton('invoice')}}>Import Invoice</MenuItem>
<MenuItem onClick={() => {handleGetTemplate('final-log-invoice')}}>Download Template Invoice</MenuItem>
</Menu>
{/* <Button
variant="contained"
@@ -265,16 +294,35 @@ export default function List() {
</LoadingButton>
</Stack>
)}
{importResult && (
{importResult && importResult?.metaData == 'invoice' ? (
<Stack direction={'row'} sx={{ px: 2, pb: 2 }}>
<Box sx={{ color: 'text.secondary' }}>
Last Import Result :{' '}
<Box sx={{ color: 'success.main', display: 'inline' }}>
{importResult.data.total_success_row ?? 0}
</Box>{' '}
Row Processed,{' '}
<Box sx={{ color: 'error.main', display: 'inline' }}>
{importResult.data.total_failed_row}
</Box>{' '}
Failed,
{/* {importResult.data.failed_rows.map((row, index) => (
<Typography variant='body' key={index} color="error"> [Code={row.code ? row.code : 'Required'}]</Typography>
))} */}
&nbsp;Report:
&nbsp;<u onClick={handleExportReportFiled} style={{cursor:'pointer'}}>Download Data Result Import</u>
</Box>
</Stack>
) : importResult ? (
<Stack direction={'row'} sx={{ px: 2, pb: 2 }}>
<Box sx={{ color: 'text.secondary' }}>
Last Import Result Report :{' '}
<a href={importResult.result_file?.url ?? '#'}>
{importResult.result_file?.name ?? '-'}
Last Import Result Report {paramImport} :{' '}
<a href={importResult?.result_file?.url ?? '#'}>
{importResult?.result_file?.name ?? '-'}
</a>
</Box>
</Stack>
)}
):''}
</div>
);
}