blob: 0574cdedc0d6ffac1b4a205a2157f05ec8c09507 [file] [log] [blame]
Manas Solankida486ee2018-07-06 12:36:57 +05301// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
2// For license information, please see license.txt
3
4frappe.ready(function(){
5
6 var loyalty_points_input = document.getElementById("loyalty-point-to-redeem");
7 var loyalty_points_status = document.getElementById("loyalty-points-status");
Faris Ansari38ac7f72019-10-09 11:41:33 +05308 if (loyalty_points_input) {
9 loyalty_points_input.onblur = apply_loyalty_points;
10 }
Manas Solankida486ee2018-07-06 12:36:57 +053011
12 function apply_loyalty_points() {
13 var loyalty_points = parseInt(loyalty_points_input.value);
14 if (loyalty_points) {
15 frappe.call({
16 method: "erpnext.accounts.doctype.loyalty_program.loyalty_program.get_redeemption_factor",
17 args: {
18 "customer": doc_info.customer
19 },
20 callback: function(r) {
21 if (r) {
22 var message = ""
23 let loyalty_amount = flt(r.message*loyalty_points);
24 if (doc_info.grand_total && doc_info.grand_total < loyalty_amount) {
25 let redeemable_amount = parseInt(doc_info.grand_total/r.message);
26 message = "You can only redeem max " + redeemable_amount + " points in this order.";
27 frappe.msgprint(__(message));
28 } else {
29 message = loyalty_points + " Loyalty Points of amount "+ loyalty_amount + " is applied."
30 frappe.msgprint(__(message));
31 var remaining_amount = flt(doc_info.grand_total) - flt(loyalty_amount);
32 var payment_button = document.getElementById("pay-for-order");
33 payment_button.innerHTML = __("Pay Remaining");
34 payment_button.href = "/api/method/erpnext.accounts.doctype.payment_request.payment_request.make_payment_request?dn="+doc_info.doctype_name+"&dt="+doc_info.doctype+"&loyalty_points="+loyalty_points+"&submit_doc=1&order_type=Shopping Cart";
35 }
36 loyalty_points_status.innerHTML = message;
37 }
38 }
39 });
40 }
41 }
Faris Ansari38ac7f72019-10-09 11:41:33 +053042})