<?php
// cek_tanggal.php - Cek dan update tanggal di database

$pdo = new PDO('mysql:host=localhost;dbname=platform_kapal_samosir;charset=utf8mb4', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

echo "========================================\n";
echo "   CEK TANGGAL DI DATABASE\n";
echo "========================================\n\n";

// 1. CEK DATA PESANAN
echo "1. DATA PESANAN TERAKHIR:\n";
$stmt = $pdo->query("
    SELECT id, kode_pesanan, tanggal_konfirmasi_pembayaran, 
           tanggal_bayar, created_at, status_pesanan 
    FROM pesanan 
    ORDER BY id DESC 
    LIMIT 5
");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo "   ID: {$row['id']}\n";
    echo "   Kode: {$row['kode_pesanan']}\n";
    echo "   Status: {$row['status_pesanan']}\n";
    echo "   Konfirmasi: " . ($row['tanggal_konfirmasi_pembayaran'] ?? 'NULL') . "\n";
    echo "   Tanggal Bayar: " . ($row['tanggal_bayar'] ?? 'NULL') . "\n";
    echo "   Created: {$row['created_at']}\n";
    echo "   ---\n";
}

// 2. CEK JUMLAH DATA DENGAN KONFIRMASI NOT NULL
echo "\n2. JUMLAH DATA DENGAN TANGGAL KONFIRMASI:\n";
$stmt = $pdo->query("
    SELECT 
        COUNT(*) as total,
        SUM(CASE WHEN tanggal_konfirmasi_pembayaran IS NOT NULL THEN 1 ELSE 0 END) as ada_konfirmasi,
        SUM(CASE WHEN tanggal_konfirmasi_pembayaran IS NULL THEN 1 ELSE 0 END) as null_konfirmasi
    FROM pesanan
");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo "   Total pesanan: {$row['total']}\n";
echo "   Ada tanggal_konfirmasi: {$row['ada_konfirmasi']}\n";
echo "   NULL tanggal_konfirmasi: {$row['null_konfirmasi']}\n";

// 3. UPDATE DATA YANG NULL
echo "\n3. UPDATE DATA YANG NULL:\n";
$stmt = $pdo->prepare("
    UPDATE pesanan 
    SET tanggal_konfirmasi_pembayaran = created_at 
    WHERE tanggal_konfirmasi_pembayaran IS NULL 
    AND status_pesanan IN ('confirmed', 'completed')
");
$stmt->execute();
echo "   ✅ " . $stmt->rowCount() . " pesanan diupdate\n";

// 4. CEK HASIL SETELAH UPDATE
echo "\n4. HASIL SETELAH UPDATE:\n";
$stmt = $pdo->query("
    SELECT 
        COUNT(*) as total,
        SUM(CASE WHEN tanggal_konfirmasi_pembayaran IS NOT NULL THEN 1 ELSE 0 END) as ada_konfirmasi,
        SUM(CASE WHEN tanggal_konfirmasi_pembayaran IS NULL THEN 1 ELSE 0 END) as null_konfirmasi
    FROM pesanan
");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo "   Total pesanan: {$row['total']}\n";
echo "   Ada tanggal_konfirmasi: {$row['ada_konfirmasi']}\n";
echo "   NULL tanggal_konfirmasi: {$row['null_konfirmasi']}\n";

echo "\n========================================\n";
echo "✅ SELESAI! Refresh laporan admin sekarang.\n";
echo "========================================\n";