<?php
session_start();
require_once "../../config/db.php";


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

/* =========================
   AUTH
========================= */
$utilisateur_id = $_SESSION['user']['id'] ?? null;
if (!$utilisateur_id) {
    die(json_encode([
        "success" => false,
        "message" => "Utilisateur non authentifié"
    ]));
}

/* =========================
   DATA
========================= */
$client_id = (int)($_POST['client_id'] ?? 0);
$date_commande = $_POST['date_commande'] ?? date("Y-m-d H:i:s");
$produits = $_POST['produits'] ?? [];

if (!$client_id) {
    die(json_encode(["success"=>false,"message"=>"Client obligatoire"]));
}

if (empty($produits)) {
    die(json_encode(["success"=>false,"message"=>"Aucun produit"]));
}

/* =========================
   NUMERO AUTO
========================= */
$stmt = $conn->prepare("
    SELECT COUNT(*) 
    FROM commandes_clients
    WHERE YEAR(date_commande)=YEAR(NOW())
");
$stmt->execute();
$nb = $stmt->fetchColumn();

$numero = "CMD-" . date("Y") . "-" . str_pad($nb+1, 4, "0", STR_PAD_LEFT);

/* =========================
   TRANSACTION
========================= */
$conn->beginTransaction();

try {

    $total_ht = 0;

    /* =========================
       CALCUL TOTAL
    ========================= */
    foreach ($produits as $p) {

        $produit_id = (int)$p['id'];
        $qte = (float)$p['quantite'];

        if (!$produit_id || $qte <= 0) continue;

        // prix depuis DB (sécurité ERP)
        $stmt = $conn->prepare("SELECT prix_vente FROM produits WHERE id=?");
        $stmt->execute([$produit_id]);
        $prix = (float)$stmt->fetchColumn();

        $total_ht += $prix * $qte;
    }

    $total_ttc = $total_ht; // pas de taxe ici (tu peux ajouter après)

    /* =========================
       INSERT COMMANDE
    ========================= */
    $stmt = $conn->prepare("
        INSERT INTO commandes_clients
        (numero, client_id, date_commande, total_ht, total_ttc, statut, utilisateur_id, created_at)
        VALUES (?, ?, ?, ?, ?, 'en_cours', ?, NOW())
    ");

    $stmt->execute([
        $numero,
        $client_id,
        $date_commande,
        $total_ht,
        $total_ttc,
        $utilisateur_id
    ]);

    $commande_id = $conn->lastInsertId();

    /* =========================
       DETAILS
    ========================= */
    foreach ($produits as $p) {

        $produit_id = (int)$p['id'];
        $qte = (float)$p['quantite'];

        if (!$produit_id || $qte <= 0) continue;

        $stmt = $conn->prepare("SELECT prix_vente FROM produits WHERE id=?");
        $stmt->execute([$produit_id]);
        $prix = (float)$stmt->fetchColumn();

        $total = $prix * $qte;

        $conn->prepare("
            INSERT INTO commandes_clients_details
            (commande_id, produit_id, quantite, prix, total)
            VALUES (?, ?, ?, ?, ?)
        ")->execute([
            $commande_id,
            $produit_id,
            $qte,
            $prix,
            $total
        ]);
    }

     $conn->commit();

    } catch (Exception $e) {
        $conn->rollBack();
        die("Erreur : " . $e->getMessage());
    }

header("Location: /eagle_client_istanbulcups/index.php?page=commandes_clients");
exit;