[IMP] - add an option to enable forecasts by company

This commit is contained in:
sbejaoui
2020-10-07 15:46:16 +02:00
parent 4db5c90a1d
commit 2b7e1f07d2
7 changed files with 79 additions and 4 deletions

View File

@@ -2,3 +2,4 @@ from . import contract
from . import contract_line
from . import contract_line_forecast_period
from . import res_company
from . import res_config_settings

View File

@@ -37,6 +37,7 @@ class ContractContract(models.Model):
]
):
for rec in self:
for contract_line in rec.contract_line_ids:
contract_line.with_delay()._generate_forecast_periods()
if rec.company_id.enable_contract_forecast:
for contract_line in rec.contract_line_ids:
contract_line.with_delay()._generate_forecast_periods()
return res

View File

@@ -52,6 +52,8 @@ class ContractLine(models.Model):
@api.multi
def _get_generate_forecast_periods_criteria(self, period_date_end):
self.ensure_one()
if not self.contract_id.company_id.enable_contract_forecast:
return False
if self.is_canceled or not self.active:
return False
contract_forecast_end_date = self._get_contract_forecast_end_date()
@@ -111,7 +113,8 @@ class ContractLine(models.Model):
def create(self, values):
contract_lines = super(ContractLine, self).create(values)
for contract_line in contract_lines:
contract_line.with_delay()._generate_forecast_periods()
if contract_line.contract_id.company_id.enable_contract_forecast:
contract_line.with_delay()._generate_forecast_periods()
return contract_lines
@api.model
@@ -144,5 +147,6 @@ class ContractLine(models.Model):
]
):
for rec in self:
rec.with_delay()._generate_forecast_periods()
if rec.contract_id.company_id.enable_contract_forecast:
rec.with_delay()._generate_forecast_periods()
return res

View File

@@ -14,3 +14,6 @@ class ResCompany(models.Model):
contract_forecast_rule_type = fields.Selection(
[("monthly", "Month(s)"), ("yearly", "Year(s)")], default="monthly"
)
enable_contract_forecast = fields.Boolean(
string="Enable contract forecast", default=True
)

View File

@@ -0,0 +1,29 @@
# Copyright 2020 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
enable_contract_forecast = fields.Boolean(
string="Enable contract forecast",
default=True,
readonly=False,
related="company_id.enable_contract_forecast",
)
contract_forecast_interval = fields.Integer(
string="Number of contract forecast Periods",
default=12,
related="company_id.contract_forecast_interval",
readonly=False,
)
contract_forecast_rule_type = fields.Selection(
[("monthly", "Month(s)"), ("yearly", "Year(s)")],
default="monthly",
related="company_id.contract_forecast_rule_type",
readonly=False,
)