brotherton-erpnext/erpnext/templates/pages/order.js
Manas Solanki da486eeebd Loyalty Program (#12631)
* First Cut for the Loyalty Program

* finished the collection part

* redmeption for the loyalty point

	update the loyalty point entry in the FIFO style
	make the accounting entry knocking the debtors account against the expense account selected in the loyalty program
	update the outstanding balance in the client side

* completed for the desk viewe

* wrap up for the desk and shopping cart

* pos

* fix and test the travis
2018-07-06 12:36:57 +05:30

40 lines
1.7 KiB
JavaScript

// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ready(function(){
var loyalty_points_input = document.getElementById("loyalty-point-to-redeem");
var loyalty_points_status = document.getElementById("loyalty-points-status");
loyalty_points_input.onblur = apply_loyalty_points;
function apply_loyalty_points() {
var loyalty_points = parseInt(loyalty_points_input.value);
if (loyalty_points) {
frappe.call({
method: "erpnext.accounts.doctype.loyalty_program.loyalty_program.get_redeemption_factor",
args: {
"customer": doc_info.customer
},
callback: function(r) {
if (r) {
var message = ""
let loyalty_amount = flt(r.message*loyalty_points);
if (doc_info.grand_total && doc_info.grand_total < loyalty_amount) {
let redeemable_amount = parseInt(doc_info.grand_total/r.message);
message = "You can only redeem max " + redeemable_amount + " points in this order.";
frappe.msgprint(__(message));
} else {
message = loyalty_points + " Loyalty Points of amount "+ loyalty_amount + " is applied."
frappe.msgprint(__(message));
var remaining_amount = flt(doc_info.grand_total) - flt(loyalty_amount);
var payment_button = document.getElementById("pay-for-order");
payment_button.innerHTML = __("Pay Remaining");
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";
}
loyalty_points_status.innerHTML = message;
}
}
});
}
}
})