[REF] sale: more explicit method names, added docstring on main non trivial method

bzr revid: rvalyi@gmail.com-20111003142554-yest0alzq00h83b7
This commit is contained in:
Raphaël Valyi 2011-10-03 11:25:54 -03:00
parent ff43f2198a
commit ec101c5a35
1 changed files with 17 additions and 11 deletions

View File

@ -673,8 +673,7 @@ class sale_order(osv.osv):
return False
return canceled
def _prepare_proc(self, cr, uid, order, line, move_id, date_planned, *args):
def _prepare_order_line_procurement(self, cr, uid, order, line, move_id, date_planned, *args):
return {
'name': line.name,
'origin': order.name,
@ -694,8 +693,7 @@ class sale_order(osv.osv):
'sale_line_id': line.id,
}
def _prepare_move(self, cr, uid, order, line, picking_id, date_planned, *args):
def _prepare_order_line_move(self, cr, uid, order, line, picking_id, date_planned, *args):
location_id = order.shop_id.warehouse_id.lot_stock_id.id
output_id = order.shop_id.warehouse_id.lot_output_id.id
return {
@ -722,9 +720,7 @@ class sale_order(osv.osv):
'price_unit': line.product_id.standard_price or 0.0
}
def _prepare_picking(self, cr, uid, order, *args):
def _prepare_order_picking(self, cr, uid, order, *args):
pick_name = self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.out')
return {
'name': pick_name,
@ -739,8 +735,18 @@ class sale_order(osv.osv):
'company_id': order.company_id.id,
}
def _create_pickings_an_procurements(self, cr, uid, order, order_lines, picking_id=False, *args):
"""
Create pickings and procurements for given order lines. Filtering the order lines allows to partition the delivery
over several pickings.
:param cr: database cursor
:param uid: current user id
:param order: sale order object
:param order_lines: sale order line objects
:param picking_id: id of picking to use evenually
:return: True
"""
proc_ids = []
for line in order_lines:
if line.state == 'done':
@ -752,12 +758,12 @@ class sale_order(osv.osv):
if line.product_id:
if line.product_id.product_tmpl_id.type in ('product', 'consu'):
if not picking_id:
picking_id = self.pool.get('stock.picking').create(cr, uid, self._prepare_picking(cr, uid, order, args))
move_id = self.pool.get('stock.move').create(cr, uid, self._prepare_move(cr, uid, order, line, picking_id, date_planned, args))
picking_id = self.pool.get('stock.picking').create(cr, uid, self._prepare_order_picking(cr, uid, order, args))
move_id = self.pool.get('stock.move').create(cr, uid, self._prepare_order_line_move(cr, uid, order, line, picking_id, date_planned, args))
else: #a service has no stock move
move_id = False
proc_id = self.pool.get('procurement.order').create(cr, uid, self._prepare_proc(cr, uid, order, line, move_id, date_planned, args))
proc_id = self.pool.get('procurement.order').create(cr, uid, self._prepare_order_line_procurement(cr, uid, order, line, move_id, date_planned, args))
proc_ids.append(proc_id)
if order.state == 'shipping_except': #deals with potentially cancelled shipments FIXME seems broken, see below