import { Container, Grid, Stack, Typography, Card, Dialog, TableRow, Tab, TableCell, Collapse, AccordionSummary, AccordionDetails, IconButton, } from '@mui/material'; // components import Page from '../../../components/Page'; // utils import useSettings from '../../../hooks/useSettings'; // react import { useNavigate, useParams, useLocation } from 'react-router-dom'; import { useEffect, useState, useRef, useMemo } from 'react'; import axios from '../../../utils/axios'; // pages import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'; import { DetailFinalLogType } from './Model/Types'; import { fDate, fDateTimesecond } from '@/utils/formatTime'; import { Button } from '@mui/material'; import DialogConfirmation from '../FinalLog/Components/DialogConfirmation'; import Label from '@/components/Label'; import { Box } from '@mui/system'; import { Accordion } from '@mui/material'; import { Delete, EditOutlined, ExpandMore } from '@mui/icons-material'; import {BenefitData } from '../FinalLog/Model/Types' import AddIcon from '@mui/icons-material/Add'; // Import Card Detail Final LOG import CardDetail from '../Components/CardDetail'; import CardService from '../Components/CardService'; import CardExclusion from '../Components/CardExclusion'; import CardBenefit from '../Components/CardBenefit'; // Import Dialog import DialogHospitalCare from './Components/DialogHospitalCare'; import DialogBenefit from './Components/DialogBenefit'; import DialogMedicine from './Components/DialogMedicine'; import DialogDeleteBenfit from './Components/DialogDeleteBenefit'; import DialogEditBenefit from './Components/DialogEditBenefit'; import DialogDeleteMedicine from './Components/DialogDeleteMedicine' import MoreMenu from '@/components/MoreMenu'; import { MenuItem } from '@mui/material'; import { fNumber } from '@/utils/formatNumber'; import palette from '@/theme/palette'; import CardMedicine from '../Components/CardMedicine'; import CardFile from '../Components/CardFile'; import DialogEditFinalLOG from './Components/DialogEditFinalLOG'; import DialogDeleteFileLog from './Components/DialogDeleteFileLog'; import DialogUploadFileFinalLog from './Components/DialogUploadFileFinalLog'; // ---------------------------------------------------------------------- export default function Detail() { const location = useLocation(); const queryParams = new URLSearchParams(location.search); const navigate = useNavigate(); const { themeStretch } = useSettings(); const [requestLog, setRequestLog] = useState(); const { id } = useParams(); useEffect(() => { axios .get('customer-service/request/'+id) .then((response) => { setRequestLog(response.data.data) }) .catch((error) => { console.error(error); }) }, [id]); const style1 = { color: '#919EAB', width: '30%' } const style3 = { color: '#919EAB', width: '35%' } const style2 = { width: '70%' } const marginBottom1 = { marginBottom: 1, } const marginBottom2 = { marginBottom: 2, } const [openDialogSubmit, setOpenDialogSubmit] = useState(false); const [openDialogEditDetail, setDialogDEditDetail] = useState(false); const [openDialogBenefit, setDialogBenefit] = useState(false); const [openDialogMedicine, setDialogMedicine] = useState(false); // Handel Delete Detail Benefit const [idBenefitData, setIdBenefitData] = useState(); const [openDialogDeleteBenefit, setDialogDeleteBenefit] = useState(false) const [idMedicineData, setIdMedicineData] = useState(); const [openDialogDeleteMedicine, setDialogDeleteMedicine] = useState(false) const [approve, setApprove] = useState('') // Handle Edit Detail Benefit const [openDialogEditBenefit, setDialogEditBenefit] = useState(false) const [BenefitConfigurationData, setBenefitConfigurationData] = useState(); // Buat total data const totalAmountIncurred = (requestLog?.benefit_data || []).reduce((accumulator, item) => { return accumulator + (item.amount_incurred || 0); }, 0); const totalAmountApprove = (requestLog?.benefit_data || []).reduce((accumulator, item) => { return accumulator + (item.amount_approved || 0); }, 0); const totalAmountNotApprove = (requestLog?.benefit_data || []).reduce((accumulator, item) => { return accumulator + (item.amount_not_approved || 0); }, 0); const totalExcessPaid = (requestLog?.benefit_data || []).reduce((accumulator, item) => { return accumulator + (item.excess_paid || 0); }, 0); const total = { totalAmountIncurred : totalAmountIncurred, totalAmountApproved : totalAmountApprove, totalAmountNotApproved : totalAmountNotApprove, totalExcessPaid : totalExcessPaid, } // Handle Delete File LOG const [pathFile, setPathFile] = useState('') const [dialogDeleteFIleLog, setDialogDeleteFileLog] = useState(false) // Handle Upload File LOG const [dialogUploadFileLog, setDialogUploadFileLog] = useState(false) return ( navigate(-1)} sx={{cursor:'pointer'}}/> {(requestLog && requestLog.code ? requestLog.code : '')} {/* Detail */} Detail {requestLog?.status_final_log != 'requested' ? ( { setDialogDEditDetail(true) }}> Edit } /> ) : null } Provider {requestLog?.provider} Member ID {requestLog?.member_id} Policy Number {requestLog?.policy_number} Name {requestLog?.name} Date Of Birth {requestLog?.date_of_birth ? fDate(requestLog?.date_of_birth) : '-'} Marital Status {requestLog?.marital_status} Submission Date {requestLog?.submission_date ? fDateTimesecond(requestLog?.submission_date) : '-'} Admission Date {requestLog?.admission_date ? fDateTimesecond(requestLog?.admission_date) : '-'} Discharge Date {requestLog?.discharge_date ? fDateTimesecond(requestLog?.discharge_date) : '-'} No KTP {requestLog?.no_identitas ? requestLog?.no_identitas : '-'} Keterangan {requestLog?.keterangan ? requestLog?.keterangan : '-'} Hak Kamar Pasien {requestLog?.hak_kamar_pasien ? requestLog?.hak_kamar_pasien : '-'} Penempatan Kamar {requestLog?.penempatan_kamar ? requestLog?.penempatan_kamar : '-'} Catatan {requestLog?.catatan ? requestLog?.catatan : '-'} Diagnosis {requestLog?.diagnosis?.length > 0 ? (
    {requestLog.diagnosis.map((diagnosisItem, index) => (
  • {diagnosisItem.code} - {diagnosisItem.name}
  • // Replace 'name' with the property you want to display ))}
) : (

No diagnosis available.

)}
{/* */}
{/* Service */} {/* Exclusion */} {/* */} {/* Benefit */} Benefit {requestLog?.benefit_data?.map((item, index) => ( {item.benefit?.description} { setDialogEditBenefit(true) setIdBenefitData(item.id) setBenefitConfigurationData(item) }} > Edit { setIdBenefitData(item.id) setDialogDeleteBenefit(true) }} > Delete } /> {/* Amount Incurred */} Amount Incurred {fNumber(item.amount_incurred)} {/* Amount Approved */} Amount Approved {fNumber(item.amount_approved)} {/* Amount Not Approved */} Amount Not Approved {fNumber(item.amount_not_approved)} {/* Excess Paid* */} Excess Paid* {fNumber(item.excess_paid)} {/* Keterangan* */} Keterangan* {item.keterangan} ))}

{requestLog?.benefit_data && requestLog.benefit_data.length > 0 ? ( Total Benefit {/* Amount Incurred */} Amount Incurred {fNumber(totalAmountIncurred)} {/* Amount Approved */} Amount Approved {fNumber(totalAmountApprove)} {/* Amount Not Approved */} Amount Not Approved {fNumber(totalAmountNotApprove)} {/* Excess Paid* */} Excess Paid {fNumber(totalExcessPaid)} ) : ( null )}
{/* PR Buat pindahin ke componen */} {/* */} {/* Dialog Edit */} {/* Dialog Delete */} {/* Dialog Edit Detai; */}
{/* Medicine */} Medicine {requestLog?.medicine.map((item, index) => ( {item.medicine} Rp. {fNumber(item.price)} { setIdMedicineData(item.id) setDialogDeleteMedicine(true) }}> ))} {/* File */} Files {requestLog?.files?.map((documentType, index) => ( {documentType.original_name ? documentType.original_name : '-'} { setDialogDeleteFileLog(true) setPathFile(documentType.path) }} aria-label="delete" size="small" sx={{ marginLeft: 'auto' }}> ))} {requestLog?.status_final_log == 'requested' ? ( <>
) : null}
); }