Example #1
0
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)
Example #2
0
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
            )
Example #3
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])
Example #4
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])