<?php
// print_feuille.php - Affichage HTML de la feuille de route
// Accessible via: .../apiggr/print_feuille.php?id=...

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once __DIR__ . '/../config/database.php';

try {
    $db = Database::getInstance();
} catch (Exception $e) {
    die("<h2>Erreur de connexion</h2><p>" . $e->getMessage() . "</p>");
}

// Récupérer l'ID de la feuille
$feuilleID = $_GET['id'] ?? '';

if (empty($feuilleID)) {
    die("ID de feuille manquant.");
}

// 1. Récupérer les infos
// Correction suite au schema fourni : Table Departs a DateDepart, LigneID, BusID, OperateurID (pas de HeureDepart ni Destination)
$stmt = $db->prepare("
    SELECT f.*, u.NomPrenom, u.Nom, u.Prenom, s.Nom_Site, 
           b.Modele_Bus, b.Ligne_Bus, b.Operateur_Bus,
           d.DateDepart, d.LigneID as DepartLigneID
    FROM Feuilles f
    JOIN Departs d ON f.IdDepart = d.DepartID
    LEFT JOIN Utilisateurs u ON f.UserID = u.code_utilisateur
    LEFT JOIN Sites s ON f.Site = s.SiteID
    LEFT JOIN BusGares b ON d.BusID = b.BusID
    WHERE f.FeuilleID = ?
");
$stmt->execute([$feuilleID]);
$feuille = $stmt->fetch();

if (!$feuille) {
    die("Feuille introuvable (ou erreur SQL). ID: " . htmlspecialchars($feuilleID));
}

// 2. Récupérer les tickets
$stmt = $db->prepare("
    SELECT TicketID, ArretDepart, ArretArriver, Prix, DateAchat
    FROM Tickets 
    WHERE FeuilleID = ? 
    ORDER BY TicketID ASC
");
$stmt->execute([$feuilleID]);
$tickets = $stmt->fetchAll();

// Calculs
$totalMontant = 0;
$totalPassagers = count($tickets);
$trajet = "Trajet Inconnu"; 

foreach ($tickets as $index => $t) {
    $totalMontant += floatval($t['Prix']);
    // On prend le trajet du premier ticket comme référence pour l'entête
    if ($index === 0) {
        $trajet = htmlspecialchars($t['ArretDepart']) . " -> " . htmlspecialchars($t['ArretArriver']);
    }
}

// Nom user
$nomUser = $feuille['NomPrenom'] ?? ($feuille['Nom'] . ' ' . $feuille['Prenom']);
$dateDepartAff = $feuille['DateDepart']; // C'est un varchar, on l'affiche tel quel ou on essaie de formatter
?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Feuille de Route - <?php echo htmlspecialchars($feuilleID); ?></title>
    <style>
        body { font-family: Arial, sans-serif; font-size: 12px; margin: 20px; }
        .header { text-align: center; margin-bottom: 20px; border-bottom: 2px solid #000; padding-bottom: 10px; }
        .header h1 { margin: 0; font-size: 18px; text-transform: uppercase; }
        
        .info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; }
        .info-box { border: 1px solid #ccc; padding: 10px; }
        .info-label { font-weight: bold; color: #555; }
        
        table { width: 100%; border-collapse: collapse; margin-top: 10px; }
        th, td { border: 1px solid #000; padding: 5px; text-align: left; }
        th { background-color: #eee; }
        .text-right { text-align: right; }
        .center { text-align: center; }
        
        @media print {
            .no-print { display: none !important; }
        }
        
        .btn-print {
            display: block; width: 100%; padding: 15px; 
            background: #ff5722; color: white; text-align: center; 
            text-decoration: none; font-size: 16px; font-weight: bold;
            margin-bottom: 20px; border-radius: 5px;
        }
    </style>
</head>
<body>

    <a href="#" onclick="window.print();return false;" class="btn-print no-print">IMPRIMER CETTE FEUILLE</a>

    <div class="header">
        <h1>Feuille de Route</h1>
        <p>N°: <strong><?php echo htmlspecialchars($feuilleID); ?></strong></p>
        <p>Trajet: <strong><?php echo $trajet; ?></strong></p>
        <p>Date Départ: <?php echo htmlspecialchars($dateDepartAff); ?></p>
        <p>Date Feuille: <?php echo date('d/m/Y H:i', strtotime($feuille['DateFeuille'])); ?></p>
    </div>

    <div class="info-grid">
        <div class="info-box">
            <div><span class="info-label">Site:</span> <?php echo htmlspecialchars($feuille['Nom_Site'] ?? $feuille['Site']); ?></div>
            <div><span class="info-label">Vendeur:</span> <?php echo htmlspecialchars($nomUser); ?></div>
            <div><span class="info-label">Opérateur:</span> <?php echo htmlspecialchars($feuille['Operateur_Bus'] ?? ''); ?></div>
        </div>
        <div class="info-box">
            <div><span class="info-label">Bus:</span> <?php echo htmlspecialchars($feuille['Modele_Bus']); ?></div>
            <div><span class="info-label">Ligne:</span> <?php echo htmlspecialchars($feuille['DepartLigneID'] ?? $feuille['Ligne_Bus']); ?></div>
        </div>
    </div>

    <h3>Liste des Passagers</h3>
    <table>
        <thead>
            <tr>
                <th style="width: 50px;">#</th>
                <th>N° Ticket</th>
                <th>Départ</th>
                <th>Destination</th>
                <th class="text-right">Prix (DZD)</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($tickets as $index => $ticket): ?>
            <tr>
                <td class="center"><?php echo $index + 1; ?></td>
                <td><?php echo htmlspecialchars($ticket['TicketID']); ?></td>
                <td><?php echo htmlspecialchars($ticket['ArretDepart']); ?></td>
                <td><?php echo htmlspecialchars($ticket['ArretArriver']); ?></td>
                <td class="text-right"><?php echo number_format($ticket['Prix'], 2, '.', ' '); ?></td>
            </tr>
            <?php endforeach; ?>
            
            <?php if (empty($tickets)): ?>
            <tr>
                <td colspan="5" class="center">Aucun ticket vendu pour ce départ.</td>
            </tr>
            <?php endif; ?>
        </tbody>
    </table>

    <div style="margin-top: 20px; float: right;">
        <table style="width: auto;">
            <tr>
                <td style="border:none;">Total Passagers:</td>
                <td style="border:none; font-weight:bold;"><?php echo $totalPassagers; ?></td>
            </tr>
            <tr>
                <td style="border:none;">Recette Totale:</td>
                <td style="border:none; font-weight:bold;"><?php echo number_format($totalMontant, 2, '.', ' '); ?> DZD</td>
            </tr>
        </table>
    </div>

</body>
</html>
