WIP: tout ok sauf btn 'creer un ordre'
This commit is contained in:
+79
-53
@@ -1,24 +1,24 @@
|
|||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
const modal = document.getElementById("modalCreerOrdre");
|
// --- 1. GESTION DES MODALS ET FORMULAIRES (SI PRÉSENTS) ---
|
||||||
|
|
||||||
|
// Modal Créer Ordre
|
||||||
|
const modalCreerOrdre = document.getElementById("modalCreerOrdre");
|
||||||
const btnCreer = document.querySelector(".ordregf-btn-creer");
|
const btnCreer = document.querySelector(".ordregf-btn-creer");
|
||||||
const btnAnnuler = document.getElementById("btnAnnuler");
|
if (modalCreerOrdre && btnCreer) {
|
||||||
|
btnCreer.addEventListener("click", () => modalCreerOrdre.showModal());
|
||||||
|
document.getElementById("btnAnnuler")?.addEventListener("click", () => {
|
||||||
|
document.getElementById("formCreerOrdre").reset();
|
||||||
|
modalCreerOrdre.close();
|
||||||
|
document.getElementById("btnValider").disabled = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recherche Action
|
||||||
const btnRechercher = document.getElementById("btnRechercher");
|
const btnRechercher = document.getElementById("btnRechercher");
|
||||||
const form = document.getElementById("formCreerOrdre");
|
btnRechercher?.addEventListener("click", async () => {
|
||||||
|
|
||||||
// Ouverture popup
|
|
||||||
btnCreer.addEventListener("click", () => modal.showModal());
|
|
||||||
btnAnnuler.addEventListener("click", () => {
|
|
||||||
form.reset();
|
|
||||||
modal.close();
|
|
||||||
document.getElementById("btnValider").disabled = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Recherche action
|
|
||||||
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}`);
|
const response = await fetch(`/php/api_rechercher_action.php?isin=${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;
|
||||||
@@ -29,46 +29,72 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Enregistrement
|
// Enregistrement Ordre
|
||||||
form.addEventListener("submit", async (e) => {
|
document
|
||||||
e.preventDefault();
|
.getElementById("formCreerOrdre")
|
||||||
const formData = new FormData(form);
|
?.addEventListener("submit", async (e) => {
|
||||||
formData.append("isin", document.getElementById("isinRecherche").value);
|
e.preventDefault();
|
||||||
|
const formData = new FormData(e.target);
|
||||||
const response = await fetch("/php/api_enregistrer_ordre.php", {
|
formData.append("isin", document.getElementById("isinRecherche").value);
|
||||||
method: "POST",
|
const response = await fetch("/php/api_enregistrer_ordre.php", {
|
||||||
body: formData,
|
method: "POST",
|
||||||
|
body: formData,
|
||||||
|
});
|
||||||
|
if ((await response.json()).success) location.reload();
|
||||||
});
|
});
|
||||||
|
|
||||||
if ((await response.json()).success) {
|
// Enregistrement Detail
|
||||||
location.reload(); // Recharger la page pour voir le nouvel ordre
|
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),
|
||||||
|
});
|
||||||
|
if ((await response.json()).success) location.reload();
|
||||||
|
else alert("Erreur lors de l'enregistrement du détail");
|
||||||
|
});
|
||||||
|
|
||||||
|
// --- 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"));
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Soumission Modification
|
||||||
|
const formModif = document.getElementById("formModifierDetail");
|
||||||
|
formModif?.addEventListener("submit", async (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
const response = await fetch("/php/api_modifier_detail.php", {
|
||||||
|
method: "POST",
|
||||||
|
body: new FormData(e.target),
|
||||||
|
});
|
||||||
|
const result = await response.json();
|
||||||
|
if (result.success) {
|
||||||
|
location.reload();
|
||||||
|
} else {
|
||||||
|
alert("Erreur : " + result.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Dans js/ordreGF.js
|
|
||||||
window.ouvrirModalCreation = function (masterId) {
|
|
||||||
// Optionnel : stocker l'ID dans un champ caché de votre formulaire
|
|
||||||
let inputHidden = document.getElementById("Id_entete_hidden");
|
|
||||||
if (inputHidden) inputHidden.value = masterId;
|
|
||||||
|
|
||||||
document.getElementById("modalCreerOrdre").showModal();
|
|
||||||
};
|
|
||||||
|
|
||||||
document
|
|
||||||
.getElementById("formCreerDetail")
|
|
||||||
.addEventListener("submit", async (e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
const formData = new FormData(e.target);
|
|
||||||
|
|
||||||
const response = await fetch("/php/api_enregistrer_detail.php", {
|
|
||||||
method: "POST",
|
|
||||||
body: formData,
|
|
||||||
});
|
|
||||||
|
|
||||||
if ((await response.json()).success) {
|
|
||||||
location.reload();
|
|
||||||
} else {
|
|
||||||
alert("Erreur lors de l'enregistrement du détail");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
require_once __DIR__ . '/db.php';
|
||||||
|
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
|
try {
|
||||||
|
$db = (new App\Database\Database())->getConnection();
|
||||||
|
|
||||||
|
$sql = "UPDATE ordreGF_pied SET
|
||||||
|
Date_op = :date,
|
||||||
|
Quantite = :qte,
|
||||||
|
Prix_brut = :prix,
|
||||||
|
Frais_brocker = :f_b,
|
||||||
|
Frais_etat = :f_e,
|
||||||
|
Frais_autre = :f_a,
|
||||||
|
Ordre = :ordre
|
||||||
|
WHERE Id = :id";
|
||||||
|
|
||||||
|
$stmt = $db->prepare($sql);
|
||||||
|
$stmt->execute([
|
||||||
|
':date' => $_POST['Date_op'],
|
||||||
|
':qte' => $_POST['Quantite'],
|
||||||
|
':prix' => $_POST['Prix_brut'],
|
||||||
|
':f_b' => $_POST['Frais_brocker'],
|
||||||
|
':f_e' => $_POST['Frais_etat'],
|
||||||
|
':f_a' => $_POST['Frais_autre'],
|
||||||
|
':ordre' => $_POST['Ordre'],
|
||||||
|
':id' => $_POST['id']
|
||||||
|
]);
|
||||||
|
|
||||||
|
echo json_encode(['success' => true]);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
|
||||||
|
}
|
||||||
|
}
|
||||||
+43
-2
@@ -195,7 +195,11 @@ 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>
|
||||||
<td colspan="4"></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>
|
||||||
|
|
||||||
<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>
|
||||||
@@ -212,7 +216,7 @@ require_once __DIR__ . '/header.php';
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- ... Modals et scripts ... -->
|
<!-- Modals -->
|
||||||
<dialog id="modalCreerOrdre" class="ordregf-modal">
|
<dialog id="modalCreerOrdre" class="ordregf-modal">
|
||||||
<form id="formCreerOrdre">
|
<form id="formCreerOrdre">
|
||||||
<h2>Créer un nouvel ordre</h2>
|
<h2>Créer un nouvel ordre</h2>
|
||||||
@@ -290,6 +294,43 @@ require_once __DIR__ . '/header.php';
|
|||||||
</form>
|
</form>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
|
<dialog id="modalModifierDetail" class="ordregf-modal">
|
||||||
|
<form id="formModifierDetail">
|
||||||
|
<input type="hidden" name="id" id="edit_id">
|
||||||
|
<input type="hidden" name="Id_entete" id="edit_Id_entete">
|
||||||
|
<h2>Modifier le mouvement</h2>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Date :</label><br>
|
||||||
|
<input type="date" name="Date_op" id="edit_date" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Quantité :</label><br>
|
||||||
|
<input type="number" name="Quantite" id="edit_quantite" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Prix Brut :</label><br>
|
||||||
|
<input type="number" step="0.001" name="Prix_brut" id="edit_prix" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Frais :</label><br>
|
||||||
|
<input type="number" step="0.01" name="Frais_brocker" id="edit_frais_broker" placeholder="Broker">
|
||||||
|
<input type="number" step="0.01" name="Frais_etat" id="edit_frais_etat" placeholder="Etat">
|
||||||
|
<input type="number" step="0.01" name="Frais_autre" id="edit_frais_autre" placeholder="Autre">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Ordre :</label>
|
||||||
|
<select name="Ordre" id="edit_ordre">
|
||||||
|
<option value="Achat">Achat</option>
|
||||||
|
<option value="Vente">Vente</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="modal-actions" style="margin-top: 20px;">
|
||||||
|
<button type="button" onclick="document.getElementById('modalModifierDetail').close()">Annuler</button>
|
||||||
|
<button type="submit">Enregistrer</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</dialog>
|
||||||
|
|
||||||
<script src="/js/ordreGF.js" defer></script>
|
<script src="/js/ordreGF.js" defer></script>
|
||||||
|
|
||||||
<?php require_once __DIR__ . '/footer.php'; ?>
|
<?php require_once __DIR__ . '/footer.php'; ?>
|
||||||
Reference in New Issue
Block a user