@aptos-scp/scp-component-store-selling-features-domain-model 2.35.3 → 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.
- package/lib/domain/UIBusinessEventTypes.d.ts +3 -0
- package/lib/domain/UIBusinessEventTypes.js +3 -0
- package/lib/domain/model/Constants.d.ts +2 -0
- package/lib/domain/model/Constants.js +2 -0
- package/lib/domain/model/TenderHandlingSession.d.ts +1 -0
- package/lib/domain/model/TenderHandlingSession.js +19 -4
- package/lib/domain/model/configuration/IFeatureAccessConfig.d.ts +14 -0
- package/lib/domain/model/item/BaseItemLineDecorator.d.ts +2 -1
- package/lib/domain/model/item/BaseItemLineDecorator.js +3 -0
- package/lib/domain/model/item/IAllLinePricingAdjustments.d.ts +6 -1
- package/lib/domain/model/item/IAllLinePricingAdjustments.js +22 -1
- package/lib/domain/model/item/IItemLine.d.ts +5 -0
- package/lib/domain/model/item/ISerializedPriceCalculationResultsWithSource.d.ts +5 -3
- package/lib/domain/model/item/ItemLine.d.ts +3 -1
- package/lib/domain/model/item/ItemLine.js +5 -0
- package/lib/domain/model/item/ItemLinePromotionDecorator.d.ts +5 -1
- package/lib/domain/model/item/ItemLinePromotionDecorator.js +19 -3
- package/lib/domain/model/item/ItemLineRewardCardTenderDecorator.d.ts +13 -0
- package/lib/domain/model/item/ItemLineRewardCardTenderDecorator.js +46 -0
- package/lib/domain/model/item/index.d.ts +1 -0
- package/lib/domain/model/item/index.js +1 -0
- package/lib/domain/model/tender/RewardCardTenderAppliedAmountDecorator.d.ts +22 -0
- package/lib/domain/model/tender/RewardCardTenderAppliedAmountDecorator.js +52 -0
- package/lib/domain/model/tender/RewardCardTenderLine.d.ts +37 -0
- package/lib/domain/model/tender/RewardCardTenderLine.js +95 -0
- package/lib/domain/model/tender/VoidedRewardCardTenderLineDecorator.d.ts +21 -0
- package/lib/domain/model/tender/VoidedRewardCardTenderLineDecorator.js +51 -0
- package/lib/domain/model/tender/index.d.ts +4 -0
- package/lib/domain/model/tender/index.js +4 -0
- package/lib/domain/model/tender/lineTypes.d.ts +4 -0
- package/lib/domain/model/tender/lineTypes.js +10 -0
- package/package.json +6 -6
|
@@ -50,6 +50,7 @@ export declare const ITEM_TAX_OVERRIDE_EVENT = "ItemTaxOverride";
|
|
|
50
50
|
export declare const SELL_ITEM_NOT_ON_FILE_EVENT: string;
|
|
51
51
|
export declare const ORDER_ITEM_NOT_ON_FILE_EVENT: string;
|
|
52
52
|
export declare const ORDER_ITEM_CANCELLATION_EVENT: string;
|
|
53
|
+
export declare const FINALIZE_ORDER_ITEM_CANCELLATION_EVENT: string;
|
|
53
54
|
export declare const ORDER_ITEM_RESTORE_EVENT: string;
|
|
54
55
|
export declare const RESERVED_ORDER_ITEM_CANCELLATION_EVENT: string;
|
|
55
56
|
export declare const ORDER_ITEM_PICKUP_EVENT: string;
|
|
@@ -75,7 +76,9 @@ export declare const MANUAL_ITEM_DISCOUNT_EVENT: string;
|
|
|
75
76
|
export declare const MANUAL_TRANSACTION_DISCOUNT_EVENT: string;
|
|
76
77
|
export declare const PERMANENT_MEMBERSHIP_DISCOUNT_EVENT: string;
|
|
77
78
|
export declare const ADD_EMPLOYEE_CUSTOMER_EVENT: string;
|
|
79
|
+
export declare const REWARD_CARD_EVENT: string;
|
|
78
80
|
export declare const REWARD_CARD_DISCOUNT_EVENT: string;
|
|
81
|
+
export declare const REWARD_CARD_TENDER_EVENT: string;
|
|
79
82
|
export declare const RESET_REWARD_CARD_BALANCE_INQUIRY_EVENT: string;
|
|
80
83
|
export declare const START_REWARD_CARD_BALANCE_INQUIRY_EVENT: string;
|
|
81
84
|
export declare const APPLY_REWARD_CARD_EVENT: string;
|
|
@@ -53,6 +53,7 @@ exports.ITEM_TAX_OVERRIDE_EVENT = "ItemTaxOverride";
|
|
|
53
53
|
exports.SELL_ITEM_NOT_ON_FILE_EVENT = "SellItemNotOnFile";
|
|
54
54
|
exports.ORDER_ITEM_NOT_ON_FILE_EVENT = "OrderItemNotOnFile";
|
|
55
55
|
exports.ORDER_ITEM_CANCELLATION_EVENT = "OrderItemCancellation";
|
|
56
|
+
exports.FINALIZE_ORDER_ITEM_CANCELLATION_EVENT = "FinalizeOrderItemCancellation";
|
|
56
57
|
exports.ORDER_ITEM_RESTORE_EVENT = "OrderItemRestore";
|
|
57
58
|
exports.RESERVED_ORDER_ITEM_CANCELLATION_EVENT = "ReservedOrderItemCancellation";
|
|
58
59
|
exports.ORDER_ITEM_PICKUP_EVENT = "OrderItemPickup";
|
|
@@ -78,7 +79,9 @@ exports.MANUAL_ITEM_DISCOUNT_EVENT = "ManualItemDiscount";
|
|
|
78
79
|
exports.MANUAL_TRANSACTION_DISCOUNT_EVENT = "ManualTransactionDiscount";
|
|
79
80
|
exports.PERMANENT_MEMBERSHIP_DISCOUNT_EVENT = "PermanentMembershipDiscount";
|
|
80
81
|
exports.ADD_EMPLOYEE_CUSTOMER_EVENT = "AddEmployeeCustomer";
|
|
82
|
+
exports.REWARD_CARD_EVENT = "RewardCard";
|
|
81
83
|
exports.REWARD_CARD_DISCOUNT_EVENT = "RewardCardDiscount";
|
|
84
|
+
exports.REWARD_CARD_TENDER_EVENT = "RewardCardTender";
|
|
82
85
|
exports.RESET_REWARD_CARD_BALANCE_INQUIRY_EVENT = "ResetRewardCardBalanceInquiryDiscount";
|
|
83
86
|
exports.START_REWARD_CARD_BALANCE_INQUIRY_EVENT = "StartRewardCardBalanceInquiry";
|
|
84
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";
|
|
@@ -5,6 +5,7 @@ const scp_component_business_core_1 = require("@aptos-scp/scp-component-business
|
|
|
5
5
|
const scp_component_logging_1 = require("@aptos-scp/scp-component-logging");
|
|
6
6
|
const scp_types_commerce_devices_1 = require("@aptos-scp/scp-types-commerce-devices");
|
|
7
7
|
const scp_types_commerce_transaction_1 = require("@aptos-scp/scp-types-commerce-transaction");
|
|
8
|
+
const scp_types_fiscal_transaction_1 = require("@aptos-scp/scp-types-fiscal-transaction");
|
|
8
9
|
const Constants_1 = require("./Constants");
|
|
9
10
|
const logger = scp_component_logging_1.LogManager.getLogger("com.aptos.storesellingfeatures.domain.model.TenderHandlingSession");
|
|
10
11
|
exports.TENDER_SESSION = "TenderHandlingSession";
|
|
@@ -139,11 +140,11 @@ function getOriginalTransactionDetails(originalTransaction, configuredTenders) {
|
|
|
139
140
|
const originalTenderLines = ((_c = originalTransactionLines) === null || _c === void 0 ? void 0 : _c.filter((line) => scp_types_commerce_transaction_1.isTenderLine && line.lineType === scp_types_commerce_transaction_1.LineType.TenderPayment)) || [];
|
|
140
141
|
let originalTenders = [];
|
|
141
142
|
originalTenderLines.forEach((tenderLine) => {
|
|
142
|
-
var _a, _b;
|
|
143
|
+
var _a, _b, _c;
|
|
143
144
|
if (scp_types_commerce_transaction_1.isTenderLine(tenderLine)) {
|
|
144
145
|
const { tenderAuthCategory, additionalTenderAuthCategories } = (_a = getTenderAuthCategories(tenderLine.tenderId, configuredTenders), (_a !== null && _a !== void 0 ? _a : {}));
|
|
145
146
|
if (originalTenderNeeded(tenderLine, tenderAuthCategory, originalTenders)) {
|
|
146
|
-
originalTenders.push(getOriginalTenderFromLine(tenderLine, tenderAuthCategory, getAssociatedAdditionalData(originalTransaction.additionalData, tenderLine.sequenceNumberFromReturnCanonicalTransaction), (_b = originalTransaction.transaction) === null || _b === void 0 ? void 0 : _b.transactionId, additionalTenderAuthCategories));
|
|
147
|
+
originalTenders.push(getOriginalTenderFromLine(tenderLine, tenderAuthCategory, getAssociatedAdditionalData(originalTransaction.additionalData, tenderLine.sequenceNumberFromReturnCanonicalTransaction), (_b = originalTransaction.transaction) === null || _b === void 0 ? void 0 : _b.transactionId, additionalTenderAuthCategories, (_c = originalTransaction.transaction) === null || _c === void 0 ? void 0 : _c.order));
|
|
147
148
|
}
|
|
148
149
|
else {
|
|
149
150
|
combineUnreferenceOriginalTenders(originalTenders, tenderLine, getAssociatedAdditionalData(originalTransaction.additionalData, tenderLine.sequenceNumberFromReturnCanonicalTransaction));
|
|
@@ -214,7 +215,7 @@ function originalTenderNeeded(tenderLine, tenderAuthCategory, currentOriginalTen
|
|
|
214
215
|
return !((_a = currentOriginalTenders) === null || _a === void 0 ? void 0 : _a.find((tender) => tender.tenderId === tenderLine.tenderId));
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
|
-
function getOriginalTenderFromLine(tenderLine, tenderAuthCategory, additionalLineData, originalTransactionId, additionalTenderAuthCategories = []) {
|
|
218
|
+
function getOriginalTenderFromLine(tenderLine, tenderAuthCategory, additionalLineData, originalTransactionId, additionalTenderAuthCategories = [], order) {
|
|
218
219
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
219
220
|
const showReference = (tenderAuthCategory === Constants_1.TenderAuthCategory.TapToPayOnPOS ||
|
|
220
221
|
tenderAuthCategory === Constants_1.TenderAuthCategory.PaymentDevice ||
|
|
@@ -222,6 +223,7 @@ function getOriginalTenderFromLine(tenderLine, tenderAuthCategory, additionalLin
|
|
|
222
223
|
tenderAuthCategory === Constants_1.TenderAuthCategory.PayByLink) &&
|
|
223
224
|
tenderLine.tenderDetails &&
|
|
224
225
|
tenderLine.tenderDetails.paymentProvider !== scp_types_commerce_devices_1.PaymentProvider.NonIntegrated;
|
|
226
|
+
const isPreAuthorized = isTenderPreAuthorizedInOrder(order, tenderLine);
|
|
225
227
|
const originalTenderAmount = tenderLine.tenderAmount && scp_component_business_core_1.Money.fromIMoney(tenderLine.tenderAmount);
|
|
226
228
|
const initialRefundedAmount = tenderLine.tenderAmount && new scp_component_business_core_1.Money(0, tenderLine.tenderAmount.currency);
|
|
227
229
|
const previouslyRefundedAmount = getAdditionalDataRefundedAmount(additionalLineData) || initialRefundedAmount;
|
|
@@ -239,7 +241,7 @@ function getOriginalTenderFromLine(tenderLine, tenderAuthCategory, additionalLin
|
|
|
239
241
|
];
|
|
240
242
|
return {
|
|
241
243
|
originalTenderAmount,
|
|
242
|
-
refundedAmount: initialRefundedAmount,
|
|
244
|
+
refundedAmount: isPreAuthorized ? originalTenderAmount : initialRefundedAmount,
|
|
243
245
|
previouslyRefundedAmount,
|
|
244
246
|
refundAllowed,
|
|
245
247
|
showReference,
|
|
@@ -257,8 +259,20 @@ function getOriginalTenderFromLine(tenderLine, tenderAuthCategory, additionalLin
|
|
|
257
259
|
lastFour,
|
|
258
260
|
originalTransactionReferences: getOriginalTransactionReferences(originalTransactionId, originalLineReferences),
|
|
259
261
|
additionalTenderAuthCategories,
|
|
262
|
+
isPreAuthorized,
|
|
260
263
|
};
|
|
261
264
|
}
|
|
265
|
+
function isTenderPreAuthorizedInOrder(order, tenderLine) {
|
|
266
|
+
var _a, _b, _c, _d, _e, _f;
|
|
267
|
+
const tenderId = (_a = tenderLine) === null || _a === void 0 ? void 0 : _a.tenderId;
|
|
268
|
+
const referenceNumber = (_c = (_b = tenderLine) === null || _b === void 0 ? void 0 : _b.tenderDetails) === null || _c === void 0 ? void 0 : _c.referenceNumber;
|
|
269
|
+
if (!((_f = (_e = (_d = order) === null || _d === void 0 ? void 0 : _d.trade) === null || _e === void 0 ? void 0 : _e.lineItems) === null || _f === void 0 ? void 0 : _f.length) || !tenderId)
|
|
270
|
+
return false;
|
|
271
|
+
return order.trade.lineItems.some((lineItem) => {
|
|
272
|
+
var _a, _b, _c, _d, _e;
|
|
273
|
+
return ((_b = (_a = lineItem.tenderIn) === null || _a === void 0 ? void 0 : _a.tender) === null || _b === void 0 ? void 0 : _b.tenderId) === tenderId && ((_e = (_d = (_c = lineItem.tenderIn) === null || _c === void 0 ? void 0 : _c.tender) === null || _d === void 0 ? void 0 : _d.authorizations) === null || _e === void 0 ? void 0 : _e.some((auth) => auth.typeCode === scp_types_fiscal_transaction_1.TenderAuthorizationTypeEnum.Authorization && auth.id === referenceNumber));
|
|
274
|
+
});
|
|
275
|
+
}
|
|
262
276
|
function getOriginalTransactionReferences(transactionId, originalLineReferences) {
|
|
263
277
|
var _a;
|
|
264
278
|
return (_a = originalLineReferences) === null || _a === void 0 ? void 0 : _a.map((originalLineReference) => {
|
|
@@ -362,6 +376,7 @@ function createOrigTenderFromJson(jsonObject) {
|
|
|
362
376
|
refundableAmount: jsonObject.refundableAmount && scp_component_business_core_1.Money.fromIMoney(jsonObject.refundableAmount),
|
|
363
377
|
mappedOriginTenderId: jsonObject.mappedOriginTenderId,
|
|
364
378
|
additionalTenderAuthCategories: jsonObject.additionalTenderAuthCategories,
|
|
379
|
+
isPreAuthorized: jsonObject.isPreAuthorized,
|
|
365
380
|
};
|
|
366
381
|
}
|
|
367
382
|
function createOriginalTransactionReferencesFromJson(jsonObject) {
|
|
@@ -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,
|
|
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?:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
+
"@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.
|
|
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",
|