<?php 
include __DIR__ . '/../../config/db.php';

$produits = $conn->query("
    SELECT id, reference, nom, prix_achat 
    FROM produits 
    ORDER BY nom ASC
")->fetchAll(PDO::FETCH_ASSOC);

$depots   = $conn->query("SELECT id, nom FROM depots ORDER BY nom ASC")->fetchAll(PDO::FETCH_ASSOC);

$produitsOptionsHtml = '';
foreach ($produits as $p) {
    $label = htmlspecialchars($p['nom'], ENT_QUOTES, 'UTF-8');
    if (!empty($p['reference'])) {
        $label .= ' (' . htmlspecialchars($p['reference'], ENT_QUOTES, 'UTF-8') . ')';
    }
    $produitsOptionsHtml .= 
        '<option value="'.(int)$p['id'].'" data-prix="'.htmlspecialchars($p['prix_achat'], ENT_QUOTES, 'UTF-8').'">'
        .$label.
        '</option>';
}

$depotsOptionsHtml = '';
foreach ($depots as $d) {
    $depotsOptionsHtml .= '<option value="'.htmlspecialchars($d['id'], ENT_QUOTES, 'UTF-8').'">'.htmlspecialchars($d['nom'], ENT_QUOTES, 'UTF-8').'</option>';
}
?>

<!-- Modal Ajouter appro -->
<div class="modal fade" id="ajouterApproModal" tabindex="-1"
     aria-labelledby="ajouterApproLabel" aria-hidden="true">

  <div class="modal-dialog modal-xl">
    <div class="modal-content">

      <form id="formAjouterAppro" method="POST"
            action="/eagle_client_istanbulcups/api/appro/ajouter.php">

        <!-- HEADER -->
        <div class="modal-header bg-primary text-white">
          <h5 class="modal-title" id="ajouterApproLabel">Ajouter une entrée de stock</h5>
          <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
        </div>

        <!-- BODY -->
        <div class="modal-body">

          <!-- Date -->
          <div class="row g-3 mb-3">
            <div class="col-md-3">
              <label class="form-label">Date</label>
              <input type="datetime-local"
                     name="date_appro"
                     class="form-control"
                     value="<?= date('Y-m-d\TH:i') ?>"
                     required>
            </div>
          </div> 
          <!-- Lignes produits -->
          <div id="produitsContainer">

            <div class="row mb-2 align-items-center" id="ligneProduit0">

              <div class="col-md-3">
                <label>Désignation </label>
                <select name="produits[0][id]"
                        class="form-control produitSelect"
                        onchange="mettreAJourPrix(0)">
                  <option value="">-- Produit --</option>
                  <?= $produitsOptionsHtml ?>
                </select>
              </div>
              <div class="col-md-2">
                <label>Depot </label>
                <select name="produits[0][depot_id]" class="form-control depotSelect" >
                  <?= $depotsOptionsHtml ?>
                </select>
              </div>

              <div class="col-md-1">
                <label>Quantité </label>
                <input type="number"
                       name="produits[0][quantite]"
                       class="form-control quantiteInput"
                       min="1"
                       value="1"
                       oninput="calculerLigne(0)"
                       required>
              </div>

              <div class="col-auto">
                <button type="button"
                        class="btn btn-danger btn-sm"
                        onclick="supprimerLigneProduit(0)">
                  🗑️
                </button>
              </div>

            </div>
          </div>

          <!-- Ajouter ligne -->
          <div class="mt-2 mb-3">
            <button type="button"
                    class="btn btn-success btn-sm"
                    onclick="ajouterLigneProduit()">
              ➕ Ajouter un produit
            </button>
          </div>

        </div> <!-- /modal-body -->

        <!-- FOOTER -->
        <div class="modal-footer">
          <button type="submit" class="btn btn-primary">Enregistrer</button>
          <button type="button"
                  class="btn btn-secondary"
                  data-bs-dismiss="modal">
            Annuler
          </button>
        </div>

      </form>

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


<script>
/* ------------ CONFIG / ETAT ------------ */
const produitsOptions = `<?= $produitsOptionsHtml ?>`;
const depotsOptions   = `<?= $depotsOptionsHtml ?>`;


let produitIndex = 1;                 // prochaine ligne

/* ------------ HELPERS SÉCURISÉS ------------ */
const $qs = (sel, scope=document) => scope.querySelector(sel);
const $qsa = (sel, scope=document) => Array.from(scope.querySelectorAll(sel));


  // init ligne 0 si présent
  setTimeout(()=> {
    if ($qs('#ligneProduit0')) {
      mettreAJourStock(0);
    }
    //calculerTotal();
  }, 50);


/* ------------ AJOUT / SUPPRESSION LIGNES ------------ */
function ajouterLigneProduit() {
  const idx = produitIndex++;
  const html = `
  <div class="row mb-2 align-items-center" id="ligneProduit${idx}">
    <div class="col-md-3">
      <select name="produits[${idx}][id]" class="form-control produitSelect" onchange="mettreAJourPrix(${idx})">
        <option value="">-- Sélectionner --</option>
        ${produitsOptions}
      </select>
    </div>
    <div class="col-md-2">
      <select name="produits[${idx}][depot_id]" class="form-control depotSelect">
        ${depotsOptions}
      </select>
    </div>
   
    <div class="col-md-1">
      <input type="number" name="produits[${idx}][quantite]" class="form-control quantiteInput" min="1" value="1"
             oninput="calculerLigne(${idx})" required>
    </div>
    
   
    <div class="col-auto">
      <button type="button" class="btn btn-danger btn-sm" onclick="supprimerLigneProduit(${idx})">🗑️</button>
    </div>
  </div>`;
  document.getElementById("produitsContainer").insertAdjacentHTML("beforeend", html);
}

function supprimerLigneProduit(i) {
  const el = document.getElementById("ligneProduit" + i);
  if (el) el.remove();
   mettreAJourStock(index);
}

/* Récupère le stock pour (produit, depot) et met à jour le badge (affichage seulement) */
function mettreAJourStock(index) {
  try {
    const produitSelect = document.querySelector(`#ligneProduit${index} .produitSelect`);
    const depotSelect   = document.querySelector(`#ligneProduit${index} .depotSelect`);
    const stockSpan     = document.getElementById('stockDispo' + index);
    if (!produitSelect || !depotSelect || !stockSpan) return;

    const produitId = produitSelect.value;
    const depotId   = depotSelect.value;
    if (!produitId || !depotId) {
      stockSpan.innerText = 'Stock actuel : -';
      stockSpan.className = 'badge bg-secondary';
      return;
    }

    // Appel API (ton endpoint) — adapte l'URL si besoin
    fetch(`/eagle_client_istanbulcups/api/appro/get_stock.php?produit_id=${encodeURIComponent(produitId)}&depot_id=${encodeURIComponent(depotId)}`)
      .then(r => r.json())
      .then(json => {
        const s = (json && typeof json.stock !== 'undefined') ? Number(json.stock) : null;
        if (s === null) {
          stockSpan.innerText = 'Stock actuel : ?';
          stockSpan.className = 'badge bg-secondary';
        } else {
          stockSpan.innerText = 'Stock actuel : ' + s;
          stockSpan.dataset.stock = s; // pour lecture si besoin
          stockSpan.className = 'badge bg-info';
        }
      })
      .catch(() => {
        stockSpan.innerText = 'Stock actuel : ?';
        stockSpan.className = 'badge bg-secondary';
      });
  } catch (err) {
    console.error("mettreAJourStock error:", err);
  }
}

</script>
