From a75fe1a4c3ba97f21f1791146324f9a643af970c Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 23 Mar 2016 11:59:24 +0530 Subject: [PATCH] Revert "[cleanup] PayPal payment UX and moved related methods to hooks of respective apps" --- .../payment_gateway/fixtures/__init__.py | 0 .../payment_gateway/fixtures/paypal.py | 62 ------------------- erpnext/hooks.py | 9 --- erpnext/shopping_cart/cart.py | 61 ++++-------------- erpnext/templates/pages/order.html | 2 +- 5 files changed, 14 insertions(+), 120 deletions(-) delete mode 100644 erpnext/accounts/doctype/payment_gateway/fixtures/__init__.py delete mode 100644 erpnext/accounts/doctype/payment_gateway/fixtures/paypal.py diff --git a/erpnext/accounts/doctype/payment_gateway/fixtures/__init__.py b/erpnext/accounts/doctype/payment_gateway/fixtures/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/erpnext/accounts/doctype/payment_gateway/fixtures/paypal.py b/erpnext/accounts/doctype/payment_gateway/fixtures/paypal.py deleted file mode 100644 index d69dc0e231..0000000000 --- a/erpnext/accounts/doctype/payment_gateway/fixtures/paypal.py +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe import _ -from erpnext.setup.setup_wizard.setup_wizard import create_bank_account - -def create_payment_gateway_and_account(doc, method): - """Called via hook on saving Paypal Settings of Paypal Integration app""" - create_payment_gateway() - create_payment_gateway_account() - -def create_payment_gateway(): - # NOTE: we don't translate Payment Gateway name because it is an internal doctype - if not frappe.db.exists("Payment Gateway", "PayPal"): - payment_gateway = frappe.get_doc({ - "doctype": "Payment Gateway", - "gateway": "PayPal" - }) - payment_gateway.insert(ignore_permissions=True) - -def create_payment_gateway_account(): - company = frappe.db.get_value("Global Defaults", None, "default_company") - if not company: - return - - # NOTE: we translate Payment Gateway account name because that is going to be used by the end user - bank_account = frappe.db.get_value("Account", {"account_name": _("PayPal"), "company": company}, - ["name", 'account_currency'], as_dict=1) - - if not bank_account: - # check for untranslated one - bank_account = frappe.db.get_value("Account", {"account_name": "PayPal", "company": company}, - ["name", 'account_currency'], as_dict=1) - - if not bank_account: - # try creating one - bank_account = create_bank_account({"company_name": company, "bank_account": _("PayPal")}) - - if not bank_account: - frappe.msgprint(_("Payment Gateway Account not created, please create one manually.")) - return - - # if payment gateway account exists, return - if frappe.db.exists("Payment Gateway Account", - {"payment_gateway": "PayPal", "currency": bank_account.account_currency}): - return - - try: - frappe.get_doc({ - "doctype": "Payment Gateway Account", - "is_default": 1, - "payment_gateway": "PayPal", - "payment_account": bank_account.name, - "currency": bank_account.account_currency - }).insert(ignore_permissions=True) - - except frappe.DuplicateEntryError: - # already exists, due to a reinstall? - pass diff --git a/erpnext/hooks.py b/erpnext/hooks.py index da2747716c..6e86d84b17 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -117,15 +117,6 @@ doc_events = { }, "Address": { "validate": "erpnext.shopping_cart.cart.set_customer_in_address" - }, - - # From Paypal Integration app - "PayPal Settings": { - "on_update": "erpnext.accounts.doctype.payment_gateway.fixtures.paypal.create_payment_gateway_and_account" - }, - - "Paypal Express Payment": { - "on_update": "erpnext.shopping_cart.cart.set_redirect" } } diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py index f84c5d37e6..27271afadd 100644 --- a/erpnext/shopping_cart/cart.py +++ b/erpnext/shopping_cart/cart.py @@ -5,7 +5,7 @@ from __future__ import unicode_literals import frappe from frappe import throw, _ import frappe.defaults -from frappe.utils import cint, flt, get_fullname, cstr, get_url +from frappe.utils import cint, flt, get_fullname, cstr from erpnext.utilities.doctype.address.address import get_address_display from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings import get_shopping_cart_settings from frappe.utils.nestedset import get_root_of @@ -282,12 +282,12 @@ def get_customer(user=None): customer = frappe.db.get_value("Contact", {"email_id": user}, "customer") cart_settings = frappe.get_doc("Shopping Cart Settings") - + debtors_account = '' - + if cart_settings.enable_checkout: debtors_account = get_debtors_account(cart_settings) - + if customer: return frappe.get_doc("Customer", customer) @@ -300,7 +300,7 @@ def get_customer(user=None): "customer_group": get_shopping_cart_settings().default_customer_group, "territory": get_root_of("Territory") }) - + if debtors_account: customer.update({ "accounts": [{ @@ -308,7 +308,7 @@ def get_customer(user=None): "account": debtors_account }] }) - + customer.flags.ignore_mandatory = True customer.insert(ignore_permissions=True) @@ -326,12 +326,12 @@ def get_customer(user=None): def get_debtors_account(cart_settings): payment_gateway_account_currency = \ frappe.get_doc("Payment Gateway Account", cart_settings.payment_gateway_account).currency - + account_name = _("Debtors ({0})".format(payment_gateway_account_currency)) - + debtors_account_name = get_account_name("Receivable", "Asset", is_group=0,\ account_currency=payment_gateway_account_currency, company=cart_settings.company) - + if not debtors_account_name: debtors_account = frappe.get_doc({ "doctype": "Account", @@ -340,14 +340,14 @@ def get_debtors_account(cart_settings): "is_group": 0, "parent_account": get_account_name(root_type="Asset", is_group=1, company=cart_settings.company), "account_name": account_name, - "currency": payment_gateway_account_currency + "currency": payment_gateway_account_currency }).insert(ignore_permissions=True) - + return debtors_account.name - + else: return debtors_account_name - + def get_address_docs(doctype=None, txt=None, filters=None, limit_start=0, limit_page_length=20, party=None): if not party: @@ -437,38 +437,3 @@ def get_address_territory(address_name): break return territory - -def set_redirect(paypal_express_payment, method): - """Set Paypal Express Payment.flags.redirect_to on status change. Called via hooks.""" - if not paypal_express_payment.flags.status_changed_to: - return - - reference_doctype = paypal_express_payment.reference_doctype - reference_docname = paypal_express_payment.reference_docname - - if not (reference_doctype and reference_docname): - return - - reference_doc = frappe.get_doc(reference_doctype, reference_docname) - shopping_cart_settings = frappe.get_doc("Shopping Cart Settings") - - if paypal_express_payment.flags.status_changed_to == "Completed": - reference_doc.run_method("set_as_paid") - - # if shopping cart enabled and in session - if (shopping_cart_settings.enabled - and hasattr(frappe.local, "session") - and frappe.local.session.user != "Guest"): - - success_url = shopping_cart_settings.payment_success_url - if success_url: - paypal_express_payment.flags.redirect_to = ({ - "Orders": "orders", - "Invoices": "invoices", - "My Account": "me" - }).get(success_url, "me") - else: - paypal_express_payment.flags.redirect_to = get_url("/orders/{0}".format(reference_doc.reference_name)) - - elif paypal_express_payment.flags.status_changed_to == "Cancelled": - reference_doc.run_method("set_as_cancelled") diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html index 3252eb9eb5..03e625da1f 100644 --- a/erpnext/templates/pages/order.html +++ b/erpnext/templates/pages/order.html @@ -1,4 +1,4 @@ -{% extends "templates/web.html" %} +t{% extends "templates/web.html" %} {% block header %}

{{ doc.name }}