diff --git a/addons/sale_order_dates/sale_order_dates.py b/addons/sale_order_dates/sale_order_dates.py index d0551636ad1514d9b6b75200cfa42b04fea4a5fe..cd9dcc9023bb04c44e66ac41fb1bdd0288d8087e 100644 --- a/addons/sale_order_dates/sale_order_dates.py +++ b/addons/sale_order_dates/sale_order_dates.py @@ -11,15 +11,6 @@ class sale_order_dates(osv.osv): """Add several date fields to Sale Orders, computed or user-entered""" _inherit = 'sale.order' - def _get_date_planned(self, cr, uid, order, line, start_date, context=None): - """Compute the expected date from the requested date, not the order date""" - if order and order.requested_date: - date_planned = datetime.strptime(order.requested_date, DEFAULT_SERVER_DATETIME_FORMAT) - date_planned -= timedelta(days=order.company_id.security_lead) - return date_planned.strftime(DEFAULT_SERVER_DATETIME_FORMAT) - return super(sale_order_dates, self)._get_date_planned( - cr, uid, order, line, start_date, context=context) - def _get_effective_date(self, cr, uid, ids, name, arg, context=None): """Read the shipping date from the related packings""" # TODO: would be better if it returned the date the picking was processed? @@ -45,7 +36,7 @@ class sale_order_dates(osv.osv): for line in order.order_line: if line.state == 'cancel': continue - dt = order_datetime + timedelta(days=line.delay or 0.0) + dt = order_datetime + timedelta(days=line.customer_lead or 0.0) dt_s = dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT) dates_list.append(dt_s) if dates_list: @@ -87,3 +78,17 @@ class sale_order_dates(osv.osv): store=True, string='Effective Date', help="Date on which the first Delivery Order was created."), } + + +class SaleOrderLine(osv.osv): + _inherit = 'sale.order.line' + + def _prepare_order_line_procurement(self, cr, uid, ids, group_id=False, context=None): + vals = super(SaleOrderLine, self)._prepare_order_line_procurement(cr, uid, ids, group_id=group_id, context=context) + line = self.browse(cr, uid, ids, context=context) + if line.order_id.requested_date: + date_planned = datetime.strptime(line.order_id.requested_date, DEFAULT_SERVER_DATETIME_FORMAT) - timedelta(days=line.order_id.company_id.security_lead) + vals.update({ + 'date_planned': date_planned.strftime(DEFAULT_SERVER_DATETIME_FORMAT), + }) + return vals diff --git a/addons/sale_order_dates/sale_order_dates_view.xml b/addons/sale_order_dates/sale_order_dates_view.xml index 7b975bf247653ddc8a305ecc12b7f23430eae034..e06c46da090f478a7d05480e980784076aeb26af 100644 --- a/addons/sale_order_dates/sale_order_dates_view.xml +++ b/addons/sale_order_dates/sale_order_dates_view.xml @@ -2,10 +2,10 @@ <openerp> <data> - <record id="view_sale_orderfor" model="ir.ui.view"> + <record id="view_order_form_inherit_sale_stock_inherit_sale_order_dates" model="ir.ui.view"> <field name="name">sale.order.form.inherit5</field> <field name="model">sale.order</field> - <field name="inherit_id" ref="sale_stock.view_order_form_inherit"/> + <field name="inherit_id" ref="sale_stock.view_order_form_inherit_sale_stock"/> <field name="arch" type="xml"> <group name="sale_shipping" position="inside"> <field name="requested_date" on_change="onchange_requested_date(requested_date, commitment_date)"/> diff --git a/addons/sale_order_dates/test/requested_date.yml b/addons/sale_order_dates/test/requested_date.yml index 0e8f7fb1816c9af649d2b4716e0f54dd9cf7d649..f912c955074c997d6a1962c087bf20be8948b5f4 100644 --- a/addons/sale_order_dates/test/requested_date.yml +++ b/addons/sale_order_dates/test/requested_date.yml @@ -7,10 +7,8 @@ - I confirm the Sale Order. - - !workflow { - model: sale.order, action: order_confirm, - ref: sale.sale_order_6 - } + !python {model: sale.order}: | + self.action_confirm(cr, uid, ref("sale.sale_order_6"), context=context) - I verify that the Procurements and Stock Moves have been generated with the correct date