<?php
/**
 * İZİNLİ KAYITLARI DÜZELTME SCRİPTİ
 *
 * Veritabanındaki bozuk encoding'li "İzinli" kayıtlarını düzeltir
 * Kullanım: http://your-domain.com/fix_izinli.php?run=yes
 * Çalıştırdıktan sonra bu dosyayı silin!
 */

if (!isset($_GET['run']) || $_GET['run'] !== 'yes') {
    die("<h1 style='color:red;'>Erişim Reddedildi!</h1><p>URL'ye <code>?run=yes</code> ekleyin.</p>");
}

require_once __DIR__ . '/includes/db.php';
header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>İzinli Kayıtları Düzeltme</title>
    <style>
        body { font-family: Arial; max-width: 1000px; margin: 50px auto; padding: 20px; }
        .success { color: green; background: #e8f5e9; padding: 15px; margin: 10px 0; border-radius: 5px; }
        .error { color: red; background: #ffebee; padding: 15px; margin: 10px 0; border-radius: 5px; }
        .info { color: blue; background: #e3f2fd; padding: 15px; margin: 10px 0; border-radius: 5px; }
        h1 { color: #333; border-bottom: 2px solid #4CAF50; }
        table { width: 100%; border-collapse: collapse; margin: 15px 0; }
        th, td { border: 1px solid #ddd; padding: 10px; text-align: left; font-size: 12px; }
        th { background-color: #4CAF50; color: white; }
        .fixed { background-color: #fff3cd; }
    </style>
</head>
<body>
    <h1>🔧 İzinli Kayıtları Düzeltme</h1>

    <?php
    try {
        // "İşe Gidilmedi" ID'sini al
        $iseGidilmediId = null;
        $stmt = $conn->query("SELECT id FROM guzergahlar WHERE guzergah_adi = 'İşe Gidilmedi'");
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        if ($result) {
            $iseGidilmediId = $result['id'];
        }

        if (!$iseGidilmediId) {
            throw new Exception("'İşe Gidilmedi' güzergahı bulunamadı!");
        }

        echo "<div class='info'>'İşe Gidilmedi' Güzergah ID: <strong>$iseGidilmediId</strong></div>";

        echo "<h2>1. Mevcut İzinli Kayıtları</h2>";

        // Bozuk "İzinli" kayıtlarını bul
        $stmt = $conn->prepare("
            SELECT id, tarih, aciklama, ucret
            FROM seyahatler
            WHERE guzergah_id = ?
            AND (aciklama LIKE '%zinli%' OR aciklama LIKE '%İzinli%')
            ORDER BY tarih DESC
        ");
        $stmt->execute([$iseGidilmediId]);
        $izinliKayitlar = $stmt->fetchAll(PDO::FETCH_ASSOC);

        if (count($izinliKayitlar) == 0) {
            echo "<div class='info'>Veritabanında izinli kaydı bulunamadı.</div>";
        } else {
            echo "<div class='info'>Bulunan izinli kayıtlar: <strong>" . count($izinliKayitlar) . "</strong></div>";

            echo "<table>";
            echo "<tr><th>ID</th><th>Tarih</th><th>Açıklama (ESKİ)</th><th>Hex Değeri</th><th>Ücret</th><th>Durum</th></tr>";

            $duzeltilecekler = [];

            foreach ($izinliKayitlar as $k) {
                $hex = bin2hex($k['aciklama']);
                $needsFix = ($k['aciklama'] !== 'İzinli');

                if ($needsFix) {
                    $duzeltilecekler[] = $k['id'];
                }

                $rowClass = $needsFix ? 'fixed' : '';

                echo "<tr class='$rowClass'>";
                echo "<td>{$k['id']}</td>";
                echo "<td>" . date('d.m.Y', strtotime($k['tarih'])) . "</td>";
                echo "<td>" . htmlspecialchars($k['aciklama']) . "</td>";
                echo "<td style='font-family:monospace;font-size:10px;'>$hex</td>";
                echo "<td>{$k['ucret']} TL</td>";
                echo "<td>" . ($needsFix ? '⚠️ Düzeltilecek' : '✅ Doğru') . "</td>";
                echo "</tr>";
            }
            echo "</table>";

            // Kayıtları düzelt
            if (count($duzeltilecekler) > 0) {
                echo "<h2>2. Kayıtları Düzeltme</h2>";

                $stmt_update = $conn->prepare("UPDATE seyahatler SET aciklama = 'İzinli' WHERE id = ?");

                foreach ($duzeltilecekler as $id) {
                    $stmt_update->execute([$id]);
                }

                echo "<div class='success'>✓ <strong>" . count($duzeltilecekler) . "</strong> kayıt düzeltildi. Açıklama alanı 'İzinli' olarak güncellendi.</div>";
            } else {
                echo "<div class='success'>✓ Tüm kayıtlar zaten doğru formatta.</div>";
            }

            // Final kontrol
            echo "<h2>3. Final Kontrol</h2>";

            $stmt = $conn->prepare("
                SELECT COUNT(*) as toplam
                FROM seyahatler
                WHERE guzergah_id = ?
                AND aciklama = 'İzinli'
            ");
            $stmt->execute([$iseGidilmediId]);
            $dogru = $stmt->fetch(PDO::FETCH_ASSOC)['toplam'];

            echo "<div class='success'>";
            echo "<strong>✓ Toplam Doğru 'İzinli' Kayıt:</strong> $dogru";
            echo "</div>";
        }

        echo "<div class='success'><h2>✓ İşlem Tamamlandı!</h2></div>";

        echo "<p><strong>Sonraki Adımlar:</strong></p>";
        echo "<ol>";
        echo "<li>Tarayıcı cache'ini temizleyin (CTRL+F5)</li>";
        echo "<li><a href='veri_giris.php'>Veri Girişi</a> sayfasını açın</li>";
        echo "<li>İzinli günlerin checkbox'larının işaretli olduğunu kontrol edin</li>";
        echo "<li>Bu dosyayı (fix_izinli.php) silin</li>";
        echo "</ol>";

    } catch (Exception $e) {
        echo "<div class='error'>HATA: " . htmlspecialchars($e->getMessage()) . "</div>";
    }
    ?>

    <hr>
    <p><a href="dashboard.php">← Dashboard</a> | <a href="veri_giris.php">📝 Veri Girişi</a></p>

</body>
</html>
