diff --git a/gestion/lib/Db/Bdd.php b/gestion/lib/Db/Bdd.php index 03760c9..dbad177 100644 --- a/gestion/lib/Db/Bdd.php +++ b/gestion/lib/Db/Bdd.php @@ -2725,16 +2725,20 @@ class Bdd { return null; } - private function getDevisIdListFilteredByMentionAndDevisListId($mentionToNotInclude,$devisListId){ + private function getDevisIdListFilteredByMentionAndDevisListId($mentionsFilter,$devisListId){ if (empty($devisListId)) { return []; } $placeholders = implode(',', array_fill(0, count($devisListId), '?')); + $mentionsFilterPlaceholders = implode(',', array_fill(0, count($mentionsFilter), '?')); $sql = "SELECT devis.id as id,devis.date as devis_date FROM ".$this->tableprefix."devis as devis - WHERE devis.id IN ($placeholders) AND mentions != ?"; + WHERE devis.id IN ($placeholders) AND + mentions IN ($mentionsFilterPlaceholders)"; - $result = $this->execSQLNoJsonReturn($sql,array_merge($devisListId, [$mentionToNotInclude])); + $result = $this->execSQLNoJsonReturn($sql,array_merge( + $devisListId, + $mentionsFilter)); return $result; } @@ -2797,12 +2801,21 @@ class Bdd { } public function insertFactureForeEachDevisId($idNextCloud,$devisIdArray,$paymentDate = null){ - $mentionToNotInclude = 'facturé'; + $mentionsFilter = [ + DevisMentionConstant::NEW, + DevisMentionConstant::MENTION + ]; $devisIdArray = array_unique($devisIdArray); - $devisIdListFiltered = $this->getDevisIdListFilteredByMentionAndDevisListId($mentionToNotInclude,$devisIdArray); + $devisIdListFiltered = $this->getDevisIdListFilteredByMentionAndDevisListId($mentionsFilter,$devisIdArray); $factureIdsGenerated = []; foreach($devisIdListFiltered as $devis){ - $factureId = $this->insertFactureByDevisId($idNextCloud,$devis['id'],$devis['devis_date'],$paymentDate); + $facture = $this->getFactureIdByDevisId($devis['id']); + if($facture != null){ + $factureId = $facture['id']; + } + else{ + $factureId = $this->insertFactureByDevisId($idNextCloud,$devis['id'],$devis['devis_date'],$paymentDate); + } $factureIdsGenerated[] = $factureId; } return $factureIdsGenerated;