diff --git a/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py b/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py index a7da8643ec..2de3daa27e 100644 --- a/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py +++ b/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py @@ -11,41 +11,42 @@ def execute(): warehouse_account = frappe.db.sql("""select name, master_name from tabAccount where ifnull(account_type, '') = 'Warehouse'""") - warehouses = [d[1] for d in warehouse_account] - accounts = [d[0] for d in warehouse_account] + if warehouse_account: + warehouses = [d[1] for d in warehouse_account] + accounts = [d[0] for d in warehouse_account] - stock_vouchers = frappe.db.sql("""select distinct sle.voucher_type, sle.voucher_no - from `tabStock Ledger Entry` sle - where sle.warehouse in (%s) - order by sle.posting_date""" % - ', '.join(['%s']*len(warehouses)), tuple(warehouses)) + stock_vouchers = frappe.db.sql("""select distinct sle.voucher_type, sle.voucher_no + from `tabStock Ledger Entry` sle + where sle.warehouse in (%s) + order by sle.posting_date""" % + ', '.join(['%s']*len(warehouses)), tuple(warehouses)) - rejected = [] - for voucher_type, voucher_no in stock_vouchers: - stock_bal = frappe.db.sql("""select sum(stock_value_difference) from `tabStock Ledger Entry` - where voucher_type=%s and voucher_no =%s and warehouse in (%s)""" % - ('%s', '%s', ', '.join(['%s']*len(warehouses))), tuple([voucher_type, voucher_no] + warehouses)) + rejected = [] + for voucher_type, voucher_no in stock_vouchers: + stock_bal = frappe.db.sql("""select sum(stock_value_difference) from `tabStock Ledger Entry` + where voucher_type=%s and voucher_no =%s and warehouse in (%s)""" % + ('%s', '%s', ', '.join(['%s']*len(warehouses))), tuple([voucher_type, voucher_no] + warehouses)) - account_bal = frappe.db.sql("""select ifnull(sum(ifnull(debit, 0) - ifnull(credit, 0)), 0) - from `tabGL Entry` - where voucher_type=%s and voucher_no =%s and account in (%s) - group by voucher_type, voucher_no""" % - ('%s', '%s', ', '.join(['%s']*len(accounts))), tuple([voucher_type, voucher_no] + accounts)) + account_bal = frappe.db.sql("""select ifnull(sum(ifnull(debit, 0) - ifnull(credit, 0)), 0) + from `tabGL Entry` + where voucher_type=%s and voucher_no =%s and account in (%s) + group by voucher_type, voucher_no""" % + ('%s', '%s', ', '.join(['%s']*len(accounts))), tuple([voucher_type, voucher_no] + accounts)) - if stock_bal and account_bal and abs(flt(stock_bal[0][0]) - flt(account_bal[0][0])) > 0.1: - try: - print voucher_type, voucher_no, stock_bal[0][0], account_bal[0][0] + if stock_bal and account_bal and abs(flt(stock_bal[0][0]) - flt(account_bal[0][0])) > 0.1: + try: + print voucher_type, voucher_no, stock_bal[0][0], account_bal[0][0] - frappe.db.sql("""delete from `tabGL Entry` - where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no)) + frappe.db.sql("""delete from `tabGL Entry` + where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no)) - voucher = frappe.get_doc(voucher_type, voucher_no) - voucher.make_gl_entries(repost_future_gle=False) - frappe.db.commit() - except Exception, e: - print frappe.get_traceback() - rejected.append([voucher_type, voucher_no]) - frappe.db.rollback() + voucher = frappe.get_doc(voucher_type, voucher_no) + voucher.make_gl_entries(repost_future_gle=False) + frappe.db.commit() + except Exception, e: + print frappe.get_traceback() + rejected.append([voucher_type, voucher_no]) + frappe.db.rollback() - print "Failed to repost: " - print rejected + print "Failed to repost: " + print rejected