Files
bolsa/js/ordreGF.js
T

122 lines
4.1 KiB
JavaScript

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);
}
});
});