From 70a51cd7610111d840ea8b2e8f7b609a1d983769 Mon Sep 17 00:00:00 2001 From: Akash Balar Date: Mon, 15 Dec 2014 12:23:35 +0530 Subject: [PATCH] [FIX] mrp : skip lines not within date range specified on BOM As date_start and date_stop are date field and not datetime, should use DEFAULT_SERVER_DATE_FORMAT for search. opw 619592 --- addons/mrp/mrp.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 67f36579f12..58a474d56b4 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -24,7 +24,7 @@ from datetime import datetime import openerp.addons.decimal_precision as dp from openerp.osv import fields, osv, orm -from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP +from openerp.tools import DEFAULT_SERVER_DATE_FORMAT from openerp.tools import float_compare from openerp.tools.translate import _ from openerp import netsvc @@ -298,8 +298,8 @@ class mrp_bom(osv.osv): if properties is None: properties = [] domain = [('product_id', '=', product_id), ('bom_id', '=', False), - '|', ('date_start', '=', False), ('date_start', '<=', time.strftime(DEFAULT_SERVER_DATETIME_FORMAT)), - '|', ('date_stop', '=', False), ('date_stop', '>=', time.strftime(DEFAULT_SERVER_DATETIME_FORMAT))] + '|', ('date_start', '=', False), ('date_start', '<=', time.strftime(DEFAULT_SERVER_DATE_FORMAT)), + '|', ('date_stop', '=', False), ('date_stop', '>=', time.strftime(DEFAULT_SERVER_DATE_FORMAT))] ids = self.search(cr, uid, domain) max_prop = 0 result = False @@ -367,6 +367,9 @@ class mrp_bom(osv.osv): 'hour': float(wc_use.hour_nbr*mult + ((wc.time_start or 0.0)+(wc.time_stop or 0.0)+cycle*(wc.time_cycle or 0.0)) * (wc.time_efficiency or 1.0)), }) for bom2 in bom.bom_lines: + if (bom2.date_start and bom2.date_start > time.strftime(DEFAULT_SERVER_DATE_FORMAT)) or \ + (bom2.date_stop and bom2.date_stop < time.strftime(DEFAULT_SERVER_DATE_FORMAT)): + continue res = self._bom_explode(cr, uid, bom2, factor, properties, addthis=True, level=level+10) result = result + res[0] result2 = result2 + res[1]