@pisell/pisellos 2.3.19 → 2.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +16 -10
  2. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +2 -1
  3. package/dist/modules/Order/index.d.ts +1 -1
  4. package/dist/modules/Order/index.js +48 -31
  5. package/dist/modules/Order/types.d.ts +1 -0
  6. package/dist/modules/Order/utils.js +10 -2
  7. package/dist/modules/Product/index.d.ts +1 -1
  8. package/dist/server/index.d.ts +4 -0
  9. package/dist/server/index.js +392 -253
  10. package/dist/server/modules/order/types.d.ts +2 -0
  11. package/dist/server/modules/products/index.d.ts +5 -1
  12. package/dist/server/modules/products/index.js +383 -315
  13. package/dist/server/modules/products/types.d.ts +4 -0
  14. package/dist/solution/BaseSales/index.js +144 -127
  15. package/dist/solution/BaseSales/types.d.ts +2 -0
  16. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +3 -1
  17. package/dist/solution/BookingByStep/index.d.ts +1 -1
  18. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +5 -0
  19. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +1 -0
  20. package/lib/modules/Order/index.d.ts +1 -1
  21. package/lib/modules/Order/index.js +34 -12
  22. package/lib/modules/Order/types.d.ts +1 -0
  23. package/lib/modules/Order/utils.js +10 -1
  24. package/lib/modules/Product/index.d.ts +1 -1
  25. package/lib/server/index.d.ts +4 -0
  26. package/lib/server/index.js +83 -2
  27. package/lib/server/modules/order/types.d.ts +2 -0
  28. package/lib/server/modules/products/index.d.ts +5 -1
  29. package/lib/server/modules/products/index.js +20 -0
  30. package/lib/server/modules/products/types.d.ts +4 -0
  31. package/lib/solution/BaseSales/index.js +40 -22
  32. package/lib/solution/BaseSales/types.d.ts +2 -0
  33. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +2 -0
  34. package/lib/solution/BookingByStep/index.d.ts +1 -1
  35. package/package.json +1 -1
@@ -121,6 +121,10 @@ function resolveProductTitle(product, booking, sourceProduct) {
121
121
  var metadata = product.metadata || {};
122
122
  return (_ref = (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_title = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) !== null && _title !== void 0 ? _title : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.name) !== null && _ref5 !== void 0 ? _ref5 : metadata.product_title) !== null && _ref4 !== void 0 ? _ref4 : metadata.product_name) !== null && _ref3 !== void 0 ? _ref3 : booking === null || booking === void 0 || (_booking$product = booking.product) === null || _booking$product === void 0 ? void 0 : _booking$product.title) !== null && _ref2 !== void 0 ? _ref2 : booking === null || booking === void 0 || (_booking$detail = booking.detail) === null || _booking$detail === void 0 ? void 0 : _booking$detail.product_title) !== null && _ref !== void 0 ? _ref : '';
123
123
  }
124
+ function resolveProductCover(product, booking, sourceProduct) {
125
+ var _ref6, _cover;
126
+ return (_ref6 = (_cover = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.cover) !== null && _cover !== void 0 ? _cover : product.product_cover) !== null && _ref6 !== void 0 ? _ref6 : '';
127
+ }
124
128
  function resolveMainProductPrice(product, fallback) {
125
129
  var _metadata$main_produc;
126
130
  var metadata = product.metadata || {};
@@ -130,9 +134,9 @@ function resolveMainProductPrice(product, fallback) {
130
134
  }
131
135
  function mapOrderBundleToOtherBundle(bundle) {
132
136
  return bundle.map(function (item) {
133
- var _ref6, _item$original_price;
137
+ var _ref7, _item$original_price;
134
138
  return _objectSpread(_objectSpread({}, item), {}, {
135
- original_price: (_ref6 = (_item$original_price = item.original_price) !== null && _item$original_price !== void 0 ? _item$original_price : item.bundle_selling_price) !== null && _ref6 !== void 0 ? _ref6 : item.price
139
+ original_price: (_ref7 = (_item$original_price = item.original_price) !== null && _item$original_price !== void 0 ? _item$original_price : item.bundle_selling_price) !== null && _ref7 !== void 0 ? _ref7 : item.price
136
140
  });
137
141
  });
138
142
  }
@@ -163,10 +167,10 @@ function synthesizeProductResourceFromBooking(booking) {
163
167
  });
164
168
  if (relationIdsByForm.size === 0) return undefined;
165
169
  return {
166
- resources: Array.from(relationIdsByForm.entries()).map(function (_ref7) {
167
- var _ref8 = _slicedToArray(_ref7, 2),
168
- formId = _ref8[0],
169
- relationIds = _ref8[1];
170
+ resources: Array.from(relationIdsByForm.entries()).map(function (_ref8) {
171
+ var _ref9 = _slicedToArray(_ref8, 2),
172
+ formId = _ref9[0],
173
+ relationIds = _ref9[1];
170
174
  return {
171
175
  id: formId,
172
176
  status: 1,
@@ -186,7 +190,7 @@ function synthesizeProductResourceFromBooking(booking) {
186
190
  * 调用方须传入与该行关联的 booking(通常 bookings[].product_uid === product.metadata.unique_identification_number)。
187
191
  */
188
192
  export function buildCacheItemFromOrderLine(input) {
189
- var _product$product_id, _product$selling_pric, _product$original_pri, _booking$metadata$hol, _booking$metadata2, _product$product_vari, _product$num, _ref9, _product$note, _booking$detail2, _product$metadata, _product$metadata2, _ref10, _extension_type, _booking$product2, _booking$product3, _price, _product$order_detail, _ref11, _booking$id;
193
+ var _product$product_id, _product$selling_pric, _product$original_pri, _booking$metadata$hol, _booking$metadata2, _product$product_vari, _product$num, _ref10, _product$note, _booking$detail2, _product$metadata, _product$metadata2, _ref11, _extension_type, _booking$product2, _booking$product3, _price, _product$order_detail, _ref12, _booking$id;
190
194
  var product = input.product,
191
195
  booking = input.booking,
192
196
  sourceProduct = input.sourceProduct;
@@ -202,6 +206,7 @@ export function buildCacheItemFromOrderLine(input) {
202
206
  var capacity = resolveCapacityFromBooking(booking);
203
207
  var holderId = (_booking$metadata$hol = (_booking$metadata2 = booking.metadata) === null || _booking$metadata2 === void 0 ? void 0 : _booking$metadata2.holder_id) !== null && _booking$metadata$hol !== void 0 ? _booking$metadata$hol : booking.holder_id;
204
208
  var productTitle = resolveProductTitle(product, booking, sourceProduct);
209
+ var productCover = resolveProductCover(product, booking, sourceProduct);
205
210
  var productOptionString = buildProductOptionStringFromOrderLine(product);
206
211
  var other = {
207
212
  product_variant_id: (_product$product_vari = product.product_variant_id) !== null && _product$product_vari !== void 0 ? _product$product_vari : 0,
@@ -219,7 +224,8 @@ export function buildCacheItemFromOrderLine(input) {
219
224
  sub_type: booking.sub_type,
220
225
  quantity: (_product$num = product.num) !== null && _product$num !== void 0 ? _product$num : 1,
221
226
  product_name: productTitle,
222
- note: (_ref9 = (_product$note = product.note) !== null && _product$note !== void 0 ? _product$note : booking === null || booking === void 0 || (_booking$detail2 = booking.detail) === null || _booking$detail2 === void 0 ? void 0 : _booking$detail2.note) !== null && _ref9 !== void 0 ? _ref9 : '',
227
+ product_cover: productCover,
228
+ note: (_ref10 = (_product$note = product.note) !== null && _product$note !== void 0 ? _product$note : booking === null || booking === void 0 || (_booking$detail2 = booking.detail) === null || _booking$detail2 === void 0 ? void 0 : _booking$detail2.note) !== null && _ref10 !== void 0 ? _ref10 : '',
223
229
  price: mainProductPrice,
224
230
  total: selling,
225
231
  origin_total: original,
@@ -254,7 +260,7 @@ export function buildCacheItemFromOrderLine(input) {
254
260
  var base = _objectSpread(_objectSpread(_objectSpread({}, sourceProduct || {}), {}, {
255
261
  id: resolvedId,
256
262
  product_id: resolvedId,
257
- extension_type: (_ref10 = (_extension_type = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.extension_type) !== null && _extension_type !== void 0 ? _extension_type : booking === null || booking === void 0 || (_booking$product2 = booking.product) === null || _booking$product2 === void 0 ? void 0 : _booking$product2.extension_type) !== null && _ref10 !== void 0 ? _ref10 : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.extension_type,
263
+ extension_type: (_ref11 = (_extension_type = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.extension_type) !== null && _extension_type !== void 0 ? _extension_type : booking === null || booking === void 0 || (_booking$product2 = booking.product) === null || _booking$product2 === void 0 ? void 0 : _booking$product2.extension_type) !== null && _ref11 !== void 0 ? _ref11 : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.extension_type,
258
264
  title: productTitle || (sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) || (booking === null || booking === void 0 || (_booking$product3 = booking.product) === null || _booking$product3 === void 0 ? void 0 : _booking$product3.title),
259
265
  price: (_price = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.price) !== null && _price !== void 0 ? _price : selling,
260
266
  selling_price: product.selling_price,
@@ -266,7 +272,7 @@ export function buildCacheItemFromOrderLine(input) {
266
272
  new: 0,
267
273
  autoClose: false,
268
274
  order_detail_id: (_product$order_detail = product.order_detail_id) !== null && _product$order_detail !== void 0 ? _product$order_detail : null,
269
- booking_id: (_ref11 = (_booking$id = booking.id) !== null && _booking$id !== void 0 ? _booking$id : booking.booking_id) !== null && _ref11 !== void 0 ? _ref11 : 0
275
+ booking_id: (_ref12 = (_booking$id = booking.id) !== null && _booking$id !== void 0 ? _booking$id : booking.booking_id) !== null && _ref12 !== void 0 ? _ref12 : 0
270
276
  });
271
277
  if ((sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.capacity) !== undefined) {
272
278
  base.capacity = sourceProduct.capacity;
@@ -75,7 +75,7 @@ function mapOrderBundleToOtherBundle(bundle) {
75
75
  });
76
76
  }
77
77
  export function buildNormalProductCacheItemFromOrderLine(input) {
78
- var _product$product_id, _product$selling_pric2, _product$original_pri, _product$metadata, _product$metadata2, _product$product_vari, _originExtend$other, _product$num, _product$product_vari2, _product$num2, _title, _product$note, _originExtend$price, _originExtend$total, _originExtend$origin_, _product$metadata3, _ref6, _title2, _price3, _product$order_detail;
78
+ var _product$product_id, _product$selling_pric2, _product$original_pri, _product$metadata, _product$metadata2, _product$product_vari, _originExtend$other, _product$num, _product$product_vari2, _product$num2, _title, _product$note, _originExtend$price, _originExtend$total, _originExtend$origin_, _product$metadata3, _ref6, _title2, _ref7, _cover, _price3, _product$order_detail;
79
79
  var product = input.product,
80
80
  sourceProduct = input.sourceProduct;
81
81
  var resolvedId = (_product$product_id = product.product_id) !== null && _product$product_id !== void 0 ? _product$product_id : sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.id;
@@ -132,6 +132,7 @@ export function buildNormalProductCacheItemFromOrderLine(input) {
132
132
  product_id: resolvedId,
133
133
  _id: uid,
134
134
  title: (_ref6 = (_title2 = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.title) !== null && _title2 !== void 0 ? _title2 : product.product_title) !== null && _ref6 !== void 0 ? _ref6 : '',
135
+ cover: (_ref7 = (_cover = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.cover) !== null && _cover !== void 0 ? _cover : product.product_cover) !== null && _ref7 !== void 0 ? _ref7 : '',
135
136
  price: (_price3 = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.price) !== null && _price3 !== void 0 ? _price3 : sourcePrice,
136
137
  selling_price: product.selling_price,
137
138
  original_price: product.original_price
@@ -463,7 +463,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
463
463
  generateIdempotencyToken(): string;
464
464
  syncPaymentsToOrder<T = any>(params: SyncPaymentsToOrderParams): Promise<SyncPaymentsToOrderResult<T>>;
465
465
  createOrder(params: CommitOrderParams['query']): {
466
- type: "virtual" | "appointment_booking";
466
+ type: "appointment_booking" | "virtual";
467
467
  platform: string;
468
468
  sales_channel: string;
469
469
  order_sales_channel: string;
@@ -711,7 +711,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
711
711
  key: "applyDiscount",
712
712
  value: function applyDiscount(options) {
713
713
  var _this$store$discount9,
714
- _tempOrder$holder2,
715
714
  _this$store$summary2,
716
715
  _this2 = this;
717
716
  var tempOrder = this.store.tempOrder;
@@ -726,11 +725,10 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
726
725
  if (shouldSkipDiscountCalculation) return;
727
726
  var rulesModule = this.store.rules;
728
727
  if (!rulesModule) return;
729
- var holders = ((_tempOrder$holder2 = tempOrder.holder) === null || _tempOrder$holder2 === void 0 ? void 0 : _tempOrder$holder2.form_record) || [];
730
728
  var result = rulesModule.calcDiscount({
731
729
  productList: tempOrder.products,
732
730
  discountList: discountList,
733
- holders: holders,
731
+ holders: [],
734
732
  isFormSubject: function isFormSubject(product) {
735
733
  return resolveIsFormSubject(tempOrder, product);
736
734
  },
@@ -2019,13 +2017,21 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2019
2017
  key: "restoreOriginalSnapshotIfProductsUnchanged",
2020
2018
  value: function restoreOriginalSnapshotIfProductsUnchanged(tempOrder, snapshot) {
2021
2019
  var currentFingerprint = this.buildOrderProductsFingerprint(tempOrder.products);
2020
+ var manualDepositOverride = this.getManualDepositOverride(tempOrder);
2022
2021
  if (currentFingerprint !== snapshot.productFingerprint) {
2023
2022
  var currentStructuralFingerprint = this.buildOrderProductsStructuralFingerprint(tempOrder.products);
2024
2023
  var snapshotStructuralFingerprint = this.buildOrderProductsStructuralFingerprint(Array.isArray(snapshot.products) ? snapshot.products : []);
2025
2024
  if (currentStructuralFingerprint !== snapshotStructuralFingerprint) return null;
2026
2025
  }
2027
2026
  var summary = _objectSpread(_objectSpread({}, createEmptySummary()), cloneDeep(snapshot.summary || {}));
2028
- if (!this.isSnapshotPayableAmountUnchanged(tempOrder, snapshot, summary)) return null;
2027
+ var shouldUseManualDepositOverride = Boolean(manualDepositOverride && manualDepositOverride.productStructuralFingerprint === this.buildOrderProductsStructuralFingerprint(tempOrder.products));
2028
+ if (shouldUseManualDepositOverride) {
2029
+ summary = this.applyDepositAmountToSummary(tempOrder, summary, manualDepositOverride.amount);
2030
+ } else if (manualDepositOverride) {
2031
+ this.clearManualDepositOverride(tempOrder);
2032
+ }
2033
+ var isPayableAmountUnchanged = this.isSnapshotPayableAmountUnchanged(tempOrder, snapshot, summary);
2034
+ if (!isPayableAmountUnchanged) return null;
2029
2035
  if (Array.isArray(snapshot.products)) {
2030
2036
  tempOrder.products = cloneDeep(snapshot.products);
2031
2037
  }
@@ -2526,7 +2532,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2526
2532
  }, {
2527
2533
  key: "buildTempOrderHolderFromBookings",
2528
2534
  value: function buildTempOrderHolderFromBookings(tempOrder) {
2529
- var _baseHolder$customer_, _baseHolder, _ref46, _baseHolder$form_id, _baseHolder2, _tempOrder$holder3, _baseHolder3, _this$otherParams;
2535
+ var _baseHolder$customer_, _baseHolder, _ref46, _baseHolder$form_id, _baseHolder2, _tempOrder$holder2, _baseHolder3, _this$otherParams;
2530
2536
  var holderRecords = [];
2531
2537
  var holderNames = [];
2532
2538
  var baseHolder = null;
@@ -2573,7 +2579,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
2573
2579
  }
2574
2580
  var nextHolder = {
2575
2581
  customer_id: (_baseHolder$customer_ = (_baseHolder = baseHolder) === null || _baseHolder === void 0 ? void 0 : _baseHolder.customer_id) !== null && _baseHolder$customer_ !== void 0 ? _baseHolder$customer_ : tempOrder.customer_id,
2576
- form_id: (_ref46 = (_baseHolder$form_id = (_baseHolder2 = baseHolder) === null || _baseHolder2 === void 0 ? void 0 : _baseHolder2.form_id) !== null && _baseHolder$form_id !== void 0 ? _baseHolder$form_id : (_tempOrder$holder3 = tempOrder.holder) === null || _tempOrder$holder3 === void 0 ? void 0 : _tempOrder$holder3.form_id) !== null && _ref46 !== void 0 ? _ref46 : 0,
2582
+ form_id: (_ref46 = (_baseHolder$form_id = (_baseHolder2 = baseHolder) === null || _baseHolder2 === void 0 ? void 0 : _baseHolder2.form_id) !== null && _baseHolder$form_id !== void 0 ? _baseHolder$form_id : (_tempOrder$holder2 = tempOrder.holder) === null || _tempOrder$holder2 === void 0 ? void 0 : _tempOrder$holder2.form_id) !== null && _ref46 !== void 0 ? _ref46 : 0,
2577
2583
  form_record: holderRecords
2578
2584
  };
2579
2585
  if (holderNames.length) {
@@ -4093,7 +4099,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4093
4099
  value: function () {
4094
4100
  var _updateOrderProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee20(paramsList) {
4095
4101
  var _this24 = this;
4096
- var tempOrder;
4102
+ var tempOrder, reapplyBookingDiscountProductUids;
4097
4103
  return _regeneratorRuntime().wrap(function _callee20$(_context22) {
4098
4104
  while (1) switch (_context22.prev = _context22.next) {
4099
4105
  case 0:
@@ -4104,11 +4110,18 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4104
4110
  }
4105
4111
  return _context22.abrupt("return", tempOrder.products);
4106
4112
  case 3:
4107
- paramsList.forEach(function (params) {
4108
- _this24.applyOrderProductUpdateToTempOrder(tempOrder, params);
4109
- });
4113
+ reapplyBookingDiscountProductUids = paramsList.reduce(function (acc, params) {
4114
+ var updatedProductUid = _this24.applyOrderProductUpdateToTempOrder(tempOrder, params);
4115
+ // 批量改预约时间时,延迟到最后一次折扣计算里统一恢复已选预约折扣卡。
4116
+ if (params.allow_booking_discount_reapply && updatedProductUid) {
4117
+ acc.push(String(updatedProductUid));
4118
+ }
4119
+ return acc;
4120
+ }, []);
4110
4121
  _context22.next = 6;
4111
- return this.finalizeAfterProductsMutation(tempOrder);
4122
+ return this.finalizeAfterProductsMutation(tempOrder, {
4123
+ reapplyBookingDiscountProductUids: reapplyBookingDiscountProductUids.length ? reapplyBookingDiscountProductUids : undefined
4124
+ });
4112
4125
  case 6:
4113
4126
  this.logInfo('updateOrderProduct success', {
4114
4127
  paramsList: paramsList
@@ -4237,7 +4250,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4237
4250
  }, {
4238
4251
  key: "finalizeAfterProductsMutation",
4239
4252
  value: (function () {
4240
- var _finalizeAfterProductsMutation = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22(tempOrder) {
4253
+ var _finalizeAfterProductsMutation = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee22(tempOrder, options) {
4241
4254
  return _regeneratorRuntime().wrap(function _callee22$(_context24) {
4242
4255
  while (1) switch (_context24.prev = _context24.next) {
4243
4256
  case 0:
@@ -4245,7 +4258,9 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4245
4258
  _context24.next = 3;
4246
4259
  return this.applyPromotion();
4247
4260
  case 3:
4248
- this.applyDiscount();
4261
+ this.applyDiscount({
4262
+ reapplyBookingDiscountProductUids: options === null || options === void 0 ? void 0 : options.reapplyBookingDiscountProductUids
4263
+ });
4249
4264
  this.sanitizeTempOrderProducts(tempOrder);
4250
4265
  _context24.next = 7;
4251
4266
  return this.recalculateSummary({
@@ -4259,7 +4274,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4259
4274
  }
4260
4275
  }, _callee22, this);
4261
4276
  }));
4262
- function finalizeAfterProductsMutation(_x26) {
4277
+ function finalizeAfterProductsMutation(_x26, _x27) {
4263
4278
  return _finalizeAfterProductsMutation.apply(this, arguments);
4264
4279
  }
4265
4280
  return finalizeAfterProductsMutation;
@@ -4392,7 +4407,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4392
4407
  }
4393
4408
  }, _callee23, this, [[11, 22, 25, 28]]);
4394
4409
  }));
4395
- function removeProductsFromOrder(_x27) {
4410
+ function removeProductsFromOrder(_x28) {
4396
4411
  return _removeProductsFromOrder.apply(this, arguments);
4397
4412
  }
4398
4413
  return removeProductsFromOrder;
@@ -4411,7 +4426,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4411
4426
  }
4412
4427
  }, _callee24, this);
4413
4428
  }));
4414
- function removeProductFromOrder(_x28) {
4429
+ function removeProductFromOrder(_x29) {
4415
4430
  return _removeProductFromOrder.apply(this, arguments);
4416
4431
  }
4417
4432
  return removeProductFromOrder;
@@ -4523,7 +4538,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4523
4538
  }
4524
4539
  }, _callee26, this);
4525
4540
  }));
4526
- function applyLocalPrintOrderNumbers(_x29) {
4541
+ function applyLocalPrintOrderNumbers(_x30) {
4527
4542
  return _applyLocalPrintOrderNumbers.apply(this, arguments);
4528
4543
  }
4529
4544
  return applyLocalPrintOrderNumbers;
@@ -4548,7 +4563,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4548
4563
  }
4549
4564
  }, _callee27, this);
4550
4565
  }));
4551
- function submitTempOrder(_x30) {
4566
+ function submitTempOrder(_x31) {
4552
4567
  return _submitTempOrder.apply(this, arguments);
4553
4568
  }
4554
4569
  return submitTempOrder;
@@ -4569,7 +4584,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4569
4584
  }
4570
4585
  }, _callee28, this);
4571
4586
  }));
4572
- function submitTempOrderAsync(_x31) {
4587
+ function submitTempOrderAsync(_x32) {
4573
4588
  return _submitTempOrderAsync.apply(this, arguments);
4574
4589
  }
4575
4590
  return submitTempOrderAsync;
@@ -4739,7 +4754,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4739
4754
  }
4740
4755
  }, _callee29, this, [[26, 33]]);
4741
4756
  }));
4742
- function runSubmitTempOrder(_x32) {
4757
+ function runSubmitTempOrder(_x33) {
4743
4758
  return _runSubmitTempOrder.apply(this, arguments);
4744
4759
  }
4745
4760
  return runSubmitTempOrder;
@@ -4766,7 +4781,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4766
4781
  }
4767
4782
  }, _callee30, this);
4768
4783
  }));
4769
- function markLocalOrderSynced(_x33, _x34) {
4784
+ function markLocalOrderSynced(_x34, _x35) {
4770
4785
  return _markLocalOrderSynced.apply(this, arguments);
4771
4786
  }
4772
4787
  return markLocalOrderSynced;
@@ -4898,7 +4913,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
4898
4913
  }
4899
4914
  }, _callee31, this);
4900
4915
  }));
4901
- function syncPaymentsToOrder(_x35) {
4916
+ function syncPaymentsToOrder(_x36) {
4902
4917
  return _syncPaymentsToOrder.apply(this, arguments);
4903
4918
  }
4904
4919
  return syncPaymentsToOrder;
@@ -5018,7 +5033,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5018
5033
  }
5019
5034
  }, _callee32, this);
5020
5035
  }));
5021
- function submitOrder(_x36) {
5036
+ function submitOrder(_x37) {
5022
5037
  return _submitOrder.apply(this, arguments);
5023
5038
  }
5024
5039
  return submitOrder;
@@ -5057,7 +5072,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5057
5072
  }
5058
5073
  }, _callee33, this);
5059
5074
  }));
5060
- function cancelOrder(_x37) {
5075
+ function cancelOrder(_x38) {
5061
5076
  return _cancelOrder.apply(this, arguments);
5062
5077
  }
5063
5078
  return cancelOrder;
@@ -5101,7 +5116,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5101
5116
  }
5102
5117
  }, _callee34, this);
5103
5118
  }));
5104
- function changeBookingStatus(_x38) {
5119
+ function changeBookingStatus(_x39) {
5105
5120
  return _changeBookingStatus.apply(this, arguments);
5106
5121
  }
5107
5122
  return changeBookingStatus;
@@ -5248,7 +5263,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5248
5263
  }
5249
5264
  }, _callee35, this, [[4, 18]]);
5250
5265
  }));
5251
- function createOrderByCheckout(_x39) {
5266
+ function createOrderByCheckout(_x40) {
5252
5267
  return _createOrderByCheckout.apply(this, arguments);
5253
5268
  }
5254
5269
  return createOrderByCheckout;
@@ -5273,7 +5288,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5273
5288
  }
5274
5289
  }, _callee36, this);
5275
5290
  }));
5276
- function submitSalesOrder(_x40) {
5291
+ function submitSalesOrder(_x41) {
5277
5292
  return _submitSalesOrder.apply(this, arguments);
5278
5293
  }
5279
5294
  return submitSalesOrder;
@@ -5317,7 +5332,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5317
5332
  }
5318
5333
  }, _callee37, this);
5319
5334
  }));
5320
- function sendCustomerPayLink(_x41) {
5335
+ function sendCustomerPayLink(_x42) {
5321
5336
  return _sendCustomerPayLink.apply(this, arguments);
5322
5337
  }
5323
5338
  return sendCustomerPayLink;
@@ -5361,7 +5376,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5361
5376
  }
5362
5377
  }, _callee38, this);
5363
5378
  }));
5364
- function getSalesOrderByLookup(_x42) {
5379
+ function getSalesOrderByLookup(_x43) {
5365
5380
  return _getSalesOrderByLookup.apply(this, arguments);
5366
5381
  }
5367
5382
  return getSalesOrderByLookup;
@@ -5433,7 +5448,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5433
5448
  }
5434
5449
  }, _callee39, this);
5435
5450
  }));
5436
- function hydrateTempOrderFromRecord(_x43, _x44) {
5451
+ function hydrateTempOrderFromRecord(_x44, _x45) {
5437
5452
  return _hydrateTempOrderFromRecord.apply(this, arguments);
5438
5453
  }
5439
5454
  return hydrateTempOrderFromRecord;
@@ -5691,6 +5706,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5691
5706
  if (!existingIdentity) {
5692
5707
  row.metadata.unique_identification_number = createUuidV4();
5693
5708
  }
5709
+ // 从云端、本地数据库中获取到的商品数据,先打上 runtime 标记,提供给 UI 做 saved items.
5710
+ row.metadata.is_edit_for_runtime = true;
5694
5711
  var normalized = normalizeOrderProduct(row);
5695
5712
  normalized.discount_list = normalizeOrderProductDiscountList(normalized.discount_list);
5696
5713
  var result = _objectSpread(_objectSpread(_objectSpread({}, row), normalized), {}, {
@@ -5730,7 +5747,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
5730
5747
  }
5731
5748
  }, _callee40, this);
5732
5749
  }));
5733
- function getOrderInfo(_x45) {
5750
+ function getOrderInfo(_x46) {
5734
5751
  return _getOrderInfo.apply(this, arguments);
5735
5752
  }
5736
5753
  return getOrderInfo;
@@ -198,6 +198,7 @@ export interface OrderProduct extends OrderProductIdentity {
198
198
  product_bundle: any[];
199
199
  booking_uid?: string;
200
200
  product_title?: OrderLocalizedText;
201
+ product_cover?: string;
201
202
  metadata: Record<string, any>;
202
203
  note?: string;
203
204
  }
@@ -924,6 +924,9 @@ function normalizeSubmitProduct(product) {
924
924
  if (rawMetadata.is_rule !== undefined) {
925
925
  cleanMetadata.is_rule = rawMetadata.is_rule;
926
926
  }
927
+ if (rawMetadata.holder_config !== undefined) {
928
+ cleanMetadata.holder_config = rawMetadata.holder_config;
929
+ }
927
930
  var productSku = _objectSpread(_objectSpread({}, submitProduct.product_sku && _typeof(submitProduct.product_sku) === 'object' ? submitProduct.product_sku : {}), {}, {
928
931
  option: formatSubmitOptionItems((_submitProduct$produc = submitProduct.product_sku) === null || _submitProduct$produc === void 0 ? void 0 : _submitProduct$produc.option)
929
932
  });
@@ -1361,11 +1364,16 @@ export function isHolderConfigRequired(holderConfig) {
1361
1364
  return Number(holderConfig.required) === 1;
1362
1365
  }
1363
1366
  export function productRequiresFormSubject(tempOrder, product) {
1367
+ var _tempOrder$products, _orderProduct$metadat;
1368
+ var _orderProduct = tempOrder === null || tempOrder === void 0 || (_tempOrder$products = tempOrder.products) === null || _tempOrder$products === void 0 ? void 0 : _tempOrder$products.find(function (item) {
1369
+ return item.metadata.unique_identification_number === product._id || item.product_id === product.id;
1370
+ });
1364
1371
  var runtimeOrigin = getRuntimeProductOrigin(tempOrder, product);
1365
- return isHolderConfigRequired(product === null || product === void 0 ? void 0 : product.holder_config) || isHolderConfigRequired(runtimeOrigin === null || runtimeOrigin === void 0 ? void 0 : runtimeOrigin.holder_config);
1372
+ return isHolderConfigRequired(_orderProduct === null || _orderProduct === void 0 || (_orderProduct$metadat = _orderProduct.metadata) === null || _orderProduct$metadat === void 0 ? void 0 : _orderProduct$metadat.holder_config) || isHolderConfigRequired(runtimeOrigin === null || runtimeOrigin === void 0 ? void 0 : runtimeOrigin.holder_config) || isHolderConfigRequired(product === null || product === void 0 ? void 0 : product.holder_config);
1366
1373
  }
1367
1374
  export function resolveIsFormSubject(tempOrder, product) {
1368
1375
  var _tempOrder$holder;
1376
+ debugger;
1369
1377
  // 旧版预约维度的 holder 类型仍然生效;新版则从当前商品 holder_config 判断。
1370
1378
  if ((tempOrder === null || tempOrder === void 0 || (_tempOrder$holder = tempOrder.holder) === null || _tempOrder$holder === void 0 ? void 0 : _tempOrder$holder.type) === 'form') return true;
1371
1379
  if (product) return productRequiresFormSubject(tempOrder, product);
@@ -1405,7 +1413,7 @@ export function isEmptyOrderProductDisplayValue(value) {
1405
1413
  */
1406
1414
  export function mergeOrderProductDisplayFields(previous, next) {
1407
1415
  var merged = _objectSpread({}, next);
1408
- var displayFields = ['product_title', 'product_name', 'product_cover', 'cover', 'variant_title', 'product_sku', 'payment_price'];
1416
+ var displayFields = ['product_title', 'product_name', 'product_cover', 'cover', 'product_cover', 'variant_title', 'product_sku', 'payment_price'];
1409
1417
  displayFields.forEach(function (field) {
1410
1418
  if (isEmptyOrderProductDisplayValue(merged[field]) && !isEmptyOrderProductDisplayValue(previous[field])) {
1411
1419
  merged[field] = previous[field];
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
49
49
  getCategories(): ProductCategory[];
50
50
  setOtherParams(key: string, value: any): void;
51
51
  getOtherParams(): any;
52
- getProductType(): "normal" | "duration" | "session";
52
+ getProductType(): "duration" | "session" | "normal";
53
53
  }
@@ -445,6 +445,10 @@ declare class Server {
445
445
  private sumPaidOrderPayments;
446
446
  private toAmountNumber;
447
447
  private buildSmallTicketProductMap;
448
+ private collectSalesDetailProductIds;
449
+ private buildSalesDetailProductSnapshotMap;
450
+ private withProductCatalogSnapshots;
451
+ private withSalesDetailProductSnapshots;
448
452
  private withPendingSyncProductTitles;
449
453
  private buildProductTitleSnapshot;
450
454
  private getProductTitleSnapshotCurrentLocale;