[enhance] pay via cart
This commit is contained in:
parent
c22e525a14
commit
276d3e60bd
@ -82,6 +82,31 @@
|
|||||||
"set_only_once": 0,
|
"set_only_once": 0,
|
||||||
"unique": 0
|
"unique": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"allow_on_submit": 0,
|
||||||
|
"bold": 0,
|
||||||
|
"collapsible": 0,
|
||||||
|
"depends_on": "eval:doc.reference_doctype==\"Sales Order\"",
|
||||||
|
"fieldname": "make_sales_invoice",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"hidden": 0,
|
||||||
|
"ignore_user_permissions": 0,
|
||||||
|
"in_filter": 0,
|
||||||
|
"in_list_view": 0,
|
||||||
|
"label": "Make Sales Invoice",
|
||||||
|
"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,
|
||||||
@ -484,7 +509,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2015-12-29 12:56:45.456546",
|
"modified": "2015-12-30 17:43:10.626907",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Accounts",
|
"module": "Accounts",
|
||||||
"name": "Payment Request",
|
"name": "Payment Request",
|
||||||
|
|||||||
@ -44,6 +44,13 @@ class PaymentRequest(Document):
|
|||||||
def set_status(self):
|
def set_status(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def make_invoice(self):
|
||||||
|
if self.make_sales_invoice:
|
||||||
|
from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
|
||||||
|
si = make_sales_invoice(self.reference_name, ignore_permissions=True)
|
||||||
|
si = frappe.get_doc(si).insert(ignore_permissions=True)
|
||||||
|
si.submit()
|
||||||
|
|
||||||
def send_payment_request(self):
|
def send_payment_request(self):
|
||||||
self.payment_url = get_url("/api/method/erpnext.accounts.doctype.payment_request.payment_request.gererate_payemnt_request?name={0}".format(self.name))
|
self.payment_url = get_url("/api/method/erpnext.accounts.doctype.payment_request.payment_request.gererate_payemnt_request?name={0}".format(self.name))
|
||||||
if self.payment_url:
|
if self.payment_url:
|
||||||
@ -53,7 +60,10 @@ class PaymentRequest(Document):
|
|||||||
if frappe.session.user == "Guest":
|
if frappe.session.user == "Guest":
|
||||||
frappe.set_user("Administrator")
|
frappe.set_user("Administrator")
|
||||||
|
|
||||||
return self.create_journal_entry()
|
jv = self.create_journal_entry()
|
||||||
|
self.make_invoice()
|
||||||
|
|
||||||
|
return jv
|
||||||
|
|
||||||
def create_journal_entry(self):
|
def create_journal_entry(self):
|
||||||
"""create entry"""
|
"""create entry"""
|
||||||
@ -63,6 +73,8 @@ class PaymentRequest(Document):
|
|||||||
"bank_account": self.payment_account
|
"bank_account": self.payment_account
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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, payment_details)
|
||||||
|
|
||||||
@ -73,7 +85,7 @@ class PaymentRequest(Document):
|
|||||||
"voucher_type": "Journal Entry",
|
"voucher_type": "Journal Entry",
|
||||||
"posting_date": nowdate()
|
"posting_date": nowdate()
|
||||||
})
|
})
|
||||||
|
jv.insert(ignore_permissions=True)
|
||||||
jv.submit()
|
jv.submit()
|
||||||
|
|
||||||
#set status as paid for Payment Request
|
#set status as paid for Payment Request
|
||||||
@ -109,9 +121,10 @@ class PaymentRequest(Document):
|
|||||||
})
|
})
|
||||||
comm.insert(ignore_permissions=True)
|
comm.insert(ignore_permissions=True)
|
||||||
|
|
||||||
@frappe.whitelist()
|
@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 = get_reference_doc_details(args.dt, args.dn)
|
||||||
name, gateway, payment_account, message = get_gateway_details(args)
|
name, gateway, payment_account, message = get_gateway_details(args)
|
||||||
@ -122,6 +135,7 @@ def make_payment_request(**args):
|
|||||||
"gateway": gateway,
|
"gateway": gateway,
|
||||||
"payment_account": payment_account,
|
"payment_account": payment_account,
|
||||||
"currency": ref_doc.currency,
|
"currency": ref_doc.currency,
|
||||||
|
"make_sales_invoice": args.cart or 0,
|
||||||
"amount": get_amount(ref_doc, args.dt),
|
"amount": get_amount(ref_doc, args.dt),
|
||||||
"mute_email": args.mute_email or 0,
|
"mute_email": args.mute_email or 0,
|
||||||
"email_to": args.recipient_id or "",
|
"email_to": args.recipient_id or "",
|
||||||
@ -137,6 +151,12 @@ def make_payment_request(**args):
|
|||||||
if args.submit_doc:
|
if args.submit_doc:
|
||||||
pr.insert(ignore_permissions=True)
|
pr.insert(ignore_permissions=True)
|
||||||
pr.submit()
|
pr.submit()
|
||||||
|
|
||||||
|
if args.cart:
|
||||||
|
gererate_payemnt_request(pr.name)
|
||||||
|
frappe.db.commit()
|
||||||
|
|
||||||
|
if not args.cart:
|
||||||
return pr
|
return pr
|
||||||
|
|
||||||
return pr.as_dict()
|
return pr.as_dict()
|
||||||
|
|||||||
@ -247,7 +247,7 @@ def update_against_doc(d, jv_obj):
|
|||||||
|
|
||||||
# will work as update after submit
|
# will work as update after submit
|
||||||
jv_obj.flags.ignore_validate_update_after_submit = True
|
jv_obj.flags.ignore_validate_update_after_submit = True
|
||||||
jv_obj.save()
|
jv_obj.save(ignore_permissions=True)
|
||||||
|
|
||||||
def remove_against_link_from_jv(ref_type, ref_no):
|
def remove_against_link_from_jv(ref_type, ref_no):
|
||||||
linked_jv = frappe.db.sql_list("""select parent from `tabJournal Entry Account`
|
linked_jv = frappe.db.sql_list("""select parent from `tabJournal Entry Account`
|
||||||
|
|||||||
@ -401,7 +401,7 @@ def make_delivery_note(source_name, target_doc=None):
|
|||||||
return target_doc
|
return target_doc
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_sales_invoice(source_name, target_doc=None):
|
def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False):
|
||||||
def postprocess(source, target):
|
def postprocess(source, target):
|
||||||
set_missing_values(source, target)
|
set_missing_values(source, target)
|
||||||
#Get the advance paid Journal Entries in Sales Invoice Advance
|
#Get the advance paid Journal Entries in Sales Invoice Advance
|
||||||
@ -410,6 +410,7 @@ def make_sales_invoice(source_name, target_doc=None):
|
|||||||
def set_missing_values(source, target):
|
def set_missing_values(source, target):
|
||||||
target.is_pos = 0
|
target.is_pos = 0
|
||||||
target.ignore_pricing_rule = 1
|
target.ignore_pricing_rule = 1
|
||||||
|
target.flags.ignore_permissions = True
|
||||||
target.run_method("set_missing_values")
|
target.run_method("set_missing_values")
|
||||||
target.run_method("calculate_taxes_and_totals")
|
target.run_method("calculate_taxes_and_totals")
|
||||||
|
|
||||||
@ -442,7 +443,7 @@ def make_sales_invoice(source_name, target_doc=None):
|
|||||||
"doctype": "Sales Team",
|
"doctype": "Sales Team",
|
||||||
"add_if_empty": True
|
"add_if_empty": True
|
||||||
}
|
}
|
||||||
}, target_doc, postprocess)
|
}, target_doc, postprocess, ignore_permissions=ignore_permissions)
|
||||||
|
|
||||||
return doclist
|
return doclist
|
||||||
|
|
||||||
|
|||||||
@ -76,4 +76,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="cart-taxes row small">
|
||||||
|
<div class="col-sm-8"><!-- empty --></div>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
{% if doc.per_billed <= 0 %}
|
||||||
|
<div class="page-header-actions-block" data-html-block="header-actions">
|
||||||
|
<p>
|
||||||
|
<a href="/api/method/erpnext.accounts.doctype.payment_request.payment_request.make_payment_request?dn={{ doc.name }}&dt={{ doc.doctype }}&submit_doc=1&mute_email=1&cart=1"
|
||||||
|
class="btn btn-primary btn-sm">Pay {{ doc.get_formatted("grand_total") }} </a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user