diff --git a/models/acc_operation.py b/models/acc_operation.py index df4e07781508ba3511795e1be35cae7de6bf2ad0..8b2f3f29e5861accf22b91ca933142bd119d5ad7 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -3,9 +3,11 @@ from dateutil.relativedelta import relativedelta -from odoo import api, fields, models +from odoo import api, fields, models, _ from odoo.tools import date_utils +from odoo.exceptions import ValidationError + class AccOperation(models.Model): _inherit = "acc.operation" @@ -208,6 +210,11 @@ class AccOperation(models.Model): date_start = date_end - relativedelta(months=int(account_periodicity) - 1) date_start = date_utils.start_of(date_start, "month") + # Calcul de l'autoproduction totale sur l'opération pour calculer ensuite + # les puissances au prorota + autoprod_by_op = self.calc_autoprod_by_op( + date_start, date_end) + # Récupération de tous les producteurs de l'opération producer_ids = self.acc_injection_ids.mapped("partner_id") for producer_id in producer_ids: @@ -216,11 +223,6 @@ class AccOperation(models.Model): lambda r: r.partner_id == producer_id ) - # Calcul de l'autoproduction totale sur l'opération pour calculer ensuite - # les puissances au prorota - autoprod_by_op = self.calc_autoprod_by_op( - date_start, date_end) - # Pour chaque point de soutirage, on crée une facture, ainsi que les # lignes de factures for acc_delivery_id in self.acc_delivery_ids: @@ -508,6 +510,11 @@ class AccOperation(models.Model): lazy=False, ) + if not power_tab_by_prod: + raise ValidationError( + _("Il n'y a pas de données à facturer pour la période du '%s' au '%s' ") % (date_start, date_end) + ) + # Calcul de l'auto production totale pour une opération donnée # Production totale - Surplus = AUTOPROD if power_tab_by_prod[0]["power"] and power_tab_by_prod[1]["power"]: