From bd3f53b596dbbd909ac633210764d7b6095a9a02 Mon Sep 17 00:00:00 2001 From: R Date: Thu, 23 Feb 2023 16:18:44 +0700 Subject: [PATCH] Fix Upload Files --- .../Api/ClaimRequestController.php | 36 ++- app/Models/File.php | 4 +- .../src/pages/Dashboard/Dashboard.tsx | 5 +- .../sections/dashboard/NotificationCard.tsx | 5 +- .../sections/dashboard/FormRequestClaim.tsx | 249 ++++++++++++++---- 5 files changed, 238 insertions(+), 61 deletions(-) diff --git a/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php b/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php index a1b93f19..d565c5ae 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php @@ -69,10 +69,40 @@ class ClaimRequestController extends Controller if ($request->hasFile('result_files')) { foreach ($request->result_files as $file) { - $pathFile = File::storeFile('claim', $newClaimRequest->id, $file); + $pathFile = File::storeFile('claim-result', $newClaimRequest->id, $file); $newClaimRequest->files()->updateOrCreate([ - 'type' => 'result', - 'name' => File::getFileName('claim', $newClaimRequest->id, $file), + 'type' => 'claim-result', + 'name' => File::getFileName('claim-result', $newClaimRequest->id, $file), + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'path' => $pathFile, + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, + ]); + } + } + + if ($request->hasFile('diagnosa_files')) { + foreach ($request->result_files as $file) { + $pathFile = File::storeFile('claim-diagnosis', $newClaimRequest->id, $file); + $newClaimRequest->files()->updateOrCreate([ + 'type' => 'claim-diagnosis', + 'name' => File::getFileName('claim-diagnosis', $newClaimRequest->id, $file), + 'original_name' => $file->getClientOriginalName(), + 'extension' => $file->getClientOriginalExtension(), + 'path' => $pathFile, + 'created_by' => auth()->user()->id, + 'updated_by' => auth()->user()->id, + ]); + } + } + + if ($request->hasFile('kondisi_files')) { + foreach ($request->result_files as $file) { + $pathFile = File::storeFile('claim-kondisi', $newClaimRequest->id, $file); + $newClaimRequest->files()->updateOrCreate([ + 'type' => 'claim-kondisi', + 'name' => File::getFileName('claim-kondisi', $newClaimRequest->id, $file), 'original_name' => $file->getClientOriginalName(), 'extension' => $file->getClientOriginalExtension(), 'path' => $pathFile, diff --git a/app/Models/File.php b/app/Models/File.php index c905d652..68f361ab 100755 --- a/app/Models/File.php +++ b/app/Models/File.php @@ -38,7 +38,9 @@ class File extends Model 'import-temp' => 'import-temp/', 'avatar' => 'user-avatar/', 'dataDiri' => 'data-diri/', - 'claim' => 'claim/' + 'claim-result' => 'claim/', + 'claim-diagnosis' => 'claim/', + 'claim-kondisi' => 'claim/', ]; public function fileable() diff --git a/frontend/client-portal/src/pages/Dashboard/Dashboard.tsx b/frontend/client-portal/src/pages/Dashboard/Dashboard.tsx index 1cd1f3dc..82128bc3 100755 --- a/frontend/client-portal/src/pages/Dashboard/Dashboard.tsx +++ b/frontend/client-portal/src/pages/Dashboard/Dashboard.tsx @@ -16,10 +16,7 @@ import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate // ---------------------------------------------------------------------- const itemList = [ - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '08:00 WIB' }, - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '09:00 WIB' }, - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '10:00 WIB' }, - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '11:00 WIB' }, + { info: 'Mohon lengkapi dokumen Alison Born', date: 'Selasa, 13 Februari 23', time: '09:43 WIB' }, ]; // ---------------------------------------------------------------------- diff --git a/frontend/client-portal/src/sections/dashboard/NotificationCard.tsx b/frontend/client-portal/src/sections/dashboard/NotificationCard.tsx index 54d65b47..4ff1100e 100755 --- a/frontend/client-portal/src/sections/dashboard/NotificationCard.tsx +++ b/frontend/client-portal/src/sections/dashboard/NotificationCard.tsx @@ -24,10 +24,7 @@ const ItemStyle = styled(Card)(({ theme }) => ({ })); const itemList = [ - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '08:00 WIB' }, - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '09:00 WIB' }, - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '10:00 WIB' }, - { info: 'Mohon lengkapi dokumen Mahen sadarsa', date: 'Selasa, 20 April 22', time: '11:00 WIB' }, + { info: 'Mohon lengkapi dokumen Alison Born', date: 'Selasa, 13 Februari 23', time: '09:43 WIB' }, ]; // ---------------------------------------------------------------------- diff --git a/frontend/hospital-portal/src/sections/dashboard/FormRequestClaim.tsx b/frontend/hospital-portal/src/sections/dashboard/FormRequestClaim.tsx index d8d268de..4ee7632e 100644 --- a/frontend/hospital-portal/src/sections/dashboard/FormRequestClaim.tsx +++ b/frontend/hospital-portal/src/sections/dashboard/FormRequestClaim.tsx @@ -25,6 +25,48 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }) { }, })); + // ---------------------------------------------------------------------- + // Files Diagnosa + + const fileDiagnosaInput = useRef(null); + const [fileDiagnosas, setFileDiagnosas] = useState([]); + + const handleDiagnosaInputChange = (event) => { + if (event.target.files[0]) { + setFileDiagnosas([...fileDiagnosas, ...event.target.files]); + } else { + console.log('NO FILE'); + } + }; + const removeDiagnosaFiles = (filesState, index) => { + setFileDiagnosas( + filesState.filter((file, fileIndex) => { + return fileIndex != index; + }) + ); + }; + + // ---------------------------------------------------------------------- + // Files Result Kondisi + + const fileKondisiInput = useRef(null); + const [fileKondisis, setFileKondisis] = useState([]); + + const handleKondisiInputChange = (event) => { + if (event.target.files[0]) { + setFileKondisis([...fileKondisis, ...event.target.files]); + } else { + console.log('NO FILE'); + } + }; + const removeKondisiFiles = (filesState, index) => { + setFileKondisis( + filesState.filter((file, fileIndex) => { + return fileIndex != index; + }) + ); + }; + // ---------------------------------------------------------------------- // Files Result Hasil Penunjang @@ -53,9 +95,11 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }) { function submitRequest() { setSubmitLoading(true); const formData = makeFormData({ - 'member_id' : member.id, - 'result_files' : fileHasilPenunjangs - }) + member_id: member.id, + result_files: fileHasilPenunjangs, + diagnosa_files: fileDiagnosas, + kondisi_files: fileKondisis + }); axios .post('/claim-requests', formData) .then((response) => { @@ -110,53 +154,160 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }) { - - - Hasil Penunjang - - {/* Hasil Lab, */} - } - spacing={1} - sx={{ marginY: 2 }} - > - {fileHasilPenunjangs && - fileHasilPenunjangs.map((file, index) => ( - - {file.name} - { - removeFiles(fileHasilPenunjangs, index); - }} - > - - ))} - {/* - Nama File .pdf - - */} + } + spacing={4} + sx={{ marginY: 2 }} + > + {/* -------------------------------Upload Dokumen Kondisi------------------------------- */} + + + Dokumen Kondisi + + {/* Hasil Lab, */} + } + spacing={1} + sx={{ marginY: 2 }} + > + {fileKondisis && + fileKondisis.map((file, index) => ( + + {file.name} + { + removeKondisiFiles(fileKondisis, index); + }} + > + + ))} + {/* + Nama File .pdf + + */} + + {/* { JSON.stringify(filesResult) } */} + + { + fileKondisiInput.current.click(); + }} + > + + Add Result + + + + {/* -------------------------------Upload Dokumen Diagnosa------------------------------- */} + + + Dokumen Diagnosa + + {/* Hasil Lab, */} + } + spacing={1} + sx={{ marginY: 2 }} + > + {fileDiagnosas && + fileDiagnosas.map((file, index) => ( + + {file.name} + { + removeDiagnosaFiles(fileDiagnosas, index); + }} + > + + ))} + {/* + Nama File .pdf + + */} + + {/* { JSON.stringify(filesResult) } */} + + { + fileDiagnosaInput.current.click(); + }} + > + + Add Result + + + + {/* -------------------------------Upload Dokumen Hasil Penunjang------------------------------- */} + + + Dokumen Hasil Penunjang + + {/* Hasil Lab, */} + } + spacing={1} + sx={{ marginY: 2 }} + > + {fileHasilPenunjangs && + fileHasilPenunjangs.map((file, index) => ( + + {file.name} + { + removeFiles(fileHasilPenunjangs, index); + }} + > + + ))} + {/* + Nama File .pdf + + */} + + {/* { JSON.stringify(filesResult) } */} + + { + fileHasilPenunjangInput.current.click(); + }} + > + + Add File + - {/* { JSON.stringify(filesResult) } */} - - { - fileHasilPenunjangInput.current.click(); - }} - > - - Add Result -