@aptos-scp/scp-component-store-selling-features-domain-model 2.36.0 → 2.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/lib/domain/UIBusinessEventTypes.d.ts +2 -0
  2. package/lib/domain/UIBusinessEventTypes.js +2 -0
  3. package/lib/domain/model/Constants.d.ts +2 -0
  4. package/lib/domain/model/Constants.js +2 -0
  5. package/lib/domain/model/configuration/IFeatureAccessConfig.d.ts +14 -0
  6. package/lib/domain/model/item/BaseItemLineDecorator.d.ts +2 -1
  7. package/lib/domain/model/item/BaseItemLineDecorator.js +3 -0
  8. package/lib/domain/model/item/IAllLinePricingAdjustments.d.ts +6 -1
  9. package/lib/domain/model/item/IAllLinePricingAdjustments.js +22 -1
  10. package/lib/domain/model/item/IItemLine.d.ts +5 -0
  11. package/lib/domain/model/item/ISerializedPriceCalculationResultsWithSource.d.ts +5 -3
  12. package/lib/domain/model/item/ItemLine.d.ts +3 -1
  13. package/lib/domain/model/item/ItemLine.js +5 -0
  14. package/lib/domain/model/item/ItemLinePromotionDecorator.d.ts +5 -1
  15. package/lib/domain/model/item/ItemLinePromotionDecorator.js +19 -3
  16. package/lib/domain/model/item/ItemLineRewardCardTenderDecorator.d.ts +13 -0
  17. package/lib/domain/model/item/ItemLineRewardCardTenderDecorator.js +46 -0
  18. package/lib/domain/model/item/index.d.ts +1 -0
  19. package/lib/domain/model/item/index.js +1 -0
  20. package/lib/domain/model/tender/RewardCardTenderAppliedAmountDecorator.d.ts +22 -0
  21. package/lib/domain/model/tender/RewardCardTenderAppliedAmountDecorator.js +52 -0
  22. package/lib/domain/model/tender/RewardCardTenderLine.d.ts +37 -0
  23. package/lib/domain/model/tender/RewardCardTenderLine.js +95 -0
  24. package/lib/domain/model/tender/VoidedRewardCardTenderLineDecorator.d.ts +21 -0
  25. package/lib/domain/model/tender/VoidedRewardCardTenderLineDecorator.js +51 -0
  26. package/lib/domain/model/tender/index.d.ts +4 -0
  27. package/lib/domain/model/tender/index.js +4 -0
  28. package/lib/domain/model/tender/lineTypes.d.ts +4 -0
  29. package/lib/domain/model/tender/lineTypes.js +10 -0
  30. package/package.json +6 -6
@@ -76,7 +76,9 @@ export declare const MANUAL_ITEM_DISCOUNT_EVENT: string;
76
76
  export declare const MANUAL_TRANSACTION_DISCOUNT_EVENT: string;
77
77
  export declare const PERMANENT_MEMBERSHIP_DISCOUNT_EVENT: string;
78
78
  export declare const ADD_EMPLOYEE_CUSTOMER_EVENT: string;
79
+ export declare const REWARD_CARD_EVENT: string;
79
80
  export declare const REWARD_CARD_DISCOUNT_EVENT: string;
81
+ export declare const REWARD_CARD_TENDER_EVENT: string;
80
82
  export declare const RESET_REWARD_CARD_BALANCE_INQUIRY_EVENT: string;
81
83
  export declare const START_REWARD_CARD_BALANCE_INQUIRY_EVENT: string;
82
84
  export declare const APPLY_REWARD_CARD_EVENT: string;
@@ -79,7 +79,9 @@ exports.MANUAL_ITEM_DISCOUNT_EVENT = "ManualItemDiscount";
79
79
  exports.MANUAL_TRANSACTION_DISCOUNT_EVENT = "ManualTransactionDiscount";
80
80
  exports.PERMANENT_MEMBERSHIP_DISCOUNT_EVENT = "PermanentMembershipDiscount";
81
81
  exports.ADD_EMPLOYEE_CUSTOMER_EVENT = "AddEmployeeCustomer";
82
+ exports.REWARD_CARD_EVENT = "RewardCard";
82
83
  exports.REWARD_CARD_DISCOUNT_EVENT = "RewardCardDiscount";
84
+ exports.REWARD_CARD_TENDER_EVENT = "RewardCardTender";
83
85
  exports.RESET_REWARD_CARD_BALANCE_INQUIRY_EVENT = "ResetRewardCardBalanceInquiryDiscount";
84
86
  exports.START_REWARD_CARD_BALANCE_INQUIRY_EVENT = "StartRewardCardBalanceInquiry";
85
87
  exports.APPLY_REWARD_CARD_EVENT = "ApplyRewardCard";
@@ -650,6 +650,8 @@ export declare enum CollectedDataKey {
650
650
  RewardCardBalanceInquiryRequired = "RewardCardBalanceInquiryRequired",
651
651
  RewardCard = "RewardCard",
652
652
  RewardCardAutoApplied = "RewardCardAutoApplied",
653
+ RewardCardType = "rewardCardType",
654
+ RewardCardBalanceAmount = "rewardCardBalanceAmount",
653
655
  IsCompetitivePriceDiscount = "isCompetitivePriceDiscount",
654
656
  NextTransactionNumber = "nextTransactionNumber",
655
657
  Offline = "offline",
@@ -657,6 +657,8 @@ var CollectedDataKey;
657
657
  CollectedDataKey["RewardCardBalanceInquiryRequired"] = "RewardCardBalanceInquiryRequired";
658
658
  CollectedDataKey["RewardCard"] = "RewardCard";
659
659
  CollectedDataKey["RewardCardAutoApplied"] = "RewardCardAutoApplied";
660
+ CollectedDataKey["RewardCardType"] = "rewardCardType";
661
+ CollectedDataKey["RewardCardBalanceAmount"] = "rewardCardBalanceAmount";
660
662
  CollectedDataKey["IsCompetitivePriceDiscount"] = "isCompetitivePriceDiscount";
661
663
  CollectedDataKey["NextTransactionNumber"] = "nextTransactionNumber";
662
664
  CollectedDataKey["Offline"] = "offline";
@@ -28,6 +28,20 @@ export interface IFeatureAccessConfig {
28
28
  taxIdRequired?: boolean;
29
29
  signatureRequired?: boolean;
30
30
  discountDefinitionKey?: DiscountDefinitionKey | string;
31
+ /** Reward Card feature: "Discount" routes to REWARD_CARD_DISCOUNT_EVENT, "Tender" to REWARD_CARD_TENDER_EVENT */
32
+ rewardType?: "Discount" | "Tender";
33
+ /** Reward Card as Tender: tender type ID for authorization */
34
+ useTenderId?: number;
35
+ /** Reward Card as Discount mode: discount definition key (alternative to top-level discountDefinitionKey) */
36
+ discount?: {
37
+ discountDefinitionKey?: string;
38
+ };
39
+ /** Reward Card as Tender mode: tender-specific options */
40
+ tender?: {
41
+ autoPopulateCardNumberFromCustomer?: boolean;
42
+ allowEmployee?: boolean;
43
+ issueNewOnRefundAuthFailure?: boolean;
44
+ };
31
45
  errorMessages?: {
32
46
  [errorCode: string]: {
33
47
  [locale: string]: string;
@@ -14,7 +14,7 @@ import { IEmployee } from "../Employee";
14
14
  import { IExtensibilityForm } from "../extensibilityForm/IExtensibilityForm";
15
15
  import { TaxOverrideLine } from "../taxOverride/TaxOverrideLine";
16
16
  import { TenderType } from "../TenderType";
17
- import { IAddionalItemInfo, IItemLine, IItemSubline, IOriginalCompetitivePriceInformation, IOriginalLoyaltyInformation, IOriginalSupervisorOverrideInformation, IReturnReason, ITransactionLineTaxes } from "./IItemLine";
17
+ import { IAddionalItemInfo, IItemLine, IItemSubline, IOriginalCompetitivePriceInformation, IOriginalLoyaltyInformation, IOriginalSupervisorOverrideInformation, IReturnReason, IRewardCardTender, ITransactionLineTaxes } from "./IItemLine";
18
18
  /**
19
19
  * This class acts as the base class for all ItemLine decorators. It implements all methods on IItemLine, and
20
20
  * passes them through to the decorated IItemLine, which might be the original ItemLine, or another decorator.
@@ -138,6 +138,7 @@ export declare abstract class BaseItemLineDecorator extends BaseLineDecorator<II
138
138
  get originalRedemptionLoyaltyTransactionKeys(): string[];
139
139
  get originalSaleLoyaltyTransactionKeys(): string[];
140
140
  get taxIndicatorOnReceipt(): string;
141
+ get rewardCardTenders(): IRewardCardTender[];
141
142
  setTransactionLineTaxes(transactionLineTaxes: ITransactionLineTaxes, extendedAmount?: Money): IItemLine;
142
143
  setPricingSourceIndicator(calculationSource: SourceIndicator, dataSource: SourceIndicator): IItemLine;
143
144
  setTaxationSourceIndicator(calculationSource: SourceIndicator, dataSource: SourceIndicator): IItemLine;
@@ -363,6 +363,9 @@ class BaseItemLineDecorator extends BaseLineDecorator_1.BaseLineDecorator {
363
363
  get taxIndicatorOnReceipt() {
364
364
  return this.decoratedTransactionLine.taxIndicatorOnReceipt;
365
365
  }
366
+ get rewardCardTenders() {
367
+ return this.decoratedTransactionLine.rewardCardTenders;
368
+ }
366
369
  setTransactionLineTaxes(transactionLineTaxes, extendedAmount) {
367
370
  const itemLine = this.decoratedTransactionLine.setTransactionLineTaxes(transactionLineTaxes, extendedAmount || this.extendedAmount);
368
371
  return this.updateDecoratedTransactionLine(itemLine);
@@ -1,3 +1,4 @@
1
+ import { ISerializedLinePricingRewardCardTender } from "@aptos-scp/scp-component-pricing";
1
2
  import { ISerializedLinePricingAdjustmentWithSource, ISerializedSublineQuantityWithSource, ISerializedSublineWithSource } from "./ISerializedPriceCalculationResultsWithSource";
2
3
  /**
3
4
  * Contains all the pricing line adjustments for a particular transaction line.
@@ -23,10 +24,14 @@ export interface IAllLinePricingAdjustments {
23
24
  * The subline adjustments show which parts of a line have the adjustments applied to it.
24
25
  */
25
26
  sublineQuantities: ISerializedSublineQuantityWithSource[];
27
+ /**
28
+ * The set of reward card tenders applied to the line.
29
+ */
30
+ rewardCardTenders?: ISerializedLinePricingRewardCardTender[];
26
31
  }
27
32
  /**
28
33
  * Group the pricing line adjustments by line number and by adjustment type (regular, sale, or promotion)
29
34
  * @param {ISerializedLinePricingAdjustment[]} lineAdjustments The line adjustments from the pricing component
30
35
  * @returns {IAllLinePricingAdjustments[]} The promotion adjustments, grouped by line number
31
36
  */
32
- export declare function groupLineAdjustments(lineAdjustments: ISerializedLinePricingAdjustmentWithSource[], sublines: ISerializedSublineWithSource[]): IAllLinePricingAdjustments[];
37
+ export declare function groupLineAdjustments(lineAdjustments: ISerializedLinePricingAdjustmentWithSource[], sublines: ISerializedSublineWithSource[], rewardCardTenders?: ISerializedLinePricingRewardCardTender[]): IAllLinePricingAdjustments[];
@@ -10,7 +10,7 @@ const logger = scp_component_logging_1.LogManager.getLogger("com.aptos.storesell
10
10
  * @param {ISerializedLinePricingAdjustment[]} lineAdjustments The line adjustments from the pricing component
11
11
  * @returns {IAllLinePricingAdjustments[]} The promotion adjustments, grouped by line number
12
12
  */
13
- function groupLineAdjustments(lineAdjustments, sublines) {
13
+ function groupLineAdjustments(lineAdjustments, sublines, rewardCardTenders) {
14
14
  const entryMessage = logger.traceEntry("groupLineAdjustments", lineAdjustments);
15
15
  const result = [];
16
16
  const lookup = new Map();
@@ -24,6 +24,7 @@ function groupLineAdjustments(lineAdjustments, sublines) {
24
24
  salePriceAdjustment: null,
25
25
  promotionAdjustments: [],
26
26
  sublineQuantities: [],
27
+ rewardCardTenders: [],
27
28
  };
28
29
  lookup.set(lineAdjustment.lineNumber, groupedLineAdjustment);
29
30
  result.push(groupedLineAdjustment);
@@ -53,6 +54,7 @@ function groupLineAdjustments(lineAdjustments, sublines) {
53
54
  salePriceAdjustment: null,
54
55
  promotionAdjustments: [],
55
56
  sublineQuantities: [],
57
+ rewardCardTenders: [],
56
58
  };
57
59
  lookup.set(subline.lineNumber, groupedLineAdjustment);
58
60
  result.push(groupedLineAdjustment);
@@ -60,6 +62,25 @@ function groupLineAdjustments(lineAdjustments, sublines) {
60
62
  groupedLineAdjustment.sublineQuantities.push(...subline.breakdown);
61
63
  });
62
64
  }
65
+ if (rewardCardTenders) {
66
+ rewardCardTenders.forEach((rewardCardTender) => {
67
+ let groupedLineAdjustment = lookup.get(rewardCardTender.lineNumber);
68
+ if (!groupedLineAdjustment) {
69
+ groupedLineAdjustment = {
70
+ lineId: rewardCardTender.lineId,
71
+ lineNumber: rewardCardTender.lineNumber,
72
+ regularPriceAdjustment: null,
73
+ salePriceAdjustment: null,
74
+ promotionAdjustments: [],
75
+ sublineQuantities: [],
76
+ rewardCardTenders: [],
77
+ };
78
+ lookup.set(rewardCardTender.lineNumber, groupedLineAdjustment);
79
+ result.push(groupedLineAdjustment);
80
+ }
81
+ groupedLineAdjustment.rewardCardTenders.push(rewardCardTender);
82
+ });
83
+ }
63
84
  return logger.traceExit(entryMessage, result);
64
85
  }
65
86
  exports.groupLineAdjustments = groupLineAdjustments;
@@ -257,6 +257,7 @@ export interface IItemLine extends ITransactionLine, IVoidableLine, IPriceProvid
257
257
  * For returnWithTransaction, the identifiers of the loyalty rewards applied to the original transaction.
258
258
  */
259
259
  readonly originalSaleLoyaltyTransactionKeys?: string[];
260
+ readonly rewardCardTenders?: IRewardCardTender[];
260
261
  setTransactionLineTaxes(transactionLineTaxes: ITransactionLineTaxes, extendedAmount?: Money): IItemLine;
261
262
  setSublines(sublines: IItemSubline[]): IItemLine;
262
263
  setTaxExemptInformation(taxExemptLine: ItemTaxExemptLine | TransactionTaxExemptLine, preTaxExemptDetails: IAppliedTax[]): IItemLine;
@@ -317,3 +318,7 @@ export interface IItemSubline {
317
318
  export interface IAddionalItemInfo {
318
319
  cardNumber: string;
319
320
  }
321
+ export interface IRewardCardTender {
322
+ readonly cardNumber: string;
323
+ readonly appliedAmount: Money;
324
+ }
@@ -1,14 +1,16 @@
1
- import { IPricingMetadataPersistanceObject, ISerializedLinePricingAdjustment, ISerializedSubline, ISerializedSublinePricingAdjustment, ISublinePricingAdjustment, RewardIssue } from "@aptos-scp/scp-component-pricing";
1
+ import { IPricingMetadataPersistanceObject, ISerializedLinePricingAdjustment, ISerializedLinePricingRewardCardTender, ISerializedSubline, ISerializedSublinePricingAdjustment, ISublinePricingAdjustment, RewardIssue } from "@aptos-scp/scp-component-pricing";
2
2
  import { ISerializedNonFinancialReward } from "@aptos-scp/scp-component-pricing/lib/interfaces/ILineNonFinancialReward";
3
3
  import { ICompetitivePriceInformation, ILoyaltyInformation, ISupervisorOverrideInformation, PricingAdjustmentScope, SourceIndicator } from "@aptos-scp/scp-types-commerce-transaction";
4
- import { PotentialPromotion, RewardCard } from "@aptos-scp/scp-types-pricing";
4
+ import { PotentialPromotion, RewardCardDiscount, RewardCardTender } from "@aptos-scp/scp-types-pricing";
5
5
  export interface ISerializedPriceCalculationResultsWithSource {
6
6
  readonly lineAdjustments: ISerializedLinePricingAdjustmentWithSource[];
7
7
  readonly sublines?: ISerializedSublineWithSource[];
8
8
  readonly issues: RewardIssue[];
9
9
  readonly nonFinancialRewards?: ISerializedNonFinancialRewardWithSource[];
10
10
  readonly potentialPromotions?: PotentialPromotion[];
11
- readonly rewardCards?: RewardCard[];
11
+ readonly rewardCards?: RewardCardDiscount[];
12
+ readonly rewardCardTenders?: RewardCardTender[];
13
+ readonly lineRewardCardTenders?: ISerializedLinePricingRewardCardTender[];
12
14
  metadata?: IPricingMetadataPersistanceObject;
13
15
  }
14
16
  export interface ISerializedLinePricingAdjustmentWithSource extends ISerializedLinePricingAdjustment {
@@ -16,7 +16,7 @@ import { IItemPriceSource, ItemLookupKey, SelectedUnitPrice, StoreItem } from ".
16
16
  import { TaxOverrideLine } from "../taxOverride/TaxOverrideLine";
17
17
  import { TenderType } from "../TenderType";
18
18
  import { IVoidableLine } from "../VoidInterfaces";
19
- import { IAddionalItemInfo, IItemLine, IItemSubline, IOriginalCompetitivePriceInformation, IOriginalLoyaltyInformation, IOriginalSupervisorOverrideInformation, IReturnReason, ITransactionLineTaxes } from "./IItemLine";
19
+ import { IAddionalItemInfo, IItemLine, IItemSubline, IOriginalCompetitivePriceInformation, IOriginalLoyaltyInformation, IOriginalSupervisorOverrideInformation, IReturnReason, IRewardCardTender, ITransactionLineTaxes } from "./IItemLine";
20
20
  export declare const ITEM_SALE_LINE_TYPE: string;
21
21
  export declare const ITEM_RETURN_LINE_TYPE: string;
22
22
  export declare const ITEM_ORDER_LINE_TYPE: string;
@@ -113,6 +113,7 @@ export declare class ItemLine extends BaseTransactionLine implements IItemLine,
113
113
  private _originalDiscountReason?;
114
114
  private _originalAdjustments?;
115
115
  private _taxIndicatorOnReceipt?;
116
+ private _rewardCardTenders?;
116
117
  /**
117
118
  * The create method is called by the transaction line factory to create an instance and initialize it from the
118
119
  * data collected during the qualification process.
@@ -269,6 +270,7 @@ export declare class ItemLine extends BaseTransactionLine implements IItemLine,
269
270
  get itemTaxAdjustmentAmount(): Money;
270
271
  get extendedAmountAfterTaxAdjustment(): Money;
271
272
  get unitPriceAfterTaxAdjustment(): Price;
273
+ get rewardCardTenders(): IRewardCardTender[];
272
274
  updateExtendedAmount(amount: Money): ITransactionLine;
273
275
  updateExtendedAmountExcludingTax(amount: Money): ITransactionLine;
274
276
  updateExtendedAmountIncludingTax(amount: Money): ITransactionLine;
@@ -725,6 +725,9 @@ class ItemLine extends BaseTransactionLine_1.BaseTransactionLine {
725
725
  get unitPriceAfterTaxAdjustment() {
726
726
  return undefined;
727
727
  }
728
+ get rewardCardTenders() {
729
+ return this._rewardCardTenders;
730
+ }
728
731
  updateExtendedAmount(amount) {
729
732
  amount = adjustSignForLineType(this.lineType, amount);
730
733
  return this.updateExtendedAmountValue(amount).setExtendedAmountExcludingAndIncludingTax();
@@ -948,6 +951,7 @@ class ItemLine extends BaseTransactionLine_1.BaseTransactionLine {
948
951
  newItemLine._originalRedemptionLoyaltyTransactionKeys = this._originalRedemptionLoyaltyTransactionKeys;
949
952
  newItemLine._originalSaleLoyaltyTransactionKeys = this._originalSaleLoyaltyTransactionKeys;
950
953
  newItemLine._originalAdjustments = this._originalAdjustments;
954
+ newItemLine._rewardCardTenders = this._rewardCardTenders;
951
955
  return newItemLine;
952
956
  }
953
957
  // eslint-disable-next-line complexity
@@ -1092,6 +1096,7 @@ class ItemLine extends BaseTransactionLine_1.BaseTransactionLine {
1092
1096
  this._originalSaleLoyaltyTransactionKeys = transactionLineJsonObj._originalSaleLoyaltyTransactionKeys;
1093
1097
  this._originalDiscountReason = transactionLineJsonObj.originalDiscountReason;
1094
1098
  this._originalAdjustments = transactionLineJsonObj._originalAdjustments;
1099
+ this._rewardCardTenders = transactionLineJsonObj._rewardCardTenders;
1095
1100
  }
1096
1101
  newTransactionLine() {
1097
1102
  return new ItemLine(this.lineNumber, this.lineType, this._accountingCurrency);
@@ -17,13 +17,15 @@ export declare class ItemLinePromotionDecorator extends ItemLineBaseDiscountDeco
17
17
  private _singleUseCoupon;
18
18
  private _selectedUnitPrice?;
19
19
  private _campaign?;
20
+ private _priceCalculatedOnUnitPrice?;
21
+ private _priceCalculatedOnExtendedAmount?;
20
22
  /**
21
23
  * @obsolete
22
24
  */
23
25
  private _rewardCouponId;
24
26
  private _sourceIndicator;
25
27
  static createFromJsonObject(transactionLineJsonObj: any, transactionLineFactory: ITransactionLineFactory): ItemLinePromotionDecorator;
26
- constructor(ruleId: string, promotionType: string, replacementUnitPrice: Price, newExtendedAmount: Money, itemLine: IItemLine, lineSavings: Money, adjustmentAmount: Money, annotationDescription: string, annotationSourceType: string, promoName?: string, promoDescription?: string, promotionId?: string, discountAmount?: Money, percent?: string, discountName?: string, discountDescription?: string, discountType?: DiscountType, rewardCouponId?: string, sublines?: IItemSubline[], replacementAmount?: Money, couponCode?: string, isAutoCoupon?: boolean, sourceIndicator?: SourceIndicator, extendedAmountBeforeAdjustment?: Money, singleUseCoupon?: string, selectedUnitPrice?: SelectedUnitPrice, presentation?: IItemLine, aggregationId?: string, isEmployeeDiscount?: boolean, campaign?: ICampaignInformation);
28
+ constructor(ruleId: string, promotionType: string, replacementUnitPrice: Price, newExtendedAmount: Money, itemLine: IItemLine, lineSavings: Money, adjustmentAmount: Money, annotationDescription: string, annotationSourceType: string, promoName?: string, promoDescription?: string, promotionId?: string, discountAmount?: Money, percent?: string, discountName?: string, discountDescription?: string, discountType?: DiscountType, rewardCouponId?: string, sublines?: IItemSubline[], replacementAmount?: Money, couponCode?: string, isAutoCoupon?: boolean, sourceIndicator?: SourceIndicator, extendedAmountBeforeAdjustment?: Money, singleUseCoupon?: string, selectedUnitPrice?: SelectedUnitPrice, presentation?: IItemLine, aggregationId?: string, isEmployeeDiscount?: boolean, campaign?: ICampaignInformation, priceCalculatedOnUnitPrice?: Price, priceCalculatedOnExtendedAmount?: Money);
27
29
  get sourceIndicator(): SourceIndicator;
28
30
  get promoName(): string;
29
31
  get promoDescription(): string;
@@ -37,6 +39,8 @@ export declare class ItemLinePromotionDecorator extends ItemLineBaseDiscountDeco
37
39
  get couponCode(): string;
38
40
  get isAutoCoupon(): boolean;
39
41
  get campaign(): ICampaignInformation;
42
+ get priceCalculatedOnUnitPrice(): Price;
43
+ get priceCalculatedOnExtendedAmount(): Money;
40
44
  get singleUseCoupon(): string;
41
45
  get itemSelectedUnitPrice(): SelectedUnitPrice;
42
46
  get extendedAmountExcludingTransactionDiscounts(): Money;
@@ -9,7 +9,7 @@ function isItemLinePromotionDecorator(transactionLine) {
9
9
  }
10
10
  exports.isItemLinePromotionDecorator = isItemLinePromotionDecorator;
11
11
  class ItemLinePromotionDecorator extends ItemLineBaseDiscountDecorator_1.ItemLineBaseDiscountDecorator {
12
- constructor(ruleId, promotionType, replacementUnitPrice, newExtendedAmount, itemLine, lineSavings, adjustmentAmount, annotationDescription, annotationSourceType, promoName, promoDescription, promotionId, discountAmount, percent, discountName, discountDescription, discountType, rewardCouponId, sublines, replacementAmount, couponCode, isAutoCoupon, sourceIndicator, extendedAmountBeforeAdjustment, singleUseCoupon, selectedUnitPrice, presentation, aggregationId, isEmployeeDiscount, campaign) {
12
+ constructor(ruleId, promotionType, replacementUnitPrice, newExtendedAmount, itemLine, lineSavings, adjustmentAmount, annotationDescription, annotationSourceType, promoName, promoDescription, promotionId, discountAmount, percent, discountName, discountDescription, discountType, rewardCouponId, sublines, replacementAmount, couponCode, isAutoCoupon, sourceIndicator, extendedAmountBeforeAdjustment, singleUseCoupon, selectedUnitPrice, presentation, aggregationId, isEmployeeDiscount, campaign, priceCalculatedOnUnitPrice, priceCalculatedOnExtendedAmount) {
13
13
  super(exports.DECORATOR_TYPE_ITEM_LINE_PROMO, replacementUnitPrice, newExtendedAmount, itemLine, lineSavings, adjustmentAmount, annotationDescription, annotationSourceType, discountAmount, percent, discountName, discountDescription, discountType, sublines, replacementAmount, isEmployeeDiscount, ruleId, extendedAmountBeforeAdjustment, undefined, presentation, aggregationId);
14
14
  this.adjustmentAmount = adjustmentAmount;
15
15
  this._promoName = promoName;
@@ -23,6 +23,8 @@ class ItemLinePromotionDecorator extends ItemLineBaseDiscountDecorator_1.ItemLin
23
23
  this._singleUseCoupon = singleUseCoupon;
24
24
  this._selectedUnitPrice = selectedUnitPrice;
25
25
  this._campaign = campaign;
26
+ this._priceCalculatedOnUnitPrice = priceCalculatedOnUnitPrice;
27
+ this._priceCalculatedOnExtendedAmount = priceCalculatedOnExtendedAmount;
26
28
  }
27
29
  static createFromJsonObject(transactionLineJsonObj, transactionLineFactory) {
28
30
  const decoratedTransactionLineJsonObj = BaseItemLineDecorator_1.BaseItemLineDecorator.getDecoratedTransactionLineJsonObjectFromJsonObject(transactionLineJsonObj);
@@ -60,6 +62,12 @@ class ItemLinePromotionDecorator extends ItemLineBaseDiscountDecorator_1.ItemLin
60
62
  const singleUseCoupon = transactionLineJsonObj._singleUseCoupon;
61
63
  const selectedUnitPrice = transactionLineJsonObj._selectedUnitPrice;
62
64
  const sourceIndicator = transactionLineJsonObj._sourceIndicator;
65
+ const priceCalculatedOnUnitPrice = transactionLineJsonObj._priceCalculatedOnUnitPrice
66
+ ? scp_component_business_core_1.Price.fromJSON(transactionLineJsonObj._priceCalculatedOnUnitPrice)
67
+ : undefined;
68
+ const priceCalculatedOnExtendedAmount = transactionLineJsonObj._priceCalculatedOnExtendedAmount
69
+ ? scp_component_business_core_1.Money.fromJSON(transactionLineJsonObj._priceCalculatedOnExtendedAmount)
70
+ : undefined;
63
71
  const extendedAmountBeforeAdjustment = transactionLineJsonObj._extendedAmountBeforeAdjustment
64
72
  ? scp_component_business_core_1.Money.fromJSON(transactionLineJsonObj._extendedAmountBeforeAdjustment)
65
73
  : undefined;
@@ -69,7 +77,7 @@ class ItemLinePromotionDecorator extends ItemLineBaseDiscountDecorator_1.ItemLin
69
77
  const aggregationId = transactionLineJsonObj._aggregationId;
70
78
  const isEmployeeDiscount = transactionLineJsonObj._isEmployeeDiscount;
71
79
  const campaign = transactionLineJsonObj._campaign;
72
- const itemLinePromotionDecorator = new ItemLinePromotionDecorator(ruleId, promotionType, replacementUnitPrice, newExtendedAmount, decoratedItemLine, lineSavings, adjustmentAmount, annotationDescription, annotationSourceType, promoName, promoDescription, promotionId, discountAmount, percent, discountName, discountDescription, discountType, rewardCouponId, sublines, replacementAmount, couponCode, isAutoCoupon, sourceIndicator, extendedAmountBeforeAdjustment, singleUseCoupon, selectedUnitPrice, presentation, aggregationId, isEmployeeDiscount, campaign);
80
+ const itemLinePromotionDecorator = new ItemLinePromotionDecorator(ruleId, promotionType, replacementUnitPrice, newExtendedAmount, decoratedItemLine, lineSavings, adjustmentAmount, annotationDescription, annotationSourceType, promoName, promoDescription, promotionId, discountAmount, percent, discountName, discountDescription, discountType, rewardCouponId, sublines, replacementAmount, couponCode, isAutoCoupon, sourceIndicator, extendedAmountBeforeAdjustment, singleUseCoupon, selectedUnitPrice, presentation, aggregationId, isEmployeeDiscount, campaign, priceCalculatedOnUnitPrice, priceCalculatedOnExtendedAmount);
73
81
  return itemLinePromotionDecorator;
74
82
  }
75
83
  get sourceIndicator() {
@@ -103,6 +111,12 @@ class ItemLinePromotionDecorator extends ItemLineBaseDiscountDecorator_1.ItemLin
103
111
  get campaign() {
104
112
  return this._campaign;
105
113
  }
114
+ get priceCalculatedOnUnitPrice() {
115
+ return this._priceCalculatedOnUnitPrice;
116
+ }
117
+ get priceCalculatedOnExtendedAmount() {
118
+ return this._priceCalculatedOnExtendedAmount;
119
+ }
106
120
  get singleUseCoupon() {
107
121
  return this._singleUseCoupon;
108
122
  }
@@ -140,10 +154,12 @@ class ItemLinePromotionDecorator extends ItemLineBaseDiscountDecorator_1.ItemLin
140
154
  newItemLinePromotionDecorator._selectedUnitPrice = this._selectedUnitPrice;
141
155
  newItemLinePromotionDecorator._sourceIndicator = this._sourceIndicator;
142
156
  newItemLinePromotionDecorator._campaign = this._campaign;
157
+ newItemLinePromotionDecorator._priceCalculatedOnUnitPrice = this._priceCalculatedOnUnitPrice;
158
+ newItemLinePromotionDecorator._priceCalculatedOnExtendedAmount = this._priceCalculatedOnExtendedAmount;
143
159
  return newItemLinePromotionDecorator;
144
160
  }
145
161
  newTransactionLine() {
146
- return new ItemLinePromotionDecorator(this.ruleId, this._promotionType, this.replacementUnitPrice, this.newExtendedAmount, this.decoratedTransactionLine, this.lineSavings, this.adjustmentAmount, this.annotationDescription, this.annotationSourceType, this._promoName, this._promoDescription, this._promotionId, this.discountAmount, this.percent, this.discountName, this.discountDescription, this.discountType, this._rewardCouponId, this.sublines, this.replacementAmount, this.couponCode, this.isAutoCoupon, this.sourceIndicator, this.extendedAmountBeforeAdjustment, this.singleUseCoupon, this.itemSelectedUnitPrice, this.presentation, this.aggregationId, this.isEmployeeDiscount, this.campaign);
162
+ return new ItemLinePromotionDecorator(this.ruleId, this._promotionType, this.replacementUnitPrice, this.newExtendedAmount, this.decoratedTransactionLine, this.lineSavings, this.adjustmentAmount, this.annotationDescription, this.annotationSourceType, this._promoName, this._promoDescription, this._promotionId, this.discountAmount, this.percent, this.discountName, this.discountDescription, this.discountType, this._rewardCouponId, this.sublines, this.replacementAmount, this.couponCode, this.isAutoCoupon, this.sourceIndicator, this.extendedAmountBeforeAdjustment, this.singleUseCoupon, this.itemSelectedUnitPrice, this.presentation, this.aggregationId, this.isEmployeeDiscount, this.campaign, this.priceCalculatedOnUnitPrice, this.priceCalculatedOnExtendedAmount);
147
163
  }
148
164
  }
149
165
  exports.ItemLinePromotionDecorator = ItemLinePromotionDecorator;
@@ -0,0 +1,13 @@
1
+ import { ITransactionLine, ITransactionLineFactory } from "@aptos-scp/scp-component-store-selling-core";
2
+ import { BaseItemLineDecorator } from "./BaseItemLineDecorator";
3
+ import { IItemLine, IRewardCardTender } from "./IItemLine";
4
+ export declare const DECORATOR_TYPE_ITEM_LINE_REWARD_CARD_TENDER: string;
5
+ export declare function isItemLineRewardCardTenderDecorator(transactionLine: ITransactionLine): transactionLine is ItemLineRewardCardTenderDecorator;
6
+ export declare class ItemLineRewardCardTenderDecorator extends BaseItemLineDecorator {
7
+ private _rewardCardTenders;
8
+ static createFromJsonObject(transactionLineJsonObj: any, transactionLineFactory: ITransactionLineFactory): ItemLineRewardCardTenderDecorator;
9
+ constructor(rewardCardTenders: IRewardCardTender[], itemLine: IItemLine, annotationDescription: string, annotationSourceType: string);
10
+ get rewardCardTenders(): IRewardCardTender[];
11
+ protected clone(): BaseItemLineDecorator;
12
+ protected newTransactionLine(): BaseItemLineDecorator;
13
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const BaseItemLineDecorator_1 = require("./BaseItemLineDecorator");
4
+ const scp_component_business_core_1 = require("@aptos-scp/scp-component-business-core");
5
+ exports.DECORATOR_TYPE_ITEM_LINE_REWARD_CARD_TENDER = "ITEM_LINE_REWARD_CARD_TENDER_DECORATOR";
6
+ function isItemLineRewardCardTenderDecorator(transactionLine) {
7
+ return (transactionLine.lineDecoratorType ===
8
+ exports.DECORATOR_TYPE_ITEM_LINE_REWARD_CARD_TENDER);
9
+ }
10
+ exports.isItemLineRewardCardTenderDecorator = isItemLineRewardCardTenderDecorator;
11
+ class ItemLineRewardCardTenderDecorator extends BaseItemLineDecorator_1.BaseItemLineDecorator {
12
+ constructor(rewardCardTenders, itemLine, annotationDescription, annotationSourceType) {
13
+ super(new scp_component_business_core_1.Money(0.0, itemLine.lineSavings.currency), exports.DECORATOR_TYPE_ITEM_LINE_REWARD_CARD_TENDER, itemLine, annotationDescription, annotationSourceType);
14
+ this._rewardCardTenders = rewardCardTenders;
15
+ }
16
+ static createFromJsonObject(transactionLineJsonObj, transactionLineFactory) {
17
+ var _a;
18
+ const decoratedTransactionLineJsonObj = BaseItemLineDecorator_1.BaseItemLineDecorator.getDecoratedTransactionLineJsonObjectFromJsonObject(transactionLineJsonObj);
19
+ const decoratedItemLine = transactionLineFactory.createTransactionLineFromJsonObj(decoratedTransactionLineJsonObj);
20
+ const rewardCardTenders = (_a = transactionLineJsonObj._rewardCardTenders) === null || _a === void 0 ? void 0 : _a.map((rewardCardTender) => {
21
+ return rewardCardTender.appliedAmount
22
+ ? {
23
+ cardNumber: rewardCardTender.cardNumber,
24
+ appliedAmount: scp_component_business_core_1.Money.fromIMoney(rewardCardTender.appliedAmount),
25
+ }
26
+ : rewardCardTender;
27
+ });
28
+ const annotationDescription = BaseItemLineDecorator_1.BaseItemLineDecorator.getAnnotationDescriptionFromJsonObject(transactionLineJsonObj);
29
+ const annotationSourceType = BaseItemLineDecorator_1.BaseItemLineDecorator.getAnnotationSourceTypeFromJsonObject(transactionLineJsonObj);
30
+ const itemLineRewardCardTenderDecorator = new ItemLineRewardCardTenderDecorator(rewardCardTenders, decoratedItemLine, annotationDescription, annotationSourceType);
31
+ return itemLineRewardCardTenderDecorator;
32
+ }
33
+ get rewardCardTenders() {
34
+ return this._rewardCardTenders;
35
+ }
36
+ clone() {
37
+ const itemLineRewardCardTenderDecorator = super.clone();
38
+ itemLineRewardCardTenderDecorator._rewardCardTenders = this._rewardCardTenders;
39
+ return itemLineRewardCardTenderDecorator;
40
+ }
41
+ newTransactionLine() {
42
+ return new ItemLineRewardCardTenderDecorator(this._rewardCardTenders, this.decoratedTransactionLine, this.annotationDescription, this.annotationSourceType);
43
+ }
44
+ }
45
+ exports.ItemLineRewardCardTenderDecorator = ItemLineRewardCardTenderDecorator;
46
+ //# sourceMappingURL=ItemLineRewardCardTenderDecorator.js.map
@@ -37,3 +37,4 @@ export * from "./ISerializedPriceCalculationResultsWithSource";
37
37
  export * from "./ItemLineExtensibilityFormDataDecorator";
38
38
  export * from "./ItemLineRewardCardDiscountDecorator";
39
39
  export * from "./SupersededPriceChangeLineDecorator";
40
+ export * from "./ItemLineRewardCardTenderDecorator";
@@ -40,4 +40,5 @@ __export(require("./IAllLinePricingAdjustments"));
40
40
  __export(require("./ItemLineExtensibilityFormDataDecorator"));
41
41
  __export(require("./ItemLineRewardCardDiscountDecorator"));
42
42
  __export(require("./SupersededPriceChangeLineDecorator"));
43
+ __export(require("./ItemLineRewardCardTenderDecorator"));
43
44
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,22 @@
1
+ import { Money } from "@aptos-scp/scp-component-business-core";
2
+ import { ITransactionLineFactory } from "@aptos-scp/scp-component-store-selling-core";
3
+ import { BaseLineDecorator } from "../BaseLineDecorator";
4
+ import { VoidSource } from "../Constants";
5
+ import { RewardCardTenderLine } from "./RewardCardTenderLine";
6
+ export declare const DECORATOR_TYPE_REWARD_CARD_TENDER_APPLIED_AMOUNT: string;
7
+ export declare const REWARD_CARD_TENDER_APPLIED_AMOUNT_ANNOTATION_SOURCE: string;
8
+ export declare class RewardCardTenderAppliedAmountDecorator extends BaseLineDecorator<RewardCardTenderLine> {
9
+ private _appliedAmount;
10
+ static createFromJsonObject(transactionLineJsonObj: any, transactionLineFactory: ITransactionLineFactory): RewardCardTenderAppliedAmountDecorator;
11
+ constructor(decoratorLineType: string, decoratedTransactionLine: RewardCardTenderLine, appliedAmount: Money, annotationSourceLineNumber?: number);
12
+ get appliedAmount(): Money;
13
+ get cardNumber(): string;
14
+ get customerNumber(): string;
15
+ get balanceAmount(): Money;
16
+ get pin(): string;
17
+ get tenderId(): string;
18
+ get voided(): boolean;
19
+ get voidSource(): VoidSource;
20
+ get isAuthorized(): boolean;
21
+ protected newTransactionLine(): RewardCardTenderAppliedAmountDecorator;
22
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const scp_component_business_core_1 = require("@aptos-scp/scp-component-business-core");
4
+ const BaseLineDecorator_1 = require("../BaseLineDecorator");
5
+ exports.DECORATOR_TYPE_REWARD_CARD_TENDER_APPLIED_AMOUNT = "DECORATOR_TYPE_REWARD_CARD_TENDER_APPLIED_AMOUNT";
6
+ exports.REWARD_CARD_TENDER_APPLIED_AMOUNT_ANNOTATION_SOURCE = "REWARD_CARD_TENDER_APPLIED_AMOUNT_ANNOTATION_SOURCE";
7
+ class RewardCardTenderAppliedAmountDecorator extends BaseLineDecorator_1.BaseLineDecorator {
8
+ constructor(decoratorLineType, decoratedTransactionLine, appliedAmount, annotationSourceLineNumber) {
9
+ super(decoratorLineType, decoratedTransactionLine, exports.REWARD_CARD_TENDER_APPLIED_AMOUNT_ANNOTATION_SOURCE, exports.REWARD_CARD_TENDER_APPLIED_AMOUNT_ANNOTATION_SOURCE, annotationSourceLineNumber);
10
+ this._appliedAmount = appliedAmount;
11
+ }
12
+ static createFromJsonObject(transactionLineJsonObj, transactionLineFactory) {
13
+ const decoratedTransactionLineJsonObj = BaseLineDecorator_1.BaseLineDecorator.getDecoratedTransactionLineJsonObjectFromJsonObject(transactionLineJsonObj);
14
+ const decoratedLine = transactionLineFactory.createTransactionLineFromJsonObj(decoratedTransactionLineJsonObj);
15
+ const appliedAmount = scp_component_business_core_1.Money.fromJSON(transactionLineJsonObj._appliedAmount);
16
+ const annotationSourceLineNumber = BaseLineDecorator_1.BaseLineDecorator.getAnnotationSourceLineNumberFromJsonObject(transactionLineJsonObj);
17
+ const decoratorType = BaseLineDecorator_1.BaseLineDecorator.getLineDecoratorTypeFromJsonObject(transactionLineJsonObj);
18
+ return new RewardCardTenderAppliedAmountDecorator(decoratorType, decoratedLine, appliedAmount, annotationSourceLineNumber);
19
+ }
20
+ get appliedAmount() {
21
+ return this._appliedAmount;
22
+ }
23
+ get cardNumber() {
24
+ return this.decoratedTransactionLine.cardNumber;
25
+ }
26
+ get customerNumber() {
27
+ return this.decoratedTransactionLine.customerNumber;
28
+ }
29
+ get balanceAmount() {
30
+ return this.decoratedTransactionLine.balanceAmount;
31
+ }
32
+ get pin() {
33
+ return this.decoratedTransactionLine.pin;
34
+ }
35
+ get tenderId() {
36
+ return this.decoratedTransactionLine.tenderId;
37
+ }
38
+ get voided() {
39
+ return this.decoratedTransactionLine.voided;
40
+ }
41
+ get voidSource() {
42
+ return this.decoratedTransactionLine.voidSource;
43
+ }
44
+ get isAuthorized() {
45
+ return this.decoratedTransactionLine.isAuthorized;
46
+ }
47
+ newTransactionLine() {
48
+ return new RewardCardTenderAppliedAmountDecorator(this.lineDecoratorType, this.decoratedTransactionLine, this._appliedAmount, this.annotationSourceLineNumber);
49
+ }
50
+ }
51
+ exports.RewardCardTenderAppliedAmountDecorator = RewardCardTenderAppliedAmountDecorator;
52
+ //# sourceMappingURL=RewardCardTenderAppliedAmountDecorator.js.map
@@ -0,0 +1,37 @@
1
+ import { Money } from "@aptos-scp/scp-component-business-core";
2
+ import { UiBusinessEvent } from "@aptos-scp/scp-component-store-selling-core";
3
+ import { BaseTransactionLine } from "../BaseTransactionLine";
4
+ import { VoidSource } from "../Constants";
5
+ import { IVoidableLine } from "../VoidInterfaces";
6
+ export declare const REWARD_CARD_TENDER_LINE_TYPE = "RewardCardTender";
7
+ export declare class RewardCardTenderLine extends BaseTransactionLine implements IVoidableLine {
8
+ private _cardNumber;
9
+ private _customerNumber;
10
+ private _balanceAmount;
11
+ private _appliedAmount;
12
+ private _pin;
13
+ private _tenderId;
14
+ private _voided;
15
+ private _voidSource;
16
+ static create(lineNumber: number, lineType: string, uiBusinessEvent: UiBusinessEvent, collectedData: Readonly<Map<string, any>>): RewardCardTenderLine;
17
+ static createFromJsonObject(transactionLineJsonObj: any): RewardCardTenderLine;
18
+ get couldAffectPricing(): boolean;
19
+ get cardNumber(): string;
20
+ get customerNumber(): string;
21
+ get balanceAmount(): Money;
22
+ get appliedAmount(): Money;
23
+ get pin(): string;
24
+ get tenderId(): string;
25
+ get voided(): boolean;
26
+ get voidSource(): VoidSource;
27
+ get preventsTransactionVoid(): boolean;
28
+ get allowVoid(): boolean;
29
+ /**
30
+ * Returns true if a TenderPaymentLine has been created from this line (after auth).
31
+ * The actual check is done at display/transaction level by looking for a TenderPaymentLine
32
+ * that references this RewardCardTenderLine.
33
+ */
34
+ get isAuthorized(): boolean;
35
+ protected constructor(lineNumber: number, lineType: string, cardNumber: string, customerNumber: string, balanceAmount: Money, appliedAmount: Money, pin: string, tenderId: string, voided: boolean, voidSource: VoidSource);
36
+ protected newTransactionLine(): BaseTransactionLine;
37
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const scp_component_business_core_1 = require("@aptos-scp/scp-component-business-core");
4
+ const BaseTransactionLine_1 = require("../BaseTransactionLine");
5
+ const Constants_1 = require("../Constants");
6
+ exports.REWARD_CARD_TENDER_LINE_TYPE = "RewardCardTender";
7
+ class RewardCardTenderLine extends BaseTransactionLine_1.BaseTransactionLine {
8
+ constructor(lineNumber, lineType, cardNumber, customerNumber, balanceAmount, appliedAmount, pin, tenderId, voided, voidSource) {
9
+ var _a;
10
+ const currency = (_a = (appliedAmount || balanceAmount)) === null || _a === void 0 ? void 0 : _a.currency;
11
+ const extendedAmount = appliedAmount || (currency ? new scp_component_business_core_1.Money(0, currency) : undefined);
12
+ super(lineNumber, lineType, extendedAmount);
13
+ this._cardNumber = cardNumber;
14
+ this._customerNumber = customerNumber;
15
+ this._balanceAmount = balanceAmount;
16
+ this._appliedAmount = appliedAmount;
17
+ this._pin = pin;
18
+ this._tenderId = tenderId;
19
+ this._voided = voided;
20
+ this._voidSource = voidSource;
21
+ }
22
+ static create(lineNumber, lineType, uiBusinessEvent, collectedData) {
23
+ const cardNumber = collectedData.get(Constants_1.CollectedDataKey.CardNumber);
24
+ const customerNumber = collectedData.get(Constants_1.CollectedDataKey.CustomerNumber);
25
+ const balanceAmount = collectedData.get(Constants_1.CollectedDataKey.RewardCardBalanceAmount);
26
+ const pin = collectedData.get(Constants_1.CollectedDataKey.GiftCardPin);
27
+ const tenderId = collectedData.get(Constants_1.CollectedDataKey.TenderId);
28
+ return new RewardCardTenderLine(lineNumber, lineType, cardNumber, customerNumber, balanceAmount, undefined, pin, tenderId, false, undefined);
29
+ }
30
+ static createFromJsonObject(transactionLineJsonObj) {
31
+ const lineNumber = BaseTransactionLine_1.BaseTransactionLine.lineNumberFromJsonObject(transactionLineJsonObj);
32
+ const lineType = BaseTransactionLine_1.BaseTransactionLine.lineTypeFromJsonObject(transactionLineJsonObj);
33
+ const cardNumber = transactionLineJsonObj._cardNumber;
34
+ const customerNumber = transactionLineJsonObj._customerNumber;
35
+ const balanceAmount = transactionLineJsonObj._balanceAmount
36
+ ? scp_component_business_core_1.Money.fromJSON(transactionLineJsonObj._balanceAmount)
37
+ : undefined;
38
+ const appliedAmount = transactionLineJsonObj._appliedAmount
39
+ ? scp_component_business_core_1.Money.fromJSON(transactionLineJsonObj._appliedAmount)
40
+ : undefined;
41
+ const pin = transactionLineJsonObj._pin;
42
+ const tenderId = transactionLineJsonObj._tenderId;
43
+ const voided = transactionLineJsonObj._voided;
44
+ const voidSource = transactionLineJsonObj._voidSource;
45
+ const line = new RewardCardTenderLine(lineNumber, lineType, cardNumber, customerNumber, balanceAmount, appliedAmount, pin, tenderId, voided, voidSource);
46
+ line.loadFromJsonObject(transactionLineJsonObj);
47
+ return line;
48
+ }
49
+ get couldAffectPricing() {
50
+ return true;
51
+ }
52
+ get cardNumber() {
53
+ return this._cardNumber;
54
+ }
55
+ get customerNumber() {
56
+ return this._customerNumber;
57
+ }
58
+ get balanceAmount() {
59
+ return this._balanceAmount;
60
+ }
61
+ get appliedAmount() {
62
+ return this._appliedAmount;
63
+ }
64
+ get pin() {
65
+ return this._pin;
66
+ }
67
+ get tenderId() {
68
+ return this._tenderId;
69
+ }
70
+ get voided() {
71
+ return this._voided;
72
+ }
73
+ get voidSource() {
74
+ return this._voidSource;
75
+ }
76
+ get preventsTransactionVoid() {
77
+ return false;
78
+ }
79
+ get allowVoid() {
80
+ return true;
81
+ }
82
+ /**
83
+ * Returns true if a TenderPaymentLine has been created from this line (after auth).
84
+ * The actual check is done at display/transaction level by looking for a TenderPaymentLine
85
+ * that references this RewardCardTenderLine.
86
+ */
87
+ get isAuthorized() {
88
+ return false;
89
+ }
90
+ newTransactionLine() {
91
+ return new RewardCardTenderLine(this.lineNumber, this.lineType, this._cardNumber, this._customerNumber, this._balanceAmount, this._appliedAmount, this._pin, this._tenderId, this._voided, this._voidSource);
92
+ }
93
+ }
94
+ exports.RewardCardTenderLine = RewardCardTenderLine;
95
+ //# sourceMappingURL=RewardCardTenderLine.js.map
@@ -0,0 +1,21 @@
1
+ import { Money } from "@aptos-scp/scp-component-business-core";
2
+ import { ITransactionLineFactory } from "@aptos-scp/scp-component-store-selling-core";
3
+ import { BaseLineDecorator } from "../BaseLineDecorator";
4
+ import { VoidSource } from "../Constants";
5
+ import { RewardCardTenderLine } from "./RewardCardTenderLine";
6
+ export declare const DECORATOR_TYPE_VOIDED_REWARD_CARD_TENDER_LINE: string;
7
+ export declare class VoidedRewardCardTenderLineDecorator extends BaseLineDecorator<RewardCardTenderLine> {
8
+ private _voidSource;
9
+ static createFromJsonObject(transactionLineJsonObj: any, transactionLineFactory: ITransactionLineFactory): VoidedRewardCardTenderLineDecorator;
10
+ constructor(voidSource: VoidSource, rewardCardTenderLine: RewardCardTenderLine, annotationSourceLineNumber: number);
11
+ get voided(): boolean;
12
+ get voidSource(): VoidSource;
13
+ get cardNumber(): string;
14
+ get customerNumber(): string;
15
+ get balanceAmount(): Money;
16
+ get appliedAmount(): Money;
17
+ get pin(): string;
18
+ get tenderId(): string;
19
+ get isAuthorized(): boolean;
20
+ protected newTransactionLine(): VoidedRewardCardTenderLineDecorator;
21
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const BaseLineDecorator_1 = require("../BaseLineDecorator");
4
+ const VoidedLineDecorator_1 = require("../void/VoidedLineDecorator");
5
+ const VOIDED_REWARD_CARD_TENDER_ANNOTATION_SOURCE_TYPE = "VoidedRewardCardTender";
6
+ exports.DECORATOR_TYPE_VOIDED_REWARD_CARD_TENDER_LINE = "VOIDED_REWARD_CARD_TENDER_LINE_DECORATOR";
7
+ class VoidedRewardCardTenderLineDecorator extends BaseLineDecorator_1.BaseLineDecorator {
8
+ constructor(voidSource, rewardCardTenderLine, annotationSourceLineNumber) {
9
+ super(exports.DECORATOR_TYPE_VOIDED_REWARD_CARD_TENDER_LINE, rewardCardTenderLine, VoidedLineDecorator_1.DECORATOR_DESCRIPTION_VOIDED, VOIDED_REWARD_CARD_TENDER_ANNOTATION_SOURCE_TYPE, annotationSourceLineNumber);
10
+ this._voidSource = voidSource;
11
+ }
12
+ static createFromJsonObject(transactionLineJsonObj, transactionLineFactory) {
13
+ const decoratedTransactionLineJsonObj = BaseLineDecorator_1.BaseLineDecorator.getDecoratedTransactionLineJsonObjectFromJsonObject(transactionLineJsonObj);
14
+ const decoratedLine = transactionLineFactory.createTransactionLineFromJsonObj(decoratedTransactionLineJsonObj);
15
+ const annotationSourceLineNumber = BaseLineDecorator_1.BaseLineDecorator.getAnnotationSourceLineNumberFromJsonObject(transactionLineJsonObj);
16
+ const voidSource = transactionLineJsonObj._voidSource;
17
+ return new VoidedRewardCardTenderLineDecorator(voidSource, decoratedLine, annotationSourceLineNumber);
18
+ }
19
+ get voided() {
20
+ return true;
21
+ }
22
+ get voidSource() {
23
+ return this._voidSource;
24
+ }
25
+ get cardNumber() {
26
+ return this.decoratedTransactionLine.cardNumber;
27
+ }
28
+ get customerNumber() {
29
+ return this.decoratedTransactionLine.customerNumber;
30
+ }
31
+ get balanceAmount() {
32
+ return this.decoratedTransactionLine.balanceAmount;
33
+ }
34
+ get appliedAmount() {
35
+ return this.decoratedTransactionLine.appliedAmount;
36
+ }
37
+ get pin() {
38
+ return this.decoratedTransactionLine.pin;
39
+ }
40
+ get tenderId() {
41
+ return this.decoratedTransactionLine.tenderId;
42
+ }
43
+ get isAuthorized() {
44
+ return this.decoratedTransactionLine.isAuthorized;
45
+ }
46
+ newTransactionLine() {
47
+ return new VoidedRewardCardTenderLineDecorator(this._voidSource, this.decoratedTransactionLine, this.annotationSourceLineNumber);
48
+ }
49
+ }
50
+ exports.VoidedRewardCardTenderLineDecorator = VoidedRewardCardTenderLineDecorator;
51
+ //# sourceMappingURL=VoidedRewardCardTenderLineDecorator.js.map
@@ -1,4 +1,8 @@
1
1
  export * from "./BaseTenderLineDecorator";
2
+ export * from "./lineTypes";
3
+ export * from "./RewardCardTenderLine";
4
+ export * from "./RewardCardTenderAppliedAmountDecorator";
5
+ export * from "./VoidedRewardCardTenderLineDecorator";
2
6
  export * from "./CancelSubscriptionTokenLine";
3
7
  export * from "./exchange";
4
8
  export * from "./ITenderLine";
@@ -4,6 +4,10 @@ function __export(m) {
4
4
  }
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  __export(require("./BaseTenderLineDecorator"));
7
+ __export(require("./lineTypes"));
8
+ __export(require("./RewardCardTenderLine"));
9
+ __export(require("./RewardCardTenderAppliedAmountDecorator"));
10
+ __export(require("./VoidedRewardCardTenderLineDecorator"));
7
11
  __export(require("./CancelSubscriptionTokenLine"));
8
12
  __export(require("./exchange"));
9
13
  __export(require("./OfflineAuthorization"));
@@ -0,0 +1,4 @@
1
+ import { ITransactionLine } from "@aptos-scp/scp-component-store-selling-core";
2
+ import { RewardCardTenderLine, REWARD_CARD_TENDER_LINE_TYPE } from "./RewardCardTenderLine";
3
+ export { REWARD_CARD_TENDER_LINE_TYPE };
4
+ export declare function isRewardCardTenderLine(transactionLine: ITransactionLine): transactionLine is RewardCardTenderLine;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const RewardCardTenderLine_1 = require("./RewardCardTenderLine");
4
+ exports.REWARD_CARD_TENDER_LINE_TYPE = RewardCardTenderLine_1.REWARD_CARD_TENDER_LINE_TYPE;
5
+ function isRewardCardTenderLine(transactionLine) {
6
+ return (transactionLine instanceof RewardCardTenderLine_1.RewardCardTenderLine ||
7
+ transactionLine.lineType === RewardCardTenderLine_1.REWARD_CARD_TENDER_LINE_TYPE);
8
+ }
9
+ exports.isRewardCardTenderLine = isRewardCardTenderLine;
10
+ //# sourceMappingURL=lineTypes.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aptos-scp/scp-component-store-selling-features-domain-model",
3
- "version": "2.36.0",
3
+ "version": "2.37.0",
4
4
  "description": "This component library provides the common components to handle the coordination of processing the business events from the UI.",
5
5
  "private": false,
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -56,7 +56,7 @@
56
56
  "peerDependencies": {
57
57
  "@aptos-scp/scp-component-business-core": "^1.12.7",
58
58
  "@aptos-scp/scp-component-logging": "^2.1.16",
59
- "@aptos-scp/scp-component-pricing": "^7.66.4",
59
+ "@aptos-scp/scp-component-pricing": "^7.68.0",
60
60
  "@aptos-scp/scp-component-store-items": "^1.23.0",
61
61
  "@aptos-scp/scp-component-store-selling-core": "^18.9.3",
62
62
  "@aptos-scp/scp-component-taxation": "^5.28.0",
@@ -64,7 +64,7 @@
64
64
  "@aptos-scp/scp-types-client-registration": "^1.4.0",
65
65
  "@aptos-scp/scp-types-core-config": "^2.2.1",
66
66
  "@aptos-scp/scp-types-commerce-devices": "^6.10.0",
67
- "@aptos-scp/scp-types-commerce-transaction": "^1.89.1",
67
+ "@aptos-scp/scp-types-commerce-transaction": "^1.91.0",
68
68
  "@aptos-scp/scp-types-customer": "^3.7.0",
69
69
  "@aptos-scp/scp-types-einvoice": "^1.17.0",
70
70
  "@aptos-scp/scp-types-inventory": "^2.0.0",
@@ -78,7 +78,7 @@
78
78
  "@aptos-scp/scp-component-business-core": "^1.12.7",
79
79
  "@aptos-scp/scp-component-commit-configs": "^4.1.3",
80
80
  "@aptos-scp/scp-component-logging": "^2.1.16",
81
- "@aptos-scp/scp-component-pricing": "^7.66.4",
81
+ "@aptos-scp/scp-component-pricing": "^7.68.0",
82
82
  "@aptos-scp/scp-component-rn-circuit-breaker": "^1.0.15",
83
83
  "@aptos-scp/scp-component-store-items": "^1.23.0",
84
84
  "@aptos-scp/scp-component-store-selling-core": "^18.9.3",
@@ -86,7 +86,7 @@
86
86
  "@aptos-scp/scp-component-user": "^1.4.0",
87
87
  "@aptos-scp/scp-types-client-registration": "^1.4.0",
88
88
  "@aptos-scp/scp-types-commerce-devices": "^6.10.0",
89
- "@aptos-scp/scp-types-commerce-transaction": "^1.89.1",
89
+ "@aptos-scp/scp-types-commerce-transaction": "^1.91.0",
90
90
  "@aptos-scp/scp-types-core": "^1.0.5",
91
91
  "@aptos-scp/scp-types-core-config": "^2.2.1",
92
92
  "@aptos-scp/scp-types-currency-conversion": "^1.2.0",
@@ -96,7 +96,7 @@
96
96
  "@aptos-scp/scp-types-inventory": "^2.0.0",
97
97
  "@aptos-scp/scp-types-loyalty-memberships": "^2.3.0",
98
98
  "@aptos-scp/scp-types-orders": "^4.11.0",
99
- "@aptos-scp/scp-types-pricing": "^4.30.0",
99
+ "@aptos-scp/scp-types-pricing": "^4.31.1",
100
100
  "@aptos-scp/scp-types-ss-transaction-history": "^1.6.0",
101
101
  "@aptos-scp/scp-types-store-items": "^1.41.0",
102
102
  "@aptos-scp/scp-types-terminal-settings": "^1.3.0",