diff --git a/addons/stock/stock_wizard.xml b/addons/stock/stock_wizard.xml
index fa46831cf2c..4bbba3808d5 100644
--- a/addons/stock/stock_wizard.xml
+++ b/addons/stock/stock_wizard.xml
@@ -34,5 +34,13 @@
multi="True"
id="wizard_merge_inventory"/>
+
+
diff --git a/addons/stock/wizard/__init__.py b/addons/stock/wizard/__init__.py
index fe4cc4a60bf..0064614f005 100644
--- a/addons/stock/wizard/__init__.py
+++ b/addons/stock/wizard/__init__.py
@@ -38,6 +38,8 @@ import wizard_track_line
import wizard_ups
import wizard_invoice_onshipping
import wizard_move_by_location
-
+import wizard_inventory
+import inventory_merge_zero
+import inventory_merge
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/wizard/wizard_inventory.py b/addons/stock/wizard/wizard_inventory.py
new file mode 100644
index 00000000000..5a9928b79f5
--- /dev/null
+++ b/addons/stock/wizard/wizard_inventory.py
@@ -0,0 +1,111 @@
+##############################################################################
+#
+# Copyright (c) 2005-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+import time
+import wizard
+import ir
+import pooler
+from osv.osv import except_osv
+from osv import fields,osv
+import netsvc
+
+inventory_form = """
+
+"""
+
+inventory_fields = {
+ 'location_id' : {
+ 'string':'Location',
+ 'type':'many2one',
+ 'relation':'stock.location',
+ 'required':True
+ },
+ 'recursive' : {'string':'Include all childs for the location', 'type':'boolean'}
+}
+
+
+
+def _fill_inventory(self, cr, uid, data, context):
+ pool = pooler.get_pool(cr.dbname)
+ inventory_line_obj = pooler.get_pool(cr.dbname).get('stock.inventory.line')
+ location_obj = pooler.get_pool(cr.dbname).get('stock.location')
+ res={}
+ res_location={}
+ if data['form']['recursive'] :
+ location_ids = location_obj.search(cr, uid, [('location_id', 'child_of', [data['form']['location_id']])])
+ for location in location_ids :
+ res=location_obj._product_get(cr, uid, location)
+ res_location[location]=res
+ else:
+ res=location_obj._product_get(cr, uid, data['form']['location_id'])
+ res_location[data['form']['location_id']]=res
+
+ product_ids=[]
+ for location in res_location.keys():
+ res=res_location[location]
+ for product_id in res.keys():
+ #product_ids.append(product_id)
+ prod = pool.get('product.product').browse(cr, uid, [product_id])[0]
+ uom = prod.uom_id.id
+ amount=pool.get('stock.location')._product_get(cr, uid, location, [product_id], {'uom': uom})[product_id]
+
+ if(amount):
+ inventory_line={'inventory_id':data['id'],'location_id':location,'product_id':product_id,'product_uom':uom,'product_qty':amount}
+ #inventory_line_obj.create(cr, uid, inventory_line)
+ product_ids.append(inventory_line_obj.create(cr, uid, inventory_line))
+
+ if(len(product_ids)==0):
+ raise wizard.except_wizard('Message ! ','No product in this location.')
+ return {}
+
+
+
+class fill_inventory(wizard.interface):
+ states = {
+ 'init' : {
+ 'actions' : [],
+ 'result' : {'type' : 'form',
+ 'arch' : inventory_form,
+ 'fields' : inventory_fields,
+ 'state' : [('end', 'Cancel'),('fill_inventory', 'Fill Inventory') ]}
+ },
+ 'fill_inventory' : {
+ 'actions' : [],
+ 'result' : {'type' : 'action', 'action': _fill_inventory, 'state' : 'end'}
+ },
+ }
+fill_inventory("stock.fill_inventory")
+
+
+