@pisell/pisellos 2.3.40 → 2.3.41
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/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +7 -0
- package/dist/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/dist/model/strategy/adapter/promotion/adapter.js +23 -0
- package/dist/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/dist/model/strategy/adapter/promotion/evaluator.js +279 -6
- package/dist/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/dist/model/strategy/adapter/promotion/examples.js +99 -0
- package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/dist/model/strategy/adapter/promotion/type.js +45 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +5 -3
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +6 -3
- package/dist/modules/Discount/index.d.ts +0 -1
- package/dist/modules/Discount/index.js +11 -40
- package/dist/modules/Discount/types.d.ts +0 -1
- package/dist/modules/OpenData/index.d.ts +2 -0
- package/dist/modules/OpenData/index.js +10 -2
- package/dist/modules/Order/index.d.ts +29 -12
- package/dist/modules/Order/index.js +750 -509
- package/dist/modules/Order/payment-utils.d.ts +26 -0
- package/dist/modules/Order/payment-utils.js +225 -0
- package/dist/modules/Order/types.d.ts +33 -10
- package/dist/modules/Order/utils/orderCollectionIdentity.js +7 -2
- package/dist/modules/Order/utils.d.ts +0 -10
- package/dist/modules/Order/utils.js +13 -41
- package/dist/modules/Payment/index.d.ts +2 -0
- package/dist/modules/Payment/index.js +79 -50
- package/dist/modules/Payment/types.d.ts +99 -28
- package/dist/modules/Payment/types.js +20 -3
- package/dist/modules/Payment/walletpass.d.ts +25 -1
- package/dist/modules/Payment/walletpass.js +707 -157
- package/dist/modules/Product/types.d.ts +0 -1
- package/dist/modules/ProductList/index.js +14 -33
- package/dist/modules/Quotation/index.d.ts +1 -1
- package/dist/modules/Quotation/index.js +2 -2
- package/dist/modules/Rules/index.d.ts +1 -0
- package/dist/modules/Rules/index.js +89 -96
- package/dist/modules/SalesSummary/index.js +13 -12
- package/dist/modules/ScanOrderLogger/index.d.ts +0 -2
- package/dist/modules/ScanOrderLogger/index.js +2 -15
- package/dist/modules/ScanOrderLogger/providers/feishu.js +27 -45
- package/dist/modules/ScanOrderLogger/types.d.ts +0 -1
- package/dist/modules/Schedule/index.d.ts +1 -3
- package/dist/modules/Schedule/index.js +16 -21
- package/dist/modules/Summary/utils.js +13 -38
- package/dist/modules/index.d.ts +0 -2
- package/dist/modules/index.js +1 -3
- package/dist/plugins/window.d.ts +0 -1
- package/dist/server/index.d.ts +16 -14
- package/dist/server/index.js +1925 -1143
- package/dist/server/modules/order/index.d.ts +54 -4
- package/dist/server/modules/order/index.js +1600 -700
- package/dist/server/modules/order/types.d.ts +11 -3
- package/dist/server/modules/order/types.js +1 -1
- package/dist/solution/BaseSales/index.d.ts +109 -20
- package/dist/solution/BaseSales/index.js +1800 -480
- package/dist/solution/BaseSales/types.d.ts +52 -0
- package/dist/solution/BaseSales/types.js +2 -1
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/dist/solution/BaseSales/utils/cartPromotion.js +90 -31
- package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
- package/dist/solution/BookingByStep/index.d.ts +2 -17
- package/dist/solution/BookingByStep/index.js +215 -294
- package/dist/solution/BookingByStep/types.d.ts +1 -2
- package/dist/solution/BookingByStep/types.js +1 -3
- package/dist/solution/BookingByStep/utils/capacity.js +1 -17
- package/dist/solution/BookingByStep/utils/timeslots.d.ts +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +12 -19
- package/dist/solution/BookingTicket/index.d.ts +8 -4
- package/dist/solution/BookingTicket/index.js +134 -51
- package/dist/solution/BookingTicket/utils/addProductDecision.js +6 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +8 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +172 -82
- package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +1 -3
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +2 -10
- package/dist/solution/BookingTicket/utils/weighingProductSku.d.ts +5 -0
- package/dist/solution/BookingTicket/utils/weighingProductSku.js +45 -0
- package/dist/solution/Sales/index.d.ts +1 -0
- package/dist/solution/Sales/index.js +10 -2
- package/dist/solution/ScanOrder/index.d.ts +14 -26
- package/dist/solution/ScanOrder/index.js +756 -1148
- package/dist/solution/ScanOrder/types.d.ts +1 -21
- package/dist/solution/ScanOrder/utils.d.ts +0 -8
- package/dist/solution/ScanOrder/utils.js +25 -66
- package/dist/solution/ShopDiscount/index.d.ts +0 -1
- package/dist/solution/ShopDiscount/index.js +87 -125
- package/dist/solution/VenueBooking/index.d.ts +11 -39
- package/dist/solution/VenueBooking/index.js +860 -1176
- package/dist/solution/VenueBooking/types.d.ts +0 -3
- package/dist/solution/VenueBooking/utils/resource.js +0 -1
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/dist/solution/VenueBooking/utils/slotMerge.js +5 -10
- package/dist/solution/index.d.ts +0 -1
- package/dist/solution/index.js +1 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/payment-number.d.ts +9 -0
- package/dist/utils/payment-number.js +69 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/core/index.js +4 -0
- package/lib/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/lib/model/strategy/adapter/promotion/adapter.js +20 -0
- package/lib/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/lib/model/strategy/adapter/promotion/evaluator.js +235 -0
- package/lib/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/lib/model/strategy/adapter/promotion/examples.js +91 -0
- package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/lib/model/strategy/adapter/promotion/index.js +2 -0
- package/lib/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/lib/model/strategy/adapter/promotion/type.js +2 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +2 -1
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +2 -1
- package/lib/modules/Discount/index.d.ts +0 -1
- package/lib/modules/Discount/index.js +0 -9
- package/lib/modules/Discount/types.d.ts +0 -1
- package/lib/modules/OpenData/index.d.ts +2 -0
- package/lib/modules/OpenData/index.js +6 -1
- package/lib/modules/Order/index.d.ts +29 -12
- package/lib/modules/Order/index.js +196 -86
- package/lib/modules/Order/payment-utils.d.ts +26 -0
- package/lib/modules/Order/payment-utils.js +224 -0
- package/lib/modules/Order/types.d.ts +33 -10
- package/lib/modules/Order/utils/orderCollectionIdentity.js +3 -0
- package/lib/modules/Order/utils.d.ts +0 -10
- package/lib/modules/Order/utils.js +16 -40
- package/lib/modules/Payment/index.d.ts +2 -0
- package/lib/modules/Payment/index.js +34 -13
- package/lib/modules/Payment/types.d.ts +99 -28
- package/lib/modules/Payment/types.js +4 -3
- package/lib/modules/Payment/walletpass.d.ts +25 -1
- package/lib/modules/Payment/walletpass.js +470 -21
- package/lib/modules/Product/types.d.ts +0 -1
- package/lib/modules/ProductList/index.js +31 -40
- package/lib/modules/Quotation/index.d.ts +1 -1
- package/lib/modules/Quotation/index.js +2 -2
- package/lib/modules/Rules/index.d.ts +1 -0
- package/lib/modules/Rules/index.js +47 -40
- package/lib/modules/SalesSummary/index.js +7 -6
- package/lib/modules/ScanOrderLogger/index.d.ts +0 -2
- package/lib/modules/ScanOrderLogger/index.js +1 -13
- package/lib/modules/ScanOrderLogger/providers/feishu.js +6 -15
- package/lib/modules/ScanOrderLogger/types.d.ts +0 -1
- package/lib/modules/Schedule/index.d.ts +1 -3
- package/lib/modules/Schedule/index.js +8 -10
- package/lib/modules/Summary/utils.js +1 -21
- package/lib/modules/index.d.ts +0 -2
- package/lib/modules/index.js +1 -5
- package/lib/plugins/window.d.ts +0 -1
- package/lib/server/index.d.ts +16 -14
- package/lib/server/index.js +675 -83
- package/lib/server/modules/order/index.d.ts +54 -4
- package/lib/server/modules/order/index.js +679 -66
- package/lib/server/modules/order/types.d.ts +11 -3
- package/lib/solution/BaseSales/index.d.ts +109 -20
- package/lib/solution/BaseSales/index.js +883 -70
- package/lib/solution/BaseSales/types.d.ts +52 -0
- package/lib/solution/BaseSales/types.js +2 -1
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/lib/solution/BaseSales/utils/cartPromotion.js +63 -12
- package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +6 -1
- package/lib/solution/BookingByStep/index.d.ts +2 -17
- package/lib/solution/BookingByStep/index.js +18 -60
- package/lib/solution/BookingByStep/types.d.ts +1 -2
- package/lib/solution/BookingByStep/types.js +0 -5
- package/lib/solution/BookingByStep/utils/capacity.js +1 -20
- package/lib/solution/BookingByStep/utils/timeslots.d.ts +1 -3
- package/lib/solution/BookingByStep/utils/timeslots.js +11 -19
- package/lib/solution/BookingTicket/index.d.ts +8 -4
- package/lib/solution/BookingTicket/index.js +64 -19
- package/lib/solution/BookingTicket/utils/addProductDecision.js +4 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +8 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +36 -4
- package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +1 -3
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +2 -2
- package/lib/solution/BookingTicket/utils/weighingProductSku.d.ts +5 -0
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +63 -0
- package/lib/solution/Sales/index.d.ts +1 -0
- package/lib/solution/Sales/index.js +5 -3
- package/lib/solution/ScanOrder/index.d.ts +14 -26
- package/lib/solution/ScanOrder/index.js +190 -449
- package/lib/solution/ScanOrder/types.d.ts +1 -21
- package/lib/solution/ScanOrder/utils.d.ts +0 -8
- package/lib/solution/ScanOrder/utils.js +0 -31
- package/lib/solution/ShopDiscount/index.d.ts +0 -1
- package/lib/solution/ShopDiscount/index.js +0 -14
- package/lib/solution/VenueBooking/index.d.ts +11 -39
- package/lib/solution/VenueBooking/index.js +123 -328
- package/lib/solution/VenueBooking/types.d.ts +0 -3
- package/lib/solution/VenueBooking/utils/resource.js +0 -1
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/lib/solution/VenueBooking/utils/slotMerge.js +4 -6
- package/lib/solution/index.d.ts +0 -1
- package/lib/solution/index.js +1 -3
- package/lib/types/index.d.ts +1 -1
- package/lib/utils/payment-number.d.ts +9 -0
- package/lib/utils/payment-number.js +64 -0
- package/package.json +1 -1
- package/dist/modules/Holder/index.d.ts +0 -48
- package/dist/modules/Holder/index.js +0 -640
- package/dist/modules/Holder/types.d.ts +0 -123
- package/dist/modules/Holder/types.js +0 -1
- package/dist/modules/Holder/utils.d.ts +0 -13
- package/dist/modules/Holder/utils.js +0 -34
- package/dist/modules/ResourcePlanner/index.d.ts +0 -24
- package/dist/modules/ResourcePlanner/index.js +0 -181
- package/dist/modules/ResourcePlanner/planner.d.ts +0 -14
- package/dist/modules/ResourcePlanner/planner.js +0 -1069
- package/dist/modules/ResourcePlanner/types.d.ts +0 -227
- package/dist/modules/ResourcePlanner/types.js +0 -1
- package/dist/solution/UnifiedBookingSales/index.d.ts +0 -183
- package/dist/solution/UnifiedBookingSales/index.js +0 -1871
- package/dist/solution/UnifiedBookingSales/types.d.ts +0 -143
- package/dist/solution/UnifiedBookingSales/types.js +0 -11
- package/lib/modules/Holder/index.d.ts +0 -48
- package/lib/modules/Holder/index.js +0 -402
- package/lib/modules/Holder/types.d.ts +0 -123
- package/lib/modules/Holder/types.js +0 -17
- package/lib/modules/Holder/utils.d.ts +0 -13
- package/lib/modules/Holder/utils.js +0 -71
- package/lib/modules/ResourcePlanner/index.d.ts +0 -24
- package/lib/modules/ResourcePlanner/index.js +0 -148
- package/lib/modules/ResourcePlanner/planner.d.ts +0 -14
- package/lib/modules/ResourcePlanner/planner.js +0 -933
- package/lib/modules/ResourcePlanner/types.d.ts +0 -227
- package/lib/modules/ResourcePlanner/types.js +0 -17
- package/lib/solution/UnifiedBookingSales/index.d.ts +0 -183
- package/lib/solution/UnifiedBookingSales/index.js +0 -1076
- package/lib/solution/UnifiedBookingSales/types.d.ts +0 -143
- package/lib/solution/UnifiedBookingSales/types.js +0 -33
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type OrderPaymentTransactionStatus = 'success' | 'fail';
|
|
2
|
+
export interface OrderPaymentTransaction {
|
|
3
|
+
number: string;
|
|
4
|
+
status: OrderPaymentTransactionStatus;
|
|
5
|
+
}
|
|
6
|
+
export type OrderPaymentIdentityType = 'order_payment_id' | 'payment_number' | 'unique_payment_number';
|
|
7
|
+
export interface OrderPaymentIdentityMatch<T> {
|
|
8
|
+
index: number;
|
|
9
|
+
payment: T;
|
|
10
|
+
matchedBy: OrderPaymentIdentityType;
|
|
11
|
+
}
|
|
12
|
+
export declare function getOrderPaymentIdentityKeys(payment: unknown): string[];
|
|
13
|
+
export declare function isPendingOrderPayment(payment: unknown): boolean;
|
|
14
|
+
export declare function isIdentifiedPendingOrderPayment(payment: unknown): boolean;
|
|
15
|
+
export declare function hasOrderPaymentIdentityOverlap(left: unknown, right: unknown): boolean;
|
|
16
|
+
export declare function resolveOrderPaymentIdentity<T extends Record<string, any>>(payments: T[] | null | undefined, identity: string | number, mode?: 'payment_number' | 'compat'): OrderPaymentIdentityMatch<T> | null;
|
|
17
|
+
export declare function ensureOrderPaymentNumber<T extends Record<string, any>>(payment: T, devicePrefix: string, createPaymentNumber: () => string): T & {
|
|
18
|
+
payment_number: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function mergeOrderPaymentTransactions(current: unknown, incoming: unknown): OrderPaymentTransaction[];
|
|
21
|
+
export declare function mergeOrderPaymentRecord<T extends Record<string, any>>(payment: T, updates: Record<string, any>): T;
|
|
22
|
+
export declare function mergeOrderPaymentSnapshot<T extends Record<string, any>>(current: T, incoming: T): T;
|
|
23
|
+
export declare function mergeOrderPaymentListsByIdentity<T extends Record<string, any>>(existing: T[] | null | undefined, incoming: T[] | null | undefined, options?: {
|
|
24
|
+
preserveUnmatchedExisting?: boolean;
|
|
25
|
+
preserveUnmatchedExistingWhen?: (payment: T) => boolean;
|
|
26
|
+
}): T[];
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
10
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
11
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
12
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
|
+
var PAYMENT_IDENTITY_TYPES = ['payment_number', 'order_payment_id', 'unique_payment_number'];
|
|
15
|
+
function normalizePaymentIdentityValue(value) {
|
|
16
|
+
if (value === undefined || value === null || value === '') return null;
|
|
17
|
+
return String(value);
|
|
18
|
+
}
|
|
19
|
+
function getPaymentIdentityValue(payment, type) {
|
|
20
|
+
if (type === 'unique_payment_number') {
|
|
21
|
+
var _payment$metadata;
|
|
22
|
+
return payment === null || payment === void 0 || (_payment$metadata = payment.metadata) === null || _payment$metadata === void 0 ? void 0 : _payment$metadata.unique_payment_number;
|
|
23
|
+
}
|
|
24
|
+
return payment === null || payment === void 0 ? void 0 : payment[type];
|
|
25
|
+
}
|
|
26
|
+
export function getOrderPaymentIdentityKeys(payment) {
|
|
27
|
+
var record = payment;
|
|
28
|
+
if (!record) return [];
|
|
29
|
+
return PAYMENT_IDENTITY_TYPES.flatMap(function (type) {
|
|
30
|
+
var value = normalizePaymentIdentityValue(getPaymentIdentityValue(record, type));
|
|
31
|
+
return value === null ? [] : ["".concat(type, ":").concat(value)];
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function isPendingOrderPayment(payment) {
|
|
35
|
+
var record = payment;
|
|
36
|
+
return String((record === null || record === void 0 ? void 0 : record.status) || '').toLowerCase() === 'payment_pending';
|
|
37
|
+
}
|
|
38
|
+
export function isIdentifiedPendingOrderPayment(payment) {
|
|
39
|
+
return isPendingOrderPayment(payment) && getOrderPaymentIdentityKeys(payment).length > 0;
|
|
40
|
+
}
|
|
41
|
+
export function hasOrderPaymentIdentityOverlap(left, right) {
|
|
42
|
+
var leftKeys = new Set(getOrderPaymentIdentityKeys(left));
|
|
43
|
+
if (leftKeys.size === 0) return false;
|
|
44
|
+
return getOrderPaymentIdentityKeys(right).some(function (key) {
|
|
45
|
+
return leftKeys.has(key);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export function resolveOrderPaymentIdentity(payments, identity) {
|
|
49
|
+
var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'payment_number';
|
|
50
|
+
var target = String(identity);
|
|
51
|
+
var identityTypes = mode === 'payment_number' ? ['payment_number'] : PAYMENT_IDENTITY_TYPES;
|
|
52
|
+
var matchesByIndex = new Map();
|
|
53
|
+
var _iterator = _createForOfIteratorHelper(identityTypes),
|
|
54
|
+
_step;
|
|
55
|
+
try {
|
|
56
|
+
var _loop = function _loop() {
|
|
57
|
+
var type = _step.value;
|
|
58
|
+
(payments || []).forEach(function (payment, index) {
|
|
59
|
+
var value = normalizePaymentIdentityValue(getPaymentIdentityValue(payment, type));
|
|
60
|
+
if (value === target && !matchesByIndex.has(index)) {
|
|
61
|
+
matchesByIndex.set(index, {
|
|
62
|
+
index: index,
|
|
63
|
+
payment: payment,
|
|
64
|
+
matchedBy: type
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
70
|
+
_loop();
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
_iterator.e(err);
|
|
74
|
+
} finally {
|
|
75
|
+
_iterator.f();
|
|
76
|
+
}
|
|
77
|
+
var matches = _toConsumableArray(matchesByIndex.values());
|
|
78
|
+
if (matches.length > 1) {
|
|
79
|
+
throw new Error("\u652F\u4ED8\u9879\u8EAB\u4EFD\u5B58\u5728\u6B67\u4E49: ".concat(target));
|
|
80
|
+
}
|
|
81
|
+
return matches[0] || null;
|
|
82
|
+
}
|
|
83
|
+
export function ensureOrderPaymentNumber(payment, devicePrefix, createPaymentNumber) {
|
|
84
|
+
var existing = normalizePaymentIdentityValue(payment.payment_number);
|
|
85
|
+
if (existing) return _objectSpread(_objectSpread({}, payment), {}, {
|
|
86
|
+
payment_number: existing
|
|
87
|
+
});
|
|
88
|
+
var uuid = normalizePaymentIdentityValue(payment.uuid) || createPaymentNumber();
|
|
89
|
+
var prefix = normalizePaymentIdentityValue(devicePrefix) || 'LOCAL';
|
|
90
|
+
// TODO: 使用 ID Generator 替换当前 UUID 段生成器。
|
|
91
|
+
return _objectSpread(_objectSpread({}, payment), {}, {
|
|
92
|
+
payment_number: "".concat(prefix, "_").concat(uuid)
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
export function mergeOrderPaymentTransactions(current, incoming) {
|
|
96
|
+
var records = new Map();
|
|
97
|
+
var append = function append(value) {
|
|
98
|
+
if (!Array.isArray(value)) return;
|
|
99
|
+
value.forEach(function (item) {
|
|
100
|
+
var number = item && _typeof(item) === 'object' ? String(item.number || '') : '';
|
|
101
|
+
var status = item && _typeof(item) === 'object' ? item.status : undefined;
|
|
102
|
+
if (!number || status !== 'success' && status !== 'fail') return;
|
|
103
|
+
var previous = records.get(number);
|
|
104
|
+
if ((previous === null || previous === void 0 ? void 0 : previous.status) === 'success' && status === 'fail') return;
|
|
105
|
+
records.set(number, {
|
|
106
|
+
number: number,
|
|
107
|
+
status: status
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
append(current);
|
|
112
|
+
append(incoming);
|
|
113
|
+
return _toConsumableArray(records.values());
|
|
114
|
+
}
|
|
115
|
+
export function mergeOrderPaymentRecord(payment, updates) {
|
|
116
|
+
var _updates$status, _updates$updated_at;
|
|
117
|
+
var currentMetadata = payment.metadata || {};
|
|
118
|
+
var incomingMetadata = updates.metadata || {};
|
|
119
|
+
var transactions = mergeOrderPaymentTransactions(currentMetadata.transactions, incomingMetadata.transactions);
|
|
120
|
+
var currentPaid = payment.status === 'paid';
|
|
121
|
+
var nextStatus = currentPaid && updates.status !== 'paid' ? 'paid' : (_updates$status = updates.status) !== null && _updates$status !== void 0 ? _updates$status : payment.status;
|
|
122
|
+
return _objectSpread(_objectSpread(_objectSpread({}, payment), updates), {}, {
|
|
123
|
+
status: nextStatus,
|
|
124
|
+
updated_at: (_updates$updated_at = updates.updated_at) !== null && _updates$updated_at !== void 0 ? _updates$updated_at : payment.updated_at,
|
|
125
|
+
metadata: _objectSpread(_objectSpread(_objectSpread({}, currentMetadata), incomingMetadata), transactions.length > 0 || Array.isArray(incomingMetadata.transactions) ? {
|
|
126
|
+
transactions: transactions
|
|
127
|
+
} : {})
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
export function mergeOrderPaymentSnapshot(current, incoming) {
|
|
131
|
+
var currentMetadata = current.metadata || {};
|
|
132
|
+
var incomingMetadata = incoming.metadata || {};
|
|
133
|
+
var currentUniquePaymentNumber = normalizePaymentIdentityValue(currentMetadata.unique_payment_number);
|
|
134
|
+
var incomingUniquePaymentNumber = normalizePaymentIdentityValue(incomingMetadata.unique_payment_number);
|
|
135
|
+
var incomingOrderPaymentId = normalizePaymentIdentityValue(incoming.order_payment_id);
|
|
136
|
+
var incomingFallbackPrefix = incomingOrderPaymentId ? "os-fallback:payment:order-payment:".concat(incomingOrderPaymentId) : null;
|
|
137
|
+
var incomingUsesDerivedUniquePaymentNumber = Boolean(incomingUniquePaymentNumber && incomingFallbackPrefix && (incomingUniquePaymentNumber === incomingFallbackPrefix || incomingUniquePaymentNumber.startsWith("".concat(incomingFallbackPrefix, ":conflict:"))));
|
|
138
|
+
var transactions = mergeOrderPaymentTransactions(currentMetadata.transactions, incomingMetadata.transactions);
|
|
139
|
+
return _objectSpread(_objectSpread(_objectSpread({}, current), incoming), {}, {
|
|
140
|
+
order_payment_id: normalizePaymentIdentityValue(incoming.order_payment_id) !== null ? incoming.order_payment_id : current.order_payment_id,
|
|
141
|
+
payment_number: incoming.payment_number || current.payment_number,
|
|
142
|
+
metadata: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, currentMetadata), incomingMetadata), incomingUsesDerivedUniquePaymentNumber && currentUniquePaymentNumber ? {
|
|
143
|
+
unique_payment_number: currentUniquePaymentNumber
|
|
144
|
+
} : {}), transactions.length > 0 ? {
|
|
145
|
+
transactions: transactions
|
|
146
|
+
} : {})
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
function compactOrderPaymentList(payments) {
|
|
150
|
+
var result = [];
|
|
151
|
+
var _iterator2 = _createForOfIteratorHelper(payments),
|
|
152
|
+
_step2;
|
|
153
|
+
try {
|
|
154
|
+
var _loop2 = function _loop2() {
|
|
155
|
+
var payment = _step2.value;
|
|
156
|
+
var matchingIndexes = result.flatMap(function (existing, index) {
|
|
157
|
+
return hasOrderPaymentIdentityOverlap(existing, payment) ? [index] : [];
|
|
158
|
+
});
|
|
159
|
+
if (matchingIndexes.length === 0) {
|
|
160
|
+
result.push(mergeOrderPaymentSnapshot({}, payment));
|
|
161
|
+
return 1; // continue
|
|
162
|
+
}
|
|
163
|
+
var firstIndex = matchingIndexes[0];
|
|
164
|
+
var merged = result[firstIndex];
|
|
165
|
+
var _iterator3 = _createForOfIteratorHelper(matchingIndexes.slice(1)),
|
|
166
|
+
_step3;
|
|
167
|
+
try {
|
|
168
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
169
|
+
var index = _step3.value;
|
|
170
|
+
merged = mergeOrderPaymentSnapshot(merged, result[index]);
|
|
171
|
+
}
|
|
172
|
+
} catch (err) {
|
|
173
|
+
_iterator3.e(err);
|
|
174
|
+
} finally {
|
|
175
|
+
_iterator3.f();
|
|
176
|
+
}
|
|
177
|
+
result[firstIndex] = mergeOrderPaymentSnapshot(merged, payment);
|
|
178
|
+
var _iterator4 = _createForOfIteratorHelper(matchingIndexes.slice(1).sort(function (a, b) {
|
|
179
|
+
return b - a;
|
|
180
|
+
})),
|
|
181
|
+
_step4;
|
|
182
|
+
try {
|
|
183
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
184
|
+
var _index = _step4.value;
|
|
185
|
+
result.splice(_index, 1);
|
|
186
|
+
}
|
|
187
|
+
} catch (err) {
|
|
188
|
+
_iterator4.e(err);
|
|
189
|
+
} finally {
|
|
190
|
+
_iterator4.f();
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
194
|
+
if (_loop2()) continue;
|
|
195
|
+
}
|
|
196
|
+
} catch (err) {
|
|
197
|
+
_iterator2.e(err);
|
|
198
|
+
} finally {
|
|
199
|
+
_iterator2.f();
|
|
200
|
+
}
|
|
201
|
+
return result;
|
|
202
|
+
}
|
|
203
|
+
export function mergeOrderPaymentListsByIdentity(existing, incoming) {
|
|
204
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
205
|
+
var existingList = compactOrderPaymentList(_toConsumableArray(existing || []));
|
|
206
|
+
var incomingList = compactOrderPaymentList(_toConsumableArray(incoming || []));
|
|
207
|
+
if (options.preserveUnmatchedExisting) {
|
|
208
|
+
return compactOrderPaymentList([].concat(_toConsumableArray(existingList), _toConsumableArray(incomingList)));
|
|
209
|
+
}
|
|
210
|
+
var mergedIncoming = incomingList.map(function (incomingPayment) {
|
|
211
|
+
var matchingExisting = existingList.filter(function (existingPayment) {
|
|
212
|
+
return hasOrderPaymentIdentityOverlap(existingPayment, incomingPayment);
|
|
213
|
+
});
|
|
214
|
+
return matchingExisting.reduce(function (merged, existingPayment) {
|
|
215
|
+
return mergeOrderPaymentSnapshot(existingPayment, merged);
|
|
216
|
+
}, incomingPayment);
|
|
217
|
+
});
|
|
218
|
+
var preservedExisting = options.preserveUnmatchedExistingWhen ? existingList.filter(function (existingPayment) {
|
|
219
|
+
var _options$preserveUnma;
|
|
220
|
+
return !incomingList.some(function (incomingPayment) {
|
|
221
|
+
return hasOrderPaymentIdentityOverlap(existingPayment, incomingPayment);
|
|
222
|
+
}) && ((_options$preserveUnma = options.preserveUnmatchedExistingWhen) === null || _options$preserveUnma === void 0 ? void 0 : _options$preserveUnma.call(options, existingPayment));
|
|
223
|
+
}) : [];
|
|
224
|
+
return compactOrderPaymentList([].concat(_toConsumableArray(mergedIncoming), _toConsumableArray(preservedExisting)));
|
|
225
|
+
}
|
|
@@ -394,7 +394,6 @@ export interface CommitOrderParams {
|
|
|
394
394
|
type: 'virtual' | 'appointment_booking';
|
|
395
395
|
platform?: string;
|
|
396
396
|
extraData?: Record<string, any>;
|
|
397
|
-
business_code?: string;
|
|
398
397
|
};
|
|
399
398
|
}
|
|
400
399
|
export interface OrderSubmitBooking {
|
|
@@ -469,6 +468,8 @@ export interface SubmitSalesOrderParams {
|
|
|
469
468
|
export interface PaymentItemData {
|
|
470
469
|
/** 当前支付项的唯一 ID */
|
|
471
470
|
uuid: string;
|
|
471
|
+
/** 支付项稳定唯一号 */
|
|
472
|
+
payment_number?: string;
|
|
472
473
|
/** 当前支付方式付出去多少钱 */
|
|
473
474
|
amount: string;
|
|
474
475
|
/** 支付类型代码 */
|
|
@@ -491,13 +492,22 @@ export interface PaymentItemData {
|
|
|
491
492
|
export interface OrderPaymentMetadata {
|
|
492
493
|
rounding_rule?: Record<string, any>;
|
|
493
494
|
unique_payment_number?: string;
|
|
495
|
+
/** 刷卡机设备快照;OS 不解析内部字段,仅透传并持久化 */
|
|
496
|
+
card_reader_snapshot?: Record<string, unknown>;
|
|
494
497
|
shop_wallet_pass_id?: number | string;
|
|
495
498
|
actual_paid_amount?: number | string;
|
|
496
499
|
change_given_amount?: number | string;
|
|
500
|
+
transactions?: OrderPaymentTransaction[];
|
|
497
501
|
[key: string]: any;
|
|
498
502
|
}
|
|
503
|
+
export interface OrderPaymentTransaction {
|
|
504
|
+
number: string;
|
|
505
|
+
status: 'success' | 'fail';
|
|
506
|
+
}
|
|
499
507
|
export interface OrderPaymentData {
|
|
500
508
|
order_payment_id?: number | string;
|
|
509
|
+
/** 支付项稳定唯一号;历史支付项允许缺失 */
|
|
510
|
+
payment_number?: string;
|
|
501
511
|
amount: string;
|
|
502
512
|
code: string;
|
|
503
513
|
custom_payment_id: number;
|
|
@@ -524,6 +534,15 @@ export interface OrderPaymentData {
|
|
|
524
534
|
created_at?: string;
|
|
525
535
|
updated_at?: string;
|
|
526
536
|
}
|
|
537
|
+
export interface OrderPaymentUpdateOptions {
|
|
538
|
+
matchBy?: 'payment_number' | 'compat' | 'legacy';
|
|
539
|
+
}
|
|
540
|
+
export interface OrderPaymentUpdateResult {
|
|
541
|
+
updated: boolean;
|
|
542
|
+
payment: OrderPaymentData | null;
|
|
543
|
+
payments: OrderPaymentData[];
|
|
544
|
+
summary: OrderSummary | null;
|
|
545
|
+
}
|
|
527
546
|
export type OrderPaymentSource = PaymentItem | OrderPaymentData | Record<string, any>;
|
|
528
547
|
export interface MapOrderPaymentsOptions {
|
|
529
548
|
includeVoided?: boolean;
|
|
@@ -550,12 +569,6 @@ export interface SyncPaymentsToOrderParams {
|
|
|
550
569
|
payments: OrderPaymentSource[];
|
|
551
570
|
paymentStatus?: SubmitSalesOrderParams['query']['payment_status'];
|
|
552
571
|
submitWhenPaid?: boolean;
|
|
553
|
-
/**
|
|
554
|
-
* Whether the checkout should be queued as the local `sync_sales` task.
|
|
555
|
-
* Defaults to true to preserve the WebPOS retry path. Set to false when
|
|
556
|
-
* the caller must wait for the cloud checkout response before proceeding.
|
|
557
|
-
*/
|
|
558
|
-
checkoutSyncTaskEnabled?: boolean;
|
|
559
572
|
smallTicketDataFlag?: number;
|
|
560
573
|
businessCode?: string;
|
|
561
574
|
channel?: string;
|
|
@@ -680,6 +693,14 @@ export interface OrderModuleAPI {
|
|
|
680
693
|
channel?: string;
|
|
681
694
|
type?: string;
|
|
682
695
|
}) => OrderSubmitPayload;
|
|
696
|
+
saveTempOrderAsDraft: <T = any>(params?: {
|
|
697
|
+
cacheId?: string;
|
|
698
|
+
platform?: string;
|
|
699
|
+
businessCode?: string;
|
|
700
|
+
channel?: string;
|
|
701
|
+
type?: string;
|
|
702
|
+
enhancePayload?: SubmitPayloadEnhancer;
|
|
703
|
+
}) => Promise<T>;
|
|
683
704
|
applyLocalPrintOrderNumbers: (order?: Record<string, any> | null) => Promise<OrderTempOrder>;
|
|
684
705
|
getTempOrderNote: () => string;
|
|
685
706
|
updateTempOrderNote: {
|
|
@@ -710,8 +731,6 @@ export interface OrderModuleAPI {
|
|
|
710
731
|
setEnableTempOrderPersist: (enabled: boolean) => void;
|
|
711
732
|
/** 是否允许 saveDraft 写入 IndexedDB 草稿。 */
|
|
712
733
|
isTempOrderPersistEnabled: () => boolean;
|
|
713
|
-
/** 提交 tempOrder 变更并触发 `{moduleName}:changed` 事件 */
|
|
714
|
-
notifyTempOrderChanged: () => void;
|
|
715
734
|
submitTempOrder: <T = any>(params?: {
|
|
716
735
|
cacheId?: string;
|
|
717
736
|
platform?: string;
|
|
@@ -739,11 +758,15 @@ export interface OrderModuleAPI {
|
|
|
739
758
|
getOrderPayments: () => OrderPaymentData[];
|
|
740
759
|
setOrderPayments: (payments: OrderPaymentSource[]) => OrderPaymentData[];
|
|
741
760
|
addOrderPayment: (payment: OrderPaymentSource) => OrderPaymentData[];
|
|
742
|
-
|
|
761
|
+
addOrderPaymentAsync: (payment: OrderPaymentSource) => Promise<OrderPaymentData[]>;
|
|
762
|
+
updateOrderPayment: (paymentIdentity: string | number, updates: Partial<OrderPaymentData> & Record<string, any>, options?: OrderPaymentUpdateOptions) => Promise<OrderPaymentUpdateResult>;
|
|
743
763
|
deleteOrderPayment: (paymentIdentity: string | number) => OrderPaymentData[];
|
|
744
764
|
updateVoucherOrderPayments: (payments: OrderPaymentSource[], options?: {
|
|
745
765
|
status?: 'paid' | 'payment_pending';
|
|
746
766
|
}) => OrderPaymentData[];
|
|
767
|
+
updateVoucherOrderPaymentsAsync: (payments: OrderPaymentSource[], options?: {
|
|
768
|
+
status?: 'paid' | 'payment_pending';
|
|
769
|
+
}) => Promise<OrderPaymentData[]>;
|
|
747
770
|
confirmPendingVoucherPayments: (options?: {
|
|
748
771
|
persist?: boolean;
|
|
749
772
|
recalculateSummary?: boolean;
|
|
@@ -209,6 +209,11 @@ export function normalizeOrderCollection(kind, items, options) {
|
|
|
209
209
|
var persistentId = getOrderCollectionPersistentId(kind, item);
|
|
210
210
|
var uid = getOrderCollectionUid(kind, item);
|
|
211
211
|
if (!uid) {
|
|
212
|
+
var _item;
|
|
213
|
+
if (kind === 'payment' && !isBlankOrderCollectionIdentity((_item = item) === null || _item === void 0 ? void 0 : _item.payment_number)) {
|
|
214
|
+
// payment_number 已提供稳定身份,不占用真实交易流水字段作为内部 UID。
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
212
217
|
uid = persistentId ? buildOrderCollectionFallbackUid(kind, persistentId) : allocateAnonymousUid(occupiedUids, createAnonymousUid);
|
|
213
218
|
item = setOrderCollectionUid(kind, item, uid);
|
|
214
219
|
result[index] = item;
|
|
@@ -216,7 +221,7 @@ export function normalizeOrderCollection(kind, items, options) {
|
|
|
216
221
|
if (!persistentId) stats.anonymousRowCount += 1;
|
|
217
222
|
}
|
|
218
223
|
if (occupiedUids.has(uid)) {
|
|
219
|
-
var
|
|
224
|
+
var _item2, _item3, _item4, _item5;
|
|
220
225
|
var replacementUid = persistentId ? allocatePersistentConflictUid(kind, persistentId, occupiedUids) : allocateAnonymousUid(occupiedUids, createAnonymousUid);
|
|
221
226
|
result[index] = setOrderCollectionUid(kind, item, replacementUid);
|
|
222
227
|
uidRemaps.push({
|
|
@@ -225,7 +230,7 @@ export function normalizeOrderCollection(kind, items, options) {
|
|
|
225
230
|
to: replacementUid,
|
|
226
231
|
persistentId: persistentId,
|
|
227
232
|
scope: 'linked-owner',
|
|
228
|
-
referenceOwnerUid: kind === 'product' ? String(((
|
|
233
|
+
referenceOwnerUid: kind === 'product' ? String(((_item2 = item) === null || _item2 === void 0 ? void 0 : _item2.booking_uid) || ((_item3 = item) === null || _item3 === void 0 || (_item3 = _item3.metadata) === null || _item3 === void 0 ? void 0 : _item3.booking_uid) || '') || null : kind === 'booking' ? String(((_item4 = item) === null || _item4 === void 0 ? void 0 : _item4.product_uid) || ((_item5 = item) === null || _item5 === void 0 || (_item5 = _item5.metadata) === null || _item5 === void 0 ? void 0 : _item5.product_uid) || '') || null : null
|
|
229
234
|
});
|
|
230
235
|
uid = replacementUid;
|
|
231
236
|
stats.uidConflictCount += 1;
|
|
@@ -15,7 +15,6 @@ export interface OrderProductsDepositSummary {
|
|
|
15
15
|
deposit_policy_ids: number[];
|
|
16
16
|
hasDeposit: boolean;
|
|
17
17
|
}
|
|
18
|
-
import type { WindowPlugin } from '../../plugins';
|
|
19
18
|
/**
|
|
20
19
|
* 把"含 option 的主商品单价"与 bundle 合成"单行 composite 单价"。
|
|
21
20
|
*
|
|
@@ -178,15 +177,6 @@ export declare const mergeRelationForms: (relationForms: {
|
|
|
178
177
|
form_id: number;
|
|
179
178
|
form_record_ids: number[];
|
|
180
179
|
}[];
|
|
181
|
-
export interface CartOrderHolder {
|
|
182
|
-
customer_id?: number;
|
|
183
|
-
form_id: number | string;
|
|
184
|
-
form_record: (number | string)[] | null;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* 为购物车行补齐订单所需的 holder 信息(与 cartAccount 结构保持一致)
|
|
188
|
-
*/
|
|
189
|
-
export declare function ensureCartItemOriginHolder(cartItem: CartItem, window?: WindowPlugin): void;
|
|
190
180
|
export declare const getAllDiscountList: (cartItem: CartItem) => any;
|
|
191
181
|
export { createUuidV4 };
|
|
192
182
|
export declare function isTempOrder(data: any): data is OrderTempOrder;
|
|
@@ -20,7 +20,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
20
20
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
21
21
|
import dayjs from "dayjs";
|
|
22
22
|
import Decimal from 'decimal.js';
|
|
23
|
-
import { getProductHolderConfig } from "../Holder/utils";
|
|
24
23
|
import { buildProductLineFingerprint, createEmptySummary } from "../../solution/ScanOrder/utils";
|
|
25
24
|
import { createUuidV4 } from "./utils/orderCollectionIdentity";
|
|
26
25
|
/**
|
|
@@ -534,7 +533,8 @@ export function resolveEffectivePerUnitDiscount(product) {
|
|
|
534
533
|
return sum + Number((discount === null || discount === void 0 ? void 0 : discount.amount) || 0);
|
|
535
534
|
}, 0);
|
|
536
535
|
var hasPromoDiscountItem = discountList.some(function (item) {
|
|
537
|
-
|
|
536
|
+
var _item$metadata, _item$metadata2;
|
|
537
|
+
return (item === null || item === void 0 ? void 0 : item.type) === 'promotion' || (item === null || item === void 0 ? void 0 : item.type) === 'product' && (item === null || item === void 0 || (_item$metadata = item.metadata) === null || _item$metadata === void 0 ? void 0 : _item$metadata.source) === 'promotion' && (item === null || item === void 0 || (_item$metadata2 = item.metadata) === null || _item$metadata2 === void 0 ? void 0 : _item$metadata2.actionType) === 'ITEM_REWARD';
|
|
538
538
|
});
|
|
539
539
|
if (hasPromoDiscountItem) return fromList;
|
|
540
540
|
var metadata = (product === null || product === void 0 ? void 0 : product.metadata) || {};
|
|
@@ -744,41 +744,10 @@ export var mergeRelationForms = function mergeRelationForms(relationForms) {
|
|
|
744
744
|
return item.form_record_ids.length > 0;
|
|
745
745
|
}); // 过滤掉没有有效记录的表单
|
|
746
746
|
};
|
|
747
|
-
function getCustomerIdFromStorage(window) {
|
|
748
|
-
try {
|
|
749
|
-
var _window$getLocalStora;
|
|
750
|
-
var customer = JSON.parse((window === null || window === void 0 || (_window$getLocalStora = window.getLocalStorage) === null || _window$getLocalStora === void 0 ? void 0 : _window$getLocalStora.call(window, 'customer')) || '{}');
|
|
751
|
-
var customerId = Number(customer === null || customer === void 0 ? void 0 : customer.id);
|
|
752
|
-
return Number.isFinite(customerId) && customerId > 0 ? customerId : undefined;
|
|
753
|
-
} catch (_unused) {
|
|
754
|
-
return undefined;
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
/**
|
|
759
|
-
* 为购物车行补齐订单所需的 holder 信息(与 cartAccount 结构保持一致)
|
|
760
|
-
*/
|
|
761
|
-
export function ensureCartItemOriginHolder(cartItem, window) {
|
|
762
|
-
var _cartItem$_origin, _cartItem$_productIni;
|
|
763
|
-
if (cartItem !== null && cartItem !== void 0 && (_cartItem$_origin = cartItem._origin) !== null && _cartItem$_origin !== void 0 && _cartItem$_origin.holder) {
|
|
764
|
-
return;
|
|
765
|
-
}
|
|
766
|
-
var holderConfig = getProductHolderConfig((_cartItem$_productIni = cartItem === null || cartItem === void 0 ? void 0 : cartItem._productInit) !== null && _cartItem$_productIni !== void 0 ? _cartItem$_productIni : cartItem === null || cartItem === void 0 ? void 0 : cartItem._productOrigin);
|
|
767
|
-
var formRecordId = cartItem === null || cartItem === void 0 ? void 0 : cartItem.holder_id;
|
|
768
|
-
if (!(holderConfig !== null && holderConfig !== void 0 && holderConfig.resource_id) || formRecordId == null) {
|
|
769
|
-
return;
|
|
770
|
-
}
|
|
771
|
-
cartItem._origin.holder = {
|
|
772
|
-
customer_id: getCustomerIdFromStorage(window),
|
|
773
|
-
form_id: holderConfig.resource_id,
|
|
774
|
-
form_record: [formRecordId]
|
|
775
|
-
};
|
|
776
|
-
}
|
|
777
|
-
;
|
|
778
747
|
export var getAllDiscountList = function getAllDiscountList(cartItem) {
|
|
779
|
-
var _cartItem$
|
|
780
|
-
var discountList = (cartItem === null || cartItem === void 0 || (_cartItem$
|
|
781
|
-
((cartItem === null || cartItem === void 0 || (_cartItem$
|
|
748
|
+
var _cartItem$_origin, _cartItem$_origin2;
|
|
749
|
+
var discountList = (cartItem === null || cartItem === void 0 || (_cartItem$_origin = cartItem._origin) === null || _cartItem$_origin === void 0 || (_cartItem$_origin = _cartItem$_origin.product) === null || _cartItem$_origin === void 0 ? void 0 : _cartItem$_origin.discount_list) || [];
|
|
750
|
+
((cartItem === null || cartItem === void 0 || (_cartItem$_origin2 = cartItem._origin) === null || _cartItem$_origin2 === void 0 || (_cartItem$_origin2 = _cartItem$_origin2.product) === null || _cartItem$_origin2 === void 0 ? void 0 : _cartItem$_origin2.product_bundle) || []).forEach(function (item) {
|
|
782
751
|
discountList = [].concat(_toConsumableArray(discountList), _toConsumableArray((item === null || item === void 0 ? void 0 : item.discount_list) || []));
|
|
783
752
|
item.discount_list = undefined;
|
|
784
753
|
});
|
|
@@ -1079,7 +1048,7 @@ export function createDefaultTempOrder(params) {
|
|
|
1079
1048
|
};
|
|
1080
1049
|
}
|
|
1081
1050
|
export function buildSubmitPayload(params) {
|
|
1082
|
-
var _tempOrder$customer_i, _tempOrder$order_numb, _tempOrder$shop_order, _tempOrder$shop_full_, _ref30, _tempOrder$is_price_i, _tempOrder$is_deposit, _enhancedPayload$summ;
|
|
1051
|
+
var _tempOrder$customer_i, _tempOrder$country_ca, _tempOrder$phone, _tempOrder$email, _tempOrder$order_numb, _tempOrder$shop_order, _tempOrder$shop_full_, _ref30, _tempOrder$is_price_i, _tempOrder$is_deposit, _enhancedPayload$summ;
|
|
1083
1052
|
var tempOrder = params.tempOrder,
|
|
1084
1053
|
cacheId = params.cacheId,
|
|
1085
1054
|
_params$now = params.now,
|
|
@@ -1125,6 +1094,9 @@ export function buildSubmitPayload(params) {
|
|
|
1125
1094
|
var payload = _objectSpread(_objectSpread({}, tempOrderRest), {}, {
|
|
1126
1095
|
customer_id: (_tempOrder$customer_i = tempOrder.customer_id) !== null && _tempOrder$customer_i !== void 0 ? _tempOrder$customer_i : 1,
|
|
1127
1096
|
customer_name: tempOrder.customer_name || 'Walk-In',
|
|
1097
|
+
country_calling_code: String((_tempOrder$country_ca = tempOrder.country_calling_code) !== null && _tempOrder$country_ca !== void 0 ? _tempOrder$country_ca : ''),
|
|
1098
|
+
phone: String((_tempOrder$phone = tempOrder.phone) !== null && _tempOrder$phone !== void 0 ? _tempOrder$phone : ''),
|
|
1099
|
+
email: String((_tempOrder$email = tempOrder.email) !== null && _tempOrder$email !== void 0 ? _tempOrder$email : ''),
|
|
1128
1100
|
order_number: (_tempOrder$order_numb = tempOrder.order_number) !== null && _tempOrder$order_numb !== void 0 ? _tempOrder$order_numb : null,
|
|
1129
1101
|
shop_order_number: (_tempOrder$shop_order = tempOrder.shop_order_number) !== null && _tempOrder$shop_order !== void 0 ? _tempOrder$shop_order : null,
|
|
1130
1102
|
shop_full_order_number: (_tempOrder$shop_full_ = tempOrder.shop_full_order_number) !== null && _tempOrder$shop_full_ !== void 0 ? _tempOrder$shop_full_ : null,
|
|
@@ -1184,9 +1156,7 @@ export function mapPaymentItemToOrderPayment(paymentItem) {
|
|
|
1184
1156
|
var item = paymentItem;
|
|
1185
1157
|
var customPaymentId = (_item$custom_payment_ = item.custom_payment_id) !== null && _item$custom_payment_ !== void 0 ? _item$custom_payment_ : item.id;
|
|
1186
1158
|
var metadata = item.metadata && _typeof(item.metadata) === 'object' ? _objectSpread({}, item.metadata) : {};
|
|
1187
|
-
|
|
1188
|
-
metadata.unique_payment_number = String(item.uuid);
|
|
1189
|
-
}
|
|
1159
|
+
var paymentNumber = item.payment_number;
|
|
1190
1160
|
var paymentMetadataKeys = ['rounding_rule', 'shop_wallet_pass_id', 'actual_paid_amount', 'change_given_amount'];
|
|
1191
1161
|
for (var _i3 = 0, _paymentMetadataKeys = paymentMetadataKeys; _i3 < _paymentMetadataKeys.length; _i3++) {
|
|
1192
1162
|
var key = _paymentMetadataKeys[_i3];
|
|
@@ -1197,8 +1167,10 @@ export function mapPaymentItemToOrderPayment(paymentItem) {
|
|
|
1197
1167
|
var timestamp = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
|
1198
1168
|
var paymentTime = (_item$payment_time = item.payment_time) !== null && _item$payment_time !== void 0 ? _item$payment_time : timestamp;
|
|
1199
1169
|
var createdAt = (_item$created_at = item.created_at) !== null && _item$created_at !== void 0 ? _item$created_at : timestamp;
|
|
1200
|
-
return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, item.order_payment_id !== undefined ? {
|
|
1170
|
+
return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, item.order_payment_id !== undefined ? {
|
|
1201
1171
|
order_payment_id: item.order_payment_id
|
|
1172
|
+
} : {}), paymentNumber !== undefined && paymentNumber !== null && paymentNumber !== '' ? {
|
|
1173
|
+
payment_number: String(paymentNumber)
|
|
1202
1174
|
} : {}), {}, {
|
|
1203
1175
|
amount: String((_item$amount = item.amount) !== null && _item$amount !== void 0 ? _item$amount : '0.00'),
|
|
1204
1176
|
code: String(item.code || ''),
|
|
@@ -20,6 +20,7 @@ export declare class PaymentModule extends BaseModule implements Module, Payment
|
|
|
20
20
|
protected defaultVersion: string;
|
|
21
21
|
request: RequestPlugin;
|
|
22
22
|
private app;
|
|
23
|
+
private appPlugin;
|
|
23
24
|
private store;
|
|
24
25
|
window: WindowPlugin;
|
|
25
26
|
private dbManager;
|
|
@@ -40,6 +41,7 @@ export declare class PaymentModule extends BaseModule implements Module, Payment
|
|
|
40
41
|
* paymentModule.updateOtherParams({ fatherModule: 'bookingTicket' });
|
|
41
42
|
*/
|
|
42
43
|
updateOtherParams(params: Record<string, any>): void;
|
|
44
|
+
private getPaymentNumberAppData;
|
|
43
45
|
/**
|
|
44
46
|
* 记录信息日志
|
|
45
47
|
*/
|