fix: add optional chaining to prevent runtime errors when accessing reward properties in pos_order.js
This commit is contained in:
parent
dfd52fe1cc
commit
7a7556e8a9
@ -309,10 +309,10 @@ patch(PosOrder.prototype, {
|
||||
|
||||
// Separate cheapest product reward lines from others
|
||||
const cheapestRewardLines = rewardLines.filter(
|
||||
line => line.reward_id && line.reward_id.reward_product_applicability === 'cheapest'
|
||||
line => line.reward_id?.reward_product_applicability === 'cheapest'
|
||||
);
|
||||
const otherRewardLines = rewardLines.filter(
|
||||
line => !(line.reward_id && line.reward_id.reward_product_applicability === 'cheapest')
|
||||
line => line.reward_id?.reward_product_applicability !== 'cheapest'
|
||||
);
|
||||
|
||||
// If there are cheapest reward lines, handle them separately.
|
||||
@ -378,8 +378,8 @@ patch(PosOrder.prototype, {
|
||||
reward_identifier_code: line.reward_identifier_code,
|
||||
};
|
||||
if (
|
||||
claimedReward.reward.program_id?.program_type === "gift_card" ||
|
||||
claimedReward.reward.program_id?.program_type === "ewallet"
|
||||
claimedReward.reward?.program_id?.program_type === "gift_card" ||
|
||||
claimedReward.reward?.program_id?.program_type === "ewallet"
|
||||
) {
|
||||
paymentRewards.push(claimedReward);
|
||||
} else if (claimedReward.reward.reward_type === "product") {
|
||||
@ -423,17 +423,17 @@ patch(PosOrder.prototype, {
|
||||
continue;
|
||||
}
|
||||
if (
|
||||
claimedReward.reward.program_id?.program_type === "coupons" &&
|
||||
claimedReward.reward?.program_id?.program_type === "coupons" &&
|
||||
this.lines.find(
|
||||
(rewardline) => rewardline.reward_id?.id === claimedReward.reward.id
|
||||
(rewardline) => rewardline.reward_id?.id === claimedReward.reward?.id
|
||||
)
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
if (
|
||||
claimedReward.reward.reward_product_ids?.length === 1 &&
|
||||
claimedReward.reward?.reward_product_ids?.length === 1 &&
|
||||
allRewardsMerged.filter(
|
||||
(reward) => reward.reward.program_id?.id === claimedReward.reward.program_id?.id
|
||||
(reward) => reward.reward?.program_id?.id === claimedReward.reward?.program_id?.id
|
||||
).length === 1
|
||||
) {
|
||||
delete claimedReward.args["quantity"];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user