fix(activity): perbaiki logika perhitungan tanggal SLA dan paparan

- Memperbaiki perhitungan tanggal selesai berdasarkan hari tambahan.
- Menambahkan logika untuk menghitung hari kerja berikutnya.
- Mengubah nama kolom pada tampilan dari "Due Date SLA" menjadi "SLA Laporan" dan "Paparan" menjadi "SLA Paparan".
- Menambahkan detail dokumen pada query di LaporanController.
This commit is contained in:
Daeng Deni Mardaeni
2025-03-07 09:21:14 +07:00
parent dc98c7dd63
commit a048bea26e
3 changed files with 60 additions and 20 deletions

View File

@@ -326,7 +326,7 @@ class ActivityController extends Controller
$filteredRecords = $query->count(); $filteredRecords = $query->count();
// Get data with necessary relationships // Get data with necessary relationships
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan'])->get(); //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'dokumenjaminan','nilaiPlafond'])->get();
// Calculate total pages // Calculate total pages
$pageCount = ceil($totalRecords / $request->get('size', 10)); $pageCount = ceil($totalRecords / $request->get('size', 10));
@@ -444,26 +444,40 @@ class ActivityController extends Controller
$jeniAsset = null; $jeniAsset = null;
$statusPembayaran = trim(strtolower($item->permohonan->status_bayar ?? '')); $statusPembayaran = trim(strtolower($item->permohonan->status_bayar ?? ''));
$tujuanPenilaian = $item->permohonan->tujuanPenilaian->name ?? null; $tujuanPenilaian = $item->permohonan->tujuanPenilaian->name ?? null;
$plafond = $item->permohonan->nilaiPlafond->name ?? null;
$now = Carbon::now(); $now = Carbon::now();
$type_report = $item->permohonan->penilai->type ?? "";
// $plafond = $item->permohonan->nilaiPlafond->name ?? null; $hari = $hariPaparan = 0;
// $type_report = $item->permohonan->penilai->type_penilai;
// $hari = 0; if($type_report == "sederhana"){
// if ($plafond == '< 1M') { $hari = 2;
// $item->paparan = 'Tidak Ada'; $item->paparan = 'Tidak Ada';
// }else if($plafond == '2 M - 5 M'){ } else{
// $hari = 2; if ($plafond == '< 2M') {
// }else if($plafond == '5 M - 10 M'){ $item->paparan = 'Tidak Ada';
// $hari = 3; $hari = 3;
// } }else if($plafond == '2 M - 5 M'){
$hari = 3;
$hariPaparan = 2;
}else {
$hari = 5;
$hariPaparan = 3;
}
}
if ($tujuanPenilaian == 'RAP') {
$hari = 2;
$hariPaparan = 2;
}
if ($item->permohonan && $item->permohonan->debiture) { if ($item->permohonan && $item->permohonan->debiture) {
$jeniAsset = $item->permohonan->debiture->documents->first() ?? null; $jeniAsset = $item->permohonan->debiture->documents->first() ?? null;
} }
$hariTambahan = 0; /*$hariTambahan = 0;
if ($tujuanPenilaian == 'RAP') { if ($tujuanPenilaian == 'RAP') {
$hariTambahan = 2; $hariTambahan = 2;
@@ -473,33 +487,50 @@ class ActivityController extends Controller
} else { } else {
$hariTambahan = 2; // H+2 untuk yang belum bayar $hariTambahan = 2; // H+2 untuk yang belum bayar
} }
} }*/
$tanggalMulai = $item->waktu_penilaian; $tanggalMulai = $item->waktu_penilaian;
if ($tanggalMulai) { if ($tanggalMulai) {
if (!$tanggalMulai instanceof Carbon) {
$tanggalMulai = Carbon::parse($tanggalMulai);
}
$hariKerjaBerikutnya = hitungHariKerja($tanggalMulai->toDateString(),$tanggalMulai->copy()->addDays(1));
$hariKerjaBerikutnya = max($hariKerjaBerikutnya, 1);
$tanggalMulai = $tanggalMulai->copy()->addDays($hariKerjaBerikutnya);
// Konversi string tanggal ke objek Carbon jika belum // Konversi string tanggal ke objek Carbon jika belum
if (!$tanggalMulai instanceof Carbon) { if (!$tanggalMulai instanceof Carbon) {
$tanggalMulai = Carbon::parse($tanggalMulai); $tanggalMulai = Carbon::parse($tanggalMulai);
} }
// Hitung tanggal selesai berdasarkan hari tambahan // Hitung tanggal selesai berdasarkan hari tambahan
$tanggalSelesai = $tanggalMulai->copy()->addDays($hariTambahan); $tanggalSelesai = $tanggalMulai->copy()->addDays($hari);
$tanggalPaparan = $tanggalMulai->copy()->addDays($hariPaparan);
// Hitung hari kerja // Hitung hari kerja
$hariKerja = hitungHariKerja($tanggalMulai->toDateString(), $tanggalSelesai->toDateString()); $hariKerja = hitungHariKerja($tanggalMulai->toDateString(), $tanggalSelesai->toDateString());
$hariKerja = max($hariKerja, $hari);
$hariKerjaPaparan = hitungHariKerja($tanggalMulai->toDateString(), $tanggalPaparan->toDateString());
$hariKerjaPaparan = max($hariKerjaPaparan, $hariPaparan);
// Set due date SLA // Set due date SLA
$dueDateSla = $tanggalMulai->copy()->addDays($hariKerja); $dueDateSla = $tanggalMulai->copy()->addDays($hariKerja);
$dueDateSlaPaparan = $tanggalMulai->copy()->addDays($hariKerjaPaparan);
// Cek apakah sudah melewati due date // Cek apakah sudah melewati due date
if ($now->greaterThan($dueDateSla)) { /*if ($now->greaterThan($dueDateSla)) {
$item->due_date_sla = null; $item->due_date_sla = null;
} else { } else {
$item->due_date_sla = $dueDateSla->toDateString(); $item->due_date_sla = $dueDateSla->toDateString();
} }*/
$item->due_date_sla = $dueDateSla->toDateString();
$item->paparan = $dueDateSlaPaparan->toDateString();
} else { } else {
$item->due_date_sla = null; $item->due_date_sla = null;
$item->paparan = null;
} }

View File

@@ -123,7 +123,7 @@ class LaporanController extends Controller
$filteredRecords = $query->count(); $filteredRecords = $query->count();
// Get the data for the current page // Get the data for the current page
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian','jenisFasilitasKredit', 'documents.inspeksi','penilai'])->get(); $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian','jenisFasilitasKredit', 'documents.inspeksi','penilai','documents.detail'])->get();
// Calculate the page count // Calculate the page count
$pageCount = ceil($totalRecords / $size); $pageCount = ceil($totalRecords / $size);

View File

@@ -120,8 +120,8 @@
<th class="min-w-[100px]">Tgl Assign</th> <th class="min-w-[100px]">Tgl Assign</th>
<th class="min-w-[100px]">Tgl Kunjungan</th> <th class="min-w-[100px]">Tgl Kunjungan</th>
<th class="min-w-[100px]">Progress</th> <th class="min-w-[100px]">Progress</th>
<th class="min-w-[100px]">Due Date SLA</th> <th class="min-w-[100px]">SLA Laporan</th>
<th class="min-w-[100px]">Paparan</th> <th class="min-w-[100px]">SLA Paparan</th>
<th class="min-w-[100px]">Approve</th> <th class="min-w-[100px]">Approve</th>
<th class="min-w-[50px] text-center">Keterangan</th> <th class="min-w-[50px] text-center">Keterangan</th>
<th class="min-w-[50px] text-center">Action</th> <th class="min-w-[50px] text-center">Action</th>
@@ -251,6 +251,15 @@
return `${window.formatTanggalIndonesia(data.due_date_sla)}`; return `${window.formatTanggalIndonesia(data.due_date_sla)}`;
} }
}, },
due_date: {
title: 'Due Date SLA',
render: (item, data) => {
if (!data.due_date_sla) {
return `-`;
}
return `${window.formatTanggalIndonesia(data.due_date_sla)}`;
},
},
paparan: { paparan: {
title: 'Paparan', title: 'Paparan',
@@ -258,7 +267,7 @@
if (!data.due_date_sla) { if (!data.due_date_sla) {
return `-`; return `-`;
} }
return `${window.formatTanggalIndonesia(data.due_date_sla)}`; return `${window.formatTanggalIndonesia(data.paparan)}`;
} }
}, },
approve: { approve: {