[fixes] code cleanup
This commit is contained in:
parent
3ade883fd9
commit
cbebb4b8ba
@ -540,7 +540,7 @@ def get_default_bank_cash_account(company, voucher_type, mode_of_payment=None, a
|
|||||||
}
|
}
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_payment_entry_against_order(dt, dn, args=None):
|
def get_payment_entry_against_order(dt, dn, amount=None, journal_entry=False, bank_account=None):
|
||||||
ref_doc = frappe.get_doc(dt, dn)
|
ref_doc = frappe.get_doc(dt, dn)
|
||||||
|
|
||||||
if flt(ref_doc.per_billed, 2) > 0:
|
if flt(ref_doc.per_billed, 2) > 0:
|
||||||
@ -558,13 +558,11 @@ def get_payment_entry_against_order(dt, dn, args=None):
|
|||||||
party_account = get_party_account(party_type, ref_doc.get(party_type.lower()), ref_doc.company)
|
party_account = get_party_account(party_type, ref_doc.get(party_type.lower()), ref_doc.company)
|
||||||
party_account_currency = get_account_currency(party_account)
|
party_account_currency = get_account_currency(party_account)
|
||||||
|
|
||||||
if not args or not args["amount"]:
|
if not amount:
|
||||||
if party_account_currency == ref_doc.company_currency:
|
if party_account_currency == ref_doc.company_currency:
|
||||||
amount = flt(ref_doc.base_grand_total) - flt(ref_doc.advance_paid)
|
amount = flt(ref_doc.base_grand_total) - flt(ref_doc.advance_paid)
|
||||||
else:
|
else:
|
||||||
amount = flt(ref_doc.grand_total) - flt(ref_doc.advance_paid)
|
amount = flt(ref_doc.grand_total) - flt(ref_doc.advance_paid)
|
||||||
else:
|
|
||||||
amount = args["amount"]
|
|
||||||
|
|
||||||
return get_payment_entry(ref_doc, {
|
return get_payment_entry(ref_doc, {
|
||||||
"party_type": party_type,
|
"party_type": party_type,
|
||||||
@ -575,12 +573,12 @@ def get_payment_entry_against_order(dt, dn, args=None):
|
|||||||
"amount": amount,
|
"amount": amount,
|
||||||
"remarks": 'Advance Payment received against {0} {1}'.format(dt, dn),
|
"remarks": 'Advance Payment received against {0} {1}'.format(dt, dn),
|
||||||
"is_advance": "Yes",
|
"is_advance": "Yes",
|
||||||
"bank_account": args["bank_account"] if args else None,
|
"bank_account": bank_account,
|
||||||
"return_obj": args["return_obj"] if args else None
|
"journal_entry": journal_entry
|
||||||
})
|
})
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_payment_entry_against_invoice(dt, dn, args=None):
|
def get_payment_entry_against_invoice(dt, dn, amount=None, journal_entry=False, bank_account=None):
|
||||||
ref_doc = frappe.get_doc(dt, dn)
|
ref_doc = frappe.get_doc(dt, dn)
|
||||||
if dt == "Sales Invoice":
|
if dt == "Sales Invoice":
|
||||||
party_type = "Customer"
|
party_type = "Customer"
|
||||||
@ -604,11 +602,11 @@ def get_payment_entry_against_invoice(dt, dn, args=None):
|
|||||||
"party_account_currency": ref_doc.party_account_currency,
|
"party_account_currency": ref_doc.party_account_currency,
|
||||||
"amount_field_party": amount_field_party,
|
"amount_field_party": amount_field_party,
|
||||||
"amount_field_bank": amount_field_bank,
|
"amount_field_bank": amount_field_bank,
|
||||||
"amount": args["amount"] if args else abs(ref_doc.outstanding_amount),
|
"amount": amount if amount else abs(ref_doc.outstanding_amount),
|
||||||
"remarks": 'Payment received against {0} {1}. {2}'.format(dt, dn, ref_doc.remarks),
|
"remarks": 'Payment received against {0} {1}. {2}'.format(dt, dn, ref_doc.remarks),
|
||||||
"is_advance": "No",
|
"is_advance": "No",
|
||||||
"bank_account": args["bank_account"] if args else None,
|
"bank_account": bank_account,
|
||||||
"return_obj": args["return_obj"] if args else None
|
"journal_entry": journal_entry
|
||||||
})
|
})
|
||||||
|
|
||||||
def get_payment_entry(ref_doc, args):
|
def get_payment_entry(ref_doc, args):
|
||||||
@ -616,14 +614,14 @@ def get_payment_entry(ref_doc, args):
|
|||||||
exchange_rate = get_exchange_rate(args.get("party_account"), args.get("party_account_currency"),
|
exchange_rate = get_exchange_rate(args.get("party_account"), args.get("party_account_currency"),
|
||||||
ref_doc.company, ref_doc.doctype, ref_doc.name)
|
ref_doc.company, ref_doc.doctype, ref_doc.name)
|
||||||
|
|
||||||
jv = frappe.new_doc("Journal Entry")
|
je = frappe.new_doc("Journal Entry")
|
||||||
jv.update({
|
je.update({
|
||||||
"voucher_type": "Bank Entry",
|
"voucher_type": "Bank Entry",
|
||||||
"company": ref_doc.company,
|
"company": ref_doc.company,
|
||||||
"remark": args.get("remarks")
|
"remark": args.get("remarks")
|
||||||
})
|
})
|
||||||
|
|
||||||
party_row = jv.append("accounts", {
|
party_row = je.append("accounts", {
|
||||||
"account": args.get("party_account"),
|
"account": args.get("party_account"),
|
||||||
"party_type": args.get("party_type"),
|
"party_type": args.get("party_type"),
|
||||||
"party": ref_doc.get(args.get("party_type").lower()),
|
"party": ref_doc.get(args.get("party_type").lower()),
|
||||||
@ -640,7 +638,7 @@ def get_payment_entry(ref_doc, args):
|
|||||||
"reference_name": ref_doc.name
|
"reference_name": ref_doc.name
|
||||||
})
|
})
|
||||||
|
|
||||||
bank_row = jv.append("accounts")
|
bank_row = je.append("accounts")
|
||||||
|
|
||||||
#make it bank_details
|
#make it bank_details
|
||||||
bank_account = get_default_bank_cash_account(ref_doc.company, "Bank Entry", account=args.get("bank_account"))
|
bank_account = get_default_bank_cash_account(ref_doc.company, "Bank Entry", account=args.get("bank_account"))
|
||||||
@ -659,12 +657,12 @@ def get_payment_entry(ref_doc, args):
|
|||||||
# set multi currency check
|
# set multi currency check
|
||||||
if party_row.account_currency != ref_doc.company_currency \
|
if party_row.account_currency != ref_doc.company_currency \
|
||||||
or (bank_row.account_currency and bank_row.account_currency != ref_doc.company_currency):
|
or (bank_row.account_currency and bank_row.account_currency != ref_doc.company_currency):
|
||||||
jv.multi_currency = 1
|
je.multi_currency = 1
|
||||||
|
|
||||||
jv.set_amounts_in_company_currency()
|
je.set_amounts_in_company_currency()
|
||||||
jv.set_total_debit_credit()
|
je.set_total_debit_credit()
|
||||||
|
|
||||||
return jv if args.get("return_obj") else jv.as_dict()
|
return je if args.get("journal_entry") else je.as_dict()
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_opening_accounts(company):
|
def get_opening_accounts(company):
|
||||||
|
@ -7,5 +7,4 @@ import frappe
|
|||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
|
||||||
class PaymentGateway(Document):
|
class PaymentGateway(Document):
|
||||||
pass
|
pass
|
||||||
|
|
@ -177,6 +177,54 @@
|
|||||||
"search_index": 0,
|
"search_index": 0,
|
||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"fieldname": "payment_url_message",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"label": "Payment URL Message",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"fieldname": "payment_success_url",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"label": "Payment Success URL",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"unique": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"hide_heading": 0,
|
"hide_heading": 0,
|
||||||
@ -188,8 +236,8 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2015-12-30 15:08:47.042197",
|
"modified": "2016-01-11 05:55:41.117089",
|
||||||
"modified_by": "saurabh6790@gmail.com",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Payment Gateway Account",
|
"name": "Payment Gateway Account",
|
||||||
"name_case": "",
|
"name_case": "",
|
||||||
|
@ -12,13 +12,13 @@ class PaymentGatewayAccount(Document):
|
|||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.update_default_payment_gateway()
|
self.update_default_payment_gateway()
|
||||||
self.set_as_default()
|
self.set_as_default_if_not_set()
|
||||||
|
|
||||||
def update_default_payment_gateway(self):
|
def update_default_payment_gateway(self):
|
||||||
if self.is_default:
|
if self.is_default:
|
||||||
frappe.db.sql("""update `tabPayment Gateway Account` set is_default = 0
|
frappe.db.sql("""update `tabPayment Gateway Account` set is_default = 0
|
||||||
where is_default = 1 """)
|
where is_default = 1 """)
|
||||||
|
|
||||||
def set_as_default(self):
|
def set_as_default_if_not_set(self):
|
||||||
if not frappe.db.get_value("Payment Gateway Account", {"is_default": 1, "name": ("!=", self.name)}, "name"):
|
if not frappe.db.get_value("Payment Gateway Account", {"is_default": 1, "name": ("!=", self.name)}, "name"):
|
||||||
self.is_default = 1
|
self.is_default = 1
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
cur_frm.add_fetch("payment_gateway", "payment_account", "payment_account")
|
cur_frm.add_fetch("payment_gateway", "payment_account", "payment_account")
|
||||||
cur_frm.add_fetch("payment_gateway", "gateway", "gateway")
|
cur_frm.add_fetch("payment_gateway", "gateway", "gateway")
|
||||||
cur_frm.add_fetch("payment_gateway", "message", "message")
|
cur_frm.add_fetch("payment_gateway", "message", "message")
|
||||||
|
cur_frm.add_fetch("payment_gateway", "payment_url_message", "payment_url_message")
|
||||||
|
cur_frm.add_fetch("payment_gateway", "payment_success_url", "payment_success_url")
|
||||||
|
|
||||||
frappe.ui.form.on("Payment Request", "onload", function(frm, dt, dn){
|
frappe.ui.form.on("Payment Request", "onload", function(frm, dt, dn){
|
||||||
if (frm.doc.reference_doctype) {
|
if (frm.doc.reference_doctype) {
|
||||||
@ -28,5 +30,14 @@ frappe.ui.form.on("Payment Request", "refresh", function(frm) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
frm.add_custom_button(__("Show Paypal Express Payment"), function() {
|
||||||
|
frappe.route_options = {
|
||||||
|
"Paypal Express Payment.reference_doctype": frm.doc.doctype,
|
||||||
|
"Paypal Express Payment.reference_docname": frm.doc.name
|
||||||
|
};
|
||||||
|
|
||||||
|
frappe.set_route("List", "Paypal Express Payment");
|
||||||
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -204,6 +204,30 @@
|
|||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"fieldname": "payment_success_url",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"label": "Payment Success URL",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
@ -423,6 +447,30 @@
|
|||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"fieldname": "payment_url_message",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"label": "Payment URL Message",
|
||||||
|
"length": 0,
|
||||||
|
"no_copy": 0,
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": "",
|
||||||
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
|
"read_only": 0,
|
||||||
|
"report_hide": 0,
|
||||||
|
"reqd": 0,
|
||||||
|
"search_index": 0,
|
||||||
|
"set_only_once": 0,
|
||||||
|
"unique": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
@ -555,7 +603,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2016-01-08 05:25:06.056398",
|
"modified": "2016-01-11 05:49:28.342786",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Payment Request",
|
"name": "Payment Request",
|
||||||
|
@ -23,12 +23,12 @@ class PaymentRequest(Document):
|
|||||||
def validate_payment_request(self):
|
def validate_payment_request(self):
|
||||||
if frappe.db.get_value("Payment Request", {"reference_name": self.reference_name,
|
if frappe.db.get_value("Payment Request", {"reference_name": self.reference_name,
|
||||||
"name": ("!=", self.name), "status": ("not in", ["Initiated", "Paid"]), "docstatus": 1}, "name"):
|
"name": ("!=", self.name), "status": ("not in", ["Initiated", "Paid"]), "docstatus": 1}, "name"):
|
||||||
frappe.throw(_("Payment Request already exist"))
|
frappe.throw(_("Payment Request already exists {0}".fomart(self.reference_name)))
|
||||||
|
|
||||||
def validate_currency(self):
|
def validate_currency(self):
|
||||||
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
|
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
|
||||||
if ref_doc.currency != frappe.db.get_value("Account", self.payment_account, "account_currency"):
|
if ref_doc.currency != frappe.db.get_value("Account", self.payment_account, "account_currency"):
|
||||||
frappe.throw(_("Transaction currency is not similar to Gateway Currency"))
|
frappe.throw(_("Transaction currency must be same as Payment Gateway currency"))
|
||||||
|
|
||||||
def validate_payment_gateway_account(self):
|
def validate_payment_gateway_account(self):
|
||||||
if not self.payment_gateway:
|
if not self.payment_gateway:
|
||||||
@ -49,7 +49,7 @@ class PaymentRequest(Document):
|
|||||||
self.make_communication_entry()
|
self.make_communication_entry()
|
||||||
|
|
||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
self.set_cancelled()
|
self.set_as_cancelled()
|
||||||
|
|
||||||
def on_update_after_submit(self):
|
def on_update_after_submit(self):
|
||||||
pass
|
pass
|
||||||
@ -57,6 +57,9 @@ class PaymentRequest(Document):
|
|||||||
def set_status(self):
|
def set_status(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def get_payment_url(self):
|
||||||
|
pass
|
||||||
|
|
||||||
def make_invoice(self):
|
def make_invoice(self):
|
||||||
if self.make_sales_invoice:
|
if self.make_sales_invoice:
|
||||||
from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
|
from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
|
||||||
@ -69,7 +72,7 @@ class PaymentRequest(Document):
|
|||||||
if self.payment_url:
|
if self.payment_url:
|
||||||
frappe.db.set_value(self.doctype, self.name, "status", "Initiated")
|
frappe.db.set_value(self.doctype, self.name, "status", "Initiated")
|
||||||
|
|
||||||
def set_paid(self):
|
def set_as_paid(self):
|
||||||
if frappe.session.user == "Guest":
|
if frappe.session.user == "Guest":
|
||||||
frappe.set_user("Administrator")
|
frappe.set_user("Administrator")
|
||||||
|
|
||||||
@ -82,17 +85,19 @@ class PaymentRequest(Document):
|
|||||||
"""create entry"""
|
"""create entry"""
|
||||||
payment_details = {
|
payment_details = {
|
||||||
"amount": self.amount,
|
"amount": self.amount,
|
||||||
"return_obj": True,
|
"journal_entry": True,
|
||||||
"bank_account": self.payment_account
|
"bank_account": self.payment_account
|
||||||
}
|
}
|
||||||
|
|
||||||
frappe.flags.ignore_account_permission = True
|
frappe.flags.ignore_account_permission = True
|
||||||
|
|
||||||
if self.reference_doctype == "Sales Order":
|
if self.reference_doctype == "Sales Order":
|
||||||
jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name, payment_details)
|
jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,\
|
||||||
|
amount=self.amount, journal_entry=True, bank_account=self.payment_account)
|
||||||
|
|
||||||
if self.reference_doctype == "Sales Invoice":
|
if self.reference_doctype == "Sales Invoice":
|
||||||
jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name, payment_details)
|
jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,\
|
||||||
|
amount=self.amount, journal_entry=True, bank_account=self.payment_account)
|
||||||
|
|
||||||
jv.update({
|
jv.update({
|
||||||
"voucher_type": "Journal Entry",
|
"voucher_type": "Journal Entry",
|
||||||
@ -114,12 +119,13 @@ class PaymentRequest(Document):
|
|||||||
|
|
||||||
def get_message(self):
|
def get_message(self):
|
||||||
"""return message with payment gateway link"""
|
"""return message with payment gateway link"""
|
||||||
return cstr(self.message) + """ <a href="%s"> Click here to pay </a>"""%self.payment_url
|
return cstr(self.message) + " <a href='{0}'>{1}</a>".format(self.payment_url, \
|
||||||
|
self.payment_url_message or _(" Click here to pay"))
|
||||||
|
|
||||||
def set_failed(self):
|
def set_failed(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def set_cancelled(self):
|
def set_as_cancelled(self):
|
||||||
frappe.db.set_value(self.doctype, self.name, "status", "Cancelled")
|
frappe.db.set_value(self.doctype, self.name, "status", "Cancelled")
|
||||||
|
|
||||||
def make_communication_entry(self):
|
def make_communication_entry(self):
|
||||||
@ -133,13 +139,16 @@ class PaymentRequest(Document):
|
|||||||
"reference_name": self.reference_name
|
"reference_name": self.reference_name
|
||||||
})
|
})
|
||||||
comm.insert(ignore_permissions=True)
|
comm.insert(ignore_permissions=True)
|
||||||
|
|
||||||
|
def get_payment_success_url(self):
|
||||||
|
return self.payment_success_url
|
||||||
|
|
||||||
@frappe.whitelist(allow_guest=True)
|
@frappe.whitelist(allow_guest=True)
|
||||||
def make_payment_request(**args):
|
def make_payment_request(**args):
|
||||||
"""Make payment request"""
|
"""Make payment request"""
|
||||||
|
|
||||||
args = frappe._dict(args)
|
args = frappe._dict(args)
|
||||||
ref_doc = get_reference_doc_details(args.dt, args.dn)
|
ref_doc = frappe.get_doc(args.dt, args.dn)
|
||||||
gateway_account = get_gateway_details(args)
|
gateway_account = get_gateway_details(args)
|
||||||
|
|
||||||
pr = frappe.new_doc("Payment Request")
|
pr = frappe.new_doc("Payment Request")
|
||||||
@ -154,6 +163,8 @@ def make_payment_request(**args):
|
|||||||
"email_to": args.recipient_id or "",
|
"email_to": args.recipient_id or "",
|
||||||
"subject": "Payment Request for %s"%args.dn,
|
"subject": "Payment Request for %s"%args.dn,
|
||||||
"message": gateway_account.message,
|
"message": gateway_account.message,
|
||||||
|
"payment_url_message": gateway_account.payment_url_message,
|
||||||
|
"payment_success_url": gateway_account.payment_success_url,
|
||||||
"reference_doctype": args.dt,
|
"reference_doctype": args.dt,
|
||||||
"reference_name": args.dn
|
"reference_name": args.dn
|
||||||
})
|
})
|
||||||
@ -174,10 +185,6 @@ def make_payment_request(**args):
|
|||||||
|
|
||||||
return pr.as_dict()
|
return pr.as_dict()
|
||||||
|
|
||||||
def get_reference_doc_details(dt, dn):
|
|
||||||
""" return reference doc Sales Order/Sales Invoice"""
|
|
||||||
return frappe.get_doc(dt, dn)
|
|
||||||
|
|
||||||
def get_amount(ref_doc, dt):
|
def get_amount(ref_doc, dt):
|
||||||
"""get amount based on doctype"""
|
"""get amount based on doctype"""
|
||||||
if dt == "Sales Order":
|
if dt == "Sales Order":
|
||||||
@ -195,10 +202,12 @@ def get_gateway_details(args):
|
|||||||
"""return gateway and payment account of default payment gateway"""
|
"""return gateway and payment account of default payment gateway"""
|
||||||
if args.payemnt_gateway:
|
if args.payemnt_gateway:
|
||||||
gateway_account = frappe.db.get_value("Payment Gateway Account", args.payemnt_gateway,
|
gateway_account = frappe.db.get_value("Payment Gateway Account", args.payemnt_gateway,
|
||||||
["name", "gateway", "payment_account", "message"], as_dict=1)
|
["name", "gateway", "payment_account", "message", "payment_url_message", "payment_success_url"],
|
||||||
|
as_dict=1)
|
||||||
|
|
||||||
gateway_account = frappe.db.get_value("Payment Gateway Account", {"is_default": 1},
|
gateway_account = frappe.db.get_value("Payment Gateway Account", {"is_default": 1},
|
||||||
["name", "gateway", "payment_account", "message"], as_dict=1)
|
["name", "gateway", "payment_account", "message", "payment_url_message", "payment_success_url"],
|
||||||
|
as_dict=1)
|
||||||
|
|
||||||
if not gateway_account:
|
if not gateway_account:
|
||||||
frappe.throw(_("Payment Gateway Account is not configured"))
|
frappe.throw(_("Payment Gateway Account is not configured"))
|
||||||
@ -209,29 +218,20 @@ def get_gateway_details(args):
|
|||||||
def get_print_format_list(ref_doctype):
|
def get_print_format_list(ref_doctype):
|
||||||
print_format_list = ["Standard"]
|
print_format_list = ["Standard"]
|
||||||
|
|
||||||
print_format_list.extend(list(chain.from_iterable(frappe.db.sql("""select name from `tabPrint Format`
|
print_format_list.extend([p.name for p in frappe.get_all("Print Format",
|
||||||
where doc_type=%s""", ref_doctype, as_list=1))))
|
filters={"doc_type": ref_doctype})])
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"print_format": print_format_list
|
"print_format": print_format_list
|
||||||
}
|
}
|
||||||
|
|
||||||
@frappe.whitelist(allow_guest=True)
|
@frappe.whitelist(allow_guest=True)
|
||||||
def generate_payment_request(name):
|
def generate_payment_request(name):
|
||||||
doc = frappe.get_doc("Payment Request", name)
|
payment_url = frappe.get_doc("Payment Request", name).run_method("get_payment_url")
|
||||||
if doc.docstatus not in [0, 2]:
|
if payment_url:
|
||||||
if doc.gateway == "PayPal":
|
|
||||||
from paypal_integration.express_checkout import set_express_checkout
|
|
||||||
payment_url = set_express_checkout(doc.amount, doc.currency, {"doctype": doc.doctype,
|
|
||||||
"docname": doc.name})
|
|
||||||
|
|
||||||
frappe.local.response["type"] = "redirect"
|
frappe.local.response["type"] = "redirect"
|
||||||
frappe.local.response["location"] = payment_url
|
frappe.local.response["location"] = payment_url
|
||||||
else:
|
|
||||||
frappe.respond_as_web_page(_("Invalid Payment Request"),
|
|
||||||
_("Payment Request has been canceled by vendor"), success=False,
|
|
||||||
http_status_code=frappe.ValidationError.http_status_code)
|
|
||||||
|
|
||||||
@frappe.whitelist(allow_guest=True)
|
@frappe.whitelist(allow_guest=True)
|
||||||
def resend_payment_email(docname):
|
def resend_payment_email(docname):
|
||||||
return frappe.get_doc("Payment Request", docname).send_email()
|
return frappe.get_doc("Payment Request", docname).send_email()
|
||||||
|
@ -62,7 +62,7 @@ class TestPaymentRequest(unittest.TestCase):
|
|||||||
SO_INR = make_sales_order(currency="INR")
|
SO_INR = make_sales_order(currency="INR")
|
||||||
pr = make_payment_request(dt="Sales Order", dn=SO_INR.name, recipient_id="saurabh@erpnext.com",
|
pr = make_payment_request(dt="Sales Order", dn=SO_INR.name, recipient_id="saurabh@erpnext.com",
|
||||||
mute_email=1, submit_doc=1)
|
mute_email=1, submit_doc=1)
|
||||||
jv = pr.set_paid()
|
jv = pr.set_as_paid()
|
||||||
|
|
||||||
SO_INR = frappe.get_doc("Sales Order", SO_INR.name)
|
SO_INR = frappe.get_doc("Sales Order", SO_INR.name)
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ def create_bank_account(args):
|
|||||||
"account_type": "Bank",
|
"account_type": "Bank",
|
||||||
})
|
})
|
||||||
try:
|
try:
|
||||||
bank_account.insert()
|
return bank_account.insert()
|
||||||
except RootNotEditable:
|
except RootNotEditable:
|
||||||
frappe.throw(_("Bank account cannot be named as {0}").format(args.get("bank_account")))
|
frappe.throw(_("Bank account cannot be named as {0}").format(args.get("bank_account")))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user