Align target deadlines in early warning and reports
This commit is contained in:
@@ -36,6 +36,16 @@ use Carbon\Carbon;
|
||||
|
||||
class FrontpageController extends Controller
|
||||
{
|
||||
protected function resolveTargetDays($modaliti2)
|
||||
{
|
||||
return (!empty($modaliti2) && is_numeric($modaliti2) && intval($modaliti2) > 0)
|
||||
? intval($modaliti2)
|
||||
: 1;
|
||||
}
|
||||
protected function getTargetDeadline(Carbon $startAt, $targetDays)
|
||||
{
|
||||
return $startAt->copy()->addDays(intval($targetDays))->endOfDay();
|
||||
}
|
||||
protected function buildMikroViewData($master, array $extra = [])
|
||||
{
|
||||
$data = [
|
||||
@@ -236,16 +246,15 @@ class FrontpageController extends Controller
|
||||
|
||||
$earlyWarnings = [];
|
||||
foreach ($rawEarlyWarnings as $row) {
|
||||
$targetDays = 1;
|
||||
if (!empty($row->modaliti2) && is_numeric($row->modaliti2) && intval($row->modaliti2) > 0) {
|
||||
$targetDays = intval($row->modaliti2);
|
||||
}
|
||||
$targetDays = $this->resolveTargetDays($row->modaliti2);
|
||||
|
||||
$waktuDaftar = Carbon::parse($row->daftar);
|
||||
$targetSelesai = $waktuDaftar->copy()->addDays($targetDays);
|
||||
$targetSelesai = $this->getTargetDeadline($waktuDaftar, $targetDays);
|
||||
$sisaMenit = $now->diffInMinutes($targetSelesai, false);
|
||||
$batasWarningMenit = $targetDays > 1 ? 1440 : 60;
|
||||
$isMelewatiTarget = $now->gt($targetSelesai);
|
||||
|
||||
if ($sisaMenit <= 60) {
|
||||
if ($isMelewatiTarget || $sisaMenit <= $batasWarningMenit) {
|
||||
$earlyWarnings[] = [
|
||||
'id' => $row->id,
|
||||
'mikro_master' => $this->resolveMikroMasterFromPoliId($row->poli_id),
|
||||
@@ -260,7 +269,7 @@ class FrontpageController extends Controller
|
||||
'target_hari' => $targetDays,
|
||||
'target_selesai' => $targetSelesai->format('Y-m-d H:i:s'),
|
||||
'sisa_menit' => $sisaMenit,
|
||||
'warning_label' => $sisaMenit <= 0 ? 'Melewati Target' : 'Kurang dari 1 Jam'
|
||||
'warning_label' => $isMelewatiTarget ? 'Melewati Target' : ($targetDays > 1 ? 'Kurang dari 1 Hari' : 'Kurang dari 1 Jam')
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user