Merge pull request #18111 from sunhoww/pos_loyalty
fix: POS loyalty issues
This commit is contained in:
@@ -38,7 +38,7 @@ def get_loyalty_details(customer, loyalty_program, expiry_date=None, company=Non
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_loyalty_program_details_with_points(customer, loyalty_program=None, expiry_date=None, company=None, silent=False, include_expired_entry=False, current_transaction_amount=0):
|
def get_loyalty_program_details_with_points(customer, loyalty_program=None, expiry_date=None, company=None, silent=False, include_expired_entry=False, current_transaction_amount=0):
|
||||||
lp_details = get_loyalty_program_details(customer, loyalty_program, company=company, silent=silent)
|
lp_details = get_loyalty_program_details(customer, loyalty_program, company=company, silent=silent)
|
||||||
loyalty_program = frappe.get_doc("Loyalty Program", loyalty_program)
|
loyalty_program = frappe.get_doc("Loyalty Program", loyalty_program or lp_details.loyalty_program)
|
||||||
lp_details.update(get_loyalty_details(customer, loyalty_program.name, expiry_date, company, include_expired_entry))
|
lp_details.update(get_loyalty_details(customer, loyalty_program.name, expiry_date, company, include_expired_entry))
|
||||||
|
|
||||||
tier_spent_level = sorted([d.as_dict() for d in loyalty_program.collection_rules],
|
tier_spent_level = sorted([d.as_dict() for d in loyalty_program.collection_rules],
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ erpnext.pos.PointOfSale = class PointOfSale {
|
|||||||
var me = this;
|
var me = this;
|
||||||
if (this.frm.doc.customer) {
|
if (this.frm.doc.customer) {
|
||||||
frappe.call({
|
frappe.call({
|
||||||
method: "erpnext.accounts.doctype.loyalty_program.loyalty_program.get_loyalty_program_details",
|
method: "erpnext.accounts.doctype.loyalty_program.loyalty_program.get_loyalty_program_details_with_points",
|
||||||
args: {
|
args: {
|
||||||
"customer": me.frm.doc.customer,
|
"customer": me.frm.doc.customer,
|
||||||
"expiry_date": me.frm.doc.posting_date,
|
"expiry_date": me.frm.doc.posting_date,
|
||||||
@@ -1694,7 +1694,13 @@ class Payment {
|
|||||||
fieldtype: 'Check',
|
fieldtype: 'Check',
|
||||||
label: 'Redeem Loyalty Points',
|
label: 'Redeem Loyalty Points',
|
||||||
fieldname: 'redeem_loyalty_points',
|
fieldname: 'redeem_loyalty_points',
|
||||||
onchange: () => {
|
onchange: async function () {
|
||||||
|
if (!cint(me.dialog.get_value('redeem_loyalty_points'))) {
|
||||||
|
await Promise.all([
|
||||||
|
me.frm.set_value('loyalty_points', 0),
|
||||||
|
me.dialog.set_value('loyalty_points', 0)
|
||||||
|
]);
|
||||||
|
}
|
||||||
me.update_cur_frm_value("redeem_loyalty_points", () => {
|
me.update_cur_frm_value("redeem_loyalty_points", () => {
|
||||||
frappe.flags.redeem_loyalty_points = false;
|
frappe.flags.redeem_loyalty_points = false;
|
||||||
me.update_loyalty_points();
|
me.update_loyalty_points();
|
||||||
@@ -1838,13 +1844,14 @@ class Payment {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
update_loyalty_points() {
|
async update_loyalty_points() {
|
||||||
if (this.dialog.get_value("redeem_loyalty_points")) {
|
const { loyalty_points, loyalty_amount } = this.frm.doc;
|
||||||
this.dialog.set_value("loyalty_points", this.frm.doc.loyalty_points);
|
await Promise.all([
|
||||||
this.dialog.set_value("loyalty_amount", this.frm.doc.loyalty_amount);
|
this.dialog.set_value("loyalty_points", loyalty_points),
|
||||||
|
this.dialog.set_value("loyalty_amount", loyalty_amount)
|
||||||
|
]);
|
||||||
this.update_payment_amount();
|
this.update_payment_amount();
|
||||||
this.show_paid_amount();
|
this.show_paid_amount();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user