bzr revid: fp@tinyerp.com-20090204210404-dlrlur1l0wg6rm67
This commit is contained in:
Fabien Pinckaers
2009-02-04 22:04:04 +01:00
parent 1d45af1d0b
commit cfa26c6bbe
+14 -25
View File
@@ -38,6 +38,7 @@ _inventory_fields = {
'string':'Location',
'type':'many2one',
'relation':'stock.location',
'required':True
}
}
@@ -51,34 +52,22 @@ def do_merge(self, cr, uid, data, context):
raise wizard.except_wizard("Warning",
"Please select one and only one inventory !")
cr.execute('select distinct location_id from stock_inventory_line where inventory_id=%s', (data['ids'][0],))
loc_ids = map(lambda x: x[0], cr.fetchall())
if data['form']['location_id']:
loc_ids.append(data['form']['location_id'])
locs = ','.join(map(lambda x: str(x), loc_ids))
loc = str(data['form']['location_id'])
cr.execute('select distinct location_id,product_id from stock_inventory_line where inventory_id=%s', (data['ids'][0],))
inv = cr.fetchall()
if not locs:
raise wizard.except_wizard("Warning",
"Please select at least one inventory location !")
# if not inv:
# raise wizard.except_wizard("Warning",
# "Please select at least one inventory location !")
else:
cr.execute('select distinct product_id from stock_move where (location_dest_id in ('+locs+')) or (location_id in ('+locs+'))')
stock = cr.fetchall()
for s in stock:
for loc in loc_ids:
if (loc,s[0]) not in inv:
p = prod_obj.browse(cr, uid, s[0])
invent_line_obj.create(cr, uid, {
'inventory_id': data['ids'][0],
'location_id': loc,
'product_id': s[0],
'product_uom': p.uom_id.id,
'product_qty': 0.0,
})
cr.execute('select distinct product_id from stock_move where (location_dest_id='+loc+') or (location_id='+loc+')')
stock = cr.fetchall()
for s in stock:
if (loc,s[0]) not in inv:
p = prod_obj.browse(cr, uid, s[0])
invent_line_obj.create(cr, uid, {
'inventory_id': data['ids'][0],
'location_id': loc,
'product_id': s[0],
'product_uom': p.uom_id.id,
'product_qty': 0.0,
})
return {}