fix bug upload file claim request

This commit is contained in:
korospace
2023-11-03 08:38:22 +07:00
parent 186312bb6a
commit 16449bd18b
3 changed files with 130 additions and 76 deletions

View File

@@ -51,6 +51,10 @@ class ClaimRequestController extends Controller
$code = $this->getNextCode(); $code = $this->getNextCode();
$member = Member::find($member_id); $member = Member::find($member_id);
DB::beginTransaction();
try {
$newClaimRequest = ClaimRequestService::storeClaimRequest( $newClaimRequest = ClaimRequestService::storeClaimRequest(
row: [], row: [],
code: $code, code: $code,
@@ -60,6 +64,7 @@ class ClaimRequestController extends Controller
); );
ClaimRequested::dispatch($newClaimRequest); ClaimRequested::dispatch($newClaimRequest);
// Log History // Log History
$newClaimRequest->histories()->create([ $newClaimRequest->histories()->create([
'title' => 'New Claim Requested', 'title' => 'New Claim Requested',
@@ -81,44 +86,79 @@ class ClaimRequestController extends Controller
'updated_at'=> date('Y-m-d H:i:s'), 'updated_at'=> date('Y-m-d H:i:s'),
]); ]);
if ($request->hasFile('laboratorium')) { $storage_path = storage_path() . "/app/public";
foreach ($request->laboratorium[$key] as $file) { $folder = "claim/";
$pathFile = File::storeFile('claim-result', $newClaimRequest->id, $file);
if (is_dir($storage_path . "/" . $folder) == false) {
mkdir($storage_path . "/" . $folder, 0770, true);
}
if (isset($_FILES['laboratorium'])) {
foreach ($_FILES['laboratorium']['error']["member_" .$member_id] as $key => $value) {
if ($value == 0) {
$new_file_name = "claim-result-" . time() . "-" . uniqid();
$ekstension = "." . explode("/", $_FILES['laboratorium']['type']["member_" .$member_id][$key])[1];
$pathFile = $folder . $new_file_name . $ekstension;
$tmp_name = $_FILES['laboratorium']['tmp_name']["member_" .$member_id][$key];
$full_path = $_FILES['laboratorium']['full_path']["member_" .$member_id][$key];
if (move_uploaded_file($tmp_name, $storage_path . "/" . $pathFile)) {
$newClaimRequest->files()->updateOrCreate([ $newClaimRequest->files()->updateOrCreate([
'type' => 'claim-result', 'type' => 'claim-result',
'name' => File::getFileName('claim-result', $newClaimRequest->id, $file), 'name' => $new_file_name,
'original_name' => $file->getClientOriginalName(), 'original_name' => $full_path,
'extension' => $file->getClientOriginalExtension(), 'extension' => $ekstension,
'path' => $pathFile, 'path' => $pathFile,
'created_by' => auth()->user()->id, 'created_by' => auth()->user()->id,
'updated_by' => auth()->user()->id, 'updated_by' => auth()->user()->id,
]); ]);
} }
} }
}
}
if ($request->hasFile('prescription')) { if (isset($_FILES['prescription'])) {
foreach ($request->prescription[$key] as $file) { foreach ($_FILES['prescription']['error']["member_" .$member_id] as $key => $value) {
$pathFile = File::storeFile('claim-diagnosis', $newClaimRequest->id, $file); if ($value == 0) {
$new_file_name = "claim-diagnosis-" . time() . "-" . uniqid();
$ekstension = "." . explode("/", $_FILES['prescription']['type']["member_" .$member_id][$key])[1];
$pathFile = $folder . $new_file_name . $ekstension;
$tmp_name = $_FILES['prescription']['tmp_name']["member_" .$member_id][$key];
$full_path = $_FILES['prescription']['full_path']["member_" .$member_id][$key];
if (move_uploaded_file($tmp_name, $storage_path . "/" . $pathFile)) {
$newClaimRequest->files()->updateOrCreate([ $newClaimRequest->files()->updateOrCreate([
'type' => 'claim-diagnosis', 'type' => 'claim-diagnosis',
'name' => File::getFileName('claim-diagnosis', $newClaimRequest->id, $file), 'name' => $new_file_name,
'original_name' => $file->getClientOriginalName(), 'original_name' => $full_path,
'extension' => $file->getClientOriginalExtension(), 'extension' => $ekstension,
'path' => $pathFile, 'path' => $pathFile,
'created_by' => auth()->user()->id, 'created_by' => auth()->user()->id,
'updated_by' => auth()->user()->id, 'updated_by' => auth()->user()->id,
]); ]);
} }
} }
}
}
if ($request->hasFile('invoice')) { if (isset($_FILES['invoice'])) {
foreach ($request->invoice[$key] as $file) { foreach ($_FILES['invoice']['error']["member_" .$member_id] as $key => $value) {
$pathFile = File::storeFile('claim-kondisi', $newClaimRequest->id, $file); if ($value == 0) {
$new_file_name = "claim-kondisi-" . time() . "-" . uniqid();
$ekstension = "." . explode("/", $_FILES['invoice']['type']["member_" .$member_id][$key])[1];
$pathFile = $folder . $new_file_name . $ekstension;
$tmp_name = $_FILES['invoice']['tmp_name']["member_" .$member_id][$key];
$full_path = $_FILES['invoice']['full_path']["member_" .$member_id][$key];
if (move_uploaded_file($tmp_name, $storage_path . "/" . $pathFile)) {
$newClaimRequest->files()->updateOrCreate([ $newClaimRequest->files()->updateOrCreate([
'type' => 'claim-kondisi', 'type' => 'claim-kondisi',
'name' => File::getFileName('claim-kondisi', $newClaimRequest->id, $file), 'name' => $new_file_name,
'original_name' => $file->getClientOriginalName(), 'original_name' => $full_path,
'extension' => $file->getClientOriginalExtension(), 'extension' => $ekstension,
'path' => $pathFile, 'path' => $pathFile,
'created_by' => auth()->user()->id, 'created_by' => auth()->user()->id,
'updated_by' => auth()->user()->id, 'updated_by' => auth()->user()->id,
@@ -128,8 +168,15 @@ class ClaimRequestController extends Controller
} }
} }
DB::commit();
}
catch (\Throwable $th) {
DB::rollBack();
return Helper::responseJson(status: 'failed', statusCode: 500, message: $th->getMessage());
}
}
}
return Helper::responseJson(data: $request->toArray(), message: 'Claim Request berhasil ajukan!'); return Helper::responseJson(data: $request->toArray(), message: 'Claim Request berhasil ajukan!');
} }

View File

@@ -66,6 +66,11 @@ class ClaimRequestController extends Controller
return view('internal::create'); return view('internal::create');
} }
/**
* Create New Calim Request
*
* Bagaskoro, BSD 03 November 2023
*/
public function createNew(Request $request) public function createNew(Request $request)
{ {
$request->validate([ $request->validate([
@@ -114,11 +119,15 @@ class ClaimRequestController extends Controller
]); ]);
$storage_path = storage_path() . "/app/public"; $storage_path = storage_path() . "/app/public";
$folder = "claim/";
if (is_dir($storage_path . "/" . $folder) == false) {
mkdir($storage_path . "/" . $folder, 0770, true);
}
if (isset($_FILES['file_penunjang'])) { if (isset($_FILES['file_penunjang'])) {
foreach ($_FILES['file_penunjang']['error']["member_" .$member_id] as $key => $value) { foreach ($_FILES['file_penunjang']['error']["member_" .$member_id] as $key => $value) {
if ($value == 0) { if ($value == 0) {
$folder = "claim/";
$new_file_name = "claim-result-" . time() . "-" . uniqid(); $new_file_name = "claim-result-" . time() . "-" . uniqid();
$ekstension = "." . explode("/", $_FILES['file_penunjang']['type']["member_" .$member_id][$key])[1]; $ekstension = "." . explode("/", $_FILES['file_penunjang']['type']["member_" .$member_id][$key])[1];
$pathFile = $folder . $new_file_name . $ekstension; $pathFile = $folder . $new_file_name . $ekstension;
@@ -144,7 +153,6 @@ class ClaimRequestController extends Controller
if (isset($_FILES['file_diagnosa'])) { if (isset($_FILES['file_diagnosa'])) {
foreach ($_FILES['file_diagnosa']['error']["member_" .$member_id] as $key => $value) { foreach ($_FILES['file_diagnosa']['error']["member_" .$member_id] as $key => $value) {
if ($value == 0) { if ($value == 0) {
$folder = "claim/";
$new_file_name = "claim-diagnosis-" . time() . "-" . uniqid(); $new_file_name = "claim-diagnosis-" . time() . "-" . uniqid();
$ekstension = "." . explode("/", $_FILES['file_diagnosa']['type']["member_" .$member_id][$key])[1]; $ekstension = "." . explode("/", $_FILES['file_diagnosa']['type']["member_" .$member_id][$key])[1];
$pathFile = $folder . $new_file_name . $ekstension; $pathFile = $folder . $new_file_name . $ekstension;
@@ -170,7 +178,6 @@ class ClaimRequestController extends Controller
if (isset($_FILES['file_kondisi'])) { if (isset($_FILES['file_kondisi'])) {
foreach ($_FILES['file_kondisi']['error']["member_" .$member_id] as $key => $value) { foreach ($_FILES['file_kondisi']['error']["member_" .$member_id] as $key => $value) {
if ($value == 0) { if ($value == 0) {
$folder = "claim/";
$new_file_name = "claim-kondisi-" . time() . "-" . uniqid(); $new_file_name = "claim-kondisi-" . time() . "-" . uniqid();
$ekstension = "." . explode("/", $_FILES['file_kondisi']['type']["member_" .$member_id][$key])[1]; $ekstension = "." . explode("/", $_FILES['file_kondisi']['type']["member_" .$member_id][$key])[1];
$pathFile = $folder . $new_file_name . $ekstension; $pathFile = $folder . $new_file_name . $ekstension;

View File

@@ -218,15 +218,15 @@ const DialogDetailClaim = ({ title, openDialog, setOpenDialog, data }: MuiDialog
formData.append(`service_code[${index}]`, claim.typePatient); formData.append(`service_code[${index}]`, claim.typePatient);
claim.laboratoryResult.forEach((file, fileIndex) => { claim.laboratoryResult.forEach((file, fileIndex) => {
formData.append(`laboratorium[${index}][${fileIndex}]`, file); formData.append(`laboratorium[member_${claim.id}][${fileIndex}]`, file);
}); });
claim.anotherDocument.forEach((file, fileIndex) => { claim.anotherDocument.forEach((file, fileIndex) => {
formData.append(`prescription[${index}][${fileIndex}]`, file); formData.append(`prescription[member_${claim.id}][${fileIndex}]`, file);
}); });
claim.fileRealInvoice.forEach((file, fileIndex) => { claim.fileRealInvoice.forEach((file, fileIndex) => {
formData.append(`invoice[${index}][${fileIndex}]`, file); formData.append(`invoice[member_${claim.id}][${fileIndex}]`, file);
}); });
}); });