From 65d13d70f939d3e232adbc950a4bdaa9f943a931 Mon Sep 17 00:00:00 2001 From: Tolotsoa Date: Mon, 17 Nov 2025 12:41:49 +0300 Subject: [PATCH] fix statistiques --- gestion/lib/Db/Bdd.php | 54 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/gestion/lib/Db/Bdd.php b/gestion/lib/Db/Bdd.php index 613c567..d9a9551 100644 --- a/gestion/lib/Db/Bdd.php +++ b/gestion/lib/Db/Bdd.php @@ -3153,7 +3153,7 @@ class Bdd return 0; } - private function getClientFactureStatisticPerMonth($clientId, array $produitList) + private function getClientFactureStatisticPerMonthSave($clientId, array $produitList) { $currentYear = date('Y'); $monthLists = range(1, 12); @@ -3209,6 +3209,58 @@ class Bdd return $data; } + private function getClientFactureStatisticPerMonth($clientId, array $produitList) + { + $currentYear = date('Y'); + $monthLists = range(1, 12); + $data = [] ; + foreach($monthLists as $monthValue) { + if(!isset($data[$monthValue])) { + $data[$monthValue] = []; + } + $sql = "SELECT + devis.id as devis_id, + devis.id_client as devis_client_id, + devis.date as devis_date, + devis.mentions as devis_mention + FROM ".$this->tableprefix."devis as devis + WHERE YEAR(devis.date) = ? AND + MONTH(devis.date) = ? AND + devis.id_client = ? AND + (devis.mentions = ? OR devis.mentions = ?) + ORDER BY devis.date ASC;"; + $factureList = $this->execSQLNoJsonReturn( + $sql, + [$currentYear,$monthValue,$clientId,DevisMentionConstant::FACTURED,DevisMentionConstant::FACTURED_FORMATTED] + ); + + $factureDevisIds = []; + foreach($factureList as $facture) { + $factureDevisIds[] = $facture['devis_id']; + } + + $defuntCount = count($factureList); + $produitsPrice = 0; + $statisticForeachProductPerMonth = []; + foreach($produitList as $produit) { + if(!isset($statisticForeachProductPerMonth[$produit['id']])) { + $statisticForeachProductPerMonth[$produit['id']] = 0; + } + $productTotalCount = $this->getDevisProductsQuantityByDevisListAndProductId($factureDevisIds, $produit['id']); + $totalWithoutVat = $productTotalCount * $produit["prix_unitaire"]; + $statisticForeachProductPerMonth[$produit['id']] += $productTotalCount; + $produitsPrice += $totalWithoutVat; + } + $data[$monthValue] = [ + "defunt_count" => $defuntCount, + "total_price" => $produitsPrice, + "year" => $currentYear, + "products" => $statisticForeachProductPerMonth + ]; + } + return $data; + } + public function getExportClientStatData(array $clientIds) { $data = [];