Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 10b17d0d6fb07c9a99dbf3ae3a96a34f67a4cebe
  • 14.0 par défaut protégée
2 résultats

__manifest__.py

Blame
  • queue_job_batch.py 1,83 Kio
    from odoo import fields, models
    
    
    class QueueJobBatch(models.Model):
        _inherit = ["queue.job.batch"]
    
        acc_operation_id = fields.Many2one("acc.operation", string="Opération liée")
        batch_type = fields.Selection(
            [("monthly_curves", "Récupération automatique des courbes")]
        )
        start_date = fields.Date("Date de début des données")
        end_date = fields.Date("Date de fin des données (exclue)")
    
        def write(self, vals):
            res = super().write(vals)
            if self.acc_operation_id and self.state == "finished":
                self.post_finished_action()
            return res
    
        def post_finished_action(self):
            if self.acc_operation_id and self.batch_type == "monthly_curves":
                if (
                    not self.acc_operation_id.is_cdc_data_exists
                    and self.finished_job_count > 0
                ):
                    self.acc_operation_id.is_cdc_data_exists = True
                # Update partner_id for retrieved cdc
                self.env["acc.counter.period"]._get_periods_from_interval(
                    [("acc_operation_id", "=", self.acc_operation_id.id)],
                    self.start_date,
                    self.end_date,
                ).update_cdc_partner_id(date_start=self.start_date, date_end=self.end_date)
                # Compute by-day aggregated curves
                self.env["acc.enedis.cdc.day"].populate_daily_aggregated_data(
                    acc_operation_id=self.acc_operation_id.id,
                    start_date=self.start_date,
                    end_date=self.end_date,
                )
                self.env["acc.enedis.cdc.prorata"].populate_daily_prorata(
                    acc_operation_id=self.acc_operation_id.id,
                    start_date=self.start_date,
                    end_date=self.end_date,
                )
                # Recompute static datas for last month
                self.acc_operation_id.set_static_data()