Add validation for stopped orders, advance payment in journal voucher
This commit is contained in:
parent
6d83454237
commit
9a4b173b88
@ -76,13 +76,14 @@ class JournalVoucher(AccountsController):
|
|||||||
|
|
||||||
def validate_entries_for_advance(self):
|
def validate_entries_for_advance(self):
|
||||||
for d in self.get('entries'):
|
for d in self.get('entries'):
|
||||||
if not d.is_advance and not d.against_voucher and \
|
if not (d.against_voucher and d.against_invoice and d.against_jv) and d.is_advance in ["", "No"]:
|
||||||
not d.against_invoice and not d.against_jv:
|
|
||||||
master_type = frappe.db.get_value("Account", d.account, "master_type")
|
master_type = frappe.db.get_value("Account", d.account, "master_type")
|
||||||
if (master_type == 'Customer' and flt(d.credit) > 0) or \
|
if (master_type == 'Customer' and flt(d.credit) > 0) or \
|
||||||
(master_type == 'Supplier' and flt(d.debit) > 0):
|
(master_type == 'Supplier' and flt(d.debit) > 0):
|
||||||
msgprint(_("Row {0}: Please check 'Is Advance' against Account {1} if this \
|
msgprint(_("Row {0}: Please check 'Is Advance' against Account {1} if this \
|
||||||
is an advance entry.").format(d.idx, d.account))
|
is an advance entry.").format(d.idx, d.account))
|
||||||
|
if d.against_sales_order or d.against_purchase_order:
|
||||||
|
raise frappe.ValidationError
|
||||||
|
|
||||||
def validate_against_jv(self):
|
def validate_against_jv(self):
|
||||||
for d in self.get('entries'):
|
for d in self.get('entries'):
|
||||||
@ -177,7 +178,7 @@ class JournalVoucher(AccountsController):
|
|||||||
def validate_against_order_fields(self, doctype, payment_against_voucher):
|
def validate_against_order_fields(self, doctype, payment_against_voucher):
|
||||||
for voucher_no, payment_list in payment_against_voucher.items():
|
for voucher_no, payment_list in payment_against_voucher.items():
|
||||||
voucher_properties = frappe.db.get_value(doctype, voucher_no,
|
voucher_properties = frappe.db.get_value(doctype, voucher_no,
|
||||||
["docstatus", "per_billed", "advance_paid", "grand_total"])
|
["docstatus", "per_billed", "status", "advance_paid", "grand_total"])
|
||||||
|
|
||||||
if voucher_properties[0] != 1:
|
if voucher_properties[0] != 1:
|
||||||
frappe.throw(_("{0} {1} is not submitted").format(doctype, voucher_no))
|
frappe.throw(_("{0} {1} is not submitted").format(doctype, voucher_no))
|
||||||
@ -185,7 +186,10 @@ class JournalVoucher(AccountsController):
|
|||||||
if flt(voucher_properties[1]) >= 100:
|
if flt(voucher_properties[1]) >= 100:
|
||||||
frappe.throw(_("{0} {1} is fully billed").format(doctype, voucher_no))
|
frappe.throw(_("{0} {1} is fully billed").format(doctype, voucher_no))
|
||||||
|
|
||||||
if flt(voucher_properties[3]) < flt(voucher_properties[2]) + flt(sum(payment_list)):
|
if cstr(voucher_properties[2]) == "Stopped":
|
||||||
|
frappe.throw(_("{0} {1} is stopped").format(doctype, voucher_no))
|
||||||
|
|
||||||
|
if flt(voucher_properties[4]) < flt(voucher_properties[3]) + flt(sum(payment_list)):
|
||||||
frappe.throw(_("Advance paid against {0} {1} cannot be greater \
|
frappe.throw(_("Advance paid against {0} {1} cannot be greater \
|
||||||
than Grand Total {2}").format(doctype, voucher_no, voucher_properties[3]))
|
than Grand Total {2}").format(doctype, voucher_no, voucher_properties[3]))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user