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

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

try {

  if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    throw new Exception("Méthode invalide");
  }

  session_start();

  $numero         = trim($_POST['numero'] ?? '');
  $fournisseur_id = (int)($_POST['fournisseur_id'] ?? 0);
  $date_commande  = $_POST['date_commande'] ?? date('Y-m-d H:i:s');
  $produits       = $_POST['produits'] ?? [];

  $user_id       = $_SESSION['user']['id'] ?? 0;
  //$entreprise_id = $_SESSION['user']['entreprise_id'] ?? 1;

  if (!$numero || !$fournisseur_id || !$user_id) {
    throw new Exception("Données commande invalides");
  }

  if (empty($produits)) {
    throw new Exception("Aucun produit");
  }

  $conn->beginTransaction();

  // En-tête
  $stmt = $conn->prepare("
    INSERT INTO commandes_fournisseurs
      (numero, fournisseur_id, date_commande,
       statut, utilisateur_id, created_at)
    VALUES (?, ?, ?, 'envoyee',  ?, NOW())
  ");

  $stmt->execute([
    $numero,
    $fournisseur_id,
    $date_commande,
    $user_id,
    //$entreprise_id
  ]);

  $commandeId = $conn->lastInsertId();

  // Détails
  $stmtD = $conn->prepare("
    INSERT INTO commandes_fournisseurs_details
      (commande_id, produit_id, quantite_commandee)
    VALUES (?, ?, ?)
  ");

  foreach ($produits as $p) {

    $produit_id = (int)($p['produit_id'] ?? 0);
    $quantite   = (int)($p['quantite'] ?? 0);

    if ($produit_id <= 0 || $quantite <= 0) {
      throw new Exception("Produit invalide");
    }

    $stmtD->execute([
      $commandeId,
      $produit_id,
      $quantite
    ]);
  }

  $conn->commit();

  header("Location: /eagle_client_istanbulcups/index.php?page=commandes_fournisseurs&success=1");
  exit;

} catch (Throwable $e) {

  if ($conn->inTransaction()) {
    $conn->rollBack();
  }

  http_response_code(500);
  echo "Erreur commande fournisseur : ".$e->getMessage();
}
