From d52ff529e3b0c6098a203c028d81b4247fc462c9 Mon Sep 17 00:00:00 2001 From: marszayn Date: Wed, 10 Sep 2025 17:04:08 +0700 Subject: [PATCH] update: model --- app/Models/FastestPermohonan.php | 13 ++++-- app/Models/PerizinanStatus.php | 13 +++++- app/Models/TerakhirTerbit.php | 11 ++++- public/assets/images/logo_pl.svg | 46 ++++++++++++++++++++ resources/views/components/sidebar.blade.php | 2 +- 5 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 public/assets/images/logo_pl.svg diff --git a/app/Models/FastestPermohonan.php b/app/Models/FastestPermohonan.php index f886921..4e87eae 100644 --- a/app/Models/FastestPermohonan.php +++ b/app/Models/FastestPermohonan.php @@ -26,13 +26,20 @@ class FastestPermohonan extends Model ]; /** - * Get fastest permohonan by kategori for today, ordered by API response order - * Since API already provides fastest data in correct order + * Get fastest permohonan by kategori for the latest available sync_date. + * Falls back to the most recent data if today's data is absent. + * Since API already provides fastest data in correct order, preserve insertion order via id. */ public static function getLatestByKategori($kategori) { + $latestSyncDate = self::where('kategori', $kategori)->max('sync_date'); + + if (!$latestSyncDate) { + return collect(); + } + return self::where('kategori', $kategori) - ->whereDate('sync_date', Carbon::today()) + ->whereDate('sync_date', $latestSyncDate) ->orderBy('id') // Keep API order by using insertion order ->limit(5) ->get(); diff --git a/app/Models/PerizinanStatus.php b/app/Models/PerizinanStatus.php index 301783b..79ff757 100644 --- a/app/Models/PerizinanStatus.php +++ b/app/Models/PerizinanStatus.php @@ -25,12 +25,21 @@ class PerizinanStatus extends Model ]; /** - * Get latest data by kategori + * Get latest data by kategori. + * Falls back to the most recent available sync_date if today's data is absent. */ public static function getLatestByKategori($kategori) { + // Find the most recent sync_date for the given kategori + $latestSyncDate = self::where('kategori', $kategori)->max('sync_date'); + + if (!$latestSyncDate) { + // No data at all for this kategori + return collect(); + } + return self::where('kategori', $kategori) - ->whereDate('sync_date', Carbon::today()) + ->whereDate('sync_date', $latestSyncDate) ->get() ->keyBy('status_id'); } diff --git a/app/Models/TerakhirTerbit.php b/app/Models/TerakhirTerbit.php index 689cee9..74bd3c2 100644 --- a/app/Models/TerakhirTerbit.php +++ b/app/Models/TerakhirTerbit.php @@ -25,12 +25,19 @@ class TerakhirTerbit extends Model ]; /** - * Get latest data by kategori for today, ordered by tanggal_terbit DESC + * Get latest data by kategori for the latest available sync_date, ordered by tanggal_terbit DESC. + * Falls back to the most recent data if today's data is absent. */ public static function getLatestByKategori($kategori) { + $latestSyncDate = self::where('kategori', $kategori)->max('sync_date'); + + if (!$latestSyncDate) { + return collect(); + } + return self::where('kategori', $kategori) - ->whereDate('sync_date', Carbon::today()) + ->whereDate('sync_date', $latestSyncDate) ->orderBy('tanggal_terbit', 'desc') ->limit(5) ->get(); diff --git a/public/assets/images/logo_pl.svg b/public/assets/images/logo_pl.svg new file mode 100644 index 0000000..335daa4 --- /dev/null +++ b/public/assets/images/logo_pl.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/views/components/sidebar.blade.php b/resources/views/components/sidebar.blade.php index 42e8010..9248f91 100644 --- a/resources/views/components/sidebar.blade.php +++ b/resources/views/components/sidebar.blade.php @@ -13,7 +13,7 @@