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