getConnection(); // --- Fonctions --- function fetchOrdreGF(PDO $connection): array { $query = 'SELECT * FROM `ordreGF` ORDER BY `ID` DESC'; $stmt = $connection->query($query); return $stmt->fetchAll(PDO::FETCH_ASSOC) ?: []; } function fetchOrdreGFPied(PDO $connection, string $masterId): array { $stmt = $connection->prepare('SELECT * FROM `ordreGF_pied` WHERE `Id_entete` = :masterId ORDER BY `Id` ASC'); $stmt->execute([':masterId' => $masterId]); return $stmt->fetchAll(PDO::FETCH_ASSOC) ?: []; } $ordres = fetchOrdreGF($connection); require_once __DIR__ . '/header.php'; ?>

Gestion des ordres GF

0); $plusvalue = 0.0000; if ($isSold) { foreach ($details as $detail) { $qte = (int)$detail['Quantite']; $prixNet = (float)$detail['Prix_brut'] + (float)$detail['Frais_brocker'] + (float)$detail['Frais_etat'] + (float)$detail['Frais_autre']; $eNet = round($qte * $prixNet, 4); $oType = strtolower($detail['Ordre']); $tOp = strtolower($detail['Type']); // Logique plus claire $signe = 0; if ($tOp === 'long') { $signe = ($oType === 'vente') ? 1 : -1; } else { // short $signe = ($oType === 'achat') ? 1 : -1; } $plusvalue += ($eNet * $signe); } // On arrondit le résultat final avant comparaison et insertion $plusvalue = round($plusvalue, 4); if (abs((float)$ordre['PlusValue'] - $plusvalue) > 0.0001) { $connection->prepare("UPDATE ordreGF SET PlusValue = ? WHERE ID = ?")->execute([$plusvalue, $ordre['ID']]); $connection->prepare("UPDATE ordreGF_pied SET Etat = 'soldé' WHERE Id_entete = ? AND Etat != 'soldé'")->execute([$ordre['ID']]); } } ?>
Date Qté Prix Brut Frais Prix Net Engagement Brut Engagement Net Ordre Type Etat
Plus value :
TOTAL :

Créer un nouvel ordre





Ajouter un mouvement