From df71625b62a2d12ace93dab55fcb93de98ba182f Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Mon, 10 Feb 2025 11:21:00 +0100
Subject: [PATCH 1/2] [UPD] improve error message when no price conf configured

---
 models/account_move.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/models/account_move.py b/models/account_move.py
index f93c095..ba6ad12 100644
--- a/models/account_move.py
+++ b/models/account_move.py
@@ -568,6 +568,8 @@ class AccountMove(models.Model):
                 char type_line : type de lignes ('sale' / 'accise')
         """
         domain = [("type", "=", type_line)]
+        injection_counter = self.env["acc.counter"].browse(acc_injection_counter_id)
+
         # Récupération des articles à utiliser sur la ligne de facture
         if type_line == "accise":
             product_id = self.env.ref("oacc_account.product_product_accise")
@@ -612,7 +614,10 @@ class AccountMove(models.Model):
 
         if not product_id:
             raise UserError(
-                _("Veuillez définir un article pour le prix de vente et/ou ACCISE.")
+                _(
+                    f"Veuillez définir un article pour le prix de vente et/ou ACCISE "
+                    f"du PRM {injection_counter.name}."
+                )
             )
 
         # Récupération des intervalles de prix par période
@@ -624,13 +629,11 @@ class AccountMove(models.Model):
             self.start_date,
             self.end_date,
         )
+        message = (f"Veuillez définir des prix de vente / ACCISE du "
+                   f"PRM {injection_counter.name} pour la période renseignée.")
+
         if not interval_ids:
-            raise UserError(
-                _(
-                    "Veuillez définir des prix de vente / ACCISE "
-                    "pour la période renseignée."
-                )
-            )
+            raise UserError(_(message))
         # Pour chaque intervalle de prix
         for interval in interval_ids:
             # Calcul des dates de l'intervalle à facturer
-- 
GitLab


From a7ea7087ce1af4904bf0bd73e9ff8c018313111e Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Mon, 10 Feb 2025 14:31:56 +0100
Subject: [PATCH 2/2] [UPD] review

---
 models/account_move.py | 38 ++++++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/models/account_move.py b/models/account_move.py
index ba6ad12..99ccfce 100644
--- a/models/account_move.py
+++ b/models/account_move.py
@@ -568,7 +568,7 @@ class AccountMove(models.Model):
                 char type_line : type de lignes ('sale' / 'accise')
         """
         domain = [("type", "=", type_line)]
-        injection_counter = self.env["acc.counter"].browse(acc_injection_counter_id)
+
 
         # Récupération des articles à utiliser sur la ligne de facture
         if type_line == "accise":
@@ -600,6 +600,14 @@ class AccountMove(models.Model):
                     ],
                 ],
             )
+            if not product_id:
+                raise UserError(
+                    _(
+                        f"Veuillez définir un article pour la catégorie "
+                        f"d'ACCISE {del_counter[0].accise_category_id.id}."
+                    )
+                )
+
         elif type_line == "sale":
             product_id = self.env.ref("oacc_account.product_product_sale")
             domain = expression.AND(
@@ -612,13 +620,12 @@ class AccountMove(models.Model):
                 [domain, [("acc_delivery_counter_id", "=", acc_delivery_counter_id)]]
             )
 
-        if not product_id:
-            raise UserError(
-                _(
-                    f"Veuillez définir un article pour le prix de vente et/ou ACCISE "
-                    f"du PRM {injection_counter.name}."
+            if not product_id:
+                raise UserError(
+                    _(
+                        "Veuillez définir un article pour le prix de vente."
+                    )
                 )
-            )
 
         # Récupération des intervalles de prix par période
         # Dans le cas de l'ACCISE, les prix ne sont pas dépendants des points
@@ -629,11 +636,22 @@ class AccountMove(models.Model):
             self.start_date,
             self.end_date,
         )
-        message = (f"Veuillez définir des prix de vente / ACCISE du "
-                   f"PRM {injection_counter.name} pour la période renseignée.")
 
-        if not interval_ids:
+        if not interval_ids and type_line=='accise':
+            message = (f"Veuillez définir des prix d'ACCISE de la catégorie "
+                       f"{del_counter[0].accise_category_id.id} "
+                       f"pour la période renseignée.")
             raise UserError(_(message))
+
+        if not interval_ids and type_line=='sale':
+            injection_counter = self.env["acc.counter"].browse(acc_injection_counter_id)
+            delivery_counter = self.env["acc.counter"].browse(acc_delivery_counter_id)
+            message = (f"Certains PRM n’ont pas de prix de vente pour la période "
+                       f"sélectionnée. A minima les PRM {injection_counter.name}"
+                       f"/{delivery_counter.name}.")
+
+            raise UserError(_(message))
+
         # Pour chaque intervalle de prix
         for interval in interval_ids:
             # Calcul des dates de l'intervalle à facturer
-- 
GitLab