From 9bc372c9593cd0095066df60ba92498b1f617ca1 Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Wed, 18 Mar 2026 19:42:58 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20taux=5Fmarge=20toujours=200=20-=20MntMvt?= =?UTF-8?q?TTC=20n=C3=A9gatif=20pour=20les=20ventes,=20utiliser=20ABS(MntM?= =?UTF-8?q?vtHt)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- src/routes/articles.js | 4 ++-- src/routes/performance.js | 4 ++-- src/routes/stock.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/routes/articles.js b/src/routes/articles.js index a738131..66596bf 100644 --- a/src/routes/articles.js +++ b/src/routes/articles.js @@ -284,8 +284,8 @@ router.get('/:id/mensuel', async (req, res) => { SUM(MntMvtHt) AS ca_ht, SUM(MntMvtTTC) AS ca_ttc, SUM(MargeMvt) AS marge, - CASE WHEN SUM(MntMvtTTC) > 0 - THEN ROUND(SUM(MargeMvt) / SUM(MntMvtTTC) * 100, 2) + CASE WHEN SUM(MntMvtHt) != 0 + THEN ROUND(SUM(MargeMvt) / ABS(SUM(MntMvtHt)) * 100, 2) ELSE 0 END AS taux_marge FROM MvtArt WHERE ArtNoId = $1 diff --git a/src/routes/performance.js b/src/routes/performance.js index b897506..711f438 100644 --- a/src/routes/performance.js +++ b/src/routes/performance.js @@ -21,8 +21,8 @@ router.get('/ca', async (req, res) => { SUM(MntMvtHt) AS CA_HT, SUM(MntMvtTTC) AS CA_TTC, SUM(MargeMvt) AS MARGE, - CASE WHEN SUM(MntMvtTTC) > 0 - THEN ROUND(SUM(MargeMvt) / SUM(MntMvtTTC) * 100, 2) + CASE WHEN SUM(MntMvtHt) != 0 + THEN ROUND(SUM(MargeMvt) / ABS(SUM(MntMvtHt)) * 100, 2) ELSE 0 END AS TAUX_MARGE FROM MvtArt WHERE GenreMvt = 3 diff --git a/src/routes/stock.js b/src/routes/stock.js index a3b0b31..81d8ea9 100644 --- a/src/routes/stock.js +++ b/src/routes/stock.js @@ -155,8 +155,8 @@ router.get('/article/:id/periode', async (req, res) => { SUM(MntMvtHt) AS ca_ht, SUM(MntMvtTTC) AS ca_ttc, SUM(MargeMvt) AS marge, - CASE WHEN SUM(MntMvtTTC) > 0 - THEN ROUND(SUM(MargeMvt) / SUM(MntMvtTTC) * 100, 2) + CASE WHEN SUM(MntMvtHt) != 0 + THEN ROUND(SUM(MargeMvt) / ABS(SUM(MntMvtHt)) * 100, 2) ELSE 0 END AS taux_marge, MIN(DatMvt) AS premiere_vente, MAX(DatMvt) AS derniere_vente