[IMP] sale: remove use_quotation_validity_days parameter

Allow the feature activation by company instead of database.
It wasn't logical to specify the days by company but enable/disable
the feature by database.

task-2880950

Part-of: odoo/odoo#97565
This commit is contained in:
Victor Feyens
2023-02-03 11:45:18 +01:00
parent 7d077c8579
commit 681d817bc6
4 changed files with 11 additions and 22 deletions
+9 -3
View File
@@ -13,13 +13,19 @@ class ResCompany(models.Model):
_sql_constraints = [
('check_quotation_validity_days',
'CHECK(quotation_validity_days > 0)',
"Quotation Validity is required and must be greater than 0."),
'CHECK(quotation_validity_days >= 0)',
"You cannot set a negative number for the default quotation validity."
" Leave empty (or 0) to disable the automatic expiration of quotations."),
]
portal_confirmation_sign = fields.Boolean(string="Online Signature", default=True)
portal_confirmation_pay = fields.Boolean(string="Online Payment")
quotation_validity_days = fields.Integer(string="Default Quotation Validity (Days)", default=30)
quotation_validity_days = fields.Integer(
string="Default Quotation Validity",
default=30,
help="Days between quotation proposal and expiration."
" 0 days means automatic expiration is disabled",
)
# sale onboarding
sale_quotation_onboarding_state = fields.Selection(
-5
View File
@@ -309,11 +309,6 @@ class SaleOrder(models.Model):
@api.depends('company_id')
def _compute_validity_date(self):
enabled_feature = bool(self.env['ir.config_parameter'].sudo().get_param('sale.use_quotation_validity_days'))
if not enabled_feature:
self.validity_date = False
return
today = fields.Date.context_today(self)
for order in self:
days = order.company_id.quotation_validity_days
-1
View File
@@ -277,7 +277,6 @@ class TestSaleOrder(SaleCommon):
self.assertTrue(sale_order.note.startswith("<p>Terms &amp; Conditions: "))
def test_validity_days(self):
self.env['ir.config_parameter'].sudo().set_param('sale.use_quotation_validity_days', True)
self.env.company.quotation_validity_days = 5
with freeze_time("2020-05-02"):
sale_order = self._create_sale_order()
+2 -13
View File
@@ -49,14 +49,8 @@ class ResConfigSettings(models.TransientModel):
config_parameter='sale.default_invoice_email_template',
help="Email sent to the customer once the invoice is available.",
)
use_quotation_validity_days = fields.Boolean(
string="Default Quotation Validity", config_parameter='sale.use_quotation_validity_days')
# Company setup
quotation_validity_days = fields.Integer(
related='company_id.quotation_validity_days',
string="Default Quotation Validity (Days)",
readonly=False)
portal_confirmation_sign = fields.Boolean(
related='company_id.portal_confirmation_sign',
@@ -82,21 +76,16 @@ class ResConfigSettings(models.TransientModel):
#=== ONCHANGE METHODS ===#
@api.onchange('use_quotation_validity_days')
def _onchange_use_quotation_validity_days(self):
if self.quotation_validity_days <= 0:
self.quotation_validity_days = self.env['res.company'].default_get(['quotation_validity_days'])['quotation_validity_days']
@api.onchange('quotation_validity_days')
def _onchange_quotation_validity_days(self):
if self.quotation_validity_days <= 0:
if self.quotation_validity_days < 0:
self.quotation_validity_days = self.env['res.company'].default_get(
['quotation_validity_days']
)['quotation_validity_days']
return {
'warning': {
'title': _("Warning"),
'message': _("Quotation Validity is required and must be greater than 0."),
'message': _("Quotation Validity is required and must be greater or equal to 0."),
},
}