WIP: tout fonctionne il ne reste plus que ordreJFG et le scroll
This commit is contained in:
@@ -175,3 +175,12 @@
|
||||
display: flex;
|
||||
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
@@ -1,11 +1,13 @@
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
// --- 1. GESTION DES MODALS ET FORMULAIRES (SI PRÉSENTS) ---
|
||||
// --- 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();
|
||||
@@ -17,8 +19,13 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
const btnRechercher = document.getElementById("btnRechercher");
|
||||
btnRechercher?.addEventListener("click", async () => {
|
||||
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();
|
||||
|
||||
if (data.success) {
|
||||
document.getElementById("Nom").value = data.company_name;
|
||||
document.getElementById("ticker").value = data.ticker;
|
||||
@@ -34,13 +41,23 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
.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);
|
||||
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();
|
||||
|
||||
const result = await response.json();
|
||||
if (result.success) {
|
||||
location.reload();
|
||||
} else {
|
||||
alert(
|
||||
"Erreur lors de l'enregistrement : " +
|
||||
(result.message || "Erreur inconnue"),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// Enregistrement Detail
|
||||
@@ -52,14 +69,18 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
method: "POST",
|
||||
body: new FormData(e.target),
|
||||
});
|
||||
if ((await response.json()).success) location.reload();
|
||||
else alert("Erreur lors de l'enregistrement du détail");
|
||||
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) => {
|
||||
// Ouverture Modal Modifier
|
||||
const button = e.target.closest(".ordregf-btn-modifier-petit");
|
||||
if (button) {
|
||||
const detail = JSON.parse(button.getAttribute("data-detail"));
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<?php
|
||||
ini_set('display_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
require_once __DIR__ . '/db.php';
|
||||
$db = (new App\Database\Database())->getConnection();
|
||||
$stmt = $db->prepare("INSERT INTO ordreGF (isin, Nom, ticker, code_yahoo) VALUES (?, ?, ?, ?)");
|
||||
|
||||
+10
-6
@@ -195,11 +195,15 @@ require_once __DIR__ . '/header.php';
|
||||
<tr style="background-color: rgba(255, 255, 255, 0.08); font-weight: bold;">
|
||||
<td style="text-align: right;">TOTAL :</td>
|
||||
<td class="text-right"><?= number_format($totalQ, 0, ',', ' ') ?></td>
|
||||
|
||||
<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 if ($totalQ == 0): ?>
|
||||
<td class="text-right">0</td>
|
||||
<td class="text-right">0</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($engaNet, 3, ',', ' ') ?></td>
|
||||
<td colspan="4"></td>
|
||||
@@ -222,7 +226,7 @@ require_once __DIR__ . '/header.php';
|
||||
<h2>Créer un nouvel ordre</h2>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
Reference in New Issue
Block a user