diff --git a/models/acc_operation.py b/models/acc_operation.py
index 7647c3095269435973b022cbb5d957c72ac818a9..46566db151ac432ec80c581700e6a10d67e4d2f0 100644
--- a/models/acc_operation.py
+++ b/models/acc_operation.py
@@ -162,11 +162,20 @@ class AccOperation(models.Model):
                 months=int(account_move_periodicity) - 1
             )
 
-        # Récupération des données agrégées par jour pour cette opération
+        # si pluesieurs compteurs d injection on calcule le prorata de consommation par
+        # horodate, sinon par jours
+        operation_inj_counters = self._get_inj_counter_by_period(start_date=start_date, end_date=end_date)
+        if len(operation_inj_counters) == 1:
+            groupby_date_slot = "day"
+        else:
+            groupby_date_slot = "minute"
+
+        # Récupération des données agrégées par horodatage pour cette opération
         energy_dict = self.env["acc.enedis.cdc"]._get_group_by_energy(
             acc_operation_id=self.id,
             start_date=start_date,
             end_date=end_date,
+            groupby_date_slot=groupby_date_slot,
             filter_date=True,
         )
 
@@ -197,6 +206,17 @@ class AccOperation(models.Model):
 
         return self.action_view_account_move()
 
+    def _get_inj_counter_by_period(self, start_date, end_date):
+        return self.env["acc.counter.period"]._get_periods_from_interval(
+            [
+                ("prm_type", "=", "injection"),
+                ("acc_operation_id", "=", self.id),
+            ],
+            start_date,
+            end_date,
+        ).mapped("acc_counter_id")
+
+
     def _open_x2m_matrix(self, view_xmlid):
         """
         Fonction qui appelle le wizard matrix 2D pour la défintion des prix
diff --git a/models/account_payment_order.py b/models/account_payment_order.py
index 81d4a19ad214902e5cafdf6754fd3a2b749f792e..09a8a2d8e0a006f3d867b4c326614a7d2db92367 100644
--- a/models/account_payment_order.py
+++ b/models/account_payment_order.py
@@ -12,3 +12,6 @@ class AccountPaymentOrder(models.Model):
         Re-generate the account payments.
         """
         return super(AccountPaymentOrder, self.with_user(SUPERUSER_ID)).draft2open()
+
+    def action_cancel(self):
+        return super(AccountPaymentOrder, self.with_user(SUPERUSER_ID)).action_cancel()