From 6a4aaff62897e5df6eaa64038cb9850ad63cfe46 Mon Sep 17 00:00:00 2001 From: Tb Fajri Date: Thu, 4 Sep 2025 08:37:21 +0700 Subject: [PATCH] frontend approval --- .../Transformers/RequestLogShowResource.php | 2 +- .../Components/DialogEditFinalLOG.tsx | 2 +- .../pages/CustomerService/FinalLog/Detail.tsx | 183 +++++++++++++++++- 3 files changed, 184 insertions(+), 3 deletions(-) diff --git a/Modules/Internal/Transformers/RequestLogShowResource.php b/Modules/Internal/Transformers/RequestLogShowResource.php index 9f2a1143..647de78d 100755 --- a/Modules/Internal/Transformers/RequestLogShowResource.php +++ b/Modules/Internal/Transformers/RequestLogShowResource.php @@ -33,7 +33,7 @@ class RequestLogShowResource extends JsonResource $corporateId = $requestLog['member']['current_plan']['corporate_id'] ?? 0; $member_id = $requestLog['member_id']; $planMember = MemberPlan::where('member_id', $member_id)->get('plan_id'); - + $planId = Plan::whereIn('id', $planMember)->where('service_code', $requestLog['service_code'])->first(); $benefit = CorporateBenefit::with(['benefit', 'plan'])->where('plan_id', $planId->id)->get()->toArray(); $benefitDetailLog = RequestLogBenefit::with('benefit')->where('request_log_id', $requestLog['id'])->get()->toArray(); diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogEditFinalLOG.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogEditFinalLOG.tsx index c81f524e..6d371ee0 100755 --- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogEditFinalLOG.tsx +++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogEditFinalLOG.tsx @@ -159,7 +159,7 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo // Add more options as needed ]; - console.log(formData.type_of_member) +// console.log(formData.type_of_member) const getContent = () => ( diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx index 17b46e1e..6c5eeb16 100755 --- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx +++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx @@ -1,3 +1,6 @@ +import * as Yup from 'yup'; +import { yupResolver } from '@hookform/resolvers/yup'; +import { NumericFormat } from "react-number-format"; import { Container, Grid, @@ -12,11 +15,17 @@ import { AccordionSummary, AccordionDetails, IconButton, + Divider, + ButtonBase } from '@mui/material'; // components import Page from '../../../components/Page'; +import Iconify from '@/components/Iconify'; +import { FormProvider, RHFDatepicker, RHFSelect, RHFTextField } from '@/components/hook-form'; +import RHFTextFieldMoney from '@/components/hook-form/v2/RHFTextFieldMoney'; // utils import useSettings from '../../../hooks/useSettings'; +import { useFieldArray, useForm } from 'react-hook-form'; // react import { useNavigate, useParams, useLocation } from 'react-router-dom'; import { useEffect, useState, useRef, useMemo } from 'react'; @@ -33,6 +42,7 @@ 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 { LoadingButton } from '@mui/lab'; // Import Card Detail Final LOG import CardDetail from '../Components/CardDetail'; @@ -70,6 +80,19 @@ export default function Detail() { const [requestLog, setRequestLog] = useState(); const [isReversal, setIsReversal] = useState(false); + const defaultValues: any = {nominal : 0}; + const validationSchema = Yup.object().shape({nominal: Yup.number().typeError('Nominal harus berupa angka').required('Nominal harus diisi')}) + + const methods = useForm({ + resolver: yupResolver(validationSchema), + defaultValues + }); + + const { handleSubmit, reset, watch, setValue, formState: { isDirty, isSubmitting, errors } } = methods; + + const onSubmit = async (data: any) => { + alert('Nominal: ' + data.nominal); + } const { id } = useParams(); @@ -146,9 +169,27 @@ export default function Detail() { // Handle Delete File LOG const [pathFile, setPathFile] = useState('') const [dialogDeleteFIleLog, setDialogDeleteFileLog] = useState(false) - + // Handle Upload File LOG const [dialogUploadFileLog, setDialogUploadFileLog] = useState(false) + + + const fileDiagnosaInput = useRef(null); + const [fileDiagnosas, setFileDiagnosas] = useState([]); + const handleDiagnosaInputChange = (event:any) => { + if (event.target.files[0]) { + setFileDiagnosas([...fileDiagnosas, ...event.target.files]); + } else { + console.log('NO FILE'); + } + }; + const removeDiagnosaFiles = (filesState:any, index:any) => { + setFileDiagnosas( + filesState.filter((file:any, fileIndex:any) => { + return fileIndex != index; + }) + ); + }; return ( @@ -323,6 +364,146 @@ export default function Detail() { */} + {/* Surat persetujuan Tindakan */} + + + + + Tindakan Persetujuan + + + + {!isReversal && ( + + + + + Upload Tindakan Persetujuan + + + {fileDiagnosas?.map((file: any, index: number) => ( + + + {file.name} + + removeDiagnosaFiles(fileDiagnosas, index)} + /> + + ))} + + fileDiagnosaInput.current?.click()} + > + + + + Upload Tindakan Persetujuan + + + + + + + + + Simpan + + + + + )} + + {/* FILE YANG SUDAH TERUPLOAD */} + {requestLog?.files?.map((documentType, index) => ( + + + + {documentType.original_name || '-'} + + + + {!isReversal && ( + { + setDialogDeleteFileLog(true); + setPathFile(documentType.path); + }} + size="small" + > + + + )} + + ))} + + {/* DIALOG */} + + + + + + + {/* Benefit */}