Align target deadlines in early warning and reports
This commit is contained in:
@@ -323,6 +323,23 @@ class ReportController extends Controller
|
||||
'Amphotericin B',
|
||||
'Flucytosine'
|
||||
];
|
||||
private function resolveTatTargetDays($modaliti2) {
|
||||
return (!empty($modaliti2) && is_numeric($modaliti2) && intval($modaliti2) > 0)
|
||||
? intval($modaliti2)
|
||||
: 1;
|
||||
}
|
||||
private function getTatDeadlineDate($mulai, $targetDays) {
|
||||
return Carbon::parse($mulai)->addDays(intval($targetDays))->toDateString();
|
||||
}
|
||||
private function getTatElapsedDays($mulai, $verifikasi) {
|
||||
return Carbon::parse($mulai)->startOfDay()->diffInDays(Carbon::parse($verifikasi)->startOfDay());
|
||||
}
|
||||
private function resolveTatStatus($mulai, $verifikasi, $targetDays) {
|
||||
$deadlineDate = $this->getTatDeadlineDate($mulai, $targetDays);
|
||||
return Carbon::parse($verifikasi)->toDateString() <= $deadlineDate
|
||||
? 'MEMENUHI TARGET'
|
||||
: 'TIDAK MEMENUHI TARGET';
|
||||
}
|
||||
public function report(Request $request) {
|
||||
$bulan = $request->input('bulan');
|
||||
$tahun = $request->input('tahun');
|
||||
@@ -455,15 +472,13 @@ class ReportController extends Controller
|
||||
|
||||
$p = $poli[$row->poli_id] ?? null;
|
||||
$row->subpoli = $p->subpoli ?? null;
|
||||
$row->modaliti2 = $p->modaliti2 ?? '1';
|
||||
$row->modaliti2 = $this->resolveTatTargetDays($p->modaliti2 ?? '1');
|
||||
|
||||
// Hitung status target
|
||||
if (!empty($row->verifikasi)) {
|
||||
$selisih = Carbon::parse($row->mulai)->diffInDays($row->verifikasi);
|
||||
$selisih = $this->getTatElapsedDays($row->mulai, $row->verifikasi);
|
||||
$row->selisih_hari = $selisih;
|
||||
$row->status_target = ($selisih <= intval($row->modaliti2))
|
||||
? "MEMENUHI TARGET"
|
||||
: "TIDAK MEMENUHI TARGET";
|
||||
$row->status_target = $this->resolveTatStatus($row->mulai, $row->verifikasi, $row->modaliti2);
|
||||
} else {
|
||||
$row->selisih_hari = null;
|
||||
$row->status_target = "TIDAK ADA HASIL";
|
||||
|
||||
Reference in New Issue
Block a user