2.0 KiB
2.0 KiB
Perbaikan Dashboard Data Kosong
🔍 Masalah yang Ditemukan
- Data entry_events ada (1382 records)
- Data terakhir: 2025-12-16 (kemarin)
- Data hari ini: Tidak ada (0 records)
- Daily summary hari ini: Kosong
- Dashboard menampilkan "Hari Ini": Jadi semua nilai 0
✅ Solusi yang Diterapkan
1. Fallback ke Entry Events
File: api-btekno/src/Modules/Retribusi/Dashboard/DashboardService.php
Ditambahkan fallback logic di method getSummary() dan getByCategoryChart():
- Jika
daily_summarykosong untuk tanggal tertentu - Query langsung dari
entry_eventsdengan join kelocations,gates, dantariffs - Hitung total_count dan total_amount secara real-time
2. Aggregate Data Kemarin
Jalankan aggregation untuk data yang ada:
php bin/daily_summary.php 2025-12-16
📋 Cara Mengatasi
Option 1: Aggregate Data yang Ada
# Aggregate data kemarin
cd api-btekno
php bin/daily_summary.php 2025-12-16
# Atau aggregate semua tanggal yang ada data
php bin/daily_summary.php 2025-12-15
php bin/daily_summary.php 2025-12-14
Option 2: Ubah Default Date di Dashboard
Edit retribusi (frontend)/public/dashboard/js/dashboard.js:
const state = {
date: '2025-12-16', // Ganti dengan tanggal yang ada data
locationCode: '',
gateCode: ''
};
Option 3: Setup Cron Job
Setup cron job untuk auto-aggregate setiap hari:
# Daily summary (run at 1 AM, rekap kemarin)
0 1 * * * cd /path/to/api-btekno && php bin/daily_summary.php
🔧 Testing
Setelah perbaikan, test dengan:
# Cek data dashboard
php bin/check_dashboard_data.php
# Test API endpoint
curl "http://localhost:8000/retribusi/v1/dashboard/summary?date=2025-12-16" \
-H "Authorization: Bearer YOUR_TOKEN"
📝 Catatan
- Fallback hanya untuk read: Data tetap perlu di-aggregate ke
daily_summaryuntuk performa - Hari ini kosong: Normal jika belum ada data entry_events hari ini
- Dashboard akan otomatis: Menampilkan data dari entry_events jika daily_summary kosong