diff --git a/advanced_loyalty_management/__manifest__.py b/advanced_loyalty_management/__manifest__.py index 314a1ad51..fe2944885 100644 --- a/advanced_loyalty_management/__manifest__.py +++ b/advanced_loyalty_management/__manifest__.py @@ -21,7 +21,7 @@ ############################################################################# { 'name': 'Advanced Loyalty Management', - 'version': '17.0.1.0.1', + 'version': '17.0.1.0.2', 'category': 'Point of Sale', 'summary': 'Advanced loyalty Management', 'description': """When an order is refunded, any loyalty points gained from diff --git a/advanced_loyalty_management/doc/RELEASE_NOTES.md b/advanced_loyalty_management/doc/RELEASE_NOTES.md index d2ae92f1b..1710b9cf5 100644 --- a/advanced_loyalty_management/doc/RELEASE_NOTES.md +++ b/advanced_loyalty_management/doc/RELEASE_NOTES.md @@ -9,4 +9,9 @@ #### 25.11.2024 #### Version 17.0.1.0.1 #### ADD +- BUG FIX + +#### 08.01.2025 +#### Version 17.0.1.0.2 +#### ADD - BUG FIX \ No newline at end of file diff --git a/advanced_loyalty_management/models/pos_refund.py b/advanced_loyalty_management/models/pos_refund.py index 63eb3237a..08635c3d0 100644 --- a/advanced_loyalty_management/models/pos_refund.py +++ b/advanced_loyalty_management/models/pos_refund.py @@ -30,6 +30,7 @@ class PosOrder(models.Model): def _compute_order_name(self): """Compute the loyalty points when order is refunded""" + res = super()._compute_order_name() partner_id = self.partner_id li = [line.mapped('price_subtotal_incl') for line diff --git a/advanced_loyalty_management/static/src/js/pos_loyalty_card.js b/advanced_loyalty_management/static/src/js/pos_loyalty_card.js index 16a253878..92822a836 100644 --- a/advanced_loyalty_management/static/src/js/pos_loyalty_card.js +++ b/advanced_loyalty_management/static/src/js/pos_loyalty_card.js @@ -1,5 +1,5 @@ /** @odoo-module **/ - +import { _t } from "@web/core/l10n/translation"; import { patch } from "@web/core/utils/patch"; import { Order } from "@point_of_sale/app/store/models"; import { roundPrecision as round_pr } from "@web/core/utils/numbers"; @@ -39,7 +39,11 @@ patch(Order.prototype,{ const discountProduct = reward.discount_line_product_id; const rewardCode = _newRandomRewardCode(); const points = this._getRealCouponPoints(args["coupon_id"]) - const cost = reward.clear_wallet ? points :reward.pointsToRedeem + const cost = reward.clear_wallet ? this._getRealCouponPoints(args["coupon_id"]) :reward.pointsToRedeem + if (!discount || discount <= 0) { + console.error("Invalid redemption discount:", { reward }); + return []; + } return[ { product: discountProduct, diff --git a/advanced_loyalty_management/static/src/js/pos_loyalty_deduction.js b/advanced_loyalty_management/static/src/js/pos_loyalty_deduction.js index c40334d6b..3ebddc6d6 100644 --- a/advanced_loyalty_management/static/src/js/pos_loyalty_deduction.js +++ b/advanced_loyalty_management/static/src/js/pos_loyalty_deduction.js @@ -1,7 +1,6 @@ /** @odoo-module **/ import { Order } from "@point_of_sale/app/store/models"; import { roundPrecision } from "@web/core/utils/numbers"; -import { _t } from "@web/core/l10n/translation"; import { patch } from "@web/core/utils/patch"; patch(Order.prototype, { diff --git a/advanced_loyalty_management/static/src/js/pos_payment_screen.js b/advanced_loyalty_management/static/src/js/pos_payment_screen.js index 81a551429..4ff3ad02a 100644 --- a/advanced_loyalty_management/static/src/js/pos_payment_screen.js +++ b/advanced_loyalty_management/static/src/js/pos_payment_screen.js @@ -11,10 +11,13 @@ patch(PaymentScreen.prototype, { const order = this.pos.get_order() const coupon = order.selectedCoupon let pointsOfPartner = 0 - if(order.partner.loyalty_cards.length != undefined){ - pointsOfPartner += order.partner.loyalty_cards[coupon].points + if (order.partner && Array.isArray(order.partner.loyalty_cards)) { + const loyaltyCard = order.partner.loyalty_cards[coupon]; + if (loyaltyCard && loyaltyCard.points !== undefined) { + pointsOfPartner += loyaltyCard.points; } - const pointsWon = order.couponPointChanges[coupon].points + } + const pointsWon = order.couponPointChanges?.[coupon]?.points || 0; const pointsSpent = order.pointsCost const balance = pointsOfPartner + pointsWon - pointsSpent const token = order.access_token diff --git a/advanced_loyalty_management/static/src/js/pos_reward_button.js b/advanced_loyalty_management/static/src/js/pos_reward_button.js index c428027d0..bc3083123 100644 --- a/advanced_loyalty_management/static/src/js/pos_reward_button.js +++ b/advanced_loyalty_management/static/src/js/pos_reward_button.js @@ -40,6 +40,7 @@ patch(RewardButton.prototype,{ rewards = claimableRewards.filter( ({ reward }) => reward.program_id.program_type !== "ewallet" ); + } var pointCheck = false for (const pointChange of Object.values(order.couponPointChanges)){ diff --git a/advanced_loyalty_management/static/src/js/pos_ticketscreen.js b/advanced_loyalty_management/static/src/js/pos_ticketscreen.js index cd103ee63..5b33bbfa8 100644 --- a/advanced_loyalty_management/static/src/js/pos_ticketscreen.js +++ b/advanced_loyalty_management/static/src/js/pos_ticketscreen.js @@ -13,7 +13,6 @@ patch(TicketScreen.prototype, { triggerAtInput: (event) => this._onUpdateSelectedOrderline(event), }); super.setup(...arguments); - }, async onDoRefund() { //---------to get the points cost from the reward lines