20 lines
		
	
	
		
			691 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			691 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| from __future__ import unicode_literals
 | |
| import frappe
 | |
| from erpnext.stock.stock_balance import repost_stock
 | |
| 
 | |
| def execute():
 | |
| 	bins = frappe.db.sql("""select item_code, warehouse, count(*) from `tabBin` 
 | |
| 		group by item_code, warehouse having count(*) > 1""", as_dict=True)
 | |
| 		
 | |
| 	for d in bins:
 | |
| 		try:
 | |
| 			frappe.db.sql("delete from tabBin where item_code=%s and warehouse=%s", (d.item_code, d.warehouse))
 | |
| 		
 | |
| 			repost_stock(d.item_code, d.warehouse, allow_zero_rate=True, only_actual=False, only_bin=True)
 | |
| 			
 | |
| 			frappe.db.commit()
 | |
| 		except:
 | |
| 			frappe.db.rollback() |