[MERGE] opw 55403: stock wizard: Precision of Average Unit Cost in Picking Processing
[odoo/odoo.git] / addons / sale_order_dates / sale_order_dates.py
index 877199b..6059590 100644 (file)
 #
 ##############################################################################
 
+from datetime import datetime
+from dateutil.relativedelta import relativedelta
+
 from osv import fields, osv
-import time
-from mx import DateTime
+
 class sale_order_dates(osv.osv):
     _inherit = 'sale.order'
-    _name = 'sale.order'
 
-    def _get_effective_date(self, cr, uid, ids, name, arg, context={}):
+    def _get_effective_date(self, cr, uid, ids, name, arg, context=None):
         res = {}
         dates_list = []
-        for order in self.browse(cr, uid, ids):
+        for order in self.browse(cr, uid, ids, context=context):
             dates_list = []
             for pick in order.picking_ids:
                 dates_list.append(pick.date)
             if dates_list:
                 res[order.id] = min(dates_list)
             else:
-                res[order.id] =False
-            return res
+                res[order.id] = False
+        return res
 
-    def _get_commitment_date(self, cr, uid, ids, name, arg, context={}):
+    def _get_commitment_date(self, cr, uid, ids, name, arg, context=None):
         res = {}
         dates_list = []
-        for order in self.browse(cr, uid, ids):
+        for order in self.browse(cr, uid, ids, context=context):
             dates_list = []
             for line in order.order_line:
-                dt=DateTime.strptime(order.date_order, '%Y-%m-%d') + DateTime.RelativeDateTime(days=line.delay or 0.0)
+                dt = datetime.strptime(order.date_order, '%Y-%m-%d') + relativedelta(days=line.delay or 0.0)
                 dt_s = dt.strftime('%Y-%m-%d')
                 dates_list.append(dt_s)
             if dates_list:
                 res[order.id] = min(dates_list)
-            return res
+        return res
 
     _columns = {
-        'commitment_date': fields.function(_get_commitment_date, method=True,store=True, type='date', string='Commitment Date'),
-        'requested_date': fields.date('Requested Date'),
-        'effective_date': fields.function(_get_effective_date, method=True, type='date', store=True,string='Effective Date'),
+        'commitment_date': fields.function(_get_commitment_date, method=True, store=True, type='date', string='Commitment Date', help="Date on which delivery of products is to be made."),
+        'requested_date': fields.date('Requested Date', help="Date on which customer has requested for sales."),
+        'effective_date': fields.function(_get_effective_date, method=True, type='date', store=True, string='Effective Date',help="Date on which picking is created."),
     }
-sale_order_dates()
-"""
- - date_commitment: min(fields.function using delay on SO lines +
-          date_order)
-        - date_requested: fields.date
-        - Effective date: fields.function the first picking done.
-"""
 
+sale_order_dates()
 
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file