Files
api-btekno/bin/check_hourly_summary.php

67 lines
2.2 KiB
PHP
Raw Permalink Normal View History

<?php
require __DIR__ . '/../vendor/autoload.php';
use App\Config\AppConfig;
use App\Support\Database;
AppConfig::loadEnv(__DIR__ . '/..');
$db = Database::getConnection(
AppConfig::get('DB_HOST'),
AppConfig::get('DB_NAME'),
AppConfig::get('DB_USER'),
AppConfig::get('DB_PASS')
);
$dates = ['2025-12-14', '2025-12-15', '2025-12-16', '2025-12-17', '2025-12-18'];
echo "=== Checking hourly_summary ===\n\n";
foreach ($dates as $date) {
echo "--- Date: $date ---\n";
// Check entry_events per hour
$stmt = $db->prepare('SELECT HOUR(event_time) as hour, COUNT(*) as count FROM entry_events WHERE DATE(event_time) = ? GROUP BY HOUR(event_time) ORDER BY hour');
$stmt->execute([$date]);
$entryHours = $stmt->fetchAll();
$entryTotal = 0;
foreach ($entryHours as $row) {
$entryTotal += $row['count'];
}
echo " entry_events: $entryTotal total events\n";
if (!empty($entryHours)) {
echo " Hours with data: " . count($entryHours) . "\n";
}
// Check hourly_summary
$stmt = $db->prepare('SELECT summary_hour, SUM(total_count) as total_count, SUM(total_amount) as total_amount FROM hourly_summary WHERE summary_date = ? GROUP BY summary_hour ORDER BY summary_hour');
$stmt->execute([$date]);
$summaryHours = $stmt->fetchAll();
$summaryTotal = 0;
foreach ($summaryHours as $row) {
$summaryTotal += $row['total_count'];
}
echo " hourly_summary: $summaryTotal total\n";
if (!empty($summaryHours)) {
echo " Hours with data: " . count($summaryHours) . "\n";
} else {
echo " ⚠️ No hourly_summary data!\n";
echo " Run: php bin/hourly_summary.php $date\n";
}
if ($entryTotal > 0 && $summaryTotal == 0) {
echo " ❌ PROBLEM: entry_events has data but hourly_summary is empty!\n";
} elseif ($entryTotal > 0 && $summaryTotal > 0 && $entryTotal != $summaryTotal) {
echo " ⚠️ WARNING: Count mismatch! entry_events: $entryTotal, hourly_summary: $summaryTotal\n";
} elseif ($entryTotal > 0 && $summaryTotal > 0) {
echo " ✓ OK: Counts match\n";
}
echo "\n";
}