302
302
if line.product_id.categ_id.check_delivery:
303
303
xfer = time.strptime(so.transfer_time, TM_FMT)
304
304
spacing = time.strptime(so.delivery_spacing, TM_FMT)
305
if not so.load_capacity:
306
raise osv.except_osv(_('Error'),_('Asigna una Capacidad de Carga !'))
305
307
factor = int(line.product_uom_qty/so.load_capacity)
306
308
last_load = [line.product_uom_qty - (so.load_capacity * factor)][0] and [line.product_uom_qty - (so.load_capacity * factor)] or []
307
309
qty_list = ([so.load_capacity]*factor) + last_load
402
404
mrp_obj = self.pool.get('mrp.production')
403
405
so = self.browse(cr, uid, ids[0], context={})
404
406
self.create_picking_location(cr, uid, ids)
405
408
for line in so.order_line:
406
if line.product_id.categ_id.check_delivery or line.product_id.categ_id.check_delivery_time:
407
move_id = move_obj.search(cr, uid, [('sale_line_id','=',line.id)])
409
if line.product_id.categ_id.check_delivery or line.product_id.categ_id.check_delivery_time:# TODO this field is duplicated...
410
if not picking_date or (picking_date > line.delivery_time):
411
picking_date = line.delivery_time
412
[move_id] = move_obj.search(cr, uid, [('sale_line_id','=',line.id)])
408
413
production_id = mrp_obj.search(cr, uid, [('move_prod_id', '=', move_id)])
409
move_obj.write(cr, uid, move_id, {'date':line.delivery_time, 'date_expected':line.delivery_time})
415
move = move_obj.browse(cr, uid, move_id)
416
move.write({'date':line.delivery_time, 'date_expected':line.delivery_time})
417
move.picking_id.write({'min_date':picking_date})
410
419
proc_obj.write(cr, uid, line.procurement_id.id, {'date_planned':line.delivery_time})
411
420
mrp_obj.write(cr, uid, production_id, {'date_planned':line.delivery_time})
412
421
self.update_production_internal_picking_time(cr, uid, production_id, line.delivery_time)
424
433
def update_production_internal_picking_time(self, cr, uid, production_id, date_planned):
425
434
if production_id:
426
query = "UPDATE stock_picking SET date = '%s' WHERE id = (SELECT picking_id FROM mrp_production where id = %s)"%(date_planned, production_id[0])
435
query = "UPDATE stock_picking SET min_date = '%s' WHERE id = (SELECT picking_id FROM mrp_production where id = %s)"%(date_planned, production_id[0])
427
436
cr.execute(query)
428
437
query2 = "UPDATE stock_move SET date_expected = '%s' WHERE picking_id = (SELECT picking_id FROM mrp_production where id = %s)"%(date_planned, production_id[0])
429
438
cr.execute(query2)