@pisell/pisellos 2.3.7 → 2.3.8
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/modules/Order/index.d.ts +18 -2
- package/dist/modules/Order/index.js +252 -115
- package/dist/modules/Order/types.d.ts +15 -2
- package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
- package/dist/modules/Order/utils/bundleDiscountHydration.js +144 -0
- package/dist/modules/Order/utils.js +83 -28
- package/dist/solution/BaseSales/index.d.ts +8 -1
- package/dist/solution/BaseSales/index.js +86 -52
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/lib/model/strategy/adapter/promotion/index.js +49 -0
- package/lib/modules/Order/index.d.ts +18 -2
- package/lib/modules/Order/index.js +179 -27
- package/lib/modules/Order/types.d.ts +15 -2
- package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
- package/lib/modules/Order/utils/bundleDiscountHydration.js +139 -0
- package/lib/modules/Order/utils.js +45 -2
- package/lib/solution/BaseSales/index.d.ts +8 -1
- package/lib/solution/BaseSales/index.js +38 -9
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -3,15 +3,15 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
|
|
|
3
3
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
4
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
5
5
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
6
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
7
|
-
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."); }
|
|
8
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
9
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
6
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
11
7
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
12
8
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
13
9
|
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; }
|
|
14
10
|
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; }
|
|
11
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
12
|
+
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."); }
|
|
13
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
14
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
15
15
|
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; } } }; }
|
|
16
16
|
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); }
|
|
17
17
|
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; }
|
|
@@ -38,6 +38,7 @@ import dayjs from 'dayjs';
|
|
|
38
38
|
import { processCartPromotion, appendPromotionTags as _appendPromotionTags, getOrderProductUid as getPromotionUid } from "../../solution/BaseSales/utils/cartPromotion";
|
|
39
39
|
import { buildProductLineFingerprint, getProductIdentityIndex, getSafeProductNum, isIdentityMatch, normalizeOrderProduct } from "../../solution/ScanOrder/utils";
|
|
40
40
|
import { syncManualProductDiscountProductNum } from "./utils/manualProductDiscount";
|
|
41
|
+
import { expandHydratedProductsForDiscountCollection, restoreHydratedBundleDiscounts } from "./utils/bundleDiscountHydration";
|
|
41
42
|
import { DiscountModule } from "../Discount";
|
|
42
43
|
import { RulesModule } from "../Rules";
|
|
43
44
|
import { UnavailableReason } from "../Rules/types";
|
|
@@ -64,6 +65,20 @@ function isManualProductDiscountProduct(product) {
|
|
|
64
65
|
return (item === null || item === void 0 ? void 0 : item.type) === 'product';
|
|
65
66
|
});
|
|
66
67
|
}
|
|
68
|
+
var ORDER_PAYMENT_STATUS_PAID = 'paid';
|
|
69
|
+
var ORDER_PAYMENT_STATUS_PENDING = 'payment_pending';
|
|
70
|
+
function isVoucherPaymentRecord(payment) {
|
|
71
|
+
return (payment === null || payment === void 0 ? void 0 : payment.voucher_id) !== undefined && Number(payment.voucher_id) !== 0;
|
|
72
|
+
}
|
|
73
|
+
function hasSyncedOrderPaymentRecord(payment) {
|
|
74
|
+
return (payment === null || payment === void 0 ? void 0 : payment.order_payment_id) !== undefined && payment.order_payment_id !== null;
|
|
75
|
+
}
|
|
76
|
+
function isPendingVoucherPaymentRecord(payment) {
|
|
77
|
+
return isVoucherPaymentRecord(payment) && (payment === null || payment === void 0 ? void 0 : payment.status) === ORDER_PAYMENT_STATUS_PENDING;
|
|
78
|
+
}
|
|
79
|
+
function isPaidPaymentRecord(payment) {
|
|
80
|
+
return (payment === null || payment === void 0 ? void 0 : payment.status) === ORDER_PAYMENT_STATUS_PAID;
|
|
81
|
+
}
|
|
67
82
|
export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
68
83
|
_inherits(OrderModule, _BaseModule);
|
|
69
84
|
var _super = _createSuper(OrderModule);
|
|
@@ -108,7 +123,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
108
123
|
key: "collectHydratedEditDiscounts",
|
|
109
124
|
value: function collectHydratedEditDiscounts(products) {
|
|
110
125
|
var discountMap = new Map();
|
|
111
|
-
var _iterator = _createForOfIteratorHelper(products
|
|
126
|
+
var _iterator = _createForOfIteratorHelper(expandHydratedProductsForDiscountCollection(products)),
|
|
112
127
|
_step;
|
|
113
128
|
try {
|
|
114
129
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -138,6 +153,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
138
153
|
discount: item === null || item === void 0 ? void 0 : item.discount,
|
|
139
154
|
_num: Number((_ref6 = (_ref7 = (_item$metadata$num2 = item === null || item === void 0 || (_item$metadata2 = item.metadata) === null || _item$metadata2 === void 0 ? void 0 : _item$metadata2.num) !== null && _item$metadata$num2 !== void 0 ? _item$metadata$num2 : product === null || product === void 0 ? void 0 : product.num) !== null && _ref7 !== void 0 ? _ref7 : product === null || product === void 0 ? void 0 : product.product_quantity) !== null && _ref6 !== void 0 ? _ref6 : 1) || 1
|
|
140
155
|
};
|
|
156
|
+
var existed = discountMap.get(key);
|
|
157
|
+
if (existed) {
|
|
158
|
+
existed.amount = Number(existed.amount || 0) + amount;
|
|
159
|
+
existed.used_par_value = String(Number(existed.used_par_value || 0) + amount);
|
|
160
|
+
existed.balance = String(Number(existed.balance || 0) + amount);
|
|
161
|
+
existed.applicableProductDetails = [].concat(_toConsumableArray(existed.applicableProductDetails || []), [detail]);
|
|
162
|
+
existed.appliedProductDetails = [].concat(_toConsumableArray(existed.appliedProductDetails || []), [detail]);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
141
165
|
discountMap.set(key, {
|
|
142
166
|
id: key,
|
|
143
167
|
product_name: '',
|
|
@@ -1253,6 +1277,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1253
1277
|
return mapPaymentItemsToOrderPayments(payments, {
|
|
1254
1278
|
includeVoided: false
|
|
1255
1279
|
}).reduce(function (sum, payment) {
|
|
1280
|
+
if (!isPaidPaymentRecord(payment)) return sum;
|
|
1256
1281
|
return sum.plus(_this4.calculatePaymentEffectiveAmount(payment));
|
|
1257
1282
|
}, new Decimal(0));
|
|
1258
1283
|
}
|
|
@@ -1381,7 +1406,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1381
1406
|
var _this5 = this;
|
|
1382
1407
|
return (payments || []).reduce(function (sum, payment) {
|
|
1383
1408
|
var paymentRecord = payment;
|
|
1384
|
-
if ((paymentRecord
|
|
1409
|
+
if (!isPaidPaymentRecord(paymentRecord)) return sum;
|
|
1385
1410
|
var isDepositPayment = paymentRecord.type === 'deposit' || paymentRecord.order_payment_type === 'deposit';
|
|
1386
1411
|
if (!isDepositPayment) return sum;
|
|
1387
1412
|
if (paymentRecord.origin_amount !== undefined && paymentRecord.origin_amount !== null && paymentRecord.origin_amount !== '') {
|
|
@@ -1532,7 +1557,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1532
1557
|
var _this6 = this;
|
|
1533
1558
|
return (payments || []).reduce(function (summary, payment) {
|
|
1534
1559
|
var paymentRecord = payment;
|
|
1535
|
-
if ((paymentRecord
|
|
1560
|
+
if (!isPaidPaymentRecord(paymentRecord)) return summary;
|
|
1536
1561
|
return {
|
|
1537
1562
|
customerPaidAmount: summary.customerPaidAmount.plus(paymentRecord.amount || 0),
|
|
1538
1563
|
orderPaidAmount: summary.orderPaidAmount.plus(paymentRecord.origin_amount || 0),
|
|
@@ -2101,6 +2126,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2101
2126
|
key: "restoreOrder",
|
|
2102
2127
|
value: function restoreOrder() {
|
|
2103
2128
|
var _this$store$discount11, _this$store$discount12;
|
|
2129
|
+
this.logInfo('restoreOrder start', {});
|
|
2104
2130
|
var freshTempOrder = this.createDefaultTempOrderInstance();
|
|
2105
2131
|
this.ensureExternalSaleNumber(freshTempOrder);
|
|
2106
2132
|
this.store.tempOrder = freshTempOrder;
|
|
@@ -3172,6 +3198,76 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3172
3198
|
this.persistTempOrder();
|
|
3173
3199
|
return tempOrder.payments;
|
|
3174
3200
|
}
|
|
3201
|
+
}, {
|
|
3202
|
+
key: "confirmPendingVoucherPaymentsInList",
|
|
3203
|
+
value: function confirmPendingVoucherPaymentsInList(payments) {
|
|
3204
|
+
return (payments || []).map(function (payment) {
|
|
3205
|
+
if (!isPendingVoucherPaymentRecord(payment)) return payment;
|
|
3206
|
+
return _objectSpread(_objectSpread({}, payment), {}, {
|
|
3207
|
+
status: ORDER_PAYMENT_STATUS_PAID
|
|
3208
|
+
});
|
|
3209
|
+
});
|
|
3210
|
+
}
|
|
3211
|
+
}, {
|
|
3212
|
+
key: "discardPendingVoucherPaymentsFromList",
|
|
3213
|
+
value: function discardPendingVoucherPaymentsFromList(payments) {
|
|
3214
|
+
return (payments || []).filter(function (payment) {
|
|
3215
|
+
return !isPendingVoucherPaymentRecord(payment);
|
|
3216
|
+
});
|
|
3217
|
+
}
|
|
3218
|
+
}, {
|
|
3219
|
+
key: "prepareVoucherPaymentsForSubmit",
|
|
3220
|
+
value: function prepareVoucherPaymentsForSubmit(payments) {
|
|
3221
|
+
var confirmPendingVoucherPayments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
3222
|
+
var mappedPayments = mapPaymentItemsToOrderPayments(payments || []);
|
|
3223
|
+
return confirmPendingVoucherPayments ? this.confirmPendingVoucherPaymentsInList(mappedPayments) : this.discardPendingVoucherPaymentsFromList(mappedPayments);
|
|
3224
|
+
}
|
|
3225
|
+
}, {
|
|
3226
|
+
key: "applyPaymentLifecycleChange",
|
|
3227
|
+
value: function applyPaymentLifecycleChange(tempOrder, options) {
|
|
3228
|
+
var _this19 = this;
|
|
3229
|
+
this.updateTempOrderPaymentStatus(tempOrder);
|
|
3230
|
+
if ((options === null || options === void 0 ? void 0 : options.persist) !== false) {
|
|
3231
|
+
this.persistTempOrder();
|
|
3232
|
+
}
|
|
3233
|
+
if ((options === null || options === void 0 ? void 0 : options.recalculateSummary) === false) return;
|
|
3234
|
+
var logContext = (options === null || options === void 0 ? void 0 : options.logContext) || 'payment lifecycle change';
|
|
3235
|
+
void this.recalculateSummary({
|
|
3236
|
+
createIfMissing: true
|
|
3237
|
+
}).catch(function (error) {
|
|
3238
|
+
_this19.logError("recalculate summary after ".concat(logContext, " failed"), {
|
|
3239
|
+
error: error instanceof Error ? error.message : String(error)
|
|
3240
|
+
});
|
|
3241
|
+
});
|
|
3242
|
+
}
|
|
3243
|
+
}, {
|
|
3244
|
+
key: "confirmPendingVoucherPayments",
|
|
3245
|
+
value: function confirmPendingVoucherPayments(options) {
|
|
3246
|
+
var tempOrder = this.ensureTempOrder();
|
|
3247
|
+
var payments = tempOrder.payments || [];
|
|
3248
|
+
var hasPendingVoucher = payments.some(function (payment) {
|
|
3249
|
+
return isPendingVoucherPaymentRecord(payment);
|
|
3250
|
+
});
|
|
3251
|
+
if (!hasPendingVoucher) return payments;
|
|
3252
|
+
tempOrder.payments = this.confirmPendingVoucherPaymentsInList(payments);
|
|
3253
|
+
this.applyPaymentLifecycleChange(tempOrder, _objectSpread(_objectSpread({}, options), {}, {
|
|
3254
|
+
logContext: 'confirmPendingVoucherPayments'
|
|
3255
|
+
}));
|
|
3256
|
+
return tempOrder.payments;
|
|
3257
|
+
}
|
|
3258
|
+
}, {
|
|
3259
|
+
key: "discardPendingVoucherPayments",
|
|
3260
|
+
value: function discardPendingVoucherPayments(options) {
|
|
3261
|
+
var tempOrder = this.ensureTempOrder();
|
|
3262
|
+
var payments = tempOrder.payments || [];
|
|
3263
|
+
var nextPayments = this.discardPendingVoucherPaymentsFromList(payments);
|
|
3264
|
+
if (nextPayments.length === payments.length) return payments;
|
|
3265
|
+
tempOrder.payments = nextPayments;
|
|
3266
|
+
this.applyPaymentLifecycleChange(tempOrder, _objectSpread(_objectSpread({}, options), {}, {
|
|
3267
|
+
logContext: 'discardPendingVoucherPayments'
|
|
3268
|
+
}));
|
|
3269
|
+
return tempOrder.payments;
|
|
3270
|
+
}
|
|
3175
3271
|
|
|
3176
3272
|
/**
|
|
3177
3273
|
* 覆盖当前订单中的 wallet pass 支付项。
|
|
@@ -3181,22 +3277,16 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3181
3277
|
*/
|
|
3182
3278
|
}, {
|
|
3183
3279
|
key: "updateVoucherOrderPayments",
|
|
3184
|
-
value: function updateVoucherOrderPayments(payments) {
|
|
3185
|
-
var
|
|
3280
|
+
value: function updateVoucherOrderPayments(payments, options) {
|
|
3281
|
+
var _this20 = this;
|
|
3186
3282
|
var tempOrder = this.ensureTempOrder();
|
|
3187
|
-
var isVoucherPayment = function isVoucherPayment(payment) {
|
|
3188
|
-
return payment.voucher_id !== undefined && Number(payment.voucher_id) !== 0;
|
|
3189
|
-
};
|
|
3190
|
-
var hasSyncedOrderPayment = function hasSyncedOrderPayment(payment) {
|
|
3191
|
-
return payment.order_payment_id !== undefined && payment.order_payment_id !== null;
|
|
3192
|
-
};
|
|
3193
3283
|
var isOrderPaymentType = function isOrderPaymentType(value) {
|
|
3194
3284
|
return value === 'normal' || value === 'deposit';
|
|
3195
3285
|
};
|
|
3196
3286
|
var voucherOrderPaymentType = this.resolveNextOrderPaymentType(tempOrder);
|
|
3197
3287
|
var withVoucherPaymentType = function withVoucherPaymentType(payment) {
|
|
3198
3288
|
var paymentRecord = payment;
|
|
3199
|
-
if (!
|
|
3289
|
+
if (!isVoucherPaymentRecord(paymentRecord)) return payment;
|
|
3200
3290
|
var explicitPaymentType = isOrderPaymentType(paymentRecord.order_payment_type) ? paymentRecord.order_payment_type : isOrderPaymentType(paymentRecord.type) ? paymentRecord.type : undefined;
|
|
3201
3291
|
var nextPaymentType = explicitPaymentType || voucherOrderPaymentType;
|
|
3202
3292
|
var shouldPreserveCustomPaymentType = paymentRecord.custom_payment_type === undefined && paymentRecord.type !== undefined && !isOrderPaymentType(paymentRecord.type);
|
|
@@ -3207,36 +3297,39 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3207
3297
|
order_payment_type: nextPaymentType
|
|
3208
3298
|
});
|
|
3209
3299
|
};
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3300
|
+
var normalizeVoucherPaymentStatus = function normalizeVoucherPaymentStatus(payment) {
|
|
3301
|
+
var paymentRecord = payment;
|
|
3302
|
+
if (!isVoucherPaymentRecord(paymentRecord)) return payment;
|
|
3303
|
+
if (hasSyncedOrderPaymentRecord(paymentRecord) && (paymentRecord.status === undefined || paymentRecord.status === 'active')) {
|
|
3304
|
+
return _objectSpread(_objectSpread({}, paymentRecord), {}, {
|
|
3305
|
+
status: ORDER_PAYMENT_STATUS_PAID
|
|
3306
|
+
});
|
|
3307
|
+
}
|
|
3308
|
+
if (paymentRecord.status !== undefined && paymentRecord.status !== 'active') {
|
|
3309
|
+
return payment;
|
|
3310
|
+
}
|
|
3311
|
+
return _objectSpread(_objectSpread({}, paymentRecord), {}, {
|
|
3312
|
+
status: (options === null || options === void 0 ? void 0 : options.status) || ORDER_PAYMENT_STATUS_PENDING
|
|
3313
|
+
});
|
|
3314
|
+
};
|
|
3222
3315
|
var mappedVouchers = mapPaymentItemsToOrderPayments(payments.map(function (payment) {
|
|
3223
|
-
return
|
|
3224
|
-
defaultPaid:
|
|
3316
|
+
return _this20.normalizePaymentSource(normalizeVoucherPaymentStatus(withVoucherPaymentType(payment)), {
|
|
3317
|
+
defaultPaid: false
|
|
3225
3318
|
});
|
|
3226
3319
|
})).filter(function (payment) {
|
|
3227
|
-
return
|
|
3320
|
+
return isVoucherPaymentRecord(payment);
|
|
3228
3321
|
});
|
|
3229
3322
|
var nonVoucherPayments = (tempOrder.payments || []).filter(function (payment) {
|
|
3230
|
-
return !
|
|
3323
|
+
return !isVoucherPaymentRecord(payment);
|
|
3231
3324
|
});
|
|
3232
3325
|
var syncedVoucherPayments = (tempOrder.payments || []).filter(function (payment) {
|
|
3233
|
-
return
|
|
3326
|
+
return isVoucherPaymentRecord(payment) && hasSyncedOrderPaymentRecord(payment);
|
|
3234
3327
|
});
|
|
3235
3328
|
var syncedVoucherPaymentIds = new Set(syncedVoucherPayments.map(function (payment) {
|
|
3236
3329
|
return String(payment.order_payment_id);
|
|
3237
3330
|
}));
|
|
3238
3331
|
var replaceableVouchers = mappedVouchers.filter(function (payment) {
|
|
3239
|
-
if (!
|
|
3332
|
+
if (!hasSyncedOrderPaymentRecord(payment)) return true;
|
|
3240
3333
|
return !syncedVoucherPaymentIds.has(String(payment.order_payment_id));
|
|
3241
3334
|
});
|
|
3242
3335
|
var cappedVouchers = this.capVoucherPaymentsByRemainingAmount({
|
|
@@ -3249,7 +3342,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3249
3342
|
void this.recalculateSummary({
|
|
3250
3343
|
createIfMissing: true
|
|
3251
3344
|
}).catch(function (error) {
|
|
3252
|
-
|
|
3345
|
+
_this20.logError('recalculate summary after updateVoucherOrderPayments failed', {
|
|
3253
3346
|
error: error instanceof Error ? error.message : String(error)
|
|
3254
3347
|
});
|
|
3255
3348
|
});
|
|
@@ -3385,7 +3478,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3385
3478
|
var _appendProductLineToTempOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(tempOrder, product, booking) {
|
|
3386
3479
|
var _booking_uid,
|
|
3387
3480
|
_metadata,
|
|
3388
|
-
|
|
3481
|
+
_this21 = this;
|
|
3389
3482
|
var linked, productToAdd, incomingFingerprint, normalizedIncoming, incomingBookingUid, hasIncomingGoodPass, hasIncomingProductNote, hasIncomingBookingUid, shouldForceNewLine, matchedIndex, matchedProduct, existedFingerprint, shouldMerge, _targetProduct$metada, targetProduct, targetUid, normalizedProduct, nextNum, targetIsManualProductDiscount, nextDiscountList;
|
|
3390
3483
|
return _regeneratorRuntime().wrap(function _callee16$(_context18) {
|
|
3391
3484
|
while (1) switch (_context18.prev = _context18.next) {
|
|
@@ -3410,8 +3503,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3410
3503
|
hasIncomingBookingUid = this.hasLinkedBookingUid(productToAdd) || this.hasLinkedBookingUid(normalizedIncoming);
|
|
3411
3504
|
shouldForceNewLine = !!booking || hasIncomingProductNote || hasIncomingBookingUid;
|
|
3412
3505
|
matchedIndex = hasIncomingGoodPass || shouldForceNewLine ? -1 : tempOrder.products.findIndex(function (item) {
|
|
3413
|
-
if (
|
|
3414
|
-
if (
|
|
3506
|
+
if (_this21.hasGoodPassDiscount(item)) return false;
|
|
3507
|
+
if (_this21.hasOrderProductLineNote(item)) return false;
|
|
3415
3508
|
if (item.order_detail_id !== undefined && item.order_detail_id !== null) return false;
|
|
3416
3509
|
if (item.product_id !== productToAdd.product_id) return false;
|
|
3417
3510
|
if (item.product_variant_id !== productToAdd.product_variant_id) return false;
|
|
@@ -3559,8 +3652,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3559
3652
|
_context19.next = 22;
|
|
3560
3653
|
return this.finalizeProductOrderMutation(tempOrder);
|
|
3561
3654
|
case 22:
|
|
3655
|
+
this.logInfo('addProductToOrder success', {
|
|
3656
|
+
product_id: product.product_id,
|
|
3657
|
+
with_booking: !!booking
|
|
3658
|
+
});
|
|
3562
3659
|
return _context19.abrupt("return", tempOrder.products);
|
|
3563
|
-
case
|
|
3660
|
+
case 24:
|
|
3564
3661
|
case "end":
|
|
3565
3662
|
return _context19.stop();
|
|
3566
3663
|
}
|
|
@@ -3660,8 +3757,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3660
3757
|
_context20.next = 40;
|
|
3661
3758
|
return this.finalizeProductOrderMutation(tempOrder, options);
|
|
3662
3759
|
case 40:
|
|
3760
|
+
this.logInfo('addProductsToOrder success', {
|
|
3761
|
+
itemsCount: items.length
|
|
3762
|
+
});
|
|
3663
3763
|
return _context20.abrupt("return", tempOrder.products);
|
|
3664
|
-
case
|
|
3764
|
+
case 42:
|
|
3665
3765
|
case "end":
|
|
3666
3766
|
return _context20.stop();
|
|
3667
3767
|
}
|
|
@@ -3701,17 +3801,17 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3701
3801
|
}, {
|
|
3702
3802
|
key: "preservePersistedBundlePriceFields",
|
|
3703
3803
|
value: function preservePersistedBundlePriceFields(previousBundles, nextBundles) {
|
|
3704
|
-
var
|
|
3804
|
+
var _this22 = this;
|
|
3705
3805
|
if (!Array.isArray(nextBundles)) return nextBundles;
|
|
3706
3806
|
if (!Array.isArray(previousBundles) || previousBundles.length === 0) return nextBundles;
|
|
3707
3807
|
var previousByIdentity = new Map();
|
|
3708
3808
|
previousBundles.forEach(function (bundle) {
|
|
3709
|
-
var identity =
|
|
3809
|
+
var identity = _this22.getBundleRuntimeIdentity(bundle);
|
|
3710
3810
|
if (identity) previousByIdentity.set(identity, bundle);
|
|
3711
3811
|
});
|
|
3712
3812
|
return nextBundles.map(function (bundle, index) {
|
|
3713
3813
|
if (!bundle || _typeof(bundle) !== 'object') return bundle;
|
|
3714
|
-
var previous = previousByIdentity.get(
|
|
3814
|
+
var previous = previousByIdentity.get(_this22.getBundleRuntimeIdentity(bundle)) || previousBundles[index];
|
|
3715
3815
|
if (!previous || _typeof(previous) !== 'object') return bundle;
|
|
3716
3816
|
return _objectSpread(_objectSpread({}, bundle), {}, {
|
|
3717
3817
|
price: previous.price,
|
|
@@ -3879,8 +3979,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3879
3979
|
});
|
|
3880
3980
|
case 8:
|
|
3881
3981
|
this.persistTempOrder();
|
|
3982
|
+
this.logInfo('updateOrderProduct success', {
|
|
3983
|
+
params: params
|
|
3984
|
+
});
|
|
3882
3985
|
return _context21.abrupt("return", tempOrder.products);
|
|
3883
|
-
case
|
|
3986
|
+
case 11:
|
|
3884
3987
|
case "end":
|
|
3885
3988
|
return _context21.stop();
|
|
3886
3989
|
}
|
|
@@ -3895,7 +3998,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3895
3998
|
key: "updateOrderProducts",
|
|
3896
3999
|
value: function () {
|
|
3897
4000
|
var _updateOrderProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20(paramsList) {
|
|
3898
|
-
var
|
|
4001
|
+
var _this23 = this;
|
|
3899
4002
|
var tempOrder;
|
|
3900
4003
|
return _regeneratorRuntime().wrap(function _callee20$(_context22) {
|
|
3901
4004
|
while (1) switch (_context22.prev = _context22.next) {
|
|
@@ -3908,13 +4011,16 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3908
4011
|
return _context22.abrupt("return", tempOrder.products);
|
|
3909
4012
|
case 3:
|
|
3910
4013
|
paramsList.forEach(function (params) {
|
|
3911
|
-
|
|
4014
|
+
_this23.applyOrderProductUpdateToTempOrder(tempOrder, params);
|
|
3912
4015
|
});
|
|
3913
4016
|
_context22.next = 6;
|
|
3914
4017
|
return this.finalizeAfterProductsMutation(tempOrder);
|
|
3915
4018
|
case 6:
|
|
4019
|
+
this.logInfo('updateOrderProduct success', {
|
|
4020
|
+
paramsList: paramsList
|
|
4021
|
+
});
|
|
3916
4022
|
return _context22.abrupt("return", tempOrder.products);
|
|
3917
|
-
case
|
|
4023
|
+
case 8:
|
|
3918
4024
|
case "end":
|
|
3919
4025
|
return _context22.stop();
|
|
3920
4026
|
}
|
|
@@ -3986,8 +4092,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
3986
4092
|
});
|
|
3987
4093
|
case 22:
|
|
3988
4094
|
this.persistTempOrder();
|
|
4095
|
+
this.logInfo('updateOrderProductQuantity success', {
|
|
4096
|
+
params: params
|
|
4097
|
+
});
|
|
3989
4098
|
return _context23.abrupt("return", tempOrder.products);
|
|
3990
|
-
case
|
|
4099
|
+
case 25:
|
|
3991
4100
|
case "end":
|
|
3992
4101
|
return _context23.stop();
|
|
3993
4102
|
}
|
|
@@ -4072,7 +4181,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4072
4181
|
key: "removeProductsFromOrder",
|
|
4073
4182
|
value: (function () {
|
|
4074
4183
|
var _removeProductsFromOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee23(identities) {
|
|
4075
|
-
var
|
|
4184
|
+
var _this24 = this;
|
|
4076
4185
|
var tempOrder, productsBeforeRemove, bookingsBeforeRemove, matchedProducts, removedProducts, _i2, _removedProducts, product, linkedBookingUidsToRemove, _iterator21, _step21, _loop3;
|
|
4077
4186
|
return _regeneratorRuntime().wrap(function _callee23$(_context26) {
|
|
4078
4187
|
while (1) switch (_context26.prev = _context26.next) {
|
|
@@ -4127,7 +4236,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4127
4236
|
}
|
|
4128
4237
|
if (productUid !== undefined && productUid !== null && productUid !== '') {
|
|
4129
4238
|
bookingsBeforeRemove.forEach(function (booking) {
|
|
4130
|
-
var bookingUid =
|
|
4239
|
+
var bookingUid = _this24.getBookingUniqueIdentificationNumber(booking);
|
|
4131
4240
|
if (bookingUid && String((booking === null || booking === void 0 ? void 0 : booking.product_uid) || '') === String(productUid)) {
|
|
4132
4241
|
linkedBookingUidsToRemove.add(bookingUid);
|
|
4133
4242
|
}
|
|
@@ -4179,8 +4288,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4179
4288
|
_context26.next = 31;
|
|
4180
4289
|
return this.finalizeAfterProductsMutation(tempOrder);
|
|
4181
4290
|
case 31:
|
|
4291
|
+
this.logInfo('removeProductsFromOrder success', {
|
|
4292
|
+
identities: identities
|
|
4293
|
+
});
|
|
4182
4294
|
return _context26.abrupt("return", tempOrder.products);
|
|
4183
|
-
case
|
|
4295
|
+
case 33:
|
|
4184
4296
|
case "end":
|
|
4185
4297
|
return _context26.stop();
|
|
4186
4298
|
}
|
|
@@ -4242,8 +4354,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4242
4354
|
});
|
|
4243
4355
|
case 11:
|
|
4244
4356
|
this.persistTempOrder();
|
|
4357
|
+
this.logInfo('clearOrderCartLines success', {});
|
|
4245
4358
|
return _context28.abrupt("return", tempOrder);
|
|
4246
|
-
case
|
|
4359
|
+
case 14:
|
|
4247
4360
|
case "end":
|
|
4248
4361
|
return _context28.stop();
|
|
4249
4362
|
}
|
|
@@ -4372,39 +4485,54 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4372
4485
|
value: function () {
|
|
4373
4486
|
var _runSubmitTempOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee29(params) {
|
|
4374
4487
|
var _params$cacheId2, _this$otherParams5, _ref72, _ref73, _submitSnapshot$busin, _this$otherParams6, _this$otherParams7, _submitSnapshot$type;
|
|
4375
|
-
var tempOrder, latestSummary, effectiveCacheId,
|
|
4488
|
+
var tempOrder, shouldConfirmPendingVoucherPayments, hasPaymentOverride, preparedPaymentOverride, latestSummary, effectiveCacheId, hasPaymentStatusOverride, hasSmallTicketDataFlagOverride, enhancePayload, submitSnapshot, payload, result, _payload$payments, _payload$payments2, backendErrorResponse, submittedOrderId, resultRecord;
|
|
4376
4489
|
return _regeneratorRuntime().wrap(function _callee29$(_context32) {
|
|
4377
4490
|
while (1) switch (_context32.prev = _context32.next) {
|
|
4378
4491
|
case 0:
|
|
4379
4492
|
tempOrder = this.ensureTempOrder();
|
|
4493
|
+
shouldConfirmPendingVoucherPayments = (params === null || params === void 0 ? void 0 : params.confirmPendingVoucherPayments) !== false;
|
|
4494
|
+
hasPaymentOverride = (params === null || params === void 0 ? void 0 : params.payments) !== undefined;
|
|
4495
|
+
preparedPaymentOverride = hasPaymentOverride ? this.prepareVoucherPaymentsForSubmit((params === null || params === void 0 ? void 0 : params.payments) || [], shouldConfirmPendingVoucherPayments) : undefined;
|
|
4496
|
+
if (!hasPaymentOverride) {
|
|
4497
|
+
if (shouldConfirmPendingVoucherPayments) {
|
|
4498
|
+
this.confirmPendingVoucherPayments({
|
|
4499
|
+
persist: false,
|
|
4500
|
+
recalculateSummary: false
|
|
4501
|
+
});
|
|
4502
|
+
} else {
|
|
4503
|
+
this.discardPendingVoucherPayments({
|
|
4504
|
+
persist: false,
|
|
4505
|
+
recalculateSummary: false
|
|
4506
|
+
});
|
|
4507
|
+
}
|
|
4508
|
+
}
|
|
4380
4509
|
this.persistTempOrder();
|
|
4381
|
-
_context32.next =
|
|
4510
|
+
_context32.next = 8;
|
|
4382
4511
|
return this.recalculateSummary({
|
|
4383
4512
|
createIfMissing: true
|
|
4384
4513
|
});
|
|
4385
|
-
case
|
|
4514
|
+
case 8:
|
|
4386
4515
|
_context32.t1 = _context32.sent;
|
|
4387
4516
|
if (_context32.t1) {
|
|
4388
|
-
_context32.next =
|
|
4517
|
+
_context32.next = 11;
|
|
4389
4518
|
break;
|
|
4390
4519
|
}
|
|
4391
4520
|
_context32.t1 = this.store.summary;
|
|
4392
|
-
case
|
|
4521
|
+
case 11:
|
|
4393
4522
|
_context32.t0 = _context32.t1;
|
|
4394
4523
|
if (_context32.t0) {
|
|
4395
|
-
_context32.next =
|
|
4524
|
+
_context32.next = 14;
|
|
4396
4525
|
break;
|
|
4397
4526
|
}
|
|
4398
4527
|
_context32.t0 = createEmptySummary();
|
|
4399
|
-
case
|
|
4528
|
+
case 14:
|
|
4400
4529
|
latestSummary = _context32.t0;
|
|
4401
4530
|
effectiveCacheId = (_params$cacheId2 = params === null || params === void 0 ? void 0 : params.cacheId) !== null && _params$cacheId2 !== void 0 ? _params$cacheId2 : this.cacheId;
|
|
4402
|
-
hasPaymentOverride = (params === null || params === void 0 ? void 0 : params.payments) !== undefined;
|
|
4403
4531
|
hasPaymentStatusOverride = (params === null || params === void 0 ? void 0 : params.paymentStatus) !== undefined;
|
|
4404
4532
|
hasSmallTicketDataFlagOverride = (params === null || params === void 0 ? void 0 : params.smallTicketDataFlag) !== undefined;
|
|
4405
4533
|
enhancePayload = hasPaymentOverride || hasPaymentStatusOverride || hasSmallTicketDataFlagOverride || params !== null && params !== void 0 && params.enhancePayload ? function (payload, ctx) {
|
|
4406
4534
|
var nextPayload = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, payload), hasPaymentOverride ? {
|
|
4407
|
-
payments:
|
|
4535
|
+
payments: preparedPaymentOverride || []
|
|
4408
4536
|
} : {}), hasPaymentStatusOverride ? {
|
|
4409
4537
|
payment_status: params === null || params === void 0 ? void 0 : params.paymentStatus
|
|
4410
4538
|
} : {}), hasSmallTicketDataFlagOverride ? {
|
|
@@ -4425,6 +4553,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4425
4553
|
request_unique_idempotency_token: params === null || params === void 0 ? void 0 : params.request_unique_idempotency_token,
|
|
4426
4554
|
enhance: enhancePayload
|
|
4427
4555
|
});
|
|
4556
|
+
console.log('[Order.runSubmitTempOrder.payload]', payload);
|
|
4428
4557
|
if (params !== null && params !== void 0 && params.syncMode) {
|
|
4429
4558
|
payload.sync_mode = true;
|
|
4430
4559
|
}
|
|
@@ -4432,10 +4561,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4432
4561
|
if (!payload.created_at) {
|
|
4433
4562
|
payload.created_at = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
|
4434
4563
|
}
|
|
4435
|
-
_context32.next =
|
|
4564
|
+
_context32.next = 26;
|
|
4436
4565
|
return this.saveDraft();
|
|
4437
|
-
case
|
|
4438
|
-
_context32.prev =
|
|
4566
|
+
case 26:
|
|
4567
|
+
_context32.prev = 26;
|
|
4439
4568
|
this.logInfo('submitTempOrder calling sales checkout', {
|
|
4440
4569
|
orderId: payload.order_id,
|
|
4441
4570
|
externalSaleNumber: payload.external_sale_number,
|
|
@@ -4445,26 +4574,26 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4445
4574
|
smallTicketDataFlag: payload.small_ticket_data_flag,
|
|
4446
4575
|
syncMode: payload.sync_mode
|
|
4447
4576
|
});
|
|
4448
|
-
_context32.next =
|
|
4577
|
+
_context32.next = 30;
|
|
4449
4578
|
return this.submitSalesOrder({
|
|
4450
4579
|
query: payload
|
|
4451
4580
|
});
|
|
4452
|
-
case
|
|
4581
|
+
case 30:
|
|
4453
4582
|
result = _context32.sent;
|
|
4454
|
-
_context32.next =
|
|
4583
|
+
_context32.next = 43;
|
|
4455
4584
|
break;
|
|
4456
|
-
case
|
|
4457
|
-
_context32.prev =
|
|
4458
|
-
_context32.t2 = _context32["catch"](
|
|
4585
|
+
case 33:
|
|
4586
|
+
_context32.prev = 33;
|
|
4587
|
+
_context32.t2 = _context32["catch"](26);
|
|
4459
4588
|
backendErrorResponse = this.extractSubmitErrorResponse(_context32.t2);
|
|
4460
4589
|
if (!backendErrorResponse) {
|
|
4461
|
-
_context32.next =
|
|
4590
|
+
_context32.next = 40;
|
|
4462
4591
|
break;
|
|
4463
4592
|
}
|
|
4464
4593
|
this.store.syncState = 'failed';
|
|
4465
4594
|
this.logSubmitBackendRejected(backendErrorResponse, payload);
|
|
4466
4595
|
return _context32.abrupt("return", backendErrorResponse);
|
|
4467
|
-
case
|
|
4596
|
+
case 40:
|
|
4468
4597
|
this.store.syncState = 'failed';
|
|
4469
4598
|
this.logError('submitTempOrder failed', {
|
|
4470
4599
|
error: _context32.t2 instanceof Error ? _context32.t2.message : String(_context32.t2),
|
|
@@ -4474,15 +4603,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4474
4603
|
paymentsCount: ((_payload$payments2 = payload.payments) === null || _payload$payments2 === void 0 ? void 0 : _payload$payments2.length) || 0
|
|
4475
4604
|
});
|
|
4476
4605
|
throw _context32.t2;
|
|
4477
|
-
case
|
|
4606
|
+
case 43:
|
|
4478
4607
|
if (!this.isSubmitResponseRejected(result)) {
|
|
4479
|
-
_context32.next =
|
|
4608
|
+
_context32.next = 47;
|
|
4480
4609
|
break;
|
|
4481
4610
|
}
|
|
4482
4611
|
this.store.syncState = 'failed';
|
|
4483
4612
|
this.logSubmitBackendRejected(result, payload);
|
|
4484
4613
|
return _context32.abrupt("return", result);
|
|
4485
|
-
case
|
|
4614
|
+
case 47:
|
|
4486
4615
|
submittedOrderId = this.extractOrderIdFromSubmitResult(result);
|
|
4487
4616
|
this.logInfo('runSubmitTempOrder: 提交成功', {
|
|
4488
4617
|
submittedOrderId: submittedOrderId,
|
|
@@ -4490,29 +4619,29 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4490
4619
|
tempOrder: tempOrder
|
|
4491
4620
|
});
|
|
4492
4621
|
if (!(submittedOrderId !== null && submittedOrderId !== undefined)) {
|
|
4493
|
-
_context32.next =
|
|
4622
|
+
_context32.next = 56;
|
|
4494
4623
|
break;
|
|
4495
4624
|
}
|
|
4496
4625
|
tempOrder.order_id = submittedOrderId;
|
|
4497
4626
|
resultRecord = result;
|
|
4498
|
-
_context32.next =
|
|
4627
|
+
_context32.next = 54;
|
|
4499
4628
|
return this.markLocalOrderSynced(submittedOrderId, (resultRecord === null || resultRecord === void 0 ? void 0 : resultRecord.data) || resultRecord || {});
|
|
4500
|
-
case
|
|
4501
|
-
_context32.next =
|
|
4629
|
+
case 54:
|
|
4630
|
+
_context32.next = 57;
|
|
4502
4631
|
break;
|
|
4503
|
-
case
|
|
4632
|
+
case 56:
|
|
4504
4633
|
if (this.isLocalPendingSubmitResult(result)) {
|
|
4505
4634
|
this.store.syncState = 'local';
|
|
4506
4635
|
} else {
|
|
4507
4636
|
this.store.syncState = 'submitted';
|
|
4508
4637
|
}
|
|
4509
|
-
case
|
|
4638
|
+
case 57:
|
|
4510
4639
|
return _context32.abrupt("return", result);
|
|
4511
|
-
case
|
|
4640
|
+
case 58:
|
|
4512
4641
|
case "end":
|
|
4513
4642
|
return _context32.stop();
|
|
4514
4643
|
}
|
|
4515
|
-
}, _callee29, this, [[
|
|
4644
|
+
}, _callee29, this, [[26, 33]]);
|
|
4516
4645
|
}));
|
|
4517
4646
|
function runSubmitTempOrder(_x32) {
|
|
4518
4647
|
return _runSubmitTempOrder.apply(this, arguments);
|
|
@@ -4584,10 +4713,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4584
4713
|
value: function extractSubmitErrorResponse(error) {
|
|
4585
4714
|
var _error$response,
|
|
4586
4715
|
_error$response2,
|
|
4587
|
-
|
|
4716
|
+
_this25 = this;
|
|
4588
4717
|
var candidates = [error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data, error === null || error === void 0 ? void 0 : error.data, error === null || error === void 0 || (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.body, error === null || error === void 0 ? void 0 : error.body];
|
|
4589
4718
|
return candidates.find(function (candidate) {
|
|
4590
|
-
return
|
|
4719
|
+
return _this25.isSubmitErrorResponse(candidate);
|
|
4591
4720
|
}) || null;
|
|
4592
4721
|
}
|
|
4593
4722
|
}, {
|
|
@@ -4615,41 +4744,46 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4615
4744
|
key: "syncPaymentsToOrder",
|
|
4616
4745
|
value: function () {
|
|
4617
4746
|
var _syncPaymentsToOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee31(params) {
|
|
4618
|
-
var
|
|
4747
|
+
var _params$confirmPendin;
|
|
4748
|
+
var tempOrder, mappedPayments, shouldConfirmPendingVoucherPayments, effectivePayments, completion, paidPaymentTotal, paymentStatus, paymentSyncIdempotencyToken, submitResult;
|
|
4619
4749
|
return _regeneratorRuntime().wrap(function _callee31$(_context34) {
|
|
4620
4750
|
while (1) switch (_context34.prev = _context34.next) {
|
|
4621
4751
|
case 0:
|
|
4622
4752
|
tempOrder = this.ensureTempOrder();
|
|
4623
4753
|
mappedPayments = mapPaymentItemsToOrderPayments(params.payments || []);
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4754
|
+
shouldConfirmPendingVoucherPayments = (_params$confirmPendin = params.confirmPendingVoucherPayments) !== null && _params$confirmPendin !== void 0 ? _params$confirmPendin : params.submitWhenPaid === true;
|
|
4755
|
+
effectivePayments = shouldConfirmPendingVoucherPayments ? this.confirmPendingVoucherPaymentsInList(mappedPayments) : params.confirmPendingVoucherPayments === false ? this.discardPendingVoucherPaymentsFromList(mappedPayments) : mappedPayments;
|
|
4756
|
+
completion = this.getPaymentCompletion(effectivePayments);
|
|
4757
|
+
paidPaymentTotal = this.calculatePaymentTotal(effectivePayments);
|
|
4758
|
+
paymentStatus = completion.isOrderFullyPaid ? params.paymentStatus || 'paid' : paidPaymentTotal.gt(0) ? 'partially_paid' : 'payment_processing';
|
|
4759
|
+
tempOrder.payments = effectivePayments;
|
|
4627
4760
|
tempOrder.payment_status = paymentStatus;
|
|
4628
4761
|
this.persistTempOrder();
|
|
4629
|
-
_context34.next =
|
|
4762
|
+
_context34.next = 12;
|
|
4630
4763
|
return this.saveDraft();
|
|
4631
|
-
case
|
|
4764
|
+
case 12:
|
|
4632
4765
|
if (params.submitWhenPaid) {
|
|
4633
|
-
_context34.next =
|
|
4766
|
+
_context34.next = 14;
|
|
4634
4767
|
break;
|
|
4635
4768
|
}
|
|
4636
4769
|
return _context34.abrupt("return", completion);
|
|
4637
|
-
case
|
|
4770
|
+
case 14:
|
|
4638
4771
|
if (!(this.store.syncState === 'submitting')) {
|
|
4639
|
-
_context34.next =
|
|
4772
|
+
_context34.next = 16;
|
|
4640
4773
|
break;
|
|
4641
4774
|
}
|
|
4642
4775
|
return _context34.abrupt("return", completion);
|
|
4643
|
-
case
|
|
4776
|
+
case 16:
|
|
4644
4777
|
this.store.syncState = 'submitting';
|
|
4645
|
-
paymentSyncIdempotencyToken = this.buildPaymentSyncIdempotencyToken(tempOrder,
|
|
4646
|
-
_context34.next =
|
|
4778
|
+
paymentSyncIdempotencyToken = this.buildPaymentSyncIdempotencyToken(tempOrder, effectivePayments);
|
|
4779
|
+
_context34.next = 20;
|
|
4647
4780
|
return this.submitTempOrder({
|
|
4648
|
-
payments:
|
|
4781
|
+
payments: effectivePayments,
|
|
4649
4782
|
paymentStatus: paymentStatus,
|
|
4650
4783
|
smallTicketDataFlag: params.smallTicketDataFlag,
|
|
4651
4784
|
businessCode: params.businessCode,
|
|
4652
4785
|
channel: params.channel,
|
|
4786
|
+
confirmPendingVoucherPayments: true,
|
|
4653
4787
|
enhancePayload: function enhancePayload(payload) {
|
|
4654
4788
|
var nextPayload = _objectSpread(_objectSpread({}, payload), {}, {
|
|
4655
4789
|
request_unique_idempotency_token: paymentSyncIdempotencyToken
|
|
@@ -4657,12 +4791,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
4657
4791
|
return nextPayload;
|
|
4658
4792
|
}
|
|
4659
4793
|
});
|
|
4660
|
-
case
|
|
4794
|
+
case 20:
|
|
4661
4795
|
submitResult = _context34.sent;
|
|
4662
4796
|
return _context34.abrupt("return", _objectSpread(_objectSpread({}, completion), {}, {
|
|
4663
4797
|
submitResult: submitResult
|
|
4664
4798
|
}));
|
|
4665
|
-
case
|
|
4799
|
+
case 22:
|
|
4666
4800
|
case "end":
|
|
4667
4801
|
return _context34.stop();
|
|
4668
4802
|
}
|
|
@@ -5175,27 +5309,28 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5175
5309
|
currentDiscounts = typeof ((_this$store$discount15 = this.store.discount) === null || _this$store$discount15 === void 0 ? void 0 : _this$store$discount15.getDiscountList) === 'function' ? this.store.discount.getDiscountList() || [] : [];
|
|
5176
5310
|
shouldSkipEmptyDiscountSync = hydratedEditDiscounts.length === 0 && currentDiscounts.length === 0;
|
|
5177
5311
|
if (shouldSkipEmptyDiscountSync) {
|
|
5178
|
-
_context42.next =
|
|
5312
|
+
_context42.next = 17;
|
|
5179
5313
|
break;
|
|
5180
5314
|
}
|
|
5181
|
-
|
|
5315
|
+
OrderModule.populateSavedAmounts(nextTempOrder.products, hydratedEditDiscounts);
|
|
5316
|
+
_context42.next = 15;
|
|
5182
5317
|
return (_this$store$discount16 = this.store.discount) === null || _this$store$discount16 === void 0 ? void 0 : _this$store$discount16.setOriginalDiscountList(hydratedEditDiscounts);
|
|
5183
|
-
case
|
|
5184
|
-
_context42.next =
|
|
5318
|
+
case 15:
|
|
5319
|
+
_context42.next = 17;
|
|
5185
5320
|
return (_this$store$discount17 = this.store.discount) === null || _this$store$discount17 === void 0 ? void 0 : _this$store$discount17.setDiscountList(hydratedEditDiscounts);
|
|
5186
|
-
case
|
|
5321
|
+
case 17:
|
|
5187
5322
|
if (!(options !== null && options !== void 0 && options.recalcOnHydrate)) {
|
|
5188
|
-
_context42.next =
|
|
5323
|
+
_context42.next = 20;
|
|
5189
5324
|
break;
|
|
5190
5325
|
}
|
|
5191
|
-
_context42.next =
|
|
5326
|
+
_context42.next = 20;
|
|
5192
5327
|
return this.recalculateSummary({
|
|
5193
5328
|
createIfMissing: false
|
|
5194
5329
|
});
|
|
5195
|
-
case
|
|
5330
|
+
case 20:
|
|
5196
5331
|
this.persistTempOrder();
|
|
5197
5332
|
return _context42.abrupt("return", nextTempOrder);
|
|
5198
|
-
case
|
|
5333
|
+
case 22:
|
|
5199
5334
|
case "end":
|
|
5200
5335
|
return _context42.stop();
|
|
5201
5336
|
}
|
|
@@ -5242,7 +5377,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5242
5377
|
}, {
|
|
5243
5378
|
key: "normalizeTempOrderForRuntime",
|
|
5244
5379
|
value: function normalizeTempOrderForRuntime(raw, options) {
|
|
5245
|
-
var
|
|
5380
|
+
var _this26 = this;
|
|
5246
5381
|
var nextTempOrder = _objectSpread(_objectSpread({}, this.createDefaultTempOrderInstance()), raw || {});
|
|
5247
5382
|
// ES 列表详情使用 id 表示订单主键;OS 详情态统一依赖 order_id 驱动操作按钮。
|
|
5248
5383
|
if ((nextTempOrder.order_id === undefined || nextTempOrder.order_id === null) && (raw === null || raw === void 0 ? void 0 : raw.id) !== undefined && (raw === null || raw === void 0 ? void 0 : raw.id) !== null) {
|
|
@@ -5265,10 +5400,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5265
5400
|
nextTempOrder.holder = raw.holder && _typeof(raw.holder) === 'object' ? _objectSpread({}, raw.holder) : null;
|
|
5266
5401
|
var rawProducts = Array.isArray(raw.products) ? raw.products : [];
|
|
5267
5402
|
nextTempOrder.products = rawProducts.length > 0 ? rawProducts.map(function (p) {
|
|
5268
|
-
return
|
|
5403
|
+
return _this26.normalizeHydratedOrderProduct(p);
|
|
5269
5404
|
}) : [];
|
|
5270
5405
|
nextTempOrder.bookings = Array.isArray(raw.bookings) ? raw.bookings.map(function (b) {
|
|
5271
|
-
var booking =
|
|
5406
|
+
var booking = _this26.normalizeHydratedBookingHolder(b || {});
|
|
5272
5407
|
return _objectSpread(_objectSpread({}, booking), {}, {
|
|
5273
5408
|
is_all: normalizeBookingIsAll(booking),
|
|
5274
5409
|
sub_type: normalizeBookingSubType(booking)
|
|
@@ -5436,7 +5571,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5436
5571
|
}, {
|
|
5437
5572
|
key: "normalizeHydratedOrderProduct",
|
|
5438
5573
|
value: function normalizeHydratedOrderProduct(product) {
|
|
5439
|
-
var
|
|
5574
|
+
var _this27 = this;
|
|
5440
5575
|
var row = _objectSpread({}, product || {});
|
|
5441
5576
|
if (row.num === undefined && row.product_quantity !== undefined) {
|
|
5442
5577
|
row.num = row.product_quantity;
|
|
@@ -5444,7 +5579,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5444
5579
|
var productSku = ensureProductSku(row);
|
|
5445
5580
|
row.product_sku = _objectSpread(_objectSpread({}, productSku), {}, {
|
|
5446
5581
|
option: normalizeProductSkuOptions(productSku.option.map(function (optionItem) {
|
|
5447
|
-
return
|
|
5582
|
+
return _this27.normalizeHydratedProductOptionItem(optionItem || {});
|
|
5448
5583
|
}))
|
|
5449
5584
|
});
|
|
5450
5585
|
delete row["product_".concat('option', "_item")];
|
|
@@ -5453,6 +5588,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5453
5588
|
if (row.booking_uid && !row.metadata.booking_uid) {
|
|
5454
5589
|
row.metadata.booking_uid = row.booking_uid;
|
|
5455
5590
|
}
|
|
5591
|
+
row = restoreHydratedBundleDiscounts(row, normalizeOrderProductDiscountList);
|
|
5456
5592
|
var existingIdentity = row.metadata.unique_identification_number || row.unique_identification_number;
|
|
5457
5593
|
if (!existingIdentity) {
|
|
5458
5594
|
row.metadata.unique_identification_number = createUuidV4();
|
|
@@ -5464,7 +5600,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5464
5600
|
metadata: _objectSpread(_objectSpread({}, row.metadata), normalized.metadata)
|
|
5465
5601
|
});
|
|
5466
5602
|
if (result.metadata) delete result.metadata.price_schema_version;
|
|
5467
|
-
|
|
5603
|
+
var restored = restoreHydratedBundleDiscounts(result, normalizeOrderProductDiscountList);
|
|
5604
|
+
return this.sanitizeOrderProductForTempOrder(restored);
|
|
5468
5605
|
}
|
|
5469
5606
|
}, {
|
|
5470
5607
|
key: "getLastOrderInfo",
|