From 3b00b2ad439209b39e0cfea2247251a9235144b6 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Mon, 29 Jan 2024 15:06:15 +0100 Subject: [PATCH] fix: Auto update default mode of payment from payment request --- .../doctype/payment_request/payment_request.py | 12 +++++++++++- .../doctype/payment_request/payment_request_list.js | 7 +++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index 515afd4e4bc..355a1aa0e70 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -152,6 +152,7 @@ class PaymentRequest(Document): if self.payment_request_type == "Outward": self.db_set("status", "Initiated") return + if self.payment_request_type == "Inward": self.db_set("status", "Requested") send_mail = True @@ -181,7 +182,6 @@ class PaymentRequest(Document): # set advance payment status ref_doc.set_total_advance_paid() - def request_phone_payment(self): controller = _get_payment_gateway_controller(self.payment_gateway) request_amount = self.get_request_amount() @@ -294,6 +294,11 @@ class PaymentRequest(Document): if frappe.db.has_column(self.reference_doctype, "supplier"): return frappe.db.get_value(self.reference_doctype, self.reference_name, "supplier") + def register_default_payment_method(self): + for dt in ["Customer", "Supplier", "Subscription"]: + if self.get(dt.lower()): + frappe.db.set_value(dt, self.get(dt.lower()), "mode_of_payment", self.mode_of_payment) + @property def reference_document(self): return frappe.get_doc(self.reference_doctype, self.reference_name) @@ -586,10 +591,15 @@ class PaymentRequest(Document): elif (curr_status == "Requested") and (next_status == "Pending") and is_not_draft: self.db_set("status", "Pending", commit=True) elif (curr_status in ("Pending", "Requested")) and (next_status == "Payment Method Registered"): + if curr_status == "Requested": + self.db_set("status", "Pending", commit=True) self.run_method("set_payment_method_registered") self.db_set("transaction_reference", reference_no, commit=True) + if curr_status in ("Pending", "Paid"): + self.register_default_payment_method() + return self.get_redirection() def set_payment_method_registered(self): diff --git a/erpnext/accounts/doctype/payment_request/payment_request_list.js b/erpnext/accounts/doctype/payment_request/payment_request_list.js index 6c400fbfa7d..7a0a838d496 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request_list.js +++ b/erpnext/accounts/doctype/payment_request/payment_request_list.js @@ -5,7 +5,10 @@ frappe.listview_settings['Payment Request'] = { return [__("Draft"), "darkgrey", "status,=,Draft"]; } else if(doc.status == "Initiated") { - return [__("Initiated"), "orange", "status,=,Initiated"]; + return [__("Initiated"), "blue", "status,=,Initiated"]; + } + else if(doc.status == "Requested") { + return [__("Requested"), "blue", "status,=,Requested"]; } else if(doc.status == "Paid") { return [__("Paid"), "green", "status,=,Paid"]; @@ -20,7 +23,7 @@ frappe.listview_settings['Payment Request'] = { return [__("Failed"), "red", "status,=,Failed"]; } else if(doc.status == "Completed") { - return [__("Completed"), "blue", "status,=,Completed"]; + return [__("Completed"), "green", "status,=,Completed"]; } } } -- GitLab