Update
This commit is contained in:
@@ -9,23 +9,13 @@ import { useNavigate, useParams, useLocation } from 'react-router-dom';
|
|||||||
import { useEffect, useState, useRef } from 'react';
|
import { useEffect, useState, useRef } from 'react';
|
||||||
import axios from '../../utils/axios';
|
import axios from '../../utils/axios';
|
||||||
// pages
|
// pages
|
||||||
import DetailTimeline from '../../pages/ClaimRequests/DetailTimeline';
|
|
||||||
import DetailStepper from '../../pages/ClaimRequests/DetailStepper';
|
|
||||||
import { format } from 'date-fns';
|
import { format } from 'date-fns';
|
||||||
import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';
|
import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';
|
||||||
import Button from '@mui/material/Button';
|
import Button from '@mui/material/Button';
|
||||||
import AddIcon from '@mui/icons-material/Add';
|
import AddIcon from '@mui/icons-material/Add';
|
||||||
import RemoveIcon from '@mui/icons-material/Remove';
|
|
||||||
import { DatePicker, LocalizationProvider } from '@mui/x-date-pickers';
|
|
||||||
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
|
|
||||||
import Iconify from '@/components/Iconify';
|
|
||||||
import { fPostFormat } from '@/utils/formatTime';
|
|
||||||
import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile';
|
import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile';
|
||||||
import DownloadIcon from '@mui/icons-material/Download';
|
|
||||||
import { Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material';
|
import { Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material';
|
||||||
import CloseIcon from '@mui/icons-material/Close';
|
import CloseIcon from '@mui/icons-material/Close';
|
||||||
import { fDateTimesecond } from '@/utils/formatTime';
|
|
||||||
import { makeFormData } from '@/utils/jsonToFormData';
|
|
||||||
import FormGroup from '@mui/material/FormGroup';
|
import FormGroup from '@mui/material/FormGroup';
|
||||||
import FormControlLabel from '@mui/material/FormControlLabel';
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
||||||
import Checkbox from '@mui/material/Checkbox';
|
import Checkbox from '@mui/material/Checkbox';
|
||||||
@@ -41,8 +31,6 @@ export default function Detail() {
|
|||||||
|
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { themeStretch } = useSettings();
|
const { themeStretch } = useSettings();
|
||||||
const [data, setData] = useState();
|
|
||||||
const [dataDialog, setDataDialog] = useState();
|
|
||||||
const [customerData, setCustomerData] = useState(null);
|
const [customerData, setCustomerData] = useState(null);
|
||||||
const [documentData, setDocumentData] = useState(null);
|
const [documentData, setDocumentData] = useState(null);
|
||||||
const [requestDocumentData, setRequestDocumentData] = useState(null);
|
const [requestDocumentData, setRequestDocumentData] = useState(null);
|
||||||
@@ -61,78 +49,7 @@ export default function Detail() {
|
|||||||
console.error(error);
|
console.error(error);
|
||||||
});
|
});
|
||||||
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const [isInvoiceVisible, setInvoiceVisibility] = useState(false);
|
|
||||||
|
|
||||||
const handleInvoice = () => {
|
|
||||||
setInvoiceVisibility(!isInvoiceVisible);
|
|
||||||
}
|
|
||||||
const currentDate = new Date();
|
|
||||||
const formattedCurrentDate = format(currentDate, 'dd MMM yyyy');
|
|
||||||
const [dateInvoice, setDateInvoice] = useState(currentDate);
|
|
||||||
|
|
||||||
const fileInvoiceInput = useRef<HTMLInputElement>(null);
|
|
||||||
const [fileInvoices, setFileInvoices] = useState([]);
|
|
||||||
|
|
||||||
const handleInvoiceInputChange = (event) => {
|
|
||||||
if (event.target.files[0]) {
|
|
||||||
setFileInvoices([...fileInvoices, ...event.target.files]);
|
|
||||||
} else {
|
|
||||||
console.log('NO FILE');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const removeInvoiceFiles = (filesState, index) => {
|
|
||||||
setFileInvoices(
|
|
||||||
filesState.filter((file, fileIndex) => {
|
|
||||||
return fileIndex != index;
|
|
||||||
})
|
|
||||||
);
|
|
||||||
};
|
|
||||||
const date = dateInvoice ? fPostFormat(dateInvoice, 'yyyy-MM-dd') : null;
|
|
||||||
|
|
||||||
const [openDialogSubmit, setOpenDialogSubmit] = useState(false);
|
|
||||||
const handleCloseDialogSubmit = () => {
|
|
||||||
setOpenDialogSubmit(false);
|
|
||||||
}
|
|
||||||
const handleSubmitData = () => {
|
|
||||||
if(fileInvoices.length > 0)
|
|
||||||
{
|
|
||||||
//submit data
|
|
||||||
axios
|
|
||||||
.post('claim-requests/'+id+'/approve')
|
|
||||||
.then((response) => {
|
|
||||||
enqueueSnackbar('Success Submit Claim Request', { variant: 'success' });
|
|
||||||
setOpenDialogSubmit(false);
|
|
||||||
})
|
|
||||||
.catch(({ response }) => {
|
|
||||||
enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' });
|
|
||||||
});
|
|
||||||
//Upload file invoices
|
|
||||||
const formData = makeFormData({
|
|
||||||
date:date,
|
|
||||||
invoice_files: fileInvoices,
|
|
||||||
});
|
|
||||||
axios
|
|
||||||
.post('claim-requests/'+id+'/invoice-files', formData)
|
|
||||||
.then((response) => {
|
|
||||||
enqueueSnackbar(response.data.message ?? 'Success upload invoice', { variant: 'success' });
|
|
||||||
})
|
|
||||||
.catch(({ response }) => {
|
|
||||||
enqueueSnackbar(response.data.message ?? 'Something Went Wrong', { variant: 'error' });
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
enqueueSnackbar('Please upload file invoice, before submit', { variant: 'warning' });
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() =>
|
|
||||||
{
|
|
||||||
window.location.reload();
|
|
||||||
}, 5000);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
function toTitleCase(str) {
|
function toTitleCase(str) {
|
||||||
return str.replace(/\w\S*/g, function(txt) {
|
return str.replace(/\w\S*/g, function(txt) {
|
||||||
|
|||||||
Reference in New Issue
Block a user