Skip to content
Snippets Groups Projects
Commit 079c39b3 authored by Daniil Digtyar Vasilieva's avatar Daniil Digtyar Vasilieva :call_me:
Browse files

Merge branch...

Merge branch 'feature/IMP_energy_selfconsumption_contract_generation_improvment' into 'NOT_MERGE/c2_implement_branch'

C2/Implementation merge contract generation

See merge request !264
parents 3fd88635 1c4b34c1
No related branches found
No related tags found
1 merge request!264C2/Implementation merge contract generation
Pipeline #68699 passed
......@@ -184,14 +184,16 @@ class Selfconsumption(models.Model):
raise ValidationError(
_("Project must have defined a invoicing mode before activation.")
)
# Create ContractGenerationWizard
contract_wizard = self.env[
"energy_selfconsumption.contract_generation.wizard"
].create({"selfconsumption_id": self.id})
# Generate Contracts
contract_wizard.generate_contracts_button()
return {
"name": _("Generate Contracts"),
"type": "ir.actions.act_window",
"view_mode": "form",
"res_model": "energy_selfconsumption.contract_generation.wizard",
"views": [(False, "form")],
"view_id": False,
"target": "new",
"context": {"default_selfconsumption_id": self.id},
}
def set_invoicing_mode(self):
return {
......
from odoo import _, fields, models
import datetime
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class ContractGenerationWizard(models.TransientModel):
......@@ -7,6 +10,12 @@ class ContractGenerationWizard(models.TransientModel):
selfconsumption_id = fields.Many2one(
"energy_selfconsumption.selfconsumption", readonly=True
)
start_date = fields.Date(
string="Start date",
help="Starting date of the invoicing",
required=True,
default=fields.Date.today(),
)
def generate_contracts_button(self):
"""
......@@ -45,7 +54,7 @@ class ContractGenerationWizard(models.TransientModel):
"partner_id": supply_point_assignation.supply_point_id.partner_id.id,
"supply_point_assignation_id": supply_point_assignation.id,
"company_id": self.env.company.id,
"date_start": fields.date.today(),
"date_start": self.start_date,
"contract_template_id": self.selfconsumption_id.product_id.contract_template_id.id,
}
)
......@@ -64,3 +73,12 @@ class ContractGenerationWizard(models.TransientModel):
self.selfconsumption_id.write({"state": "active"})
self.selfconsumption_id.distribution_table_state("process", "active")
return True
@api.constrains("start_date")
def constraint_date_start(self):
three_months_ago = fields.Date.today() - datetime.timedelta(days=90)
for record in self:
if record.start_date < three_months_ago:
raise ValidationError(
_("Start date can't be more that three months old")
)
......@@ -11,11 +11,26 @@
>energy_selfconsumption.contract_generation.wizard</field>
<field name="arch" type="xml">
<form string="Contract Generation">
<p>
<b
>Attention!</b> You are activating a project and thus activating its recurring billing.
</p>
<p>
To activate the recurring invoicing process, define the date from which you want
every supply point associated with this project to start invoicing according to the
established recurrence.
</p>
<group>
<field name="start_date" />
</group>
<footer>
<button
class="btn-primary"
type="object"
name="generate_contracts_button"
>Generate</button>
>Accept</button>
<button string="Cancel" special="cancel" />
</footer>
</form>
</field>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment