getConnection(); function fetchOrdreGF(PDO $connection): array { $stmt = $connection->query('SELECT * FROM `ordreGF` ORDER BY `ID` DESC'); 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

prepare( "UPDATE ordreGF SET PlusValue = 0 WHERE ID = ?" )->execute([$ordre['ID']]); $ordre['PlusValue'] = 0; } } $isSold = (!$isCanceled && $totalQ === 0 && count($details) > 0); if ($isSold) { foreach ($details as $detail) { $qte = (int)$detail['Quantite']; $fraisDetail = (float)$detail['Frais_brocker'] + (float)$detail['Frais_etat'] + (float)$detail['Frais_autre']; $oType = strtolower($detail['Ordre']); $prixNet = ($oType === 'vente') ? (float)$detail['Prix_brut'] - $fraisDetail : (float)$detail['Prix_brut'] + $fraisDetail; $tOp = strtolower($detail['Type']); $signePV = ($oType === 'vente') ? 1 : -1; $plusvalue += ($qte * $prixNet * $signePV); } $plusvalue = round($plusvalue, 4); // Mise à jour de la plus-value uniquement si nécessaire if (abs((float)$ordre['PlusValue'] - $plusvalue) > 0.0001) { $connection->prepare( "UPDATE ordreGF SET PlusValue = ? WHERE ID = ?" )->execute([$plusvalue, $ordre['ID']]); $ordre['PlusValue'] = $plusvalue; } // Si la quantité totale est à zéro, toutes les lignes actives passent en soldé $connection->prepare( "UPDATE ordreGF_pied SET Etat = 'soldé' WHERE Id_entete = ? AND Etat = 'actif'" )->execute([$ordre['ID']]); // Recharge les données après modification $details = fetchOrdreGFPied($connection, (string)$ordre['ID']); } // Désactivation si ordre soldé ou annulé $isDisabled = $isCanceled || abs((float)$ordre['PlusValue']) > 0.0001; $disabledAttr = $isDisabled ? 'disabled style="opacity:0.5; cursor:not-allowed;"' : ''; ?>
Date Qté Prix Brut Frais Prix Net Eng. Brut Eng. Net Ordre Type Etat
Plus value :
TOTAL : 0 0 0

Créer un nouvel ordre





Ajouter un mouvement





Modifier le mouvement