document.addEventListener("DOMContentLoaded", () => { // --- 1. GESTION DES MODALS ET FORMULAIRES --- // Modal Créer Ordre const modalCreerOrdre = document.getElementById("modalCreerOrdre"); const btnCreer = document.querySelector(".ordregf-btn-creer"); if (modalCreerOrdre && btnCreer) { btnCreer.addEventListener("click", () => modalCreerOrdre.showModal()); document.getElementById("btnAnnuler")?.addEventListener("click", () => { document.getElementById("formCreerOrdre").reset(); modalCreerOrdre.close(); document.getElementById("btnValider").disabled = true; }); } // Recherche Action const btnRechercher = document.getElementById("btnRechercher"); btnRechercher?.addEventListener("click", async () => { const isin = document.getElementById("isinRecherche").value; if (!isin) return alert("Veuillez entrer un code ISIN"); const response = await fetch( `/php/api_rechercher_action.php?isin=${encodeURIComponent(isin)}`, ); const data = await response.json(); if (data.success) { document.getElementById("Nom").value = data.company_name; document.getElementById("ticker").value = data.ticker; document.getElementById("code_yahoo").value = data.yahoo_code; document.getElementById("btnValider").disabled = false; } else { alert("Action non trouvée"); } }); // Enregistrement Ordre document .getElementById("formCreerOrdre") ?.addEventListener("submit", async (e) => { e.preventDefault(); // FormData récupère automatiquement tous les champs ayant un attribut "name" const formData = new FormData(e.target); const response = await fetch("/php/api_enregistrer_ordre.php", { method: "POST", body: formData, }); const result = await response.json(); if (result.success) { location.reload(); } else { alert( "Erreur lors de l'enregistrement : " + (result.message || "Erreur inconnue"), ); } }); // Enregistrement Detail document .getElementById("formCreerDetail") ?.addEventListener("submit", async (e) => { e.preventDefault(); const response = await fetch("/php/api_enregistrer_detail.php", { method: "POST", body: new FormData(e.target), }); const result = await response.json(); if (result.success) location.reload(); else alert( "Erreur lors de l'enregistrement du détail : " + (result.message || ""), ); }); // --- 2. GESTION MODIFICATION (DÉLÉGATION D'ÉVÉNEMENT) --- document.addEventListener("click", (e) => { const button = e.target.closest(".ordregf-btn-modifier-petit"); if (button) { const detail = JSON.parse(button.getAttribute("data-detail")); const modal = document.getElementById("modalModifierDetail"); if (modal) { document.getElementById("edit_id").value = detail.Id; document.getElementById("edit_Id_entete").value = detail.Id_entete; document.getElementById("edit_date").value = detail.Date_op; document.getElementById("edit_quantite").value = detail.Quantite; document.getElementById("edit_prix").value = detail.Prix_brut; document.getElementById("edit_frais_broker").value = detail.Frais_brocker || 0; document.getElementById("edit_frais_etat").value = detail.Frais_etat || 0; document.getElementById("edit_frais_autre").value = detail.Frais_autre || 0; document.getElementById("edit_ordre").value = detail.Ordre; modal.showModal(); } } }); // Soumission Modification const formModif = document.getElementById("formModifierDetail"); formModif?.addEventListener("submit", async (e) => { e.preventDefault(); const response = await fetch("/php/api_modifier_detail.php", { method: "POST", body: new FormData(e.target), }); const result = await response.json(); if (result.success) { location.reload(); } else { alert("Erreur : " + result.message); } }); });