diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index 18c50728a74..8c4114b4409 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -158,11 +158,11 @@ class PaymentRequest(Document): # set advance payment status ref_doc.set_advance_payment_status() - def on_submit(self): + def before_submit(self): if self.payment_request_type == "Outward": - self.db_set("status", "Initiated") + self.status = "Initiated" elif self.payment_request_type == "Inward": - self.db_set("status", "Requested") + self.status = "Requested" if self.payment_request_type == "Inward": send_mail = self.payment_gateway_validation() if self.payment_gateway else None @@ -234,9 +234,6 @@ class PaymentRequest(Document): if self.payment_account and self.payment_channel != "Phone": self.payment_url = self.get_payment_url() - if self.payment_url: - self.db_set("payment_url", self.payment_url) - def get_payment_url(self): if self.reference_doctype != "Fees": data = frappe.db.get_value( @@ -361,7 +358,14 @@ class PaymentRequest(Document): ) ], } - enqueue(method=frappe.sendmail, queue="short", timeout=300, is_async=True, **email_args) + enqueue( + method=frappe.sendmail, + queue="short", + timeout=300, + is_async=True, + enqueue_after_commit=True, + **email_args, + ) def get_message(self): """return message with payment gateway link"""