WIP: tout fonctionne il ne reste plus que ordreJFG et le scroll
This commit is contained in:
@@ -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
@@ -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"));
|
||||||
|
|||||||
@@ -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
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user