@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.
@@ -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, _u;
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 = result.productList;
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) || ((_s = product.metadata) == null ? void 0 : _s.is_manual_discount))
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 = ((_t = product.metadata) == null ? void 0 : _t.source_product_price) ?? (((_u = product.metadata) == null ? void 0 : _u.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");
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 = result.productList;
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, _i;
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 = result.productList;
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) || ((_g = product.metadata) == null ? void 0 : _g.is_manual_discount))
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 = ((_h = product.metadata) == null ? void 0 : _h.source_product_price) ?? (((_i = product.metadata) == null ? void 0 : _i.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");
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 = result.productList;
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 | 1 | 2 | 6 | 3 | 5 | 4;
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, "skip" | "num">;
282
+ getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "num" | "skip">;
283
283
  /**
284
284
  * 获取客户列表状态(包含滚动加载相关状态)
285
285
  * @returns 客户状态
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "2.2.193",
4
+ "version": "2.2.195",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",