def delete_gl_entries(gl_entries=None, voucher_type=None, voucher_no=None, adv_adj=False, update_outstanding="Yes"): from accounts.doctype.gl_entry.gl_entry import check_negative_balance, \ check_freezing_date, update_outstanding_amt, validate_frozen_account if not gl_entries: gl_entries = webnotes.conn.sql("""select * from `tabGL Entry` where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no), as_dict=True) if gl_entries: check_freezing_date(gl_entries[0]["posting_date"], adv_adj) webnotes.conn.sql( """delete from `tabGL Entry` where voucher_type=%s and voucher_no=%s""", (voucher_type or gl_entries[0]["voucher_type"], voucher_no or gl_entries[0]["voucher_no"])) for entry in gl_entries: validate_frozen_account(entry["account"], adv_adj) check_negative_balance(entry["account"], adv_adj) validate_expense_against_budget(entry) if entry.get("against_voucher") and entry.get("against_voucher_type") != "POS" \ and update_outstanding == 'Yes': update_outstanding_amt(entry["account"], entry.get("against_voucher_type"), entry.get("against_voucher"), on_cancel=True)
def delete_gl_entries(gl_entries=None, voucher_type=None, voucher_no=None, adv_adj=False, update_outstanding="Yes"): from accounts.doctype.gl_entry.gl_entry import ( check_negative_balance, check_freezing_date, update_outstanding_amt, validate_frozen_account, ) if not gl_entries: gl_entries = webnotes.conn.sql( """select * from `tabGL Entry` where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no), as_dict=True, ) if gl_entries: check_freezing_date(gl_entries[0]["posting_date"], adv_adj) webnotes.conn.sql( """delete from `tabGL Entry` where voucher_type=%s and voucher_no=%s""", (voucher_type or gl_entries[0]["voucher_type"], voucher_no or gl_entries[0]["voucher_no"]), ) for entry in gl_entries: validate_frozen_account(entry["account"], adv_adj) check_negative_balance(entry["account"], adv_adj) validate_expense_against_budget(entry) if entry.get("against_voucher") and entry.get("against_voucher_type") != "POS" and update_outstanding == "Yes": update_outstanding_amt( entry["account"], entry.get("against_voucher_type"), entry.get("against_voucher"), on_cancel=True )
def save_entries(gl_map, adv_adj, update_outstanding): validate_account_for_auto_accounting_for_stock(gl_map) total_debit = total_credit = 0.0 for entry in gl_map: make_entry(entry, adv_adj, update_outstanding) # check against budget validate_expense_against_budget(entry) # update total debit / credit total_debit += flt(entry.debit) total_credit += flt(entry.credit) validate_total_debit_credit(total_debit, total_credit)