WIP: tout fonctionne il ne reste plus que ordreJFG et le scroll

This commit is contained in:
2026-07-06 14:18:36 +00:00
parent 75de2a46f1
commit 8793bb09d7
4 changed files with 50 additions and 13 deletions
+9
View File
@@ -175,3 +175,12 @@
display: flex; display: flex;
gap: 10px; gap: 10px;
} }
.ordregf-master-row {
background: linear-gradient(90deg, #001f3f, #004cff) !important;
color: #ffffff;
font-weight: 600;
letter-spacing: 0.3px;
border-bottom: 1px solid rgba(255, 255, 255, 0.15);
box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.08);
}
+28 -7
View File
@@ -1,11 +1,13 @@
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
// --- 1. GESTION DES MODALS ET FORMULAIRES (SI PRÉSENTS) --- // --- 1. GESTION DES MODALS ET FORMULAIRES ---
// Modal Créer Ordre // Modal Créer Ordre
const modalCreerOrdre = document.getElementById("modalCreerOrdre"); const modalCreerOrdre = document.getElementById("modalCreerOrdre");
const btnCreer = document.querySelector(".ordregf-btn-creer"); const btnCreer = document.querySelector(".ordregf-btn-creer");
if (modalCreerOrdre && btnCreer) { if (modalCreerOrdre && btnCreer) {
btnCreer.addEventListener("click", () => modalCreerOrdre.showModal()); btnCreer.addEventListener("click", () => modalCreerOrdre.showModal());
document.getElementById("btnAnnuler")?.addEventListener("click", () => { document.getElementById("btnAnnuler")?.addEventListener("click", () => {
document.getElementById("formCreerOrdre").reset(); document.getElementById("formCreerOrdre").reset();
modalCreerOrdre.close(); modalCreerOrdre.close();
@@ -17,8 +19,13 @@ document.addEventListener("DOMContentLoaded", () => {
const btnRechercher = document.getElementById("btnRechercher"); const btnRechercher = document.getElementById("btnRechercher");
btnRechercher?.addEventListener("click", async () => { btnRechercher?.addEventListener("click", async () => {
const isin = document.getElementById("isinRecherche").value; const isin = document.getElementById("isinRecherche").value;
const response = await fetch(`/php/api_rechercher_action.php?isin=${isin}`); 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(); const data = await response.json();
if (data.success) { if (data.success) {
document.getElementById("Nom").value = data.company_name; document.getElementById("Nom").value = data.company_name;
document.getElementById("ticker").value = data.ticker; document.getElementById("ticker").value = data.ticker;
@@ -34,13 +41,23 @@ document.addEventListener("DOMContentLoaded", () => {
.getElementById("formCreerOrdre") .getElementById("formCreerOrdre")
?.addEventListener("submit", async (e) => { ?.addEventListener("submit", async (e) => {
e.preventDefault(); e.preventDefault();
// FormData récupère automatiquement tous les champs ayant un attribut "name"
const formData = new FormData(e.target); const formData = new FormData(e.target);
formData.append("isin", document.getElementById("isinRecherche").value);
const response = await fetch("/php/api_enregistrer_ordre.php", { const response = await fetch("/php/api_enregistrer_ordre.php", {
method: "POST", method: "POST",
body: formData, body: formData,
}); });
if ((await response.json()).success) location.reload();
const result = await response.json();
if (result.success) {
location.reload();
} else {
alert(
"Erreur lors de l'enregistrement : " +
(result.message || "Erreur inconnue"),
);
}
}); });
// Enregistrement Detail // Enregistrement Detail
@@ -52,14 +69,18 @@ document.addEventListener("DOMContentLoaded", () => {
method: "POST", method: "POST",
body: new FormData(e.target), body: new FormData(e.target),
}); });
if ((await response.json()).success) location.reload(); const result = await response.json();
else alert("Erreur lors de l'enregistrement du détail"); 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) --- // --- 2. GESTION MODIFICATION (DÉLÉGATION D'ÉVÉNEMENT) ---
document.addEventListener("click", (e) => { document.addEventListener("click", (e) => {
// Ouverture Modal Modifier
const button = e.target.closest(".ordregf-btn-modifier-petit"); const button = e.target.closest(".ordregf-btn-modifier-petit");
if (button) { if (button) {
const detail = JSON.parse(button.getAttribute("data-detail")); const detail = JSON.parse(button.getAttribute("data-detail"));
+3
View File
@@ -1,4 +1,7 @@
<?php <?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
require_once __DIR__ . '/db.php'; require_once __DIR__ . '/db.php';
$db = (new App\Database\Database())->getConnection(); $db = (new App\Database\Database())->getConnection();
$stmt = $db->prepare("INSERT INTO ordreGF (isin, Nom, ticker, code_yahoo) VALUES (?, ?, ?, ?)"); $stmt = $db->prepare("INSERT INTO ordreGF (isin, Nom, ticker, code_yahoo) VALUES (?, ?, ?, ?)");
+10 -6
View File
@@ -195,11 +195,15 @@ require_once __DIR__ . '/header.php';
<tr style="background-color: rgba(255, 255, 255, 0.08); font-weight: bold;"> <tr style="background-color: rgba(255, 255, 255, 0.08); font-weight: bold;">
<td style="text-align: right;">TOTAL :</td> <td style="text-align: right;">TOTAL :</td>
<td class="text-right"><?= number_format($totalQ, 0, ',', ' ') ?></td> <td class="text-right"><?= number_format($totalQ, 0, ',', ' ') ?></td>
<?php if ($totalQ == 0): ?>
<td class="text-right"><?= number_format($engaBrut / $totalQ, 3, ',', ' ') ?></td> <td class="text-right">0</td>
<td class="text-right"><?= number_format($engaNet / $totalQ - $engaBrut / $totalQ, 3, ',', ' ') ?></td> <td class="text-right">0</td>
<td class="text-right"><?= number_format($engaNet / $totalQ, 3, ',', ' ') ?></td> <td class="text-right">0</td>
<?php else: ?>
<td class="text-right"><?= number_format($engaBrut / $totalQ, 3, ',', ' ') ?></td>
<td class="text-right"><?= number_format($engaNet / $totalQ - $engaBrut / $totalQ, 3, ',', ' ') ?></td>
<td class="text-right"><?= number_format($engaNet / $totalQ, 3, ',', ' ') ?></td>
<?php endif; ?>
<td class="text-right"><?= number_format($engaBrut, 3, ',', ' ') ?></td> <td class="text-right"><?= number_format($engaBrut, 3, ',', ' ') ?></td>
<td class="text-right"><?= number_format($engaNet, 3, ',', ' ') ?></td> <td class="text-right"><?= number_format($engaNet, 3, ',', ' ') ?></td>
<td colspan="4"></td> <td colspan="4"></td>
@@ -222,7 +226,7 @@ require_once __DIR__ . '/header.php';
<h2>Créer un nouvel ordre</h2> <h2>Créer un nouvel ordre</h2>
<div class="form-group"> <div class="form-group">
<label>ISIN :</label><br> <label>ISIN :</label><br>
<input type="text" id="isinRecherche" required> <input type="text" id="isinRecherche" name="isin" required>
<button type="button" id="btnRechercher">Rechercher</button> <button type="button" id="btnRechercher">Rechercher</button>
</div> </div>
<div class="form-group"> <div class="form-group">