@pisell/pisellos 2.2.193 → 2.2.195
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/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +2 -0
- package/dist/modules/Order/index.d.ts +1 -0
- package/dist/modules/Order/index.js +79 -26
- package/dist/modules/Order/utils/manualProductDiscount.js +1 -1
- package/dist/modules/SalesSummary/index.d.ts +0 -25
- package/dist/modules/SalesSummary/types.d.ts +1 -0
- package/dist/modules/SalesSummary/utils.d.ts +2 -25
- package/dist/modules/SalesSummary/utils.js +528 -159
- package/dist/server/index.js +2 -2
- package/dist/server/modules/products/index.js +4 -4
- package/dist/solution/BaseSales/index.js +39 -14
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +2 -0
- package/lib/modules/Order/index.d.ts +1 -0
- package/lib/modules/Order/index.js +60 -6
- package/lib/modules/Order/utils/manualProductDiscount.js +1 -1
- package/lib/modules/SalesSummary/index.d.ts +0 -25
- package/lib/modules/SalesSummary/types.d.ts +1 -0
- package/lib/modules/SalesSummary/utils.d.ts +2 -25
- package/lib/modules/SalesSummary/utils.js +419 -89
- package/lib/server/index.js +2 -2
- package/lib/server/modules/products/index.js +0 -4
- package/lib/solution/BaseSales/index.js +47 -10
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -44,6 +44,31 @@ __reExport(BaseSales_exports, require("./types"), module.exports);
|
|
|
44
44
|
var import_Quotation = require("../../modules/Quotation");
|
|
45
45
|
var import_transformBaseProductToOrderProduct = require("./utils/transformBaseProductToOrderProduct");
|
|
46
46
|
var import_quotationPrice = require("./utils/quotationPrice");
|
|
47
|
+
function isBaseSalesManualProductDiscountProduct(product) {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
return ((_a = product == null ? void 0 : product.metadata) == null ? void 0 : _a.is_manual_discount) === true || ((_b = product == null ? void 0 : product.metadata) == null ? void 0 : _b.is_manual_discount) === 1 || ((product == null ? void 0 : product.discount_list) || []).some((item) => (item == null ? void 0 : item.type) === "product");
|
|
50
|
+
}
|
|
51
|
+
function getBaseSalesProductUid(product) {
|
|
52
|
+
var _a;
|
|
53
|
+
const uid = ((_a = product == null ? void 0 : product.metadata) == null ? void 0 : _a.unique_identification_number) || (product == null ? void 0 : product.unique_identification_number);
|
|
54
|
+
if (uid === void 0 || uid === null || uid === "")
|
|
55
|
+
return null;
|
|
56
|
+
return String(uid);
|
|
57
|
+
}
|
|
58
|
+
function preserveManualProductDiscountProducts(previousProducts, nextProducts) {
|
|
59
|
+
const previousByUid = /* @__PURE__ */ new Map();
|
|
60
|
+
(previousProducts || []).forEach((product, index) => {
|
|
61
|
+
const uid = getBaseSalesProductUid(product);
|
|
62
|
+
if (uid)
|
|
63
|
+
previousByUid.set(uid, product);
|
|
64
|
+
previousByUid.set(`__index__:${index}`, product);
|
|
65
|
+
});
|
|
66
|
+
return (nextProducts || []).map((product, index) => {
|
|
67
|
+
const uid = getBaseSalesProductUid(product);
|
|
68
|
+
const previous = (uid ? previousByUid.get(uid) : void 0) || previousByUid.get(`__index__:${index}`);
|
|
69
|
+
return previous && isBaseSalesManualProductDiscountProduct(previous) ? previous : product;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
47
72
|
var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
48
73
|
constructor(name, version) {
|
|
49
74
|
super(name, version);
|
|
@@ -772,7 +797,7 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
772
797
|
});
|
|
773
798
|
}
|
|
774
799
|
async loadDiscountConfig(params) {
|
|
775
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t
|
|
800
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
|
|
776
801
|
if (!this.store.order)
|
|
777
802
|
throw new Error("order 模块未初始化");
|
|
778
803
|
const tempOrder = this.store.order.ensureTempOrder();
|
|
@@ -852,19 +877,22 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
852
877
|
orderTotalAmount: Number(((_n = orderStore.summary) == null ? void 0 : _n.total_amount) || 0)
|
|
853
878
|
}) || { productList: tempOrder.products, discountList: nextDiscountList };
|
|
854
879
|
if (result.productList) {
|
|
855
|
-
tempOrder.products =
|
|
880
|
+
tempOrder.products = preserveManualProductDiscountProducts(
|
|
881
|
+
tempOrder.products,
|
|
882
|
+
result.productList
|
|
883
|
+
);
|
|
856
884
|
}
|
|
857
885
|
for (const product of tempOrder.products || []) {
|
|
858
886
|
const productUid = (_o = product.metadata) == null ? void 0 : _o.unique_identification_number;
|
|
859
887
|
const runtimeOrigin = productUid ? (_r = (_q = (_p = tempOrder._extend) == null ? void 0 : _p.productsByUid) == null ? void 0 : _q[productUid]) == null ? void 0 : _r.origin : void 0;
|
|
860
|
-
if ((runtimeOrigin == null ? void 0 : runtimeOrigin.isManualDiscount) || (
|
|
888
|
+
if ((runtimeOrigin == null ? void 0 : runtimeOrigin.isManualDiscount) || isBaseSalesManualProductDiscountProduct(product))
|
|
861
889
|
continue;
|
|
862
890
|
const totalPerUnitDiscount = (product.discount_list || []).reduce(
|
|
863
891
|
(sum, pd) => sum + Number(pd.amount || 0),
|
|
864
892
|
0
|
|
865
893
|
);
|
|
866
894
|
const optionSum = (0, import_utils.sumOptionUnitPrice)((0, import_utils.getProductSkuOptions)(product));
|
|
867
|
-
const sourcePrice = ((
|
|
895
|
+
const sourcePrice = ((_s = product.metadata) == null ? void 0 : _s.source_product_price) ?? (((_t = product.metadata) == null ? void 0 : _t.main_product_original_price) != null ? new import_decimal.default(Number(product.metadata.main_product_original_price) || 0).minus(optionSum).toFixed(2) : product.original_price ?? "0");
|
|
868
896
|
const newSourceSellingPrice = new import_decimal.default(Number(sourcePrice) || 0).minus(totalPerUnitDiscount).toDecimalPlaces(2).toString();
|
|
869
897
|
const newMainSellingPrice = new import_decimal.default(Number(newSourceSellingPrice) || 0).plus(optionSum).toDecimalPlaces(2).toFixed(2);
|
|
870
898
|
if (product.metadata) {
|
|
@@ -928,7 +956,10 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
928
956
|
orderTotalAmount: Number(((_e = orderStore.summary) == null ? void 0 : _e.total_amount) || 0)
|
|
929
957
|
}) || result;
|
|
930
958
|
if (result.productList) {
|
|
931
|
-
tempOrder.products =
|
|
959
|
+
tempOrder.products = preserveManualProductDiscountProducts(
|
|
960
|
+
tempOrder.products,
|
|
961
|
+
result.productList
|
|
962
|
+
);
|
|
932
963
|
}
|
|
933
964
|
if (result.discountList) {
|
|
934
965
|
nextDiscountList = this.mergeHistoricalDiscountList(
|
|
@@ -974,7 +1005,7 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
974
1005
|
}
|
|
975
1006
|
// TODO 需要优化,这段逻辑太长了,里面应该有些历史遗留问题
|
|
976
1007
|
async setDiscountSelected(params) {
|
|
977
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
|
1008
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
978
1009
|
try {
|
|
979
1010
|
if (!this.store.order)
|
|
980
1011
|
throw new Error("order 模块未初始化");
|
|
@@ -1008,7 +1039,10 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
1008
1039
|
}
|
|
1009
1040
|
) || { productList: tempOrder.products, discountList: updated };
|
|
1010
1041
|
if (result == null ? void 0 : result.productList) {
|
|
1011
|
-
tempOrder.products =
|
|
1042
|
+
tempOrder.products = preserveManualProductDiscountProducts(
|
|
1043
|
+
tempOrder.products,
|
|
1044
|
+
result.productList
|
|
1045
|
+
);
|
|
1012
1046
|
}
|
|
1013
1047
|
if (result == null ? void 0 : result.discountList) {
|
|
1014
1048
|
nextDiscountList = result.discountList;
|
|
@@ -1031,7 +1065,7 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
1031
1065
|
for (const product of tempOrder.products) {
|
|
1032
1066
|
const productUid = (_c = product.metadata) == null ? void 0 : _c.unique_identification_number;
|
|
1033
1067
|
const runtimeOrigin = productUid ? (_f = (_e = (_d = tempOrder._extend) == null ? void 0 : _d.productsByUid) == null ? void 0 : _e[productUid]) == null ? void 0 : _f.origin : void 0;
|
|
1034
|
-
if ((runtimeOrigin == null ? void 0 : runtimeOrigin.isManualDiscount) || (
|
|
1068
|
+
if ((runtimeOrigin == null ? void 0 : runtimeOrigin.isManualDiscount) || isBaseSalesManualProductDiscountProduct(product))
|
|
1035
1069
|
continue;
|
|
1036
1070
|
product.discount_list = (product.discount_list || []).filter((pd) => {
|
|
1037
1071
|
var _a2;
|
|
@@ -1043,7 +1077,7 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
1043
1077
|
0
|
|
1044
1078
|
);
|
|
1045
1079
|
const optionSum = (0, import_utils.sumOptionUnitPrice)((0, import_utils.getProductSkuOptions)(product));
|
|
1046
|
-
const sourcePrice = ((
|
|
1080
|
+
const sourcePrice = ((_g = product.metadata) == null ? void 0 : _g.source_product_price) ?? (((_h = product.metadata) == null ? void 0 : _h.main_product_original_price) != null ? new import_decimal.default(Number(product.metadata.main_product_original_price) || 0).minus(optionSum).toFixed(2) : product.original_price ?? "0");
|
|
1047
1081
|
const newSourceSellingPrice = new import_decimal.default(Number(sourcePrice) || 0).minus(totalPerUnitDiscount).toDecimalPlaces(2).toString();
|
|
1048
1082
|
const newMainSellingPrice = new import_decimal.default(Number(newSourceSellingPrice) || 0).plus(optionSum).toDecimalPlaces(2).toFixed(2);
|
|
1049
1083
|
if (product.metadata) {
|
|
@@ -1080,7 +1114,10 @@ var BaseSalesImpl = class extends import_BaseModule.BaseModule {
|
|
|
1080
1114
|
const orderStore = this.store.order.store || {};
|
|
1081
1115
|
const discountModule = orderStore.discount;
|
|
1082
1116
|
if (result.productList) {
|
|
1083
|
-
tempOrder.products =
|
|
1117
|
+
tempOrder.products = preserveManualProductDiscountProducts(
|
|
1118
|
+
tempOrder.products,
|
|
1119
|
+
result.productList
|
|
1120
|
+
);
|
|
1084
1121
|
}
|
|
1085
1122
|
if (result.discountList) {
|
|
1086
1123
|
import_Order.OrderModule.populateSavedAmounts(
|
|
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
311
311
|
date: string;
|
|
312
312
|
status: string;
|
|
313
313
|
week: string;
|
|
314
|
-
weekNum: 0 |
|
|
314
|
+
weekNum: 0 | 2 | 1 | 6 | 3 | 5 | 4;
|
|
315
315
|
}[]>;
|
|
316
316
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
317
317
|
private getScheduleDataByIds;
|
|
@@ -279,7 +279,7 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
|
|
|
279
279
|
* 获取当前的客户搜索条件
|
|
280
280
|
* @returns 当前搜索条件
|
|
281
281
|
*/
|
|
282
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
282
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
|
|
283
283
|
/**
|
|
284
284
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
285
285
|
* @returns 客户状态
|