diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index a347a99b..9e8f056a 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php @@ -377,4 +377,110 @@ class RequestLogController extends Controller return response($pdf->output(), 200, $headers); } + + public function downlodFinalLog($request_log_id) + { + $dataRequestLog = DB::table('request_logs') + ->where('request_logs.id', '=', $request_log_id) + ->first(); + $dataMember = DB::table('members') + ->where('members.id', '=', $dataRequestLog->member_id) + ->select( + 'members.principal_id', + 'members.name', + 'members.birth_date', + 'members.member_id', + 'members.gender', + DB::raw(' + (Select persons.nik FROM persons WHERE persons.id = members.person_id LIMIT 1) AS nik + '), + DB::raw(' + "Link Sehat" AS penjamin + '), + DB::raw(' + (Select corporates.name FROM corporates + INNER JOIN corporate_employees ON corporate_employees.corporate_id = corporates.id + WHERE corporate_employees.member_id = members.id LIMIT 1) AS nama_perusahaan + '), + DB::raw(' + (Select member_policies.policy_id FROM member_policies WHERE member_policies.member_id = members.member_id LIMIT 1) AS no_polis + '), + DB::raw(' + (Select member_policies.status FROM member_policies WHERE member_policies.member_id = members.member_id LIMIT 1) AS status_polis + '), + DB::raw(' + (Select plans.code FROM member_plans + INNER JOIN plans ON plans.id = member_plans.plan_id + WHERE member_plans.member_id = members.id LIMIT 1) AS code_plan + '), + DB::raw(' + (Select plans.limit_rules FROM member_plans + INNER JOIN plans ON plans.id = member_plans.plan_id + WHERE member_plans.member_id = members.id LIMIT 1) AS limit_rules + '), + DB::raw(' + "IDR" AS mata_uang + '), + 'members.members_effective_date AS mulai', + 'members.members_expire_date AS akhir' + ) + ->first(); + $data['namaKaryawan'] = ''; + if($dataMember->principal_id) + { + $dataNamaKaryawan = DB::table('members') + ->where('members.member_id', '=', $dataMember->principal_id) + ->select('members.name') + ->limit(1) + ->first(); + $data['namaKaryawan'] = $dataNamaKaryawan->name; + } + else{ + $data['namaKaryawan'] = $dataMember->name; + } + + $data['dataMember'] = $dataMember; + + $data['request_logs'] = $dataRequestLog; + + $dataClaimLog = DB::table('request_log_benefits') + ->where('request_log_benefits.request_log_id', '=', 2) + ->select( + '*', + DB::raw(' + (Select benefits.description FROM benefits + WHERE benefits.id = request_log_benefits.benefit_id LIMIT 1) AS benfit + ') + ) + ->get(); + + $data['dataClaimLog'] = $dataClaimLog; + + $pdf = new Dompdf(); + + $options = new Options(); + $options->set('isHtml5ParserEnabled', true); + $options->set('isPhpEnabled', true); + $options->set(['isRemoteEnabled' => true]); + $pdf->setOptions($options); + + // Halaman 1 + $html1 = view('pdf.final_log_page_1', $data); + + // Halaman 2 + $html2 = view('pdf.final_log_page_2', $data); + + // Gabung konten HTML dari dua tampilan + $htmlCombined = $html1 . $html2; + + $pdf->loadHtml($htmlCombined); + $pdf->render(); + + $headers = [ + 'Content-Type' => 'application/pdf', + 'Content-Disposition' => 'inline; filename="file.pdf"', + ]; + + return response($pdf->output(), 200, $headers); + } } diff --git a/Modules/HospitalPortal/Routes/api.php b/Modules/HospitalPortal/Routes/api.php index f0717cc0..21d36781 100644 --- a/Modules/HospitalPortal/Routes/api.php +++ b/Modules/HospitalPortal/Routes/api.php @@ -55,6 +55,7 @@ Route::prefix('v1')->group(function() { Route::get('get-final-log', 'getFinalLog'); Route::post('request-final-log', 'requestFinalLog'); Route::get('download-log/{request_log_id}', 'downlodLog'); + Route::get('download-final-log/{request_log_id}', 'downlodFinalLog'); }); //Notification Route::controller(NotificationController::class)->group(function() { diff --git a/frontend/hospital-portal/src/layouts/dashboard/header/AccountPopover.tsx b/frontend/hospital-portal/src/layouts/dashboard/header/AccountPopover.tsx index 2f0c3d3c..c4a5b9a8 100644 --- a/frontend/hospital-portal/src/layouts/dashboard/header/AccountPopover.tsx +++ b/frontend/hospital-portal/src/layouts/dashboard/header/AccountPopover.tsx @@ -86,10 +86,10 @@ export default function AccountPopover() { > - Rayan Moran + Hospital Admin - rayan.moran@gmail.com + hospitaladmin@gmail.com diff --git a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx index 5ede566c..2aa3b990 100644 --- a/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx +++ b/frontend/hospital-portal/src/layouts/dashboard/navbar/NavbarDocs.tsx @@ -16,7 +16,7 @@ export default function NavbarDocs() {
- Hi, Rayan Moran + Hi, Hospital Admin Need help? @@ -25,7 +25,7 @@ export default function NavbarDocs() {
- Hak Cipta © 2023 - 2024 Link Medis Sehat + Hak Cipta © 2023 - 2024 Link Sehat ); diff --git a/frontend/hospital-portal/src/sections/dashboard/TableList.tsx b/frontend/hospital-portal/src/sections/dashboard/TableList.tsx index b3f95ca0..c484f4ed 100644 --- a/frontend/hospital-portal/src/sections/dashboard/TableList.tsx +++ b/frontend/hospital-portal/src/sections/dashboard/TableList.tsx @@ -350,12 +350,12 @@ function handleChangeTab(event: React.SyntheticEvent, newValue: string) { View - {/* {obj.status === 'approved' ? ( */} + {obj.status === 'approved' ? ( handleDownloadLog(obj.id)}> Download LOG - {/* ):''} */} + ):''} {obj.final_log === 0 && obj.status === 'approved' ? ( handleRequestFinalLog(obj.id, obj.full_name, obj.no_polis, obj.submission_date) }> diff --git a/frontend/hospital-portal/src/sections/dashboard/TableListFinalLog.tsx b/frontend/hospital-portal/src/sections/dashboard/TableListFinalLog.tsx index 4a71e61d..64693eb3 100644 --- a/frontend/hospital-portal/src/sections/dashboard/TableListFinalLog.tsx +++ b/frontend/hospital-portal/src/sections/dashboard/TableListFinalLog.tsx @@ -38,23 +38,16 @@ export default function TableListFinalLog() { const [data, setData] = useState([]); // Download LOG - async function handleDownloadLog(claimRequest:any) { + async function handleDownloadLog(request_log_id:any) { return axios - .get(`claim-requests/${claimRequest}/log`, { + .get(`download-final-log/${request_log_id}`, { responseType: 'blob', }) .then((response) => { - window.open(URL.createObjectURL(response.data)); - // setLoadingLog(false); + window.open(URL.createObjectURL(response.data), '_blank'); }) - // .then((blobFile) => { - // new File([blobFile], 'asdads.pdf', { type: blobFile.type }) - // setLoadingLog(false); - // }) .catch((response) => { - console.log(response); enqueueSnackbar(response.message, { variant: 'error' }); - // setLoadingLog(false); }); } @@ -350,9 +343,9 @@ export default function TableListFinalLog() { View {obj.status === 'approved' ? ( - handleDownloadLog(obj.claim_request_id)}> + handleDownloadLog(obj.id)}> - Download LOG + Download Final LOG ):''} {!obj.check_claim && obj.status === 'approved' ? ( diff --git a/resources/views/pdf/final_log_page_1.blade.php b/resources/views/pdf/final_log_page_1.blade.php new file mode 100644 index 00000000..80eeb827 --- /dev/null +++ b/resources/views/pdf/final_log_page_1.blade.php @@ -0,0 +1,318 @@ + + + + + + + + +
+
+
+
+ The Future Of Healthcare At Your Fingertips +
+ +
+
+ SURAT JAMINAN +
+
+ (SURAT JAMINAN INI HARUS DITANDATANGANI OLEH PASIEN) +
+
+ + + + + + + + + + + + + + + + + +
No. Klaim:{{$request_logs->code}}Tanggal:{{ \Carbon\Carbon::parse($request_logs->submission_date)->format('d M Y') }}
Kepada:Plan Polis:{{ $dataMember->code_plan }}
+
+ (HOT LINE LINK SEHAT) +
+
+ Link Sehat bertindak mewakili perusahaan asuransi/penanggung untuk mengeluarkan Surat Jaminan Awal untuk peserta dibawah ini : +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Jenis Surat Jaminan:SURAT JAMINAN AKHIRPenjamin:{{ $dataMember->penjamin }}
Nama Peserta:{{ $dataMember->name }}Nama Perusahaan:{{ $dataMember->nama_perusahaan }}
Nama Karyawan:{{ $namaKaryawan }}No. Polis:{{ $dataMember->code_plan }}
Tanggal Lahir:{{ \Carbon\Carbon::parse($dataMember->birth_date)->format('d M Y') }}Produk:{{ $dataMember->no_polis }}
Jenis Kelamin:{{ $dataMember->gender == 'male' ? 'Laki-Laki' : 'Perempuan' }}Tipe:{{ $dataMember->limit_rules == '999999999' ? 'As Charge' : 'Max Amount, Rp '.number_format($dataMember->limit_rules, 2, ',', '.') }}
Member ID:{{ $dataMember->member_id }}Status Polis:{{ $dataMember->status_polis == 'active' ? 'Aktif' : 'Tidak Aktif' }}
Identitas Peserta:{{ $dataMember->nik }}Tanggal Mulai Akhir:{{ \Carbon\Carbon::parse($dataMember->mulai)->format('d M Y') }} - {{ \Carbon\Carbon::parse($dataMember->akhir)->format('d M Y') }}
Hak Kamar Pasien:Mata Uang:{{ $dataMember->mata_uang }}
Tanggal Pembayaran:Rumah Sakit:
Alamat:
+ + + + + + + + + + + + + @php + $No = 1; + $total_claim = 0; + $total_disetujui = 0; + $total_selisih = 0; + @endphp + @foreach($dataClaimLog as $claimLog) + @php + $total_claim += $claimLog->amount_incurred; + $total_disetujui += $claimLog->amount_approved; + $total_selisih += $claimLog->excess_paid; + @endphp + + + + + + + + + @endforeach + + + + + + + + + + + +
No.Item LayananTotal KlaimTotal DisetujuiTotal SelisihKeterangan
{{ $No++ }}{{ $claimLog->benfit}}{{ number_format($claimLog->amount_incurred, 2, ',', '.') }}{{ number_format($claimLog->amount_approved, 2, ',', '.') }}{{ number_format($claimLog->excess_paid, 2, ',', '.') }}{{ $claimLog->keterangan}}
Total{{ number_format($total_claim, 2, ',', '.') }}{{ number_format($total_disetujui, 2, ',', '.') }}{{ number_format($total_selisih, 2, ',', '.') }}
+
+ The Future Of Healthcare At Your Fingertips +
+
+ PT Link Medis Sehat
+ Primaya Hospital Corporate
+ Graha Cempaka Mas Blok D5-6
+ Jl. Let. Jend. Suprapto, Jakarta Pusat 10640, Indonesia
+ Telp (021) 4217746/47 +
+
+ + \ No newline at end of file diff --git a/resources/views/pdf/final_log_page_2.blade.php b/resources/views/pdf/final_log_page_2.blade.php new file mode 100644 index 00000000..ea7a1425 --- /dev/null +++ b/resources/views/pdf/final_log_page_2.blade.php @@ -0,0 +1,254 @@ + + + + + + + + +
+
+
+
+ The Future Of Healthcare At Your Fingertips +
+ +
+
SYARAT DAN KETENTUAN
+ + + + + + + + + + + + + + + + + + + + + + + + + +
1. Surat jaminan ini hanya berlaku untuk diagnosa yang tercantum diatas. + Apabila ditemukan adanya perubahan atau penambahan diagnosa, maka Link Sehat berhak membatalkan surat jaminan. + Mohon untuk menghubungi Link Sehat apabila ada perubahan diagnosa dan diagnosa tambahan.
2. Surat jaminan ini dinyatakan berlaku apabila disertai surat jaminan akhir dengan + nominal yang tertera pada kolom diatas.
3. Surat jaminan ini tidak berlaku untuk biaya diluar medis seperti makan/minum + diluar ketentuan, tagihan telepon, binatu, dan lain-lain. Mohon ditagihkan langsung kepeserta.
4. Rumah sakit harap segera menghubungi Link Sehat apabila biaya rumah sakit melebihi batas tertanggung diatas.
5. Rumah sakit wajib menghubungi Link Sehat sebelum pasien meninggalkan rumah sakit + dapat menghubungi biaya apa saja yang dijamin oleh Link Sehat. Jika peserta meninggalkan rumah sakit sebelum mengkonfirmasikan ke Link Sehat, + maka Link Sehat tidak bertanggung jawab atas biaya yang tidak dijamin oleh pihak asuransi.
6. Peserta bertanggung jawab untuk menyelesaikan secara langsung kepada pihak rumah sakit dan penyedia jasa medis + apabila terjadi selisih biaya (ekses) atas seluruh biaya perawatan, biaya medis, dan yang lain yang telah terjadi sehubungan + dengan rawat inap, maupun atas perihal perawatan medis yang tidak tercakup dalam polis asuransi dikarenakan karena alasan apapun. + Apabila biaya-biaya tersebut telah dijamin oleh Link Sehat atas nama nasabah, maka peserta akan membayar kembali ke pihak Link Sehat + secara penuh termasuk biaya berhubungan dengan penagihan (apabila ada) yang terjadi ke pihak Link Sehat atas biaya yang tidak termasuk dalam manfaat polis.
7. Dengan ini perserta menyatakan mengetahui dan menyetujui ketentuan selisih biaya yang telah disebutkan diatas.
8. Dalam hal surat jaminan ini tidak ditandatangani oleh peserta yang bersangkutan maka rumah sakit berkewajiban untuk menyampaikan keadaan tersebut + kepada Link Sehat dalam kurun waktu paling lambat 1x24 jam, dalam hal tidak ada perubahan dalam jangka waktu yang telah ditentukan tersebut + maka dianggap peserta yang bersangkutan telah setuju dengan ketentuan yang terdapat dalam surat jaminan ini.
+
+ +
+ Hormat Kami,
+ Acknowledged, +
+
+ [..................................................] +
+
+ [{{ $dataMember->name }}] +
+
+ The Future Of Healthcare At Your Fingertip +
+
+ PT Link Medis Sehat
+ Primaya Hospital Corporate
+ Graha Cempaka Mas Blok D5-6
+ Jl. Let. Jend. Suprapto, Jakarta Pusat 10640, Indonesia
+ Telp (021) 4217746/47 +
+
+ + \ No newline at end of file diff --git a/resources/views/pdf/req_log_page_1.blade.php b/resources/views/pdf/req_log_page_1.blade.php index 768e27dd..62aa9074 100644 --- a/resources/views/pdf/req_log_page_1.blade.php +++ b/resources/views/pdf/req_log_page_1.blade.php @@ -156,7 +156,7 @@ Kepada : - {{ $dataMember->name }} + Plan Polis : {{ $dataMember->code_plan }}