[FIX] sale_management: consider timezones for quotation validity days

The validity_date and/or remaining_validity_days fields on the sale
order
could be wrong due to different timezones.

Furthermore, using datetime.now to create a date is unnecessary.

closes odoo/odoo#49639

X-original-commit: 40e0c39fb410d018d007f2c70c12daf4289d2370
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
This commit is contained in:
Victor Feyens
2020-04-16 09:54:44 +00:00
parent b83e783700
commit afa193c02b
+3 -3
View File
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, timedelta
from datetime import timedelta
from odoo import api, fields, models, _
from odoo.exceptions import UserError, ValidationError
@@ -41,7 +41,7 @@ class SaleOrder(models.Model):
def copy(self, default=None):
if self.sale_order_template_id and self.sale_order_template_id.number_of_days > 0:
default = dict(default or {})
default['validity_date'] = fields.Date.to_string(datetime.now() + timedelta(self.sale_order_template_id.number_of_days))
default['validity_date'] = fields.Date.context_today(self) + timedelta(self.sale_order_template_id.number_of_days)
return super(SaleOrder, self).copy(default=default)
@api.onchange('partner_id')
@@ -135,7 +135,7 @@ class SaleOrder(models.Model):
self.sale_order_option_ids = option_lines
if template.number_of_days > 0:
self.validity_date = fields.Date.to_string(datetime.now() + timedelta(template.number_of_days))
self.validity_date = fields.Date.context_today(self) + timedelta(template.number_of_days)
self.require_signature = template.require_signature
self.require_payment = template.require_payment