chore: remove payment stuff from web form controller class

This commit is contained in:
phot0n 2022-04-06 23:03:26 +05:30
parent 6c75787d40
commit be4b7906c0

View file

@ -10,7 +10,6 @@ from frappe.core.api.file import get_max_file_size
from frappe.core.doctype.file import remove_file_by_url
from frappe.custom.doctype.customize_form.customize_form import docfield_properties
from frappe.desk.form.meta import get_code_files_via_hooks
from frappe.integrations.utils import get_payment_gateway_controller
from frappe.modules.utils import export_module_json, get_doc_module
from frappe.rate_limiter import rate_limit
from frappe.utils import cstr, dict_with_keys, strip_html
@ -50,9 +49,6 @@ class WebForm(WebsiteGenerator):
if not frappe.flags.in_import:
self.validate_fields()
if self.accept_payment:
self.validate_payment_amount()
def validate_fields(self):
"""Validate all fields are present"""
from frappe.model import no_value_fields
@ -66,12 +62,6 @@ class WebForm(WebsiteGenerator):
if missing:
frappe.throw(_("Following fields are missing:") + "<br>" + "<br>".join(missing))
def validate_payment_amount(self):
if self.amount_based_on_field and not self.amount_field:
frappe.throw(_("Please select a Amount Field."))
elif not self.amount_based_on_field and not self.amount > 0:
frappe.throw(_("Amount must be greater than 0."))
def reset_field_parent(self):
"""Convert link fields to select with names as options"""
for df in self.web_form_fields:
@ -320,36 +310,6 @@ def get_context(context):
context.reference_doc = json.loads(context.reference_doc.as_json())
def get_payment_gateway_url(self, doc):
if self.accept_payment:
controller = get_payment_gateway_controller(self.payment_gateway)
title = f"Payment for {doc.doctype} {doc.name}"
amount = self.amount
if self.amount_based_on_field:
amount = doc.get(self.amount_field)
from decimal import Decimal
if amount is None or Decimal(amount) <= 0:
return frappe.utils.get_url(self.success_url or self.route)
payment_details = {
"amount": amount,
"title": title,
"description": title,
"reference_doctype": doc.doctype,
"reference_docname": doc.name,
"payer_email": frappe.session.user,
"payer_name": frappe.utils.get_fullname(frappe.session.user),
"order_id": doc.name,
"currency": self.currency,
"redirect_to": frappe.utils.get_url(self.success_url or self.route),
}
# Redirect the user to this url
return controller.get_payment_url(**payment_details)
def add_custom_context_and_script(self, context):
"""Update context from module if standard and append script"""
if self.web_form_module:
@ -591,6 +551,7 @@ def accept(web_form, data, docname=None, for_payment=False):
frappe.flags.web_form_doc = doc
if for_payment:
# this is needed for Payments app
return web_form.get_payment_gateway_url(doc)
else:
return doc