From 828d9a13bbb6eeadec32962d6d362d8cd199cfef Mon Sep 17 00:00:00 2001
From: Emanuel Buzey <buzeyemanuel@gmail.com>
Date: Thu, 19 Oct 2023 13:47:09 +0200
Subject: [PATCH] [REF] energy_selfconsumption: move contract template relation

---
 energy_selfconsumption/models/product.py                  | 1 +
 energy_selfconsumption/models/selfconsumption.py          | 6 +++++-
 .../wizards/contract_generation_wizard.py                 | 8 ++++----
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/energy_selfconsumption/models/product.py b/energy_selfconsumption/models/product.py
index 6fd8ae3dc..53e3119dc 100644
--- a/energy_selfconsumption/models/product.py
+++ b/energy_selfconsumption/models/product.py
@@ -11,3 +11,4 @@ class Product(models.Model):
         string="Energy Project",
         check_company=True,
     )
+    contract_template_id = fields.Many2one("contract.template")
diff --git a/energy_selfconsumption/models/selfconsumption.py b/energy_selfconsumption/models/selfconsumption.py
index a3756881d..a63c74c43 100644
--- a/energy_selfconsumption/models/selfconsumption.py
+++ b/energy_selfconsumption/models/selfconsumption.py
@@ -87,7 +87,11 @@ class Selfconsumption(models.Model):
     contracts_count = fields.Integer(compute=_compute_contract_count)
     invoicing_mode = fields.Selection(INVOICING_VALUES, string="Invoicing Mode")
     product_id = fields.Many2one("product.product", string="Product")
-    contract_template_id = fields.Many2one("contract.template")
+    contract_template_id = fields.Many2one(
+        "contract.template",
+        string="Contract Template",
+        related="product_id.contract_template_id",
+    )
     reseller_id = fields.Many2one(
         "energy_project.reseller",
         string="Energy Reseller",
diff --git a/energy_selfconsumption/wizards/contract_generation_wizard.py b/energy_selfconsumption/wizards/contract_generation_wizard.py
index 2895b6764..10204acbf 100644
--- a/energy_selfconsumption/wizards/contract_generation_wizard.py
+++ b/energy_selfconsumption/wizards/contract_generation_wizard.py
@@ -27,7 +27,7 @@ class ContractGenerationWizard(models.TransientModel):
 
         product_id = self.selfconsumption_id.product_id
         formula_contract_id = (
-            self.selfconsumption_id.contract_template_id.contract_line_ids.qty_formula_id
+            self.selfconsumption_id.product_id.contract_template_id.contract_line_ids.qty_formula_id
         )
 
         # Search accounting journal
@@ -86,9 +86,9 @@ class ContractGenerationWizard(models.TransientModel):
                     "company_id": self.env.company.id,
                     "contract_line_ids": contract_lines,
                     "project_id": self.selfconsumption_id.project_id.id,
-                    "contract_template_id": self.selfconsumption_id.contract_template_id.id,
-                    "recurring_interval": self.selfconsumption_id.contract_template_id.recurring_interval,
-                    "recurring_rule_type": self.selfconsumption_id.contract_template_id.recurring_rule_type,
+                    "contract_template_id": self.selfconsumption_id.product_id.contract_template_id.id,
+                    "recurring_interval": self.selfconsumption_id.product_id.contract_template_id.recurring_interval,
+                    "recurring_rule_type": self.selfconsumption_id.product_id.contract_template_id.recurring_rule_type,
                 }
             )
 
-- 
GitLab