fix: Amount validation in Payment Request against Purchase Order (#34042)

This commit is contained in:
Deepesh Garg 2023-02-13 20:56:24 +05:30 committed by GitHub
parent 231fe4156f
commit ce748cec3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -45,21 +45,20 @@ class PaymentRequest(Document):
frappe.throw(_("To create a Payment Request reference document is required")) frappe.throw(_("To create a Payment Request reference document is required"))
def validate_payment_request_amount(self): def validate_payment_request_amount(self):
existing_payment_request_amount = get_existing_payment_request_amount( existing_payment_request_amount = flt(
self.reference_doctype, self.reference_name get_existing_payment_request_amount(self.reference_doctype, self.reference_name)
) )
if existing_payment_request_amount: ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name) if not hasattr(ref_doc, "order_type") or getattr(ref_doc, "order_type") != "Shopping Cart":
if not hasattr(ref_doc, "order_type") or getattr(ref_doc, "order_type") != "Shopping Cart": ref_amount = get_amount(ref_doc, self.payment_account)
ref_amount = get_amount(ref_doc, self.payment_account)
if existing_payment_request_amount + flt(self.grand_total) > ref_amount: if existing_payment_request_amount + flt(self.grand_total) > ref_amount:
frappe.throw( frappe.throw(
_("Total Payment Request amount cannot be greater than {0} amount").format( _("Total Payment Request amount cannot be greater than {0} amount").format(
self.reference_doctype self.reference_doctype
)
) )
)
def validate_currency(self): def validate_currency(self):
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name) ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)