@pisell/private-materials 6.12.336 → 6.12.337
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/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.js +12 -12
- package/build/lowcode/view.js +12 -12
- package/es/plus/saleDetail/hooks/useAdjustTimeModal.js +21 -5
- package/es/plus/saleDetail/locales.js +5 -0
- package/es/plus/saleDetail/utils/adjustTimeAdapter.js +8 -4
- package/lib/plus/saleDetail/hooks/useAdjustTimeModal.js +20 -4
- package/lib/plus/saleDetail/locales.js +5 -0
- package/lib/plus/saleDetail/utils/adjustTimeAdapter.js +9 -3
- package/package.json +4 -4
|
@@ -13,11 +13,12 @@ import { useSalesSdkProducts } from "../../salesSdk/hooks/useSalesSdkProducts.js
|
|
|
13
13
|
import { shouldCloseDialogAfterCheckout } from "../components/DetailActions/utils.js";
|
|
14
14
|
import { AdjustTimeModal } from "../../salesSdk/adjustTime/AdjustTimeModal.js";
|
|
15
15
|
import SelectBookingsModal from "../../salesSdk/adjustTime/components/SelectBookingsModal.js";
|
|
16
|
-
import { getResourceEndTimeFromOrigin, mapSaleDetailAdjustTimeBooking, mapSaleDetailAdjustTimeProducts } from "../utils/adjustTimeAdapter.js";
|
|
16
|
+
import { getResourceEndTimeFromOrigin, isSaleDetailAddTimeProductUsableForBookings, mapSaleDetailAdjustTimeBooking, mapSaleDetailAdjustTimeProducts, mapSaleDetailAdjustTimeProductsForBookings } from "../utils/adjustTimeAdapter.js";
|
|
17
17
|
import { resolveAdjustTimeOrderAmounts } from "../utils/adjustTimeOrderAmounts.js";
|
|
18
18
|
import dayjs from "dayjs";
|
|
19
19
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
20
20
|
import { message } from "antd";
|
|
21
|
+
import { locales } from "@pisell/utils";
|
|
21
22
|
import Decimal from "decimal.js";
|
|
22
23
|
import { cloneDeep } from "lodash";
|
|
23
24
|
import { useMemoizedFn } from "ahooks";
|
|
@@ -339,6 +340,19 @@ function useAdjustTimeModal(options) {
|
|
|
339
340
|
return acc;
|
|
340
341
|
}, []);
|
|
341
342
|
}, []);
|
|
343
|
+
/** 在任何逐票写入前整组校验,也阻止重新选票前的旧结果被提交。 */
|
|
344
|
+
const assertAddTimeProductsUsable = useMemoizedFn((result) => {
|
|
345
|
+
if (result.actionType === "restart" || result.actionType === "changeTime") return;
|
|
346
|
+
const cacheItems = selectedBookings.map(resolveCacheItem);
|
|
347
|
+
const usableProductIds = new Set(products.filter((product) => isSaleDetailAddTimeProductUsableForBookings(product._originalProduct, cacheItems)).map((product) => String(product.id)));
|
|
348
|
+
const lines = buildPreviewAddTimeLines(result);
|
|
349
|
+
const invalidSelectedProduct = result.actionType === "product" && (result.selectedProductId == null || !usableProductIds.has(String(result.selectedProductId)));
|
|
350
|
+
const invalidLines = lines.length !== (result.autoPricing.lines || []).length || lines.some((line) => {
|
|
351
|
+
var _line$product$id;
|
|
352
|
+
return !usableProductIds.has(String((_line$product$id = line.product.id) !== null && _line$product$id !== void 0 ? _line$product$id : line.product.product_id)) || !isSaleDetailAddTimeProductUsableForBookings(line.product, cacheItems);
|
|
353
|
+
});
|
|
354
|
+
if (invalidSelectedProduct || invalidLines) throw new Error(locales.getText("pisell2.sale-detail.add-time-products-not-applicable"));
|
|
355
|
+
});
|
|
342
356
|
const buildChangeTimePreviewQueries = useMemoizedFn((result) => {
|
|
343
357
|
var _bookingTicket$getTem, _bookingTicket$getTem2;
|
|
344
358
|
const bookingTicket = sales === null || sales === void 0 ? void 0 : sales.bookingTicket;
|
|
@@ -420,6 +434,7 @@ function useAdjustTimeModal(options) {
|
|
|
420
434
|
return;
|
|
421
435
|
}
|
|
422
436
|
const addTimeLines = buildPreviewAddTimeLines(result);
|
|
437
|
+
assertAddTimeProductsUsable(result);
|
|
423
438
|
if (!addTimeLines.length) return;
|
|
424
439
|
for (const selectedBooking of selectedBookings) yield salesSdkCart.addAddTimeProducts({
|
|
425
440
|
booking: selectedBooking,
|
|
@@ -520,7 +535,7 @@ function useAdjustTimeModal(options) {
|
|
|
520
535
|
yield ensureAdjustTimeResourcesReady(sales, primaryItem);
|
|
521
536
|
const cacheItem = resolveCacheItem(primaryItem);
|
|
522
537
|
const quotationSchedule = resolveBookingQuotationSchedule(primaryItem, cacheItem);
|
|
523
|
-
const mappedProducts =
|
|
538
|
+
const mappedProducts = mapSaleDetailAdjustTimeProductsForBookings((quotationSchedule.schedule_date ? yield getAddTimeProductsWithCache(quotationSchedule) : rawAddTimeProducts) || [], items.map(resolveCacheItem));
|
|
524
539
|
const relationId = (_ref17 = (_cacheItem$_extend$re = cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend3 = cacheItem._extend) === null || _cacheItem$_extend3 === void 0 ? void 0 : _cacheItem$_extend3.relation_id) !== null && _cacheItem$_extend$re !== void 0 ? _cacheItem$_extend$re : (_primaryItem$resource = primaryItem.resources) === null || _primaryItem$resource === void 0 || (_primaryItem$resource = _primaryItem$resource[0]) === null || _primaryItem$resource === void 0 ? void 0 : _primaryItem$resource.relation_id) !== null && _ref17 !== void 0 ? _ref17 : primaryItem.relation_id;
|
|
525
540
|
const resourcesOrigin = (booking === null || booking === void 0 || (_booking$getResources = booking.getResourcesOrigin) === null || _booking$getResources === void 0 ? void 0 : _booking$getResources.call(booking)) || [];
|
|
526
541
|
const nextSnapshot = combineBookingSnapshots(items.map((item) => mapSaleDetailAdjustTimeBooking(item, resolveCacheItem(item))));
|
|
@@ -653,14 +668,15 @@ function useAdjustTimeModal(options) {
|
|
|
653
668
|
* await submitAdjustTimeResult(result, 'save');
|
|
654
669
|
*/
|
|
655
670
|
const submitAdjustTimeResult = useMemoizedFn(function() {
|
|
656
|
-
var _ref24 = _asyncToGenerator(function* (
|
|
671
|
+
var _ref24 = _asyncToGenerator(function* (result, mode) {
|
|
657
672
|
if (!selectedBookings.length) return;
|
|
658
673
|
try {
|
|
674
|
+
yield previewQueueRef.current;
|
|
675
|
+
yield salesSdkCart.waitForCartConsistency();
|
|
676
|
+
assertAddTimeProductsUsable(result);
|
|
659
677
|
if (yield function() {
|
|
660
678
|
var _ref23 = _asyncToGenerator(function* () {
|
|
661
679
|
if (mode === "checkout") {
|
|
662
|
-
yield previewQueueRef.current;
|
|
663
|
-
yield salesSdkCart.waitForCartConsistency();
|
|
664
680
|
const checkoutResult = yield sales === null || sales === void 0 ? void 0 : sales.openCheckout();
|
|
665
681
|
const isBackWithPaymentChanged = (checkoutResult === null || checkoutResult === void 0 ? void 0 : checkoutResult.reason) === "back" && (checkoutResult === null || checkoutResult === void 0 ? void 0 : checkoutResult.isChangePaymentNotIncludeVoucher) === true;
|
|
666
682
|
const isBackWithoutPayment = (checkoutResult === null || checkoutResult === void 0 ? void 0 : checkoutResult.reason) === "back" && !isBackWithPaymentChanged;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
//#region src/plus/saleDetail/locales.ts
|
|
2
2
|
var locales_default = {
|
|
3
3
|
en: {
|
|
4
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "These time extension products are not available for all selected tickets. Please select tickets again.",
|
|
4
5
|
"pisell2.text.checkout": "Checkout",
|
|
5
6
|
"pisell2.text.add-order-notes": "Add Order Note",
|
|
6
7
|
"pisell1.text.edit-status-success": "Edit status successfully",
|
|
@@ -396,6 +397,7 @@ var locales_default = {
|
|
|
396
397
|
"pisell2.sale-detail.order-saved-success": "Order saved. You can find it in Order List."
|
|
397
398
|
},
|
|
398
399
|
"zh-CN": {
|
|
400
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "加时商品不适用于全部已选票,请重新选票。",
|
|
399
401
|
"pisell2.text.checkout": "结账",
|
|
400
402
|
"pisell2.text.add-order-notes": "添加订单备注",
|
|
401
403
|
"pisell1.text.edit-status-success": "编辑状态成功",
|
|
@@ -791,6 +793,7 @@ var locales_default = {
|
|
|
791
793
|
"pisell2.sale-detail.order-saved-success": "订单已保存。您可以在订单列表中找到它。"
|
|
792
794
|
},
|
|
793
795
|
"zh-HK": {
|
|
796
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "加時商品不適用於全部已選票,請重新選票。",
|
|
794
797
|
"pisell2.text.checkout": "結賬",
|
|
795
798
|
"pisell2.text.add-order-notes": "添加訂單備注",
|
|
796
799
|
"pisell1.text.edit-status-success": "編輯狀態成功",
|
|
@@ -1186,6 +1189,7 @@ var locales_default = {
|
|
|
1186
1189
|
"pisell2.sale-detail.order-saved-success": "訂單已保存。 您可以在訂單清單中找到它。"
|
|
1187
1190
|
},
|
|
1188
1191
|
ja: {
|
|
1192
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "選択したすべてのチケットに適用できない延長商品があります。チケットを選択し直してください。",
|
|
1189
1193
|
"pisell2.text.checkout": "チェックアウト",
|
|
1190
1194
|
"pisell2.text.add-order-notes": "注文メモを追加",
|
|
1191
1195
|
"pisell1.text.edit-status-success": "ステータスの編集に成功",
|
|
@@ -1581,6 +1585,7 @@ var locales_default = {
|
|
|
1581
1585
|
"pisell2.sale-detail.order-saved-success": "注文が保存されました。注文リストで確認できます。"
|
|
1582
1586
|
},
|
|
1583
1587
|
pt: {
|
|
1588
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "Estes produtos de extensão de tempo não se aplicam a todos os bilhetes selecionados. Selecione os bilhetes novamente.",
|
|
1584
1589
|
"pisell2.text.checkout": "Checkout",
|
|
1585
1590
|
"pisell2.text.add-order-notes": "Adicionar Nota do Pedido",
|
|
1586
1591
|
"pisell1.text.edit-status-success": "Status editado com sucesso",
|
|
@@ -73,9 +73,13 @@ function buildAddTimeMatchingCacheItem(cacheItem) {
|
|
|
73
73
|
collection
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
|
-
const mapSaleDetailAdjustTimeProducts = (rawProducts, cacheItem) =>
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
const mapSaleDetailAdjustTimeProducts = (rawProducts, cacheItem) => mapSaleDetailAdjustTimeProductsForBookings(rawProducts, [cacheItem]);
|
|
77
|
+
/** 批量加时商品必须适用于每张票,不能用第一张票代表整组。 */
|
|
78
|
+
const isSaleDetailAddTimeProductUsableForBookings = (product, cacheItems) => {
|
|
79
|
+
return cacheItems.length > 0 && Boolean(product === null || product === void 0 ? void 0 : product.add_time) && cacheItems.every((cacheItem) => Boolean(cacheItem) && isUsableProduct(product.add_time, buildAddTimeMatchingCacheItem(cacheItem)));
|
|
80
|
+
};
|
|
81
|
+
const mapSaleDetailAdjustTimeProductsForBookings = (rawProducts, cacheItems) => {
|
|
82
|
+
return (rawProducts || []).filter((item) => isSaleDetailAddTimeProductUsableForBookings(item, cacheItems)).map((item) => {
|
|
79
83
|
var _item$add_time, _item$add_time2, _item$add_time3, _item$add_time4, _item$add_time5, _item$add_time6;
|
|
80
84
|
return {
|
|
81
85
|
id: item.id,
|
|
@@ -90,4 +94,4 @@ const mapSaleDetailAdjustTimeProducts = (rawProducts, cacheItem) => {
|
|
|
90
94
|
});
|
|
91
95
|
};
|
|
92
96
|
//#endregion
|
|
93
|
-
export { getResourceEndTimeFromOrigin, mapSaleDetailAdjustTimeBooking, mapSaleDetailAdjustTimeProducts };
|
|
97
|
+
export { getResourceEndTimeFromOrigin, isSaleDetailAddTimeProductUsableForBookings, mapSaleDetailAdjustTimeBooking, mapSaleDetailAdjustTimeProducts, mapSaleDetailAdjustTimeProductsForBookings };
|
|
@@ -21,6 +21,7 @@ dayjs = require_runtime.__toESM(dayjs);
|
|
|
21
21
|
let react = require("react");
|
|
22
22
|
react = require_runtime.__toESM(react);
|
|
23
23
|
let antd = require("antd");
|
|
24
|
+
let _pisell_utils = require("@pisell/utils");
|
|
24
25
|
let decimal_js = require("decimal.js");
|
|
25
26
|
decimal_js = require_runtime.__toESM(decimal_js);
|
|
26
27
|
let lodash = require("lodash");
|
|
@@ -343,6 +344,19 @@ function useAdjustTimeModal(options) {
|
|
|
343
344
|
return acc;
|
|
344
345
|
}, []);
|
|
345
346
|
}, []);
|
|
347
|
+
/** 在任何逐票写入前整组校验,也阻止重新选票前的旧结果被提交。 */
|
|
348
|
+
const assertAddTimeProductsUsable = (0, ahooks.useMemoizedFn)((result) => {
|
|
349
|
+
if (result.actionType === "restart" || result.actionType === "changeTime") return;
|
|
350
|
+
const cacheItems = selectedBookings.map(resolveCacheItem);
|
|
351
|
+
const usableProductIds = new Set(products.filter((product) => require_adjustTimeAdapter.isSaleDetailAddTimeProductUsableForBookings(product._originalProduct, cacheItems)).map((product) => String(product.id)));
|
|
352
|
+
const lines = buildPreviewAddTimeLines(result);
|
|
353
|
+
const invalidSelectedProduct = result.actionType === "product" && (result.selectedProductId == null || !usableProductIds.has(String(result.selectedProductId)));
|
|
354
|
+
const invalidLines = lines.length !== (result.autoPricing.lines || []).length || lines.some((line) => {
|
|
355
|
+
var _line$product$id;
|
|
356
|
+
return !usableProductIds.has(String((_line$product$id = line.product.id) !== null && _line$product$id !== void 0 ? _line$product$id : line.product.product_id)) || !require_adjustTimeAdapter.isSaleDetailAddTimeProductUsableForBookings(line.product, cacheItems);
|
|
357
|
+
});
|
|
358
|
+
if (invalidSelectedProduct || invalidLines) throw new Error(_pisell_utils.locales.getText("pisell2.sale-detail.add-time-products-not-applicable"));
|
|
359
|
+
});
|
|
346
360
|
const buildChangeTimePreviewQueries = (0, ahooks.useMemoizedFn)((result) => {
|
|
347
361
|
var _bookingTicket$getTem, _bookingTicket$getTem2;
|
|
348
362
|
const bookingTicket = sales === null || sales === void 0 ? void 0 : sales.bookingTicket;
|
|
@@ -424,6 +438,7 @@ function useAdjustTimeModal(options) {
|
|
|
424
438
|
return;
|
|
425
439
|
}
|
|
426
440
|
const addTimeLines = buildPreviewAddTimeLines(result);
|
|
441
|
+
assertAddTimeProductsUsable(result);
|
|
427
442
|
if (!addTimeLines.length) return;
|
|
428
443
|
for (const selectedBooking of selectedBookings) yield salesSdkCart.addAddTimeProducts({
|
|
429
444
|
booking: selectedBooking,
|
|
@@ -524,7 +539,7 @@ function useAdjustTimeModal(options) {
|
|
|
524
539
|
yield ensureAdjustTimeResourcesReady(sales, primaryItem);
|
|
525
540
|
const cacheItem = resolveCacheItem(primaryItem);
|
|
526
541
|
const quotationSchedule = resolveBookingQuotationSchedule(primaryItem, cacheItem);
|
|
527
|
-
const mappedProducts = require_adjustTimeAdapter.
|
|
542
|
+
const mappedProducts = require_adjustTimeAdapter.mapSaleDetailAdjustTimeProductsForBookings((quotationSchedule.schedule_date ? yield getAddTimeProductsWithCache(quotationSchedule) : rawAddTimeProducts) || [], items.map(resolveCacheItem));
|
|
528
543
|
const relationId = (_ref17 = (_cacheItem$_extend$re = cacheItem === null || cacheItem === void 0 || (_cacheItem$_extend3 = cacheItem._extend) === null || _cacheItem$_extend3 === void 0 ? void 0 : _cacheItem$_extend3.relation_id) !== null && _cacheItem$_extend$re !== void 0 ? _cacheItem$_extend$re : (_primaryItem$resource = primaryItem.resources) === null || _primaryItem$resource === void 0 || (_primaryItem$resource = _primaryItem$resource[0]) === null || _primaryItem$resource === void 0 ? void 0 : _primaryItem$resource.relation_id) !== null && _ref17 !== void 0 ? _ref17 : primaryItem.relation_id;
|
|
529
544
|
const resourcesOrigin = (booking === null || booking === void 0 || (_booking$getResources = booking.getResourcesOrigin) === null || _booking$getResources === void 0 ? void 0 : _booking$getResources.call(booking)) || [];
|
|
530
545
|
const nextSnapshot = combineBookingSnapshots(items.map((item) => require_adjustTimeAdapter.mapSaleDetailAdjustTimeBooking(item, resolveCacheItem(item))));
|
|
@@ -657,14 +672,15 @@ function useAdjustTimeModal(options) {
|
|
|
657
672
|
* await submitAdjustTimeResult(result, 'save');
|
|
658
673
|
*/
|
|
659
674
|
const submitAdjustTimeResult = (0, ahooks.useMemoizedFn)(function() {
|
|
660
|
-
var _ref24 = require_asyncToGenerator._asyncToGenerator(function* (
|
|
675
|
+
var _ref24 = require_asyncToGenerator._asyncToGenerator(function* (result, mode) {
|
|
661
676
|
if (!selectedBookings.length) return;
|
|
662
677
|
try {
|
|
678
|
+
yield previewQueueRef.current;
|
|
679
|
+
yield salesSdkCart.waitForCartConsistency();
|
|
680
|
+
assertAddTimeProductsUsable(result);
|
|
663
681
|
if (yield function() {
|
|
664
682
|
var _ref23 = require_asyncToGenerator._asyncToGenerator(function* () {
|
|
665
683
|
if (mode === "checkout") {
|
|
666
|
-
yield previewQueueRef.current;
|
|
667
|
-
yield salesSdkCart.waitForCartConsistency();
|
|
668
684
|
const checkoutResult = yield sales === null || sales === void 0 ? void 0 : sales.openCheckout();
|
|
669
685
|
const isBackWithPaymentChanged = (checkoutResult === null || checkoutResult === void 0 ? void 0 : checkoutResult.reason) === "back" && (checkoutResult === null || checkoutResult === void 0 ? void 0 : checkoutResult.isChangePaymentNotIncludeVoucher) === true;
|
|
670
686
|
const isBackWithoutPayment = (checkoutResult === null || checkoutResult === void 0 ? void 0 : checkoutResult.reason) === "back" && !isBackWithPaymentChanged;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
//#region src/plus/saleDetail/locales.ts
|
|
2
2
|
var locales_default = {
|
|
3
3
|
en: {
|
|
4
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "These time extension products are not available for all selected tickets. Please select tickets again.",
|
|
4
5
|
"pisell2.text.checkout": "Checkout",
|
|
5
6
|
"pisell2.text.add-order-notes": "Add Order Note",
|
|
6
7
|
"pisell1.text.edit-status-success": "Edit status successfully",
|
|
@@ -396,6 +397,7 @@ var locales_default = {
|
|
|
396
397
|
"pisell2.sale-detail.order-saved-success": "Order saved. You can find it in Order List."
|
|
397
398
|
},
|
|
398
399
|
"zh-CN": {
|
|
400
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "加时商品不适用于全部已选票,请重新选票。",
|
|
399
401
|
"pisell2.text.checkout": "结账",
|
|
400
402
|
"pisell2.text.add-order-notes": "添加订单备注",
|
|
401
403
|
"pisell1.text.edit-status-success": "编辑状态成功",
|
|
@@ -791,6 +793,7 @@ var locales_default = {
|
|
|
791
793
|
"pisell2.sale-detail.order-saved-success": "订单已保存。您可以在订单列表中找到它。"
|
|
792
794
|
},
|
|
793
795
|
"zh-HK": {
|
|
796
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "加時商品不適用於全部已選票,請重新選票。",
|
|
794
797
|
"pisell2.text.checkout": "結賬",
|
|
795
798
|
"pisell2.text.add-order-notes": "添加訂單備注",
|
|
796
799
|
"pisell1.text.edit-status-success": "編輯狀態成功",
|
|
@@ -1186,6 +1189,7 @@ var locales_default = {
|
|
|
1186
1189
|
"pisell2.sale-detail.order-saved-success": "訂單已保存。 您可以在訂單清單中找到它。"
|
|
1187
1190
|
},
|
|
1188
1191
|
ja: {
|
|
1192
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "選択したすべてのチケットに適用できない延長商品があります。チケットを選択し直してください。",
|
|
1189
1193
|
"pisell2.text.checkout": "チェックアウト",
|
|
1190
1194
|
"pisell2.text.add-order-notes": "注文メモを追加",
|
|
1191
1195
|
"pisell1.text.edit-status-success": "ステータスの編集に成功",
|
|
@@ -1581,6 +1585,7 @@ var locales_default = {
|
|
|
1581
1585
|
"pisell2.sale-detail.order-saved-success": "注文が保存されました。注文リストで確認できます。"
|
|
1582
1586
|
},
|
|
1583
1587
|
pt: {
|
|
1588
|
+
"pisell2.sale-detail.add-time-products-not-applicable": "Estes produtos de extensão de tempo não se aplicam a todos os bilhetes selecionados. Selecione os bilhetes novamente.",
|
|
1584
1589
|
"pisell2.text.checkout": "Checkout",
|
|
1585
1590
|
"pisell2.text.add-order-notes": "Adicionar Nota do Pedido",
|
|
1586
1591
|
"pisell1.text.edit-status-success": "Status editado com sucesso",
|
|
@@ -75,9 +75,13 @@ function buildAddTimeMatchingCacheItem(cacheItem) {
|
|
|
75
75
|
collection
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
-
const mapSaleDetailAdjustTimeProducts = (rawProducts, cacheItem) =>
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
const mapSaleDetailAdjustTimeProducts = (rawProducts, cacheItem) => mapSaleDetailAdjustTimeProductsForBookings(rawProducts, [cacheItem]);
|
|
79
|
+
/** 批量加时商品必须适用于每张票,不能用第一张票代表整组。 */
|
|
80
|
+
const isSaleDetailAddTimeProductUsableForBookings = (product, cacheItems) => {
|
|
81
|
+
return cacheItems.length > 0 && Boolean(product === null || product === void 0 ? void 0 : product.add_time) && cacheItems.every((cacheItem) => Boolean(cacheItem) && require_utils.isUsableProduct(product.add_time, buildAddTimeMatchingCacheItem(cacheItem)));
|
|
82
|
+
};
|
|
83
|
+
const mapSaleDetailAdjustTimeProductsForBookings = (rawProducts, cacheItems) => {
|
|
84
|
+
return (rawProducts || []).filter((item) => isSaleDetailAddTimeProductUsableForBookings(item, cacheItems)).map((item) => {
|
|
81
85
|
var _item$add_time, _item$add_time2, _item$add_time3, _item$add_time4, _item$add_time5, _item$add_time6;
|
|
82
86
|
return {
|
|
83
87
|
id: item.id,
|
|
@@ -93,5 +97,7 @@ const mapSaleDetailAdjustTimeProducts = (rawProducts, cacheItem) => {
|
|
|
93
97
|
};
|
|
94
98
|
//#endregion
|
|
95
99
|
exports.getResourceEndTimeFromOrigin = getResourceEndTimeFromOrigin;
|
|
100
|
+
exports.isSaleDetailAddTimeProductUsableForBookings = isSaleDetailAddTimeProductUsableForBookings;
|
|
96
101
|
exports.mapSaleDetailAdjustTimeBooking = mapSaleDetailAdjustTimeBooking;
|
|
97
102
|
exports.mapSaleDetailAdjustTimeProducts = mapSaleDetailAdjustTimeProducts;
|
|
103
|
+
exports.mapSaleDetailAdjustTimeProductsForBookings = mapSaleDetailAdjustTimeProductsForBookings;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pisell/private-materials",
|
|
3
|
-
"version": "6.12.
|
|
3
|
+
"version": "6.12.337",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"module": "./es/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -72,10 +72,10 @@
|
|
|
72
72
|
"styled-components": "^6.0.0-rc.3",
|
|
73
73
|
"use-sync-external-store": "^1.6.0",
|
|
74
74
|
"@pisell/pi-payment-sdk": "0.0.3",
|
|
75
|
-
"@pisell/utils": "3.0.7",
|
|
76
|
-
"@pisell/icon": "0.0.11",
|
|
77
75
|
"@pisell/materials": "6.12.81",
|
|
78
|
-
"@pisell/
|
|
76
|
+
"@pisell/utils": "3.0.7",
|
|
77
|
+
"@pisell/date-picker": "3.0.12",
|
|
78
|
+
"@pisell/icon": "0.0.11"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"react": "^18.0.0",
|