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 validate_for_freezed_account(self): for fieldname in ["customer", "supplier"]: if self.meta.get_field(fieldname) and self.doc.fields.get(fieldname): accounts = webnotes.conn.get_values("Account", {"master_type": fieldname.title(), "master_name": self.doc.fields[fieldname], "company": self.doc.company}, "name") if accounts: from accounts.doctype.gl_entry.gl_entry import validate_frozen_account for account in accounts: validate_frozen_account(account[0])
def validate_for_freezed_account(self): for fieldname in ["customer", "supplier"]: if self.meta.get_field(fieldname) and self.doc.fields.get( fieldname): accounts = webnotes.conn.get_values( "Account", { "master_type": fieldname.title(), "master_name": self.doc.fields[fieldname], "company": self.doc.company }, "name") if accounts: from accounts.doctype.gl_entry.gl_entry import validate_frozen_account for account in accounts: validate_frozen_account(account[0])