<?php
require_once __DIR__."/../../config/db.php";
require_once __DIR__."/../../includes/check_auth.php";

$reception_id = (int)($_GET['id'] ?? 0);
if ($reception_id <= 0) {
    die("Réception invalide");
}

/* ---------- Réception principale ---------- */
$stmt = $conn->prepare("
    SELECT 
        rf.*,
        f.nom AS fournisseur,
        cf.numero AS numero_commande,
        u.nom AS utilisateur
    FROM receptions_fournisseurs rf
    JOIN fournisseurs f ON f.id = rf.fournisseur_id
    LEFT JOIN commandes_fournisseurs cf ON cf.id = rf.commande_id
    LEFT JOIN utilisateurs u ON u.id = rf.utilisateur_id
    WHERE rf.id = ?
");
$stmt->execute([$reception_id]);
$reception = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$reception) {
    die("Réception introuvable");
}

/* ---------- Lignes réception ---------- */
$stmt = $conn->prepare("
    SELECT 
        rfd.produit_id,
        p.nom,
        rfd.quantite_livree,
        rfd.prix_achat,
        (rfd.quantite_livree * rfd.prix_achat) AS total_ligne,
        d.quantite_commandee,
        (
            SELECT COALESCE(SUM(rfd2.quantite_livree),0)
            FROM receptions_fournisseurs rf2
            JOIN receptions_fournisseurs_details rfd2 
                 ON rfd2.reception_id = rf2.id
            WHERE rf2.commande_id = rf.commande_id
            AND rfd2.produit_id = rfd.produit_id
        ) AS total_recu_commande
    FROM receptions_fournisseurs_details rfd
    JOIN produits p ON p.id = rfd.produit_id
    JOIN receptions_fournisseurs rf ON rf.id = rfd.reception_id
    LEFT JOIN commandes_fournisseurs_details d
           ON d.commande_id = rf.commande_id
           AND d.produit_id = rfd.produit_id
    WHERE rfd.reception_id = ?
    ORDER BY p.nom
");
$stmt->execute([$reception_id]);
$lignes = $stmt->fetchAll(PDO::FETCH_ASSOC);

/* ---------- Vérifier si achat généré ---------- */
$stmt = $conn->prepare("SELECT id FROM achats WHERE reception_id = ?");
$stmt->execute([$reception_id]);
$achat = $stmt->fetch(PDO::FETCH_ASSOC);

$totalGeneral = 0;
foreach ($lignes as $l) {
    $totalGeneral += $l['total_ligne'];
    
}
?>

<div class="container-fluid">
<h1 class="mb-3">
    Détail réception fournisseur
</h1>

<!-- INFO RECEPTION -->
<div class="card mb-3">
    <div class="card-body">
        <div class="row">
            <div class="col-md-3">
                <b>N° Réception :</b> <?= htmlspecialchars($reception['numero']) ?>
            </div>
            <div class="col-md-3">
                <b>Date :</b> <?= date('d/m/Y H:i', strtotime($reception['date_reception'])) ?>
            </div>
            <div class="col-md-3">
                <b>Fournisseur :</b> <?= htmlspecialchars($reception['fournisseur']) ?>
            </div>
            <div class="col-md-3">
                <b>Commande liée :</b>
                <?= $reception['numero_commande'] 
                    ? htmlspecialchars($reception['numero_commande']) 
                    : '-' ?>
            </div>
        </div>

        <div class="row mt-2">
            <div class="col-md-3">
                <b>Statut :</b>
                <span class="badge bg-<?= 
                    $reception['statut'] == 'complete' ? 'success' : 'warning' ?>">
                    <?= htmlspecialchars($reception['statut']) ?>
                </span>
            </div>
            <div class="col-md-3">
                <b>Utilisateur :</b>
                <?= htmlspecialchars($reception['utilisateur'] ?? '-') ?>
            </div>
        </div>
    </div>
</div>

<!-- DETAILS PRODUITS -->
<div class="card">
<div class="card-header bg-dark text-white">
    Produits réceptionnés
</div>

<div class="card-body p-0">
<table class="table table-bordered table-striped mb-0">
<thead class="table-light">
<tr>
    <th>Produit</th>
    <th class="text-center">Commandé</th>
    <th class="text-center">Reçu (cette réception)</th>
    <th class="text-center">Reste</th>
    <th class="text-center">Écart</th>
    <th class="text-end">PU</th>
   

</tr>
</thead>
<tbody>

<?php foreach ($lignes as $l): 
    $reste_commande = $l['quantite_commandee'] - $l['total_recu_commande'];
    $ecart = $l['quantite_livree'] - $l['quantite_commandee'];
?>
<tr>
    <tr>
    <td><?= htmlspecialchars($l['nom']) ?></td>

    <td class="text-center">
        <?= (float)$l['quantite_commandee'] ?>
    </td>

    <td class="text-center">
        <?= (float)$l['quantite_livree'] ?>
    </td>

    <td class="text-center">
        <span class="badge bg-<?= $reste_commande == 0 ? 'success' : 'warning' ?>">
            <?= $reste_commande ?>
        </span>
    </td>

    <td class="text-center">
        <?php if ($ecart > 0): ?>
            <span class="badge bg-danger">+<?= $ecart ?></span>
        <?php elseif ($ecart < 0): ?>
            <span class="badge bg-warning"><?= $ecart ?></span>
        <?php else: ?>
            <span class="badge bg-success">0</span>
        <?php endif; ?>
    </td>
    <td class="text-end">
        <?= number_format((float)$l['prix_achat'], 0, ',', ' ') ?>
    </td>

</tr>
<?php endforeach; ?>

</tbody>

<tfoot>
<tr class="fw-bold">
    <td colspan="5" class="text-end">TOTAL</td>
    <td class="text-end">
        <?= number_format($totalGeneral, 0, ',', ' ') ?>
    </td>
</tr>
</tfoot>

</table>
</div>
</div>

<!-- ACTIONS -->
<div class="mt-3">

    <?php if (!$achat): ?>
        <a href="?page=valider_reception&id=<?= $reception_id ?>"
           class="btn btn-success">
            <i class="fa fa-check"></i> Générer l'achat
        </a>
    <?php else: ?>
        <span class="badge bg-success">Achat généré</span>
        <a href="?page=factures_fournisseurs&view=<?= (int)$achat['id'] ?>"
            class="btn btn-info">
            Voir achat
        </a>

    <?php endif; ?>

    <a href="?page=receptions_fournisseurs"
       class="btn btn-secondary">
        Retour
    </a>
</div>

</div>

<?php include __DIR__."/../../includes/layout_end.php"; ?>
