From ada5c18b13168bf859fd58c389145a12327e4ca8 Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Thu, 23 Jun 2022 17:27:05 +0200
Subject: [PATCH] [fix] error refund creation

---
 models/scop_cotisation_cg_exo.py | 42 +++++++++++++++++---------------
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/models/scop_cotisation_cg_exo.py b/models/scop_cotisation_cg_exo.py
index 6fb3041..9bb1ca1 100644
--- a/models/scop_cotisation_cg_exo.py
+++ b/models/scop_cotisation_cg_exo.py
@@ -486,36 +486,40 @@ class ScopCotisationExo(models.Model):
                         if bordereau_id.state == "draft"
                         else self.date_exo_ok
                     )
+                    date_due = bordereau_id.invoice_ids.filtered(
+                        lambda i: i.cotiz_quarter == str(quarter) and i.move_type == "out_invoice")[0].invoice_date_due
                     # Create refund
-                    member_refund = bordereau_id.invoice_ids.create(
+                    refund = bordereau_id.invoice_ids.create(
                         {
                             "partner_id": bordereau_id.partner_id.id,
                             "liasse_fiscale_id": bordereau_id.liasse_fiscale_id.id,
-                            "type": "out_refund",
+                            "move_type": "out_refund",
                             "year": bordereau_id.year,
                             "is_contribution": True,
                             "type_contribution_id": inv_type,
                             "journal_id": inv_id.journal_id.id,
                             "state": "draft",
-                            "account_id": inv_id.account_id.id,
                             "payment_mode_id": bordereau_id.payment_mode_id.id,
-                            "date_invoice": date_refund,
-                            "date_due": self.date_exo_ok,
+                            "invoice_date": date_refund,
+                            "invoice_date_due": date_due,
                             "bordereau_id": bordereau_id.id,
-                            "cotiz_quarter": quarter,
-                            "refund_invoice_id": inv_id.id,
-                            "name": "Exonération " + self.number,
-                        }
-                    )
-                    member_refund.invoice_line_ids.create(
-                        {
-                            "invoice_id": member_refund.id,
-                            "product_id": inv_id.invoice_line_ids[0].product_id.id,
-                            "account_id": inv_id.invoice_line_ids[0].account_id.id,
-                            "name": inv_id.invoice_line_ids[0].product_id.name
-                            + " T"
-                            + str(quarter),
-                            "price_unit": exo_amount,
+                            "cotiz_quarter": str(quarter),
+                            "ref": "Exonération " + self.number,
+                            "invoice_line_ids": [
+                                (
+                                    0,
+                                    None,
+                                    {
+                                        "product_id": inv_id.invoice_line_ids[0].product_id.id,
+                                        "account_id": inv_id.invoice_line_ids[0].account_id.id,
+                                        "name": inv_id.invoice_line_ids[0].product_id.name
+                                        + " T"
+                                        + str(quarter),
+                                        "price_unit": exo_amount,
+                                        "price_subtotal": exo_amount,
+                                    },
+                                ),
+                            ],
                         }
                     )
         # Update link exo - bordereau
-- 
GitLab