From f9bdc3ddda528f877ac26562daf9f8a51ac35efd Mon Sep 17 00:00:00 2001 From: ljain112 Date: Mon, 21 Oct 2024 13:53:40 +0530 Subject: [PATCH] fix: only show pay button for specific doctype in portal (cherry picked from commit fc2cac62c1ceb6522d5ff147694e516805f1ec93) # Conflicts: # erpnext/accounts/doctype/payment_request/payment_request.py # erpnext/templates/pages/order.py --- .../payment_request/payment_request.py | 19 +++++++++++++ erpnext/templates/pages/order.py | 27 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index fd07551897a..c2aa6fd27b8 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -28,6 +28,16 @@ def _get_payment_gateway_controller(*args, **kwargs): return get_payment_gateway_controller(*args, **kwargs) +ALLOWED_DOCTYPES_FOR_PAYMENT_REQUEST = [ + "Sales Order", + "Purchase Order", + "Sales Invoice", + "Purchase Invoice", + "POS Invoice", + "Fees", +] + + class PaymentRequest(Document): # begin: auto-generated types # This code is auto-generated. Do not modify anything in this block. @@ -524,6 +534,15 @@ def make_payment_request(**args): """Make payment request""" args = frappe._dict(args) +<<<<<<< HEAD +======= + ref_doc = args.ref_doc or frappe.get_doc(args.dt, args.dn) + + if ref_doc.doctype not in ALLOWED_DOCTYPES_FOR_PAYMENT_REQUEST: + frappe.throw( + _("Payment Requests cannot be created against: {0}").format(frappe.bold(ref_doc.doctype)) + ) +>>>>>>> fc2cac62c1 (fix: only show pay button for specific doctype in portal) ref_doc = frappe.get_doc(args.dt, args.dn) gateway_account = get_gateway_details(args) or frappe._dict() diff --git a/erpnext/templates/pages/order.py b/erpnext/templates/pages/order.py index 505399f4a5b..fa80acafc80 100644 --- a/erpnext/templates/pages/order.py +++ b/erpnext/templates/pages/order.py @@ -4,6 +4,14 @@ import frappe from frappe import _ +<<<<<<< HEAD +======= +from erpnext.accounts.doctype.payment_request.payment_request import ( + ALLOWED_DOCTYPES_FOR_PAYMENT_REQUEST, + get_amount, +) + +>>>>>>> fc2cac62c1 (fix: only show pay button for specific doctype in portal) def get_context(context): context.no_cache = 1 @@ -61,3 +69,22 @@ def get_attachments(dt, dn): fields=["name", "file_name", "file_url", "is_private"], filters={"attached_to_name": dn, "attached_to_doctype": dt, "is_private": 0}, ) +<<<<<<< HEAD +======= + + +def get_payment_details(doc): + show_pay_button, amount = ( + ( + "payments" in frappe.get_installed_apps() + and frappe.db.get_single_value("Buying Settings", "show_pay_button") + and doc.doctype in ALLOWED_DOCTYPES_FOR_PAYMENT_REQUEST + ), + 0, + ) + if not show_pay_button: + return show_pay_button, amount + + amount = get_amount(doc) + return bool(amount), amount +>>>>>>> fc2cac62c1 (fix: only show pay button for specific doctype in portal)