diff --git a/Modules/Internal/Http/Controllers/Api/ClaimRequestController.php b/Modules/Internal/Http/Controllers/Api/ClaimRequestController.php index 6e73e4ae..d72b1ea2 100644 --- a/Modules/Internal/Http/Controllers/Api/ClaimRequestController.php +++ b/Modules/Internal/Http/Controllers/Api/ClaimRequestController.php @@ -446,8 +446,9 @@ class ClaimRequestController extends Controller $result_headers = array_merge($result_headers, ['Ingest Code', 'Ingest Note']); $import->addArrayToRow($result_headers); - - + $imported_claim_data = 0; + $failed_claim_data = []; + $doc_headers_indexes = []; foreach ($sheet->getRowIterator() as $index => $row) { if ($index == 1) { // First Row Must be Header @@ -477,15 +478,19 @@ class ClaimRequestController extends Controller $dateSubmission = Helper::dateParser($result_headers['date_submission']); // Format tanggal sesuai kebutuhan // Mengubah nilai date_submission menjadi string tanggal $result_headers['date_submission'] = $dateSubmission; + // dd($result_headers); $import->addArrayToRow($result_headers, $sheet->getName()); + $imported_claim_data++; } catch (ImportRowException $e) { // Write Data Validation Error to File // $import->read($fileRead); // $import->write($fileWrite, 'xsls'); - $import->addArrayToRow(array_merge($row_data, [ + $new_claim_data = $import->addArrayToRow(array_merge($row_data, [ 'Ingest Code' => $e->getCode(), 'Ingest Note' => $e->getMessage(), ]), $sheet->getName()); + + $failed_claim_data[] = ['row_number' => $index, 'error' => $e->getMessage(),'data' => $new_claim_data]; } // catch (\Exception $e) { // // throw new \Exception($e); @@ -504,14 +509,14 @@ class ClaimRequestController extends Controller $import->reader->close(); Storage::delete('temp/' . $file_name); $import->writer->close(); - return [ - // 'total_successed_row' => $imported_plan_data, - // 'total_failed_row' => count($failed_plan_data), - // 'failed_row' => $failed_plan_data, + 'result_file' => [ 'url' => Storage::disk('public')->url('temp/result-' . $file_name), 'name' => 'result-' . $file_name, + 'total_successed_row' => $imported_claim_data, + 'total_failed_row' => count($failed_claim_data), + 'failed_row' => $failed_claim_data, ] ]; } diff --git a/app/Services/ClaimRequestService.php b/app/Services/ClaimRequestService.php index 4ddb237b..7d58cf03 100644 --- a/app/Services/ClaimRequestService.php +++ b/app/Services/ClaimRequestService.php @@ -52,23 +52,27 @@ class ClaimRequestService{ $statusClaim = null; } - $claimRequestData = [ - 'code' => $code, - 'request_log_id' => $requestLogID ?? 0, - 'member_id' => $member->id, - 'submission_date' => $submissionDate ?? now(), - 'status' => $status, - 'claim_management' => $claimManagement, - 'status_claim_management' => $statusClaim, - 'submission_date_claim_management' => $submissionDateClaimManagement, - 'submission_by_claim_management' => $submissionByClaimManagement, - 'payment_type' => $paymentType, - 'service_code' => $serviceCode, - 'policy_id' => $member->currentPolicy->id ?? null, - 'organization_id' => $organization ? $organization->id : 0, - ]; + if($row['total_billing']) { + $data = [ + 'code' => $code, + 'request_log_id' => $requestLogID ?? 0, + 'member_id' => $member->id, + 'submission_date' => $submissionDate ?? now(), + 'status' => $status, + 'claim_management' => $claimManagement, + 'status_claim_management' => $statusClaim, + 'submission_date_claim_management' => $submissionDateClaimManagement, + 'submission_by_claim_management' => $submissionByClaimManagement, + 'payment_type' => $paymentType, + 'service_code' => $serviceCode, + 'policy_id' => $member->currentPolicy->id ?? null, + 'organization_id' => $organization ? $organization->id : 0, + ]; + } else { + $data = []; + } + $claimRequest = ClaimRequest::updateOrCreate(['request_log_id' => $requestLogID],$data); - $claimRequest = ClaimRequest::updateOrCreate(['request_log_id' => $requestLogID],$claimRequestData); if (count($row)>0){ $benefitData = Benefit::where('code', $row['benefit_code'])->first(); $requestLogData = RequestLogBenefit::updateOrCreate( @@ -194,9 +198,6 @@ class ClaimRequestService{ $date = date('ymd'); // Menghasilkan kode dengan format yang diinginkan $code = 'CLAIM' . $sparator. 'I' . $sparator. $organization->code . $sparator. $date. $sparator . $member->currentPolicy->code . $sparator. $member->member_id . $sparator. str_pad($next_number, 5, '0', STR_PAD_LEFT); - - // $code = $row['client_claim_id']; - // dd($row['date_submission']); $submissionDate = Helper::dateParser($row['date_submission']); $paymentType = $requestLog->payment_type; if ($row['qc'] == 'Y'){ @@ -205,7 +206,6 @@ class ClaimRequestService{ $status = 'requested'; } $serviceCode = $requestLog->service_code; - $newClaimRequest = $this->storeClaimRequest( row: $row, code: $code, @@ -218,15 +218,6 @@ class ClaimRequestService{ organization_code: $organization->code ); $newlyCreatedID = $newClaimRequest->id; - // $newClaimManangement = $this->storeClaimManagement($row, $member, $newlyCreatedID); - // ClaimRequested::dispatch($newClaimRequest); - // // Log History - // $newClaimRequest->histories()->create([ - // 'title' => 'New Claim Requested', - // 'description' => "Claim Requested for Member : {$member->member_id} - ({$member->full_name})", - // 'type' => 'info', - // 'system_origin' => 'import-internal-aso' - // ]); return $newClaimRequest; } catch (\Exception $e) { throw $e; diff --git a/frontend/dashboard/src/pages/ClaimRequests/List.tsx b/frontend/dashboard/src/pages/ClaimRequests/List.tsx index 1720ab48..6a9defb3 100644 --- a/frontend/dashboard/src/pages/ClaimRequests/List.tsx +++ b/frontend/dashboard/src/pages/ClaimRequests/List.tsx @@ -366,14 +366,32 @@ export default function List() { )} {importResult && ( + // + // + // Last Import Result Report :{' '} + // + // {importResult.result_file?.name ?? '-'} + // + // + // + - Last Import Result Report :{' '} + Last Import Result :{' '} + + {importResult.result_file?.total_success_row ?? 0} + {' '} + Row Processed,{' '} + + {importResult.result_file?.total_failed_row} + {' '} + Failed, Report :{' '} {importResult.result_file?.name ?? '-'} + )} );