diff --git a/__manifest__.py b/__manifest__.py index 907a68d9aacd150f30508d12683fad0f7b8e0d54..178e51e2dae796d4ec9974524ccdc1b3c97673b1 100755 --- a/__manifest__.py +++ b/__manifest__.py @@ -11,7 +11,7 @@ 'data': [ "security/ir.model.access.csv", # datas - # 'data/service_cron.xml', + 'data/service_cron.xml', 'wizards/enercoop_operation_wizard_views.xml', # views 'views/res_config_settings_views.xml', diff --git a/models/api_enedis.py b/models/api_enedis.py index c002b674ea2a11e1fa3534748cbdb373c85eb54d..09a2dcf17a3b9b8da6937fbd09d576ea46d24569 100644 --- a/models/api_enedis.py +++ b/models/api_enedis.py @@ -289,6 +289,7 @@ class ApiEnedis(models.AbstractModel): 'operation_id': self.id, 'date_start_contract': date.fromisoformat(usage_point['start']), 'date_end_contract': date.fromisoformat(usage_point['end']), + 'partner_id': prm_id.partner_id.id or None }) - return True \ No newline at end of file + return True diff --git a/models/enercoop_operation.py b/models/enercoop_operation.py index 9bb2b7ed11851b59c3b3d483f80167f63d05a195..c2364801f321764291565e9da98900e0a3d7e2d4 100644 --- a/models/enercoop_operation.py +++ b/models/enercoop_operation.py @@ -40,18 +40,19 @@ class EnercoopOperation(models.Model): ''' This method is called from a cron job. It is used to get data from Enedis with API. ''' - if date.today() == last_day_of_month(date.today()): - date_month_before = date.today() - relativedelta(months=1) - records = self.search([ - ('birthday_date', '=', date_month_before.day), - ('date_end_contract', '>=', fields.Date.context_today(self)), - ]) - records._get_curves(date_month_before) - - def _get_curves(self, date_month_before): - for operation in self: - yesterday = date.today() - relativedelta(days=1) - operation.get_curves(date_month_before, yesterday) + records = self.search([ + ('date_start_contract', '<', date.today()), + ('client_id', '!=', False), + ('secret_id', '!=', False), + ('active', '=', True) + ]) + for rec in records: + d = rec.date_start_contract + relativedelta(days=10) + if d.day == date.today().day: + date_today_10 = date.today() - relativedelta(days=10) + first_date = datetime(date_today_10.year, date_today_10.month - 1, rec.date_start_contract.day) + last_date = first_date + relativedelta(months=1, days=-1) + rec.get_curves(first_date.date(), last_date.date()) # ------------------------------------------------------ # Actions @@ -74,9 +75,8 @@ class EnercoopOperation(models.Model): def get_perimeter(self): for operation in self: res = operation.perimeter() + # ------------------------------------------------------ # Business methods # ------------------------------------------------------ - def last_day_of_month(date_value): - return date_value.replace(day=monthrange(date_value.year, date_value.month)[1])