WIP: bolsa V 1.0
This commit is contained in:
+220
@@ -0,0 +1,220 @@
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
// =====================================================
|
||||
// OUTILS MODALES
|
||||
// =====================================================
|
||||
|
||||
function openModal(modal) {
|
||||
if (!modal) return;
|
||||
|
||||
modal.showModal();
|
||||
|
||||
// Force le centrage avec le CSS dialog
|
||||
modal.style.transform = "translate(-50%, -50%)";
|
||||
}
|
||||
|
||||
function closeModal(modal) {
|
||||
if (!modal) return;
|
||||
modal.close();
|
||||
modal.style.transform = "";
|
||||
}
|
||||
|
||||
// Fermeture par clic en dehors de la fenêtre
|
||||
document.querySelectorAll("dialog").forEach((dialog) => {
|
||||
dialog.addEventListener("click", (e) => {
|
||||
const rect = dialog.getBoundingClientRect();
|
||||
|
||||
const inside =
|
||||
e.clientX >= rect.left &&
|
||||
e.clientX <= rect.right &&
|
||||
e.clientY >= rect.top &&
|
||||
e.clientY <= rect.bottom;
|
||||
|
||||
if (!inside) {
|
||||
closeModal(dialog);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// =====================================================
|
||||
// MODAL CREATION ORDRE
|
||||
// =====================================================
|
||||
|
||||
const modalCreerOrdre = document.getElementById("modalCreerOrdre");
|
||||
|
||||
const btnCreer = document.querySelector(".ordrejfg-btn-creer");
|
||||
|
||||
if (modalCreerOrdre && btnCreer) {
|
||||
btnCreer.addEventListener("click", () => {
|
||||
openModal(modalCreerOrdre);
|
||||
});
|
||||
|
||||
document.getElementById("btnAnnuler")?.addEventListener("click", () => {
|
||||
document.getElementById("formCreerOrdre")?.reset();
|
||||
|
||||
closeModal(modalCreerOrdre);
|
||||
|
||||
const btnValider = document.getElementById("btnValider");
|
||||
|
||||
if (btnValider) {
|
||||
btnValider.disabled = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// =====================================================
|
||||
// RECHERCHE ACTION
|
||||
// =====================================================
|
||||
|
||||
const btnRechercher = document.getElementById("btnRechercher");
|
||||
|
||||
btnRechercher?.addEventListener("click", async () => {
|
||||
const isin = document.getElementById("isinRecherche").value;
|
||||
|
||||
if (!isin) {
|
||||
alert("Veuillez entrer un code ISIN");
|
||||
return;
|
||||
}
|
||||
|
||||
const response = await fetch(
|
||||
`/php/api_rechercher_action_jfg.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();
|
||||
|
||||
const formData = new FormData(e.target);
|
||||
|
||||
const response = await fetch("/php/api_enregistrer_ordre_jfg.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_jfg.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 || ""),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// =====================================================
|
||||
// MODIFICATION DETAIL
|
||||
// =====================================================
|
||||
|
||||
document.addEventListener("click", (e) => {
|
||||
const button = e.target.closest(".ordrejfg-btn-modifier-petit");
|
||||
|
||||
if (!button) return;
|
||||
|
||||
const detail = JSON.parse(button.getAttribute("data-detail"));
|
||||
|
||||
const modal = document.getElementById("modalModifierDetail");
|
||||
|
||||
if (!modal) return;
|
||||
|
||||
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_type").value = (
|
||||
detail.Type || ""
|
||||
).toLowerCase();
|
||||
|
||||
document.getElementById("edit_etat").value = (
|
||||
detail.Etat || ""
|
||||
).toLowerCase();
|
||||
|
||||
document.getElementById("edit_ordre").value = (
|
||||
detail.Ordre || ""
|
||||
).toLowerCase();
|
||||
|
||||
openModal(modal);
|
||||
});
|
||||
|
||||
// =====================================================
|
||||
// ENREGISTREMENT MODIFICATION
|
||||
// =====================================================
|
||||
|
||||
document
|
||||
.getElementById("formModifierDetail")
|
||||
?.addEventListener("submit", async (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
const response = await fetch("/php/api_modifier_detail_jfg.php", {
|
||||
method: "POST",
|
||||
body: new FormData(e.target),
|
||||
});
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
if (result.success) {
|
||||
location.reload();
|
||||
} else {
|
||||
alert("Erreur : " + result.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user