From 75de2a46f1ce36c47d897c7de2555ee5b6fe3f0e Mon Sep 17 00:00:00 2001 From: jfgiraud Date: Mon, 6 Jul 2026 13:37:50 +0000 Subject: [PATCH] WIP: tout ok sauf btn 'creer un ordre' --- js/ordreGF.js | 132 +++++++++++++++++++++--------------- php/api_modifier_detail.php | 38 +++++++++++ php/ordreGF.php | 45 +++++++++++- 3 files changed, 160 insertions(+), 55 deletions(-) create mode 100644 php/api_modifier_detail.php diff --git a/js/ordreGF.js b/js/ordreGF.js index 0e0a9f2..1762a53 100644 --- a/js/ordreGF.js +++ b/js/ordreGF.js @@ -1,24 +1,24 @@ document.addEventListener("DOMContentLoaded", () => { - const modal = document.getElementById("modalCreerOrdre"); + // --- 1. GESTION DES MODALS ET FORMULAIRES (SI PRÉSENTS) --- + + // Modal Créer Ordre + const modalCreerOrdre = document.getElementById("modalCreerOrdre"); const btnCreer = document.querySelector(".ordregf-btn-creer"); - const btnAnnuler = document.getElementById("btnAnnuler"); + 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"); - const form = document.getElementById("formCreerOrdre"); - - // Ouverture popup - btnCreer.addEventListener("click", () => modal.showModal()); - btnAnnuler.addEventListener("click", () => { - form.reset(); - modal.close(); - document.getElementById("btnValider").disabled = true; - }); - - // Recherche action - btnRechercher.addEventListener("click", async () => { + btnRechercher?.addEventListener("click", async () => { const isin = document.getElementById("isinRecherche").value; const response = await fetch(`/php/api_rechercher_action.php?isin=${isin}`); const data = await response.json(); - if (data.success) { document.getElementById("Nom").value = data.company_name; document.getElementById("ticker").value = data.ticker; @@ -29,46 +29,72 @@ document.addEventListener("DOMContentLoaded", () => { } }); - // Enregistrement - form.addEventListener("submit", async (e) => { - e.preventDefault(); - const formData = new FormData(form); - formData.append("isin", document.getElementById("isinRecherche").value); - - const response = await fetch("/php/api_enregistrer_ordre.php", { - method: "POST", - body: formData, + // Enregistrement Ordre + document + .getElementById("formCreerOrdre") + ?.addEventListener("submit", async (e) => { + e.preventDefault(); + const formData = new FormData(e.target); + formData.append("isin", document.getElementById("isinRecherche").value); + const response = await fetch("/php/api_enregistrer_ordre.php", { + method: "POST", + body: formData, + }); + if ((await response.json()).success) location.reload(); }); - if ((await response.json()).success) { - location.reload(); // Recharger la page pour voir le nouvel ordre + // 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), + }); + if ((await response.json()).success) location.reload(); + else alert("Erreur lors de l'enregistrement du détail"); + }); + + // --- 2. GESTION MODIFICATION (DÉLÉGATION D'ÉVÉNEMENT) --- + + document.addEventListener("click", (e) => { + // Ouverture Modal Modifier + 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); } }); }); - -// Dans js/ordreGF.js -window.ouvrirModalCreation = function (masterId) { - // Optionnel : stocker l'ID dans un champ caché de votre formulaire - let inputHidden = document.getElementById("Id_entete_hidden"); - if (inputHidden) inputHidden.value = masterId; - - document.getElementById("modalCreerOrdre").showModal(); -}; - -document - .getElementById("formCreerDetail") - .addEventListener("submit", async (e) => { - e.preventDefault(); - const formData = new FormData(e.target); - - const response = await fetch("/php/api_enregistrer_detail.php", { - method: "POST", - body: formData, - }); - - if ((await response.json()).success) { - location.reload(); - } else { - alert("Erreur lors de l'enregistrement du détail"); - } - }); diff --git a/php/api_modifier_detail.php b/php/api_modifier_detail.php new file mode 100644 index 0000000..eaad975 --- /dev/null +++ b/php/api_modifier_detail.php @@ -0,0 +1,38 @@ +getConnection(); + + $sql = "UPDATE ordreGF_pied SET + Date_op = :date, + Quantite = :qte, + Prix_brut = :prix, + Frais_brocker = :f_b, + Frais_etat = :f_e, + Frais_autre = :f_a, + Ordre = :ordre + WHERE Id = :id"; + + $stmt = $db->prepare($sql); + $stmt->execute([ + ':date' => $_POST['Date_op'], + ':qte' => $_POST['Quantite'], + ':prix' => $_POST['Prix_brut'], + ':f_b' => $_POST['Frais_brocker'], + ':f_e' => $_POST['Frais_etat'], + ':f_a' => $_POST['Frais_autre'], + ':ordre' => $_POST['Ordre'], + ':id' => $_POST['id'] + ]); + + echo json_encode(['success' => true]); + } catch (Exception $e) { + echo json_encode(['success' => false, 'message' => $e->getMessage()]); + } +} diff --git a/php/ordreGF.php b/php/ordreGF.php index 1a81a58..45df1f5 100644 --- a/php/ordreGF.php +++ b/php/ordreGF.php @@ -195,7 +195,11 @@ require_once __DIR__ . '/header.php'; TOTAL : - + + + + + @@ -212,7 +216,7 @@ require_once __DIR__ . '/header.php'; - +

Créer un nouvel ordre

@@ -290,6 +294,43 @@ require_once __DIR__ . '/header.php';
+ +
+ + +

Modifier le mouvement

+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ + + +
+
+ + +
+ +
+
+ \ No newline at end of file