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

$commande_id = (int)($_GET['id'] ?? 0);
if ($commande_id <= 0) {
  die("Commande invalide");
}

/* ============================
   INFOS COMMANDE
============================ */
$stmt = $conn->prepare("
  SELECT 
    cf.id,
    cf.numero,
    cf.date_commande,
    cf.statut,
    f.nom AS fournisseur
  FROM commandes_fournisseurs cf
  JOIN fournisseurs f ON f.id = cf.fournisseur_id
  WHERE cf.id = ?
");
$stmt->execute([$commande_id]);
$commande = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$commande) {
  die("Commande introuvable");
}

/* ============================
    DONNÉES COMPARATIVES
============================ */
$stmt = $conn->prepare("
  SELECT 
    p.id AS produit_id,
    p.nom AS produit,

    /* Commandé */
    cfd.quantite_commandee,

    /* Reçu */
    COALESCE(SUM(rfd.quantite_livree), 0) AS quantite_recue,

    /* Facturé (achat) */
    COALESCE(SUM(ad.quantite), 0) AS quantite_facturee

  FROM commandes_fournisseurs_details cfd
  JOIN produits p ON p.id = cfd.produit_id

  /* Réceptions */
  LEFT JOIN receptions_fournisseurs rf 
         ON rf.commande_id = cfd.commande_id
  LEFT JOIN receptions_fournisseurs_details rfd 
         ON rfd.reception_id = rf.id
         AND rfd.produit_id = cfd.produit_id

  /* Achats / Factures */
  LEFT JOIN achats a 
         ON a.commande_id = cfd.commande_id
  LEFT JOIN achats_details ad
         ON ad.achat_id = a.id
         AND ad.produit_id = cfd.produit_id

  WHERE cfd.commande_id = ?

  GROUP BY 
    p.id,
    p.nom,
    cfd.quantite_commandee

  ORDER BY p.nom
");
$stmt->execute([$commande_id]);
$lignes = $stmt->fetchAll(PDO::FETCH_ASSOC);

?>

<div class="container-fluid">

<h1>
  <i class="fa fa-balance-scale"></i>
  Écarts Commande / Réception / Achat
</h1>

<p>
<b>Commande :</b> <?= htmlspecialchars($commande['numero']) ?><br>
<b>Fournisseur :</b> <?= htmlspecialchars($commande['fournisseur']) ?><br>
<b>Statut :</b> <?= htmlspecialchars($commande['statut']) ?>
</p>

<table class="table table-bordered table-striped">
<thead class="table-dark">
<tr>
  <th>Produit</th>
  <th>Commandé</th>
  <th>Reçu</th>
  <th>Facturé</th>
  <th>Écart Réception</th>
  <th>Écart Facture</th>
</tr>
</thead>
<tbody>

<?php foreach ($lignes as $l): 
  $ecart_reception = $l['quantite_recue'] - $l['quantite_commandee'];
  $ecart_facture   = $l['quantite_facturee'] - $l['quantite_recue'];

  // Couleurs
  $classReception = $ecart_reception == 0 ? 'table-success' :
                    ($ecart_reception < 0 ? 'table-warning' : 'table-danger');

  $classFacture = $ecart_facture == 0 ? 'table-success' :
                  ($ecart_facture < 0 ? 'table-warning' : 'table-danger');
?>

<tr>
  <td><?= htmlspecialchars($l['produit']) ?></td>

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

  <td class="text-center">
    <?= $l['quantite_recue'] ?>
  </td>

  <td class="text-center">
    <?= $l['quantite_facturee'] ?>
  </td>

  <td class="text-center <?= $classReception ?>">
    <?= $ecart_reception ?>
  </td>

  <td class="text-center <?= $classFacture ?>">
    <?= $ecart_facture ?>
  </td>
</tr>

<?php endforeach; ?>

</tbody>
</table>

<a href="/eaglesuite/index.php?page=receptions_fournisseurs&id=<?= $commande_id ?>"
   class="btn btn-secondary">
   <i class="fa fa-arrow-left"></i> Retour réception
</a>

</div>
