from __future__ import unicode_literals import frappe from erpnext.accounts.doctype.journal_entry.journal_entry import get_default_bank_cash_account def execute(): frappe.reload_doc('accounts', 'doctype', 'sales_invoice') for company in frappe.db.sql("""select company from `tabSales Invoice` where change_amount <> 0 and account_for_change_amount is null group by company""", as_list = 1): cash_account = get_default_bank_cash_account(company[0], 'Cash').get('account') if not cash_account: bank_account = get_default_bank_cash_account(company[0], 'Bank').get('account') cash_account = bank_account if cash_account: frappe.db.sql("""update `tabSales Invoice` set account_for_change_amount = %(cash_account)s where change_amount <> 0 and company = %(company)s and account_for_change_amount is null""", {'cash_account': cash_account, 'company': company[0]})