From 3a0c7fc06ad8b735eb79ec33fca3db9a5a451236 Mon Sep 17 00:00:00 2001 From: ivan-sim Date: Tue, 2 Jan 2024 15:47:10 +0700 Subject: [PATCH 1/8] Update LOG Awal --- .../Controllers/Api/RequestLogController.php | 15 +- public/images/vale_logo.png | Bin 0 -> 118345 bytes resources/views/pdf/req_log_page_1.blade.php | 296 +++++++++++++----- 3 files changed, 220 insertions(+), 91 deletions(-) create mode 100644 public/images/vale_logo.png diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index d07fc43a..af1b65ff 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php @@ -302,13 +302,17 @@ class RequestLogController extends Controller (Select persons.nik FROM persons WHERE persons.id = members.person_id LIMIT 1) AS nik '), DB::raw(' - "Link Sehat" AS penjamin + "LinkSehat" 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 services.name FROM services + WHERE services.code = "'.$dataRequestLog->service_code.'" LIMIT 1) AS jenis_perwatan + '), DB::raw(' (Select member_policies.policy_id FROM member_policies WHERE member_policies.member_id = members.member_id LIMIT 1) AS no_polis '), @@ -376,14 +380,17 @@ class RequestLogController extends Controller $options->set(['isRemoteEnabled' => true]); $pdf->setOptions($options); + $pdf->setPaper('A4', 'portrait'); + // Halaman 1 $html1 = view('pdf.req_log_page_1', $data); // Halaman 2 - $html2 = view('pdf.req_log_page_2', $data); + // $html2 = view('pdf.req_log_page_2', $data); // Gabung konten HTML dari dua tampilan - $htmlCombined = $html1 . $html2; + // $htmlCombined = $html1 . $html2; + $htmlCombined = $html1; $pdf->loadHtml($htmlCombined); $pdf->render(); @@ -413,7 +420,7 @@ class RequestLogController extends Controller (Select persons.nik FROM persons WHERE persons.id = members.person_id LIMIT 1) AS nik '), DB::raw(' - "Link Sehat" AS penjamin + "LinkSehat" AS penjamin '), DB::raw(' (Select corporates.name FROM corporates diff --git a/public/images/vale_logo.png b/public/images/vale_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8c52744af386e117af024492ca22c90ce85652 GIT binary patch literal 118345 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 literal 0 HcmV?d00001 diff --git a/resources/views/pdf/req_log_page_1.blade.php b/resources/views/pdf/req_log_page_1.blade.php index dbd2ba2c..482e26ce 100644 --- a/resources/views/pdf/req_log_page_1.blade.php +++ b/resources/views/pdf/req_log_page_1.blade.php @@ -3,6 +3,10 @@ + @php + $dynamicVariableName = 'font_size_' . now()->timestamp; + $$dynamicVariableName = 10; + @endphp
-
-
+ +
+
The Future Of Healthcare At Your Fingertips
+ -
-
+
+
SURAT JAMINAN
-
- (SURAT JAMINAN INI HARUS DITANDATANGANI OLEH PASIEN) +
+ (SURAT JAMINAN INI HARUS DITANDATANGANI OLEH PASIEN)
- +
@@ -162,13 +225,13 @@
No. Klaim :{{ $dataMember->code_plan }}
-
- Call Center LinkSehat : 08114123962 +
+ Call Center LinkSehat : 08114123962
-
- Link Sehat bertindak mewakili perusahaan asuransi/penanggung untuk mengeluarkan Surat Jaminan Awal untuk peserta dibawah ini : +
+ LinkSehat bertindak mewakili perusahaan asuransi/penanggung untuk mengeluarkan Surat Jaminan Awal untuk peserta dibawah ini :
- +
@@ -189,85 +252,144 @@ - + - + - - - - + - + + + + + + - - - - - - - - - - - - - + - + + + + + + - + + + + + - + + + + +
Jenis Surat Jaminan :Nama Karyawan : {{ $namaKaryawan }}No. PolisPhone Perusahaan :{{ $dataMember->code_plan }}
Tanggal Lahir : {{ \Carbon\Carbon::parse($dataMember->birth_date)->format('d M Y') }}Tipe:{{ $dataMember->limit_rules == '999999999' ? 'As Charge' : 'Max Amount, Rp '.number_format($dataMember->limit_rules, 2, ',', '.') }}{{ $dataMember->no_polis }}
Jenis Kelamin : {{ $dataMember->gender == 'male' ? 'Laki-Laki' : 'Perempuan' }}{{ $dataMember->limit_rules == '999999999' ? 'As Charge' : 'Max Amount, Rp '.number_format($dataMember->limit_rules, 2, ',', '.') }}
Member ID (BN):{{ $dataMember->member_id }} Status Polis : {{ $dataMember->status_polis == 'active' ? 'Aktif' : 'Tidak Aktif' }}
Member ID:{{ $dataMember->member_id }}Tanggal Mulai/Akhir:{{ \Carbon\Carbon::parse($dataMember->mulai)->format('d M Y') }} - {{ \Carbon\Carbon::parse($dataMember->akhir)->format('d M Y') }}
Identitas Peserta : {{ $dataMember->nik }}Mata Uang:{{ $dataMember->mata_uang }}{{ \Carbon\Carbon::parse($request_logs->submission_date)->format('d M Y') }}
Hak Kamar Pasien : {{ $dataMember->mata_uang }}
Penempatan Kamar: Alamat Provider : {{ $rumahSakit->alamat_rumahsakit }}
Tanggal PembayaranNo. Rekam Medis :
{{ $dataMember->jenis_perwatan }}
-
+
+ Keterangan: +
+
+ Mohon konfirmasi ke LinkSehat (Alarm Center Makassar) jika ada rujukan pasien ke spesialis lain.
Surat Jaminan ini dinyatakan berlaku apabila disertai surat jaminan akhir dengan nominal yang tertera pada akhir perawatan.
-
- The Future Of Healthcare At Your Fingertips +
+
SYARAT DAN KETENTUAN
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1.Surat jaminan ini hanya berlaku untuk diagnosa yang tercantum di atas. Apabila ditemukan adanya perubahan atau penambahan diagnosa, maka LinkSehat berhak membatalkan surat jaminan. Mohon menghubungi LinkSehat apabila ada perubahan diagnosa dan diagnosa tambahan.
2.Surat jaminan ini dinyatakan berlaku apabila disertai surat jaminan akhir dengan nominal yang tertera pada kolom di atas.
3.Surat jaminan ini tidak berlaku untuk biaya diluar medis seperti makan/minum di luar ketentuan, tagihan telepon, binatu, dan lain lain. Mohon ditagihkan langsung ke peserta.
4.Rumah sakit harap segera menghubungi LinkSehat apabila biaya rumah sakit melebihi batas tertanggung diatas.
5.Rumah sakit wajib menghubungi LinkSehat sebelum pasien meninggalkan rumah sakit agar pihak rumah sakit dapat mengetahui biaya apa saja yang dijamin oleh LinkSehat. Jika peserta meninggalkan rumah sakit sebelum mengkonfirmasikan ke LinkSehat, maka LinkSehat tidak bertanggung jawab atas biaya yang tidak dijamin oleh pihak penjamin/payor.
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 Buku Jaminan Kesehatan Pekerja dikarenakan karena alasan apapun. Apabila biaya-biaya tersebut telah dijaminkan oleh LinkSehat atas nama nasabah, maka peserta akan membayar kembali ke pihak LinkSehat secara penuh termasuk biaya berhubungan dengan penagihan (apabila ada) yang terjadi ke pihak LinkSehat atas biaya yang tidak termasuk dalam manfaat kesehatan.
7.Dengan ini peserta menyatakan mengetahui dan menyetujui ketentuan selisih biaya yang telah disebutkan di atas.
8.Dalam hal surat jaminan in tidak ditandatangani oleh peserta yang bersangkutan maka rumah sakit berkewajiban untuk menyampaikan keadaan tersebut kepada LinkSehat 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,
+ PT. Vale Indonesia Tbk +
+
+ Dr. Hery Hermas, M.Kes
+ Offsite Medical Treatment +
+
+ {{ \Carbon\Carbon::parse(now())->format('d M Y') }},
+ Petugas Alarm Center +
+
+ (Nama Petugas)
+ Customer Service Team +
+
+ {{ $dataMember->name }} +
+
+ Alarm Center Vale MKS (LinkSehat) Office
+ PT. Vale Indonesia Tbk. Makassar Representative Office
+ Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 +
+
PT Link Medis Sehat
Primaya Hospital Corporate
Graha Cempaka Mas Blok D5-6
From 519c8e5ed88205d2971c65bdb0c567864a01e969 Mon Sep 17 00:00:00 2001 From: ivan-sim Date: Tue, 2 Jan 2024 16:23:23 +0700 Subject: [PATCH 2/8] Update FINAL LOG --- .../Controllers/Api/RequestLogController.php | 4 + .../views/pdf/final_log_page_1.blade.php | 248 +++++++++++------- .../views/pdf/final_log_page_2.blade.php | 247 +++++++++-------- 3 files changed, 306 insertions(+), 193 deletions(-) diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index af1b65ff..db2cf4b9 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php @@ -427,6 +427,10 @@ class RequestLogController extends Controller 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 services.name FROM services + WHERE services.code = "'.$dataRequestLog->service_code.'" LIMIT 1) AS jenis_perwatan + '), DB::raw(' (Select member_policies.policy_id FROM member_policies WHERE member_policies.member_id = members.member_id LIMIT 1) AS no_polis '), diff --git a/resources/views/pdf/final_log_page_1.blade.php b/resources/views/pdf/final_log_page_1.blade.php index 90fa979f..7ac8c90a 100644 --- a/resources/views/pdf/final_log_page_1.blade.php +++ b/resources/views/pdf/final_log_page_1.blade.php @@ -3,6 +3,10 @@ + @php + $dynamicVariableName = 'font_size_' . now()->timestamp; + $$dynamicVariableName = 10; + @endphp
-
-
+ +
+
The Future Of Healthcare At Your Fingertips
+ -
-
+
+
SURAT JAMINAN
-
- (SURAT JAMINAN INI HARUS DITANDATANGANI OLEH PASIEN) +
+ (SURAT JAMINAN INI HARUS DITANDATANGANI OLEH PASIEN)
- +
- + @@ -170,13 +225,13 @@
No. Klaim :{{$request_logs->code}}{{ wordwrap($request_logs->code,15,"
\n")}}
Tanggal : {{ \Carbon\Carbon::parse($request_logs->submission_date)->format('d M Y') }}{{ $dataMember->code_plan }}
-
- Call Center LinkSehat : 08114123962 +
+ Call Center LinkSehat : 08114123962
-
- Link Sehat bertindak mewakili perusahaan asuransi/penanggung untuk mengeluarkan Surat Jaminan Awal untuk peserta dibawah ini : +
+ LinkSehat bertindak mewakili perusahaan asuransi/penanggung untuk mengeluarkan Surat Jaminan Akhir untuk peserta dibawah ini :
- +
@@ -197,56 +252,52 @@ - + - + - - - - + - + + + + + + - - - - - - - - - - + + + + + + - + @@ -254,13 +305,23 @@ - + - + + + + + + + + + + +
Jenis Surat Jaminan :Nama Karyawan : {{ $namaKaryawan }}No. PolisPhone Perusahaan :{{ $dataMember->code_plan }}
Tanggal Lahir : {{ \Carbon\Carbon::parse($dataMember->birth_date)->format('d M Y') }}Tipe:{{ $dataMember->limit_rules == '999999999' ? 'As Charge' : 'Max Amount, Rp '.number_format($dataMember->limit_rules, 2, ',', '.') }}{{ $dataMember->no_polis }}
Jenis Kelamin : {{ $dataMember->gender == 'male' ? 'Laki-Laki' : 'Perempuan' }}{{ $dataMember->limit_rules == '999999999' ? 'As Charge' : 'Max Amount, Rp '.number_format($dataMember->limit_rules, 2, ',', '.') }}
Member ID (BN):{{ $dataMember->member_id }} Status Polis : {{ $dataMember->status_polis == 'active' ? 'Aktif' : 'Tidak Aktif' }}
Member ID:{{ $dataMember->member_id }}Tanggal Mulai/Akhir:{{ \Carbon\Carbon::parse($dataMember->mulai)->format('d M Y') }} - {{ \Carbon\Carbon::parse($dataMember->akhir)->format('d M Y') }}
Identitas Peserta : {{ $dataMember->nik }}{{ \Carbon\Carbon::parse($request_logs->submission_date)->format('d M Y') }}
Hak Kamar Pasien: Mata Uang : {{ $dataMember->mata_uang }}
Hak Kamar PasienPenempatan Kamar : Alamat Provider{{ $rumahSakit->alamat_rumahsakit }}
Tanggal PembayaranNo. Rekam Medis :
Jenis Perawatan:{{ $dataMember->jenis_perwatan }}
- +
@@ -296,19 +357,28 @@ - - - - - + + + + +
No.
Total{{ number_format($total_claim, 2, ',', '.') }}{{ number_format($total_disetujui, 2, ',', '.') }}{{ number_format($total_selisih, 2, ',', '.') }}Total{{ number_format($total_claim, 2, ',', '.') }}{{ number_format($total_disetujui, 2, ',', '.') }}{{ number_format($total_selisih, 2, ',', '.') }}
-
- The Future Of Healthcare At Your Fingertips + + + + + + +
CATATAN
+
+ Alarm Center Vale MKS (LinkSehat) Office
+ PT. Vale Indonesia Tbk. Makassar Representative Office
+ Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113
-
+
PT Link Medis Sehat
Primaya Hospital Corporate
Graha Cempaka Mas Blok D5-6
diff --git a/resources/views/pdf/final_log_page_2.blade.php b/resources/views/pdf/final_log_page_2.blade.php index e9913ed5..a3660d82 100644 --- a/resources/views/pdf/final_log_page_2.blade.php +++ b/resources/views/pdf/final_log_page_2.blade.php @@ -3,6 +3,10 @@ + @php + $dynamicVariableName = 'font_size_' . now()->timestamp; + $$dynamicVariableName = 10; + @endphp
-
-
+ +
+
The Future Of Healthcare At Your Fingertips
+ -
-
SYARAT DAN KETENTUAN
- - - + +
+
SYARAT DAN KETENTUAN
+
1. Surat jaminan ini hanya berlaku untuk diagnosa yang tercantum di atas. Apabila ditemukan adanya perubahan atau penambahan diagnosa, maka LinkSehat berhak membatalkan surat jaminan. Mohon menghubungi LinkSehat apabila ada perubahan diagnosa dan diagnosa tambahan.
+ + + - + + - + + - + + - + + - + + - + + - + +
1.Surat jaminan ini hanya berlaku untuk diagnosa yang tercantum di atas. Apabila ditemukan adanya perubahan atau penambahan diagnosa, maka LinkSehat berhak membatalkan surat jaminan. Mohon menghubungi LinkSehat apabila ada perubahan diagnosa dan diagnosa tambahan.
2. Surat jaminan ini dinyatakan berlaku apabila disertai surat jaminan akhir dengan nominal yang tertera pada kolom di atas2.Surat jaminan ini dinyatakan berlaku apabila disertai surat jaminan akhir dengan nominal yang tertera pada kolom di atas.
3. Surat jaminan ini tidak berlaku untuk biaya diluar medis seperti makan/minum di luar ketentuan, tagihan telepon, binatu, dan lain lain. Mohon ditagihkan langsung ke peserta.3.Surat jaminan ini tidak berlaku untuk biaya diluar medis seperti makan/minum di luar ketentuan, tagihan telepon, binatu, dan lain lain. Mohon ditagihkan langsung ke peserta.
4. Rumah sakit harap segera menghubungi LinkSehat apabila biaya rumah sakit melebihi batas tertanggung diatas.4.Rumah sakit harap segera menghubungi LinkSehat apabila biaya rumah sakit melebihi batas tertanggung diatas.
5. Rumah sakit wajib menghubungi LinkSehat sebelum pasien meninggalkan rumah sakit agar pihak rumah sakit dapat mengetahui biaya apa saja yang dijamin oleh LinkSehat. Jika peserta meninggalkan rumah sakit sebelum mengkonfirmasikan ke LinkSehat, maka LinkSehat tidak bertanggung jawab atas biaya yang tidak dijamin oleh pihak asuransi.5.Rumah sakit wajib menghubungi LinkSehat sebelum pasien meninggalkan rumah sakit agar pihak rumah sakit dapat mengetahui biaya apa saja yang dijamin oleh LinkSehat. Jika peserta meninggalkan rumah sakit sebelum mengkonfirmasikan ke LinkSehat, maka LinkSehat tidak bertanggung jawab atas biaya yang tidak dijamin oleh pihak penjamin/payor.
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 dijaminkan oleh LinkSehat atas nama nasabah, maka peserta akan membayar kembali ke pihak LinkSehat secara penuh termasuk biaya berhubungan dengan penagihan (apabila ada) yang terjadi ke pihak LinkSehat atas biaya yang tidak termasuk dalam manfaat polis.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 Buku Jaminan Kesehatan Pekerja dikarenakan karena alasan apapun. Apabila biaya-biaya tersebut telah dijaminkan oleh LinkSehat atas nama nasabah, maka peserta akan membayar kembali ke pihak LinkSehat secara penuh termasuk biaya berhubungan dengan penagihan (apabila ada) yang terjadi ke pihak LinkSehat atas biaya yang tidak termasuk dalam manfaat kesehatan.
7. Dengan ini peserta menyatakan mengetahui dan menyetujui ketentuan selisih biaya yang telah disebutkan di atas.7.Dengan ini peserta menyatakan mengetahui dan menyetujui ketentuan selisih biaya yang telah disebutkan di atas.
8. Dalam hal surat jaminan in tidak ditandatangani oleh peserta yang bersangkutan maka rumah sakit berkewajiban untuk menyampaikan keadaan tersebut kepada LinkSehat 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.8.Dalam hal surat jaminan in tidak ditandatangani oleh peserta yang bersangkutan maka rumah sakit berkewajiban untuk menyampaikan keadaan tersebut kepada LinkSehat 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, + PT. Vale Indonesia Tbk
-
- [..................................................] +
+ Dr. Hery Hermas, M.Kes
+ Offsite Medical Treatment
-
- [{{ $dataMember->name }}] +
+ {{ \Carbon\Carbon::parse(now())->format('d M Y') }},
+ Petugas Alarm Center
-
- The Future Of Healthcare At Your Fingertip +
+ (Nama Petugas)
+ Customer Service Team
-
+
+ (Nama Petugas) +
+
+ {{ $dataMember->name }} +
+
+ Alarm Center Vale MKS (LinkSehat) Office
+ PT. Vale Indonesia Tbk. Makassar Representative Office
+ Lt. 1, Jalan Somba Opu 281, Ujung Pandang, Losari,
Kec. Makassar, Kota Makassar, Sulawesi Selatan 90113 +
+
PT Link Medis Sehat
Primaya Hospital Corporate
- Graha Cempaka Mas Blok D No. 5-6
+ Graha Cempaka Mas Blok D5-6
Jl. Let. Jend. Suprapto, Jakarta Pusat 10640, Indonesia
Telp (021) 4217746/47
From f6258fb0dfa229fd5fd69fa67858305af3f7033d Mon Sep 17 00:00:00 2001 From: Linksehat Staging Server Date: Wed, 3 Jan 2024 10:27:15 +0700 Subject: [PATCH 3/8] update --- Modules/Internal/Services/CorporateService.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Modules/Internal/Services/CorporateService.php b/Modules/Internal/Services/CorporateService.php index 75bd80c8..6d1d9ed3 100644 --- a/Modules/Internal/Services/CorporateService.php +++ b/Modules/Internal/Services/CorporateService.php @@ -171,7 +171,7 @@ class CorporateService 'code' => $row['service_code'] ]), 0, null, $row); } - + if (empty($row['plan_code'])) { throw new ImportRowException(__('benefit.PLAN_CODE_REQUIRED'), 0, null, $row); } else if (!in_array($row['plan_code'], $current_corporate_plans)){ @@ -181,16 +181,21 @@ class CorporateService // ]), 0, null, $row); } + + if (empty($row['code'])) { throw new ImportRowException(__('plan.REQUIRED', [ 'attribute' => 'Benefit Code' ]), 0, null, $row); } + if (empty($row['corporate_benefit_code'])) { - throw new ImportRowException(__('plan.REQUIRED', [ + throw new ImportRowException(__('Customer Benefit Code Required', [ 'attribute' => 'Customer Benefit Code' ]), 0, null, $row); } + + if (empty($row['description'])) { throw new ImportRowException(__('plan.REQUIRED', [ 'attribute' => 'Description' @@ -215,9 +220,12 @@ class CorporateService throw new ImportRowException(__('plan.MAX_FREQUENCY'), 0, null, $row); } + + if (!empty($row['budget']) && !in_array($budget_aso)) { throw new ImportRowException(__('plan.MAX_FREQUENCY'), 0, null, $row); } + // if (empty($row['limit_free_tc'])){ // throw new ImportRowException(__('plan.REQUIRED', [ From 4e096715c524c76d8622d491785f34883b3a746a Mon Sep 17 00:00:00 2001 From: Tb Fajri Date: Wed, 3 Jan 2024 11:41:24 +0700 Subject: [PATCH 4/8] update --- composer.lock | 832 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 831 insertions(+), 1 deletion(-) diff --git a/composer.lock b/composer.lock index 6a771276..5f607246 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,85 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a52c765d668149ac5dfb14e59c38bd82", + "content-hash": "c779fcf27ac449663570ccbb67a693d1", "packages": [ + { + "name": "barryvdh/laravel-dompdf", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-dompdf.git", + "reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/9843d2be423670fb434f4c978b3c0f4dd92c87a6", + "reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6", + "shasum": "" + }, + "require": { + "dompdf/dompdf": "^2.0.1", + "illuminate/support": "^6|^7|^8|^9|^10", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "nunomaduro/larastan": "^1|^2", + "orchestra/testbench": "^4|^5|^6|^7|^8", + "phpro/grumphp": "^1", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\DomPDF\\ServiceProvider" + ], + "aliases": { + "Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf", + "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf" + } + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\DomPDF\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "A DOMPDF Wrapper for Laravel", + "keywords": [ + "dompdf", + "laravel", + "pdf" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-dompdf/issues", + "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.0.1" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-01-12T15:12:49+00:00" + }, { "name": "barryvdh/laravel-snappy", "version": "v1.0.1", @@ -538,6 +615,68 @@ ], "time": "2022-12-15T16:57:16+00:00" }, + { + "name": "dompdf/dompdf", + "version": "v2.0.4", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/093f2d9739cec57428e39ddadedfd4f3ae862c0f", + "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "masterminds/html5": "^2.0", + "phenx/php-font-lib": ">=0.5.4 <1.0.0", + "phenx/php-svg-lib": ">=0.3.3 <1.0.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ext-json": "*", + "ext-zip": "*", + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "The Dompdf Community", + "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "support": { + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v2.0.4" + }, + "time": "2023-12-12T20:19:39+00:00" + }, { "name": "dragonmantank/cron-expression", "version": "v3.3.2", @@ -1489,6 +1628,90 @@ }, "time": "2018-01-15T06:57:33+00:00" }, + { + "name": "intervention/image", + "version": "2.7.2", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "04be355f8d6734c826045d02a1079ad658322dad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.2" + }, + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + } + ], + "time": "2022-05-21T17:30:32+00:00" + }, { "name": "knplabs/knp-snappy", "version": "v1.4.1", @@ -2302,6 +2525,71 @@ ], "time": "2023-01-19T12:02:19+00:00" }, + { + "name": "league/glide", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/glide.git", + "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/glide/zipball/2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", + "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", + "shasum": "" + }, + "require": { + "intervention/image": "^2.7", + "league/flysystem": "^2.0|^3.0", + "php": "^7.2|^8.0", + "psr/http-message": "^1.0|^2.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "phpunit/php-token-stream": "^3.1|^4.0", + "phpunit/phpunit": "^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Glide\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Reinink", + "email": "jonathan@reinink.ca", + "homepage": "http://reinink.ca" + }, + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com", + "homepage": "https://titouangalopin.com" + } + ], + "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", + "homepage": "http://glide.thephpleague.com", + "keywords": [ + "ImageMagick", + "editing", + "gd", + "image", + "imagick", + "league", + "manipulation", + "processing" + ], + "support": { + "issues": "https://github.com/thephpleague/glide/issues", + "source": "https://github.com/thephpleague/glide/tree/2.3.0" + }, + "time": "2023-07-08T06:26:07+00:00" + }, { "name": "league/mime-type-detection", "version": "1.11.0", @@ -2699,6 +2987,73 @@ }, "time": "2022-12-02T22:17:43+00:00" }, + { + "name": "masterminds/html5", + "version": "2.8.1", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + }, + "time": "2023-05-10T11:58:31+00:00" + }, { "name": "monolog/monolog", "version": "2.9.1", @@ -3474,6 +3829,177 @@ }, "time": "2022-09-26T03:40:35+00:00" }, + { + "name": "phenx/php-font-lib", + "version": "0.5.4", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-font-lib.git", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/dd448ad1ce34c63d09baccd05415e361300c35b4", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4", + "shasum": "" + }, + "require": { + "ext-mbstring": "*" + }, + "require-dev": { + "symfony/phpunit-bridge": "^3 || ^4 || ^5" + }, + "type": "library", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "support": { + "issues": "https://github.com/dompdf/php-font-lib/issues", + "source": "https://github.com/dompdf/php-font-lib/tree/0.5.4" + }, + "time": "2021-12-17T19:44:54+00:00" + }, + { + "name": "phenx/php-svg-lib", + "version": "0.5.1", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-svg-lib.git", + "reference": "8a8a1ebcf6aea861ef30197999f096f7bd4b4456" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/8a8a1ebcf6aea861ef30197999f096f7bd4b4456", + "reference": "8a8a1ebcf6aea861ef30197999f096f7bd4b4456", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1 || ^8.0", + "sabberworm/php-css-parser": "^8.4" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "support": { + "issues": "https://github.com/dompdf/php-svg-lib/issues", + "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.1" + }, + "time": "2023-12-11T20:56:08+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.9.1", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "039de174cd9c17a8389754d3b877a2ed22743e18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/039de174cd9c17a8389754d3b877a2ed22743e18", + "reference": "039de174cd9c17a8389754d3b877a2ed22743e18", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.7.2", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.1" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2023-11-25T22:23:28+00:00" + }, { "name": "phpoffice/phpspreadsheet", "version": "1.27.1", @@ -4381,6 +4907,249 @@ ], "time": "2023-02-07T16:14:23+00:00" }, + { + "name": "sabberworm/php-css-parser", + "version": "8.4.0", + "source": { + "type": "git", + "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=5.6.20" + }, + "require-dev": { + "codacy/coverage": "^1.4", + "phpunit/phpunit": "^4.8.36" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" + }, + "type": "library", + "autoload": { + "psr-4": { + "Sabberworm\\CSS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", + "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0" + }, + "time": "2021-12-11T13:40:54+00:00" + }, + { + "name": "spatie/browsershot", + "version": "3.61.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/browsershot.git", + "reference": "14d75679390b8b84a71b3a17dc5905928deeb887" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/14d75679390b8b84a71b3a17dc5905928deeb887", + "reference": "14d75679390b8b84a71b3a17dc5905928deeb887", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^8.0", + "spatie/image": "^1.5.3|^2.0", + "spatie/temporary-directory": "^1.1|^2.0", + "symfony/process": "^4.2|^5.0|^6.0|^7.0" + }, + "require-dev": { + "pestphp/pest": "^1.20", + "spatie/phpunit-snapshot-assertions": "^4.2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Browsershot\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://github.com/freekmurze", + "role": "Developer" + } + ], + "description": "Convert a webpage to an image or pdf using headless Chrome", + "homepage": "https://github.com/spatie/browsershot", + "keywords": [ + "chrome", + "convert", + "headless", + "image", + "pdf", + "puppeteer", + "screenshot", + "webpage" + ], + "support": { + "source": "https://github.com/spatie/browsershot/tree/3.61.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-12-21T10:00:28+00:00" + }, + { + "name": "spatie/image", + "version": "2.2.7", + "source": { + "type": "git", + "url": "https://github.com/spatie/image.git", + "reference": "2f802853aab017aa615224daae1588054b5ab20e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image/zipball/2f802853aab017aa615224daae1588054b5ab20e", + "reference": "2f802853aab017aa615224daae1588054b5ab20e", + "shasum": "" + }, + "require": { + "ext-exif": "*", + "ext-json": "*", + "ext-mbstring": "*", + "league/glide": "^2.2.2", + "php": "^8.0", + "spatie/image-optimizer": "^1.7", + "spatie/temporary-directory": "^1.0|^2.0", + "symfony/process": "^3.0|^4.0|^5.0|^6.0" + }, + "require-dev": { + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5", + "symfony/var-dumper": "^4.0|^5.0|^6.0", + "vimeo/psalm": "^4.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Image\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Manipulate images with an expressive API", + "homepage": "https://github.com/spatie/image", + "keywords": [ + "image", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/image/tree/2.2.7" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-07-24T13:54:13+00:00" + }, + { + "name": "spatie/image-optimizer", + "version": "1.7.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/image-optimizer.git", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/62f7463483d1bd975f6f06025d89d42a29608fe1", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.3|^8.0", + "psr/log": "^1.0 | ^2.0 | ^3.0", + "symfony/process": "^4.2|^5.0|^6.0|^7.0" + }, + "require-dev": { + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^8.5.21|^9.4.4", + "symfony/var-dumper": "^4.2|^5.0|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ImageOptimizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily optimize images using PHP", + "homepage": "https://github.com/spatie/image-optimizer", + "keywords": [ + "image-optimizer", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/image-optimizer/issues", + "source": "https://github.com/spatie/image-optimizer/tree/1.7.2" + }, + "time": "2023-11-03T10:08:02+00:00" + }, { "name": "spatie/laravel-permission", "version": "5.9.1", @@ -4463,6 +5232,67 @@ ], "time": "2023-02-06T21:37:02+00:00" }, + { + "name": "spatie/temporary-directory", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "php", + "spatie", + "temporary-directory" + ], + "support": { + "issues": "https://github.com/spatie/temporary-directory/issues", + "source": "https://github.com/spatie/temporary-directory/tree/2.2.1" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-12-25T11:46:58+00:00" + }, { "name": "symfony/console", "version": "v6.2.5", From bdf1c664c5dfbd9efe41ce1e450960dca62feeea Mon Sep 17 00:00:00 2001 From: Linksehat Staging Server Date: Wed, 3 Jan 2024 11:46:52 +0700 Subject: [PATCH 5/8] update --- .../Controllers/Api/CorporateController.php | 26 ++++++------ .../Api/CorporateMemberController.php | 40 +++++++++---------- .../Internal/Services/CorporateService.php | 28 ++++++------- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Modules/Internal/Http/Controllers/Api/CorporateController.php b/Modules/Internal/Http/Controllers/Api/CorporateController.php index a8fc5dbd..040b1d3f 100644 --- a/Modules/Internal/Http/Controllers/Api/CorporateController.php +++ b/Modules/Internal/Http/Controllers/Api/CorporateController.php @@ -79,7 +79,7 @@ class CorporateController extends Controller */ public function store(Request $request) { - + $request->validate([ 'code' => 'required|regex:/^[a-zA-Z0-9_]+$/', 'name' => 'required', @@ -468,9 +468,9 @@ class CorporateController extends Controller // $import->read($fileRead); // $import->write($fileWrite, 'xsls'); $result_headers = array_merge($row_data, ['Ingest Code' =>200, 'Ingest Note' => 'Success']); - + $import->addArrayToRow($result_headers, $sheet->getName()); - + } catch (ImportRowException $e) { // Write Data Validation Error to File // $import->read($fileRead); @@ -518,7 +518,7 @@ class CorporateController extends Controller } - public function importDocumentExample($document_type) + public function importDocumentExample($document_type) { switch ($document_type) { case 'plan-benefit': @@ -532,7 +532,7 @@ class CorporateController extends Controller 'file_name' => "Corporate Membership Import.xlsx", "file_url" => url('files/Corporate Membership Import.xlsx') ]); - break; + break; case 'diagnosis-exclusion': return Helper::responseJson([ 'file_name' => "Corporate Exclusion Import.xlsx", @@ -544,31 +544,31 @@ class CorporateController extends Controller 'file_name' => "Template - ICD.xlsx", "file_url" => url('files/Template - ICD.xlsx') ]); - break; + break; case 'master-formularium': return Helper::responseJson([ 'file_name' => "Template - Formularium.xlsx", "file_url" => url('files/Template - Formularium.xlsx') ]); - break; + break; case 'master-formularium-corporate': return Helper::responseJson([ 'file_name' => "Template - Formularium.xlsx", "file_url" => url('files/Template - Formularium - Corporate.xlsx') ]); - break; + break; case 'claim-request': return Helper::responseJson([ 'file_name' => "Template Format Claim.xlsx", "file_url" => url('files/Template Format Claim.xlsx') ]); - break; + break; case 'request-log': return Helper::responseJson([ 'file_name' => "Template Update Status Request LOG.xlsx", "file_url" => url('files/Template Update Status Request LOG.xlsx') ]); - break; + break; default: return Helper::responseJson([], 'error', 404); break; @@ -582,7 +582,7 @@ class CorporateController extends Controller $writer = WriterEntityFactory::createXLSXWriter(); // Membuka penulis untuk menulis ke file $writer->openToFile(public_path('files/CorporatePlan&BenefitImportData.xlsx')); - + // Sheet 1 $writer->getCurrentSheet()->setName('Plans'); $headers_map_to_table_fields = Plan::$listing_doc_headers; @@ -783,7 +783,7 @@ class CorporateController extends Controller { return Helper::responseJson(data: $request->toArray(), message: 'Tidak ada file yang ditambahkan'); } - + } public function getFilesDoc(Request $request) @@ -825,5 +825,5 @@ class CorporateController extends Controller return Helper::responseJson(data: $datas, message: 'Berhasil update status download menjadi '.($request->status_download == 0 ? 'Inactive' : 'Active')); } - + } diff --git a/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php b/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php index 9acc2340..2bbdad92 100644 --- a/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php +++ b/Modules/Internal/Http/Controllers/Api/CorporateMemberController.php @@ -178,7 +178,7 @@ class CorporateMemberController extends Controller $result_headers = $this->memberEnrollmentService->result_doc_headers; $singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRow($result_headers)); $writer->addRow($singleRow); - + $imported_member_data = 0; $failed_member_data = []; foreach ($reader->getSheetIterator() as $sheet) { @@ -202,7 +202,7 @@ class CorporateMemberController extends Controller $new_member_data[$headers_map_to_table_fields[$doc_headers_indexes[$header_index]]] = $cell->getValue(); } } - + try { $rowResponse = $this->memberEnrollmentService->handleImportRow($corporate, $new_member_data); // Write Success Result to File @@ -257,23 +257,23 @@ class CorporateMemberController extends Controller $corporate_id = CorporateEmployee::where('member_id', $member_id)->value('corporate_id'); // $member = Member::findOrFail($member_id) // ->load([ - // 'currentPlan', - // 'currentPolicy', + // 'currentPlan', + // 'currentPolicy', // 'currentPlan.corporateBenefits' => function ($benefit) use ($request) { // return $benefit->when($request->benefit_ids, function ($q, $ids) { - + // $q->whereIn('benefit_id', $ids) // ->where([ // 'corporate_benefits.active' => 1, // 'corporate_benefits.corporate_id' => $corporate_id, // ]); // }); - // }, + // }, // // 'currentPlan.corporateBenefits.benefit' // ]); $member = Member::with([ - 'currentPlan', - 'currentPolicy', + 'currentPlan', + 'currentPolicy', 'currentPlan.corporateBenefits' => function ($query) use ($request, $corporate_id) { $query->when($request->benefit_ids, function ($q, $ids) use ($corporate_id) { $q->whereIn('benefit_id', $ids) @@ -283,7 +283,7 @@ class CorporateMemberController extends Controller }, // 'currentPlan.corporateBenefits.benefit' ])->findOrFail($member_id); - + $dateOfAdmission = $request->date_of_admission ? Carbon::parse($request->date_of_admission) : now(); // return view('pdf.guaranted_leter', compact('member')); @@ -307,7 +307,7 @@ class CorporateMemberController extends Controller // Menulis header kolom $headers_map_to_table_fields = $this->memberEnrollmentService->listing_doc_headers; $headerRow = WriterEntityFactory::createRowFromArray($headers_map_to_table_fields); - + $writer->addRow($headerRow); // dd('test'); // Menulis data @@ -366,7 +366,7 @@ class CorporateMemberController extends Controller $item['pre_existing'], // Pre Existing $item['bpjs_id'], // BPJS ID $item['endorsement_date'], // Endorsement Date - $item['remarks'], // Remarks + $item['remarks'], // Remarks NULL, // Internal Use NULL,// Member Since NULL,// Internal Use @@ -398,8 +398,8 @@ class CorporateMemberController extends Controller public function sendAllECard(Request $request, $corporate_id){ $members = Member::with([ - 'currentPlan', - 'currentPolicy', + 'currentPlan', + 'currentPolicy', 'currentCorporate', // 'currentPlan.corporateBenefits.benefit' ])->whereHas('currentCorporate', function ($query) use ($corporate_id) { @@ -415,7 +415,7 @@ class CorporateMemberController extends Controller $pdf = PDF::loadView('pdf.ecard', compact('member'))->setPaper('A5', 'portrait'); $pdf->save($pdfPath); } - + $dataEmail = [ // 'email' => $member->email, 'email' => 'tbfajri', @@ -425,7 +425,7 @@ class CorporateMemberController extends Controller 'attach' => $pdfPath, ]; $sendEmail = Helper::sendEmailattachData($dataEmail); - + if ($sendEmail === true){ $countSuccesSend ++; @@ -445,18 +445,18 @@ class CorporateMemberController extends Controller 'data_succes_send' => $countSuccesSend, ]; - return response()->json($response); + return response()->json($response); } public function viewECard(Request $request, $member_id){ $member = Member::with([ - 'currentPlan', - 'currentPolicy', - 'currentCorporate', + 'currentPlan', + 'currentPolicy', + 'currentCorporate', // 'currentPlan.corporateBenefits.benefit' ])->find($member_id); - $pdf = PDF::loadView('pdf.ecard', compact('member'))->setPaper('A5', 'portrait'); + $pdf = PDF::loadView('pdf.ecard', compact('member'))->setPaper('A4', 'portrait'); return $pdf->download('Ecard - '.$member->full_name.'.pdf'); } diff --git a/Modules/Internal/Services/CorporateService.php b/Modules/Internal/Services/CorporateService.php index 6d1d9ed3..497cbd15 100644 --- a/Modules/Internal/Services/CorporateService.php +++ b/Modules/Internal/Services/CorporateService.php @@ -29,10 +29,10 @@ class CorporateService MCU=Medical Check Up KB-VACC = Family Planning/Vaccination LAB = Test Diagnostic - PHAR = Pharmacy + PHAR = Pharmacy **/ protected $service_code = ['MEDIVAC', 'MSO', 'PAC', 'OPDE', 'IP', 'OP', 'MA', 'ANC', 'DE', 'GL', 'SP', 'PF', 'MCU', 'KB-VACC', 'LAB', 'PHAR']; - + protected function corporatePlansId($corporate_id){ $plans = Plan::where('corporate_id', $corporate_id)->get()->toArray(); $current_corporate_plans_id = []; @@ -80,8 +80,8 @@ class CorporateService throw new ImportRowException(__('plan.REQUIRED', [ 'attribute' => 'Customer Plan' ]), 0, null, $row); - } - + } + if (!in_array($row['type'], $plan_code)){ throw new ImportRowException(__('plan.NOT_MATCH', [ 'attribute' => 'Plan Type', @@ -105,13 +105,13 @@ class CorporateService // 'code' => $row['code'] // ]), 0, null, $row); // } - + if (!empty($row['family_plan']) && !in_array($row['family_plan'],$family_plan)) { throw new ImportRowException(__('plan.NOT_MATCH', [ 'attribute' => 'Family Plan', 'code' => $row['family_plan'] ]), 0, null, $row); - } + } if (!empty($row['prorate_type']) && !in_array($row['prorate_type'], $prorate_type)) { throw new ImportRowException(__('plan.NOT_MATCH', [ @@ -171,7 +171,7 @@ class CorporateService 'code' => $row['service_code'] ]), 0, null, $row); } - + if (empty($row['plan_code'])) { throw new ImportRowException(__('benefit.PLAN_CODE_REQUIRED'), 0, null, $row); } else if (!in_array($row['plan_code'], $current_corporate_plans)){ @@ -181,21 +181,21 @@ class CorporateService // ]), 0, null, $row); } - + if (empty($row['code'])) { throw new ImportRowException(__('plan.REQUIRED', [ 'attribute' => 'Benefit Code' ]), 0, null, $row); } - + if (empty($row['corporate_benefit_code'])) { throw new ImportRowException(__('Customer Benefit Code Required', [ 'attribute' => 'Customer Benefit Code' ]), 0, null, $row); } - + if (empty($row['description'])) { throw new ImportRowException(__('plan.REQUIRED', [ 'attribute' => 'Description' @@ -216,16 +216,16 @@ class CorporateService 'attribute' => 'Gender' ]), 0, null, $row); } - if (!empty($row['max_frequency_period']) && $row['max_frequency_period'] >= $max_frequence){ // jenis frequence + if (!empty($row['max_frequency_period']) && $row['max_frequency_period'] >= $max_frequence){ // jenis frequence throw new ImportRowException(__('plan.MAX_FREQUENCY'), 0, null, $row); } - - if (!empty($row['budget']) && !in_array($budget_aso)) { + + if (!empty($row['budget']) && !in_array($budget_aso)) { throw new ImportRowException(__('plan.MAX_FREQUENCY'), 0, null, $row); } - + // if (empty($row['limit_free_tc'])){ // throw new ImportRowException(__('plan.REQUIRED', [ From c68b1f3e61d4efff7117fec4074c3bef673369e2 Mon Sep 17 00:00:00 2001 From: Linksehat Staging Server Date: Wed, 3 Jan 2024 11:48:28 +0700 Subject: [PATCH 6/8] update composer --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index a592e329..59cebfc4 100644 --- a/composer.json +++ b/composer.json @@ -19,6 +19,7 @@ "laravel/socialite": "^5.5", "laravel/tinker": "^2.7", "maatwebsite/excel": "^3.1", + "mikehaertl/phpwkhtmltopdf": "^2.5", "nwidart/laravel-modules": "^9.0", "phpmailer/phpmailer": "^6.9", "psr/simple-cache": "^1.0", From a9a342f6dd9a9f9ee1600163dea05c0d4cf516fd Mon Sep 17 00:00:00 2001 From: ivan-sim Date: Wed, 3 Jan 2024 14:37:09 +0700 Subject: [PATCH 7/8] Update Add Provider --- .../Http/Controllers/Api/MemberController.php | 10 ++ .../Controllers/Api/RequestLogController.php | 17 ++- .../hospital-portal/public/lang/en-US.json | 6 +- .../hospital-portal/public/lang/id-ID.json | 6 +- .../src/sections/dashboard/FormRequestLog.tsx | 117 ++++++++++++++---- 5 files changed, 132 insertions(+), 24 deletions(-) diff --git a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php index 4a69d876..52af40fb 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php @@ -96,6 +96,16 @@ class MemberController extends Controller $res_data['type'] = $request->type; + // Provider + $providers = DB::table('organizations') + ->select( + 'organizations.id', + 'organizations.name' + ) + ->get(); + + $res_data['providers'] = $providers; + return ApiResponse::apiResponse("Success", $res_data, trans('Message.success'), 200); } diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index db2cf4b9..a7f796ad 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php @@ -23,7 +23,10 @@ class RequestLogController extends Controller { $data = [ 'member_id' => $request->member_id, - 'service_code' => $request->service_code + 'service_code' => $request->service_code, + 'id_provider' => $request->id_provider, + 'name_provider' => $request->name_provider, + 'adress_provider' => $request->address_provider ]; $validator = Validator::make($request->all(), [ 'member_id' => 'required', @@ -32,6 +35,18 @@ class RequestLogController extends Controller 'member_id.required' => trans('Validation.required',['attribute' => 'Member ID']), 'service_code.required' => trans('Validation.required',['attribute' => 'Service Code']), ]); + if($request->id_provider) + { + $validator = Validator::make($request->all(), [ + 'id_provider' => 'required', + 'member_id' => 'required', + 'service_code' => 'required' + ], [ + 'id_provider.required' => trans('Validation.required',['attribute' => 'Provider ID']), + 'member_id.required' => trans('Validation.required',['attribute' => 'Member ID']), + 'service_code.required' => trans('Validation.required',['attribute' => 'Service Code']), + ]); + } if ($validator->fails()) { return ApiResponse::apiResponse('Bad Request', $data, $validator->errors(), 400); diff --git a/frontend/hospital-portal/public/lang/en-US.json b/frontend/hospital-portal/public/lang/en-US.json index c8060371..7bb9238b 100644 --- a/frontend/hospital-portal/public/lang/en-US.json +++ b/frontend/hospital-portal/public/lang/en-US.json @@ -34,5 +34,9 @@ "txtSupportingResultDocument" : "Supporting Result Document", "txtAddResult" : "Add Result", "txtServiceType" : "Service Type", - "txtAdditionalDocuments" : "Additional Documents" + "txtAdditionalDocuments" : "Additional Documents", + "txtAddNew" : "Add New", + "txtAddress" : "Address", + "txtProvider": "Provider", + "txtAlertProvider" : "Please enter provider" } diff --git a/frontend/hospital-portal/public/lang/id-ID.json b/frontend/hospital-portal/public/lang/id-ID.json index 5ca6e767..29798776 100644 --- a/frontend/hospital-portal/public/lang/id-ID.json +++ b/frontend/hospital-portal/public/lang/id-ID.json @@ -34,5 +34,9 @@ "txtSupportingResultDocument" : "Dokumen Hasil Pendukung", "txtAddResult" : "Tambah Hasil", "txtServiceType" : "Tipe Layanan", - "txtAdditionalDocuments" : "Dokumen Tambahan" + "txtAdditionalDocuments" : "Dokumen Tambahan", + "txtAddNew" : "Tambah Baru", + "txtAddress" : "Alamat", + "txtProvider": "Penyedia", + "txtAlertProvider" : "Mohon masukan provider" } diff --git a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx index 1f6433c2..43b6204f 100644 --- a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx +++ b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx @@ -16,10 +16,14 @@ import { useRef, useState, useContext } from 'react'; import { makeFormData } from '@/utils/jsonToFormData'; import { format } from 'date-fns'; import { LanguageContext } from '@/contexts/LanguageContext'; +import Autocomplete from '@mui/material/Autocomplete'; +import TextField from '@mui/material/TextField'; +import Button from '@mui/material/Button'; interface MemberType { members: any; services: any; + providers:any; } interface FormRequestClaimProps { member: MemberType; @@ -28,9 +32,15 @@ interface FormRequestClaimProps { export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRequestClaimProps) { const { localeData }: any = useContext(LanguageContext); const [serviceCode, setServiceCode] = useState(''); + const [idProvider, setIdProvider] = useState(0); const [submitLoading, setSubmitLoading] = useState(false); function submitRequest() { + if(!idProvider&& (name == '' || alamat == '')) + { + enqueueSnackbar(localeData.txtAlertProvider, { variant: 'warning' }); + return false; + } if(serviceCode == '') { enqueueSnackbar(localeData.txtDialogMember4, { variant: 'warning' }); @@ -39,7 +49,10 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe setSubmitLoading(true); const formData = { member_id: member.members.id, - service_code: serviceCode + service_code: serviceCode, + id_provider: idProvider, + name_provider : name, + address_provider: alamat }; axios .post('/request-log', formData) @@ -64,8 +77,26 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe name: string; } + interface Providers { + id: number; + name: string; + } + + const [showAddNewForm, setShowAddNewForm] = useState(false); + const [name, setName] = useState(''); + const [alamat, setAlamat] = useState(''); + + const handleAddNewData = () => { + // Logika untuk menambahkan data baru ke database + // Pastikan untuk menyesuaikan logika ini sesuai dengan kebutuhan aplikasi Anda + console.log('Adding new data:', { name, alamat }); + + // Setelah menambahkan data baru, Anda mungkin ingin melakukan sesuatu seperti menutup formulir tambahan atau melakukan pengaturan lainnya + setShowAddNewForm(false); + }; + return ( - + {localeData.txtDialogMember5} @@ -74,27 +105,71 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe - - {localeData.txtDialogMember1}* - - - {localeData.txtDialogMember1} - - + /> + )} + /> + {showAddNewForm && ( + + {localeData.txtAddNew} * + setName(e.target.value)} + /> + setAlamat(e.target.value)} + /> + + )} + + + + + + + {localeData.txtDialogMember1} * + option.name || ''} + value={member?.services.find((item: MemberService) => item.service_code === serviceCode) || null} + onChange={(event: React.ChangeEvent<{}>, newValue: MemberService | null) => { + setServiceCode(newValue?.service_code || ''); + }} + renderInput={(params) => ( + + )} + /> - From a157c414621c3a669af6964c21d9231419130c71 Mon Sep 17 00:00:00 2001 From: Linksehat Staging Server Date: Wed, 3 Jan 2024 14:58:25 +0700 Subject: [PATCH 8/8] update client --- .../Api/ClaimRequestController.php | 2 +- app/Services/ClaimRequestService.php | 24 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Modules/Client/Http/Controllers/Api/ClaimRequestController.php b/Modules/Client/Http/Controllers/Api/ClaimRequestController.php index de3899d5..bd5bcc49 100644 --- a/Modules/Client/Http/Controllers/Api/ClaimRequestController.php +++ b/Modules/Client/Http/Controllers/Api/ClaimRequestController.php @@ -63,7 +63,7 @@ class ClaimRequestController extends Controller serviceCode: $request->service_code[$key], ); - ClaimRequested::dispatch($newClaimRequest); + // ClaimRequested::dispatch($newClaimRequest); // Log History $newClaimRequest->histories()->create([ diff --git a/app/Services/ClaimRequestService.php b/app/Services/ClaimRequestService.php index 71626fc4..c840e2da 100644 --- a/app/Services/ClaimRequestService.php +++ b/app/Services/ClaimRequestService.php @@ -20,7 +20,7 @@ use Str; class ClaimRequestService{ - public static function storeClaimRequest($row = null, $code, $member, $paymentType, $serviceCode, $requestLogID, $submissionDate = null, $status = 'requested', $organization_code = null) + public static function storeClaimRequest($row = null, $code, $member, $paymentType, $serviceCode, $requestLogID = null, $submissionDate = null, $status = 'requested', $organization_code = null) { // try { $organization = False; @@ -38,7 +38,7 @@ class ClaimRequestService{ $claimRequestData = [ 'code' => $code, - 'request_log_id' => $requestLogID, + 'request_log_id' => $requestLogID ?? 0, 'member_id' => $member->id, 'submission_date' => $submissionDate ?? now(), 'status' => $status, @@ -60,6 +60,8 @@ class ClaimRequestService{ // } } + + public static function storeClaimManagement($row, $member, $claim_request_id){ try { $organization = 0; @@ -100,7 +102,7 @@ class ClaimRequestService{ DB::commit(); return $claimManagement; - + } catch (\Exception $error) { DB::rollBack(); @@ -144,18 +146,18 @@ class ClaimRequestService{ $paymentType = $row['claim_type']; $status = $row['status']; $serviceCode = $row['coverage_type']; - + $newClaimRequest = $this->storeClaimRequest( row: $row, code: $code, - member: $member, - paymentType: $paymentType, - serviceCode: $serviceCode, - submissionDate: $submissionDate, - status: $status, + member: $member, + paymentType: $paymentType, + serviceCode: $serviceCode, + submissionDate: $submissionDate, + status: $status, organization_code: $organization_id ); - + $newlyCreatedID = $newClaimRequest->id; $newClaimManangement = $this->storeClaimManagement($row, $member, $newlyCreatedID); @@ -177,4 +179,4 @@ class ClaimRequestService{ } } -} \ No newline at end of file +}