From 0b8442c46856ad948db2b946c8e63cde06ffaee7 Mon Sep 17 00:00:00 2001
From: Emanuel Buzey <buzeyemanuel@gmail.com>
Date: Mon, 9 Oct 2023 17:47:46 +0200
Subject: [PATCH] [IMP] energy_selfconsumptions: add contract_line

---
 .../wizards/define_invoicing_mode_wizard.py   | 24 +++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py b/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py
index 0c57f786e..544d22bae 100644
--- a/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py
+++ b/energy_selfconsumption/wizards/define_invoicing_mode_wizard.py
@@ -54,9 +54,9 @@ class ContractGenerationWizard(models.TransientModel):
 
         # Create contract formula
         # TODO:Update formula energy_delivered and energy_delivered_variable.
-
+        formula_contract_id = None
         if self.invoicing_mode == "power_acquired":
-            self.env["contract.line.qty.formula"].create(
+            formula_contract_id = self.env["contract.line.qty.formula"].create(
                 {
                     "name": _("Formula - %s") % (self.selfconsumption_id.name),
                     "code": f"""
@@ -71,7 +71,7 @@ result = line.supply_point_assignation_id.distribution_table_id.selfconsumption_
                 }
             )
         elif self.invoicing_mode == "energy_delivered":
-            self.env["contract.line.qty.formula"].create(
+            formula_contract_id = self.env["contract.line.qty.formula"].create(
                 {
                     "name": _("Formula - %s") % (self.selfconsumption_id.name),
                     "code": f"""
@@ -86,7 +86,7 @@ result = line.supply_point_assignation_id.distribution_table_id.selfconsumption_
                 }
             )
         elif self.invoicing_mode == "energy_delivered_variable":
-            self.env["contract.line.qty.formula"].create(
+            formula_contract_id = self.env["contract.line.qty.formula"].create(
                 {
                     "name": _("Formula - %s") % (self.selfconsumption_id.name),
                     "code": """
@@ -109,11 +109,27 @@ result = line.supply_point_assignation_id.distribution_table_id.selfconsumption_
             raise UserWarning(_("Accounting Journal not found."))
 
         # Create Contract Template
+        contract_line = [
+            (
+                0,
+                0,
+                {
+                    "product_id": product_id.id,
+                    "automatic_price": True,
+                    "company_id": self.env.company.id,
+                    "qty_type": "variable",
+                    "qty_formula_id": formula_contract_id.id,
+                    "name": "",
+                },
+            )
+        ]
+
         contract_template_id = self.env["contract.template"].create(
             {
                 "name": self.selfconsumption_id.name,
                 "journal_id": journal_id.id,
                 "company_id": self.env.company.id,
+                "contract_line_ids": contract_line,
             }
         )
 
-- 
GitLab