fix: add optional chaining to reward.program_id access to prevent errors in loyalty logic

This commit is contained in:
Suherdy Yacob 2026-05-26 09:23:49 +07:00
parent adb7b5e1d3
commit f17f353cbd

View File

@ -24,7 +24,7 @@ patch(PosOrder.prototype, {
continue; continue;
} }
const taxKey = ['ewallet', 'gift_card'].includes(reward.program_id.program_type) const taxKey = ['ewallet', 'gift_card'].includes(reward.program_id?.program_type)
? line.tax_ids.map((t) => t.id) ? line.tax_ids.map((t) => t.id)
: line.tax_ids.filter((t) => t.amount_type !== 'fixed').map((t) => t.id); : line.tax_ids.filter((t) => t.amount_type !== 'fixed').map((t) => t.id);
@ -181,7 +181,7 @@ patch(PosOrder.prototype, {
let maxDiscount = reward.discount_max_amount || Infinity; let maxDiscount = reward.discount_max_amount || Infinity;
if (reward.discount_mode === "per_point") { if (reward.discount_mode === "per_point") {
// Rewards cannot be partially offered to customers // Rewards cannot be partially offered to customers
const points = ["ewallet", "gift_card"].includes(reward.program_id.program_type) const points = ["ewallet", "gift_card"].includes(reward.program_id?.program_type)
? this._getRealCouponPoints(coupon_id) ? this._getRealCouponPoints(coupon_id)
: Math.floor(this._getRealCouponPoints(coupon_id) / reward.required_points) * : Math.floor(this._getRealCouponPoints(coupon_id) / reward.required_points) *
reward.required_points; reward.required_points;
@ -203,7 +203,7 @@ patch(PosOrder.prototype, {
// These are considered payments and do not require to be either taxed or split by tax // These are considered payments and do not require to be either taxed or split by tax
const discountProduct = reward.discount_line_product_id; const discountProduct = reward.discount_line_product_id;
if (["ewallet", "gift_card"].includes(reward.program_id.program_type)) { if (["ewallet", "gift_card"].includes(reward.program_id?.program_type)) {
const price = discountProduct.getTaxDetails({ const price = discountProduct.getTaxDetails({
overridedValues: { overridedValues: {
tax_ids: discountProduct.taxes_id, tax_ids: discountProduct.taxes_id,