Files
bolsa/js/ordreGF.js
T

122 lines
4.1 KiB
JavaScript
Raw Normal View History

2026-07-05 14:19:13 +00:00
document.addEventListener("DOMContentLoaded", () => {
// --- 1. GESTION DES MODALS ET FORMULAIRES ---
2026-07-05 14:19:13 +00:00
2026-07-06 13:37:50 +00:00
// Modal Créer Ordre
const modalCreerOrdre = document.getElementById("modalCreerOrdre");
const btnCreer = document.querySelector(".ordregf-btn-creer");
2026-07-06 13:37:50 +00:00
if (modalCreerOrdre && btnCreer) {
btnCreer.addEventListener("click", () => modalCreerOrdre.showModal());
2026-07-06 13:37:50 +00:00
document.getElementById("btnAnnuler")?.addEventListener("click", () => {
document.getElementById("formCreerOrdre").reset();
modalCreerOrdre.close();
document.getElementById("btnValider").disabled = true;
});
}
2026-07-05 14:19:13 +00:00
2026-07-06 13:37:50 +00:00
// Recherche Action
const btnRechercher = document.getElementById("btnRechercher");
btnRechercher?.addEventListener("click", async () => {
2026-07-05 14:19:13 +00:00
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)}`,
);
2026-07-05 14:19:13 +00:00
const data = await response.json();
2026-07-05 14:19:13 +00:00
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");
}
});
2026-07-06 13:37:50 +00:00
// Enregistrement Ordre
document
.getElementById("formCreerOrdre")
?.addEventListener("submit", async (e) => {
e.preventDefault();
// FormData récupère automatiquement tous les champs ayant un attribut "name"
2026-07-06 13:37:50 +00:00
const formData = new FormData(e.target);
2026-07-06 13:37:50 +00:00
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"),
);
}
2026-07-06 13:37:50 +00:00
});
2026-07-05 14:19:13 +00:00
2026-07-06 13:37:50 +00:00
// 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 || ""),
);
2026-07-05 14:19:13 +00:00
});
2026-07-06 13:37:50 +00:00
// --- 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();
}
2026-07-05 14:19:13 +00:00
}
});
2026-07-05 18:21:13 +00:00
2026-07-06 13:37:50 +00:00
// Soumission Modification
const formModif = document.getElementById("formModifierDetail");
formModif?.addEventListener("submit", async (e) => {
2026-07-05 18:21:13 +00:00
e.preventDefault();
2026-07-06 13:37:50 +00:00
const response = await fetch("/php/api_modifier_detail.php", {
2026-07-05 18:21:13 +00:00
method: "POST",
2026-07-06 13:37:50 +00:00
body: new FormData(e.target),
2026-07-05 18:21:13 +00:00
});
2026-07-06 13:37:50 +00:00
const result = await response.json();
if (result.success) {
2026-07-05 18:21:13 +00:00
location.reload();
} else {
2026-07-06 13:37:50 +00:00
alert("Erreur : " + result.message);
2026-07-05 18:21:13 +00:00
}
});
2026-07-06 13:37:50 +00:00
});