diff --git a/models/account_move.py b/models/account_move.py index f93c095125479d74f8095dea392f25e0bac4673c..99ccfce54d03a976b46476ea0f70040902520763 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)] + + # 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") @@ -598,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( @@ -610,10 +620,12 @@ class AccountMove(models.Model): [domain, [("acc_delivery_counter_id", "=", acc_delivery_counter_id)]] ) - if not product_id: - raise UserError( - _("Veuillez définir un article pour le prix de vente et/ou ACCISE.") - ) + 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 @@ -624,13 +636,22 @@ class AccountMove(models.Model): self.start_date, self.end_date, ) - if not interval_ids: - raise UserError( - _( - "Veuillez définir des prix de vente / ACCISE " - "pour la période renseignée." - ) - ) + + 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