[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:
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -277,7 +277,6 @@ class TestSaleOrder(SaleCommon):
|
||||
self.assertTrue(sale_order.note.startswith("<p>Terms & 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()
|
||||
|
||||
@@ -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."),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user