You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

59 lines
1.9 KiB

/** @odoo-module **/
import AbstractAwaitablePopup from 'point_of_sale.AbstractAwaitablePopup';
import Registries from 'point_of_sale.Registries';
const { useState,useRef } = owl;
import { _t } from 'web.core';
class RewardPopup extends AbstractAwaitablePopup {
setup(){
this.state = useState({
value:'' ,
redeemPoints:''
})
this.points = useRef("points");
}
toRedeem(ev){
ev.state.redeemPoints = ev.points.el.value
}
save(props,ev){
//---after giving the points to redeem, the reward is added to orderline
if(isNaN(ev.state.redeemPoints)){
ev.showPopup('ErrorPopup', {
title: ev.env._t('Error'),
body: ev.env._t('Please enter a valid number'),
});
}else if(ev.props.max_redemption_points < ev.state.redeemPoints){
ev.showPopup('ErrorPopup', {
title: ev.env._t('Error'),
body: ev.env._t('Points to redeem should be less than Maximum Redemption Point.'),
});
}
else{
const selectedReward = props.selected_reward
const pointsWon = props.order.couponPointChanges[selectedReward.coupon_id].points
const order = props.order.access_token
selectedReward.reward.pointsToRedeem = parseInt(ev.state.redeemPoints)
ev.confirm()
props.order.selectedCoupon = selectedReward.coupon_id
props.order.pointsCost = parseInt(ev.state.redeemPoints)
return props.property._applyReward(
selectedReward.reward,
selectedReward.coupon_id,
selectedReward.potentialQty
);
}
}
}
RewardPopup.template = 'RewardPopup';
RewardPopup.defaultProps = {
confirmText: 'Confirm',
cancelText: 'Cancel',
title: 'Loyalty Programs',
body: '',
};
Registries.Component.add(RewardPopup);
return RewardPopup;