[REF] purchase: refactoring of date_planned in the class purchase_order_line in order to overload it easily
bzr revid: rvalyi@gmail.com-20120215224743-5gtpc8q6pane2ybm
This commit is contained in:
parent
16ee6bb22f
commit
79a3c7a976
|
@ -709,6 +709,17 @@ class purchase_order_line(osv.osv):
|
||||||
partner_id, date_order=date_order, fiscal_position_id=fiscal_position_id, date_planned=date_planned,
|
partner_id, date_order=date_order, fiscal_position_id=fiscal_position_id, date_planned=date_planned,
|
||||||
name=name, price_unit=price_unit, notes=notes, context=context)
|
name=name, price_unit=price_unit, notes=notes, context=context)
|
||||||
|
|
||||||
|
def _get_date_planned(self, cr, uid, seller, start_date, context=None):
|
||||||
|
"""Return the datetime value to use as Schedule Date (``date_planned``) for the
|
||||||
|
Purchase Order Lines created in the purchase order.
|
||||||
|
|
||||||
|
:param browse_record supplierinfo: the supplier of the product.
|
||||||
|
:rtype: datetime
|
||||||
|
:return: the desired Schedule Date for the PO lines
|
||||||
|
"""
|
||||||
|
seller_delay = seller and int(seller.delay) or 0
|
||||||
|
return datetime.strptime(start_date, '%Y-%m-%d') + relativedelta(days=seller_delay)
|
||||||
|
|
||||||
def onchange_product_id(self, cr, uid, ids, pricelist_id, product_id, qty, uom_id,
|
def onchange_product_id(self, cr, uid, ids, pricelist_id, product_id, qty, uom_id,
|
||||||
partner_id, date_order=False, fiscal_position_id=False, date_planned=False,
|
partner_id, date_order=False, fiscal_position_id=False, date_planned=False,
|
||||||
name=False, price_unit=False, notes=False, context=None):
|
name=False, price_unit=False, notes=False, context=None):
|
||||||
|
@ -761,10 +772,10 @@ class purchase_order_line(osv.osv):
|
||||||
date_order = fields.date.context_today(cr,uid,context=context)
|
date_order = fields.date.context_today(cr,uid,context=context)
|
||||||
|
|
||||||
qty = qty or 1.0
|
qty = qty or 1.0
|
||||||
seller_delay = 0
|
seller = False
|
||||||
supplierinfo_ids = product_supplierinfo.search(cr, uid, [('name','=',partner_id),('product_id','=',product.id)])
|
supplierinfo_ids = product_supplierinfo.search(cr, uid, [('name','=',partner_id),('product_id','=',product.id)])
|
||||||
for supplierinfo in product_supplierinfo.browse(cr, uid, supplierinfo_ids, context=context):
|
for supplierinfo in product_supplierinfo.browse(cr, uid, supplierinfo_ids, context=context):
|
||||||
seller_delay = supplierinfo.delay
|
seller = supplierinfo
|
||||||
if supplierinfo.product_uom.id != uom_id:
|
if supplierinfo.product_uom.id != uom_id:
|
||||||
res['warning'] = {'title': _('Warning'), 'message': _('The selected supplier only sells this product by %s') % supplierinfo.product_uom.name }
|
res['warning'] = {'title': _('Warning'), 'message': _('The selected supplier only sells this product by %s') % supplierinfo.product_uom.name }
|
||||||
min_qty = product_uom._compute_qty(cr, uid, supplierinfo.product_uom.id, supplierinfo.min_qty, to_uom_id=uom_id)
|
min_qty = product_uom._compute_qty(cr, uid, supplierinfo.product_uom.id, supplierinfo.min_qty, to_uom_id=uom_id)
|
||||||
|
@ -772,7 +783,8 @@ class purchase_order_line(osv.osv):
|
||||||
res['warning'] = {'title': _('Warning'), 'message': _('The selected supplier has a minimal quantity set to %s %s, you should not purchase less.') % (supplierinfo.min_qty, supplierinfo.product_uom.name)}
|
res['warning'] = {'title': _('Warning'), 'message': _('The selected supplier has a minimal quantity set to %s %s, you should not purchase less.') % (supplierinfo.min_qty, supplierinfo.product_uom.name)}
|
||||||
qty = min_qty
|
qty = min_qty
|
||||||
|
|
||||||
dt = (datetime.strptime(date_order, '%Y-%m-%d') + relativedelta(days=int(seller_delay) or 0.0)).strftime('%Y-%m-%d %H:%M:%S')
|
dt = self._get_date_planned(cr, uid, seller, date_order, context=context).strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
|
||||||
res['value'].update({'date_planned': date_planned or dt, 'product_qty': qty})
|
res['value'].update({'date_planned': date_planned or dt, 'product_qty': qty})
|
||||||
|
|
||||||
# - determine price_unit and taxes_id
|
# - determine price_unit and taxes_id
|
||||||
|
|
Loading…
Reference in New Issue