@pisell/pisellos 2.2.172 → 2.2.173
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/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/modules/Order/index.d.ts +6 -21
- package/dist/modules/Order/index.js +56 -103
- package/dist/modules/Order/types.d.ts +3 -2
- package/dist/modules/Order/utils.d.ts +16 -0
- package/dist/modules/Order/utils.js +80 -1
- package/dist/server/modules/products/index.js +111 -93
- package/dist/solution/BaseSales/index.d.ts +4 -16
- package/dist/solution/BaseSales/index.js +172 -102
- package/dist/solution/BaseSales/types.d.ts +14 -0
- package/dist/solution/BaseSales/utils/quotationPrice.js +95 -17
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +10 -2
- package/lib/model/strategy/adapter/promotion/index.js +49 -0
- package/lib/modules/Order/index.d.ts +6 -21
- package/lib/modules/Order/index.js +55 -100
- package/lib/modules/Order/types.d.ts +3 -2
- package/lib/modules/Order/utils.d.ts +16 -0
- package/lib/modules/Order/utils.js +52 -1
- package/lib/server/modules/products/index.js +19 -7
- package/lib/solution/BaseSales/index.d.ts +4 -16
- package/lib/solution/BaseSales/index.js +68 -33
- package/lib/solution/BaseSales/types.d.ts +14 -0
- package/lib/solution/BaseSales/utils/quotationPrice.js +90 -14
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +8 -0
- package/package.json +1 -1
|
@@ -64,6 +64,8 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
64
64
|
_defineProperty(_assertThisInitialized(_this), "request", void 0);
|
|
65
65
|
// 当前缓存中已加载的最新 SalesDetail;只读 getter 走它对外暴露详情数据。
|
|
66
66
|
_defineProperty(_assertThisInitialized(_this), "currentSalesDetail", null);
|
|
67
|
+
_defineProperty(_assertThisInitialized(_this), "discountConfigCacheKey", null);
|
|
68
|
+
_defineProperty(_assertThisInitialized(_this), "hasManualDiscountSelection", false);
|
|
67
69
|
return _this;
|
|
68
70
|
}
|
|
69
71
|
|
|
@@ -678,14 +680,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
678
680
|
return this.store.order.updateTempOrderContactsInfo(contactsInfo);
|
|
679
681
|
}
|
|
680
682
|
|
|
681
|
-
/**
|
|
682
|
-
* 运行时切换 tempOrder 是否写入 localStorage(委托 OrderModule)。
|
|
683
|
-
* SalesSdk 等内存态场景可在挂载后设为 false,避免污染本地缓存。
|
|
684
|
-
*
|
|
685
|
-
* @example
|
|
686
|
-
* bookingTicket.setEnableTempOrderPersist(false);
|
|
687
|
-
* await bookingTicket.addProductToOrder(product);
|
|
688
|
-
*/
|
|
683
|
+
/** @deprecated OrderModule 不再负责 tempOrder localStorage 持久化。 */
|
|
689
684
|
}, {
|
|
690
685
|
key: "setEnableTempOrderPersist",
|
|
691
686
|
value: function setEnableTempOrderPersist(enabled) {
|
|
@@ -693,18 +688,11 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
693
688
|
this.store.order.setEnableTempOrderPersist(enabled);
|
|
694
689
|
}
|
|
695
690
|
|
|
696
|
-
/**
|
|
697
|
-
* 读取当前 tempOrder localStorage 持久化开关(委托 OrderModule)。
|
|
698
|
-
*
|
|
699
|
-
* @example
|
|
700
|
-
* if (bookingTicket.isTempOrderPersistEnabled()) {
|
|
701
|
-
* bookingTicket.restoreOrder();
|
|
702
|
-
* }
|
|
703
|
-
*/
|
|
691
|
+
/** @deprecated OrderModule 不再负责 tempOrder localStorage 持久化。 */
|
|
704
692
|
}, {
|
|
705
693
|
key: "isTempOrderPersistEnabled",
|
|
706
694
|
value: function isTempOrderPersistEnabled() {
|
|
707
|
-
if (!this.store.order) return
|
|
695
|
+
if (!this.store.order) return false;
|
|
708
696
|
return this.store.order.isTempOrderPersistEnabled();
|
|
709
697
|
}
|
|
710
698
|
}, {
|
|
@@ -802,29 +790,31 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
802
790
|
// this.store.resource = null;
|
|
803
791
|
tempOrder = this.store.order.restoreOrder();
|
|
804
792
|
this.currentSalesDetail = null;
|
|
805
|
-
|
|
793
|
+
this.discountConfigCacheKey = null;
|
|
794
|
+
this.hasManualDiscountSelection = false;
|
|
795
|
+
_context8.next = 9;
|
|
806
796
|
return this.effectsEmit('onTempOrderReplaced', {
|
|
807
797
|
tempOrder: tempOrder
|
|
808
798
|
});
|
|
809
|
-
case
|
|
799
|
+
case 9:
|
|
810
800
|
if (!this.syncAppDataToTempOrder(tempOrder)) {
|
|
811
|
-
_context8.next =
|
|
801
|
+
_context8.next = 13;
|
|
812
802
|
break;
|
|
813
803
|
}
|
|
814
804
|
this.store.order.persistTempOrder();
|
|
815
|
-
_context8.next =
|
|
805
|
+
_context8.next = 13;
|
|
816
806
|
return this.store.order.saveDraft();
|
|
817
|
-
case
|
|
807
|
+
case 13:
|
|
818
808
|
return _context8.abrupt("return", tempOrder);
|
|
819
|
-
case
|
|
820
|
-
_context8.prev =
|
|
809
|
+
case 16:
|
|
810
|
+
_context8.prev = 16;
|
|
821
811
|
_context8.t0 = _context8["catch"](0);
|
|
822
812
|
throw _context8.t0;
|
|
823
|
-
case
|
|
813
|
+
case 19:
|
|
824
814
|
case "end":
|
|
825
815
|
return _context8.stop();
|
|
826
816
|
}
|
|
827
|
-
}, _callee8, this, [[0,
|
|
817
|
+
}, _callee8, this, [[0, 16]]);
|
|
828
818
|
}));
|
|
829
819
|
function restoreOrder() {
|
|
830
820
|
return _restoreOrder.apply(this, arguments);
|
|
@@ -1025,8 +1015,8 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1025
1015
|
key: "loadDiscountConfig",
|
|
1026
1016
|
value: function () {
|
|
1027
1017
|
var _loadDiscountConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(params) {
|
|
1028
|
-
var _this$getOrderIdentit, _tempOrder$customer, _tempOrder$_extend, _tempOrder$_extend2, _discountModule$getDi, _discountModule$getDi2;
|
|
1029
|
-
var tempOrder, orderStore, discountModule, rulesModule, orderId, customerId, currentDiscountList, preparedDiscountList, _discountModule$setOr, nextDiscountList, _tempOrder$holder, _tempOrder$holder2, _orderStore$summary, holders, result;
|
|
1018
|
+
var _this$getOrderIdentit, _tempOrder$customer, _tempOrder$_extend, _tempOrder$_extend2, _discountModule$getDi, _discountModule$getOr, _discountModule$getDi2;
|
|
1019
|
+
var tempOrder, orderStore, discountModule, rulesModule, orderId, customerId, currentDiscountList, originalDiscountList, hasManualDiscountSelection, discountAction, discountConfigCacheKey, preparedDiscountList, _discountModule$setOr, nextDiscountList, _tempOrder$holder, _tempOrder$holder2, _orderStore$summary, holders, result, _iterator, _step, _product$metadata, _tempOrder$_extend3, _product$metadata2, _product$metadata$sou, _product$metadata3, _product$metadata4, _product$original_pri, product, productUid, runtimeOrigin, totalPerUnitDiscount, optionSum, sourcePrice, newSourceSellingPrice, newMainSellingPrice, summary;
|
|
1030
1020
|
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
1031
1021
|
while (1) switch (_context11.prev = _context11.next) {
|
|
1032
1022
|
case 0:
|
|
@@ -1043,30 +1033,54 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1043
1033
|
orderId = tempOrder.order_id || ((_this$getOrderIdentit = this.getOrderIdentity) === null || _this$getOrderIdentit === void 0 || (_this$getOrderIdentit = _this$getOrderIdentit.call(this)) === null || _this$getOrderIdentit === void 0 ? void 0 : _this$getOrderIdentit.orderId);
|
|
1044
1034
|
customerId = Number((params === null || params === void 0 ? void 0 : params.customerId) || tempOrder.customer_id || ((_tempOrder$customer = tempOrder.customer) === null || _tempOrder$customer === void 0 ? void 0 : _tempOrder$customer.id) || ((_tempOrder$_extend = tempOrder._extend) === null || _tempOrder$_extend === void 0 || (_tempOrder$_extend = _tempOrder$_extend.customerSnapshot) === null || _tempOrder$_extend === void 0 ? void 0 : _tempOrder$_extend.id) || ((_tempOrder$_extend2 = tempOrder._extend) === null || _tempOrder$_extend2 === void 0 || (_tempOrder$_extend2 = _tempOrder$_extend2.customerSnapshot) === null || _tempOrder$_extend2 === void 0 ? void 0 : _tempOrder$_extend2.customer_id) || 0);
|
|
1045
1035
|
currentDiscountList = (discountModule === null || discountModule === void 0 || (_discountModule$getDi = discountModule.getDiscountList) === null || _discountModule$getDi === void 0 ? void 0 : _discountModule$getDi.call(discountModule)) || [];
|
|
1036
|
+
originalDiscountList = (discountModule === null || discountModule === void 0 || (_discountModule$getOr = discountModule.getOriginalDiscountList) === null || _discountModule$getOr === void 0 ? void 0 : _discountModule$getOr.call(discountModule)) || [];
|
|
1037
|
+
hasManualDiscountSelection = this.hasManualDiscountSelection || currentDiscountList.some(function (discount) {
|
|
1038
|
+
return discount.isManualSelect;
|
|
1039
|
+
});
|
|
1040
|
+
discountAction = (params === null || params === void 0 ? void 0 : params.action) || (orderId ? 'edit' : 'create');
|
|
1041
|
+
discountConfigCacheKey = [customerId, discountAction, Number(orderId) || 0].join(':');
|
|
1046
1042
|
preparedDiscountList = [];
|
|
1047
1043
|
if (!(customerId && customerId !== 1)) {
|
|
1048
|
-
_context11.next =
|
|
1044
|
+
_context11.next = 25;
|
|
1045
|
+
break;
|
|
1046
|
+
}
|
|
1047
|
+
if (!(this.discountConfigCacheKey === discountConfigCacheKey)) {
|
|
1048
|
+
_context11.next = 19;
|
|
1049
1049
|
break;
|
|
1050
1050
|
}
|
|
1051
|
-
|
|
1051
|
+
preparedDiscountList = originalDiscountList;
|
|
1052
|
+
_context11.next = 25;
|
|
1053
|
+
break;
|
|
1054
|
+
case 19:
|
|
1055
|
+
_context11.next = 21;
|
|
1052
1056
|
return this.store.order.loadDiscountConfig({
|
|
1053
1057
|
customerId: customerId,
|
|
1054
|
-
action:
|
|
1058
|
+
action: discountAction,
|
|
1055
1059
|
orderId: Number(orderId) || undefined,
|
|
1056
1060
|
apply: false
|
|
1057
1061
|
});
|
|
1058
|
-
case
|
|
1062
|
+
case 21:
|
|
1059
1063
|
preparedDiscountList = _context11.sent;
|
|
1060
|
-
|
|
1064
|
+
this.discountConfigCacheKey = discountConfigCacheKey;
|
|
1065
|
+
_context11.next = 25;
|
|
1061
1066
|
return discountModule === null || discountModule === void 0 || (_discountModule$setOr = discountModule.setOriginalDiscountList) === null || _discountModule$setOr === void 0 ? void 0 : _discountModule$setOr.call(discountModule, preparedDiscountList);
|
|
1062
|
-
case
|
|
1067
|
+
case 25:
|
|
1068
|
+
if (!(hasManualDiscountSelection && currentDiscountList.length)) {
|
|
1069
|
+
_context11.next = 27;
|
|
1070
|
+
break;
|
|
1071
|
+
}
|
|
1072
|
+
return _context11.abrupt("return", {
|
|
1073
|
+
productList: tempOrder.products || [],
|
|
1074
|
+
discountList: currentDiscountList
|
|
1075
|
+
});
|
|
1076
|
+
case 27:
|
|
1063
1077
|
nextDiscountList = this.mergeHistoricalDiscountList(preparedDiscountList || (discountModule === null || discountModule === void 0 || (_discountModule$getDi2 = discountModule.getDiscountList) === null || _discountModule$getDi2 === void 0 ? void 0 : _discountModule$getDi2.call(discountModule)) || [], tempOrder.products || []);
|
|
1064
1078
|
nextDiscountList = this.mergeCurrentDiscountSelectionState(nextDiscountList, currentDiscountList);
|
|
1065
|
-
_context11.next =
|
|
1079
|
+
_context11.next = 31;
|
|
1066
1080
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
1067
|
-
case
|
|
1081
|
+
case 31:
|
|
1068
1082
|
if (!rulesModule) {
|
|
1069
|
-
_context11.next =
|
|
1083
|
+
_context11.next = 67;
|
|
1070
1084
|
break;
|
|
1071
1085
|
}
|
|
1072
1086
|
holders = (_tempOrder$holder = tempOrder.holder) !== null && _tempOrder$holder !== void 0 && _tempOrder$holder.form_record_id ? [{
|
|
@@ -1085,37 +1099,90 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1085
1099
|
if (result.productList) {
|
|
1086
1100
|
tempOrder.products = result.productList;
|
|
1087
1101
|
}
|
|
1102
|
+
_iterator = _createForOfIteratorHelper(tempOrder.products || []);
|
|
1103
|
+
_context11.prev = 36;
|
|
1104
|
+
_iterator.s();
|
|
1105
|
+
case 38:
|
|
1106
|
+
if ((_step = _iterator.n()).done) {
|
|
1107
|
+
_context11.next = 53;
|
|
1108
|
+
break;
|
|
1109
|
+
}
|
|
1110
|
+
product = _step.value;
|
|
1111
|
+
productUid = (_product$metadata = product.metadata) === null || _product$metadata === void 0 ? void 0 : _product$metadata.unique_identification_number;
|
|
1112
|
+
runtimeOrigin = productUid ? (_tempOrder$_extend3 = tempOrder._extend) === null || _tempOrder$_extend3 === void 0 || (_tempOrder$_extend3 = _tempOrder$_extend3.productsByUid) === null || _tempOrder$_extend3 === void 0 || (_tempOrder$_extend3 = _tempOrder$_extend3[productUid]) === null || _tempOrder$_extend3 === void 0 ? void 0 : _tempOrder$_extend3.origin : undefined;
|
|
1113
|
+
if (!(runtimeOrigin !== null && runtimeOrigin !== void 0 && runtimeOrigin.isManualDiscount || (_product$metadata2 = product.metadata) !== null && _product$metadata2 !== void 0 && _product$metadata2.is_manual_discount)) {
|
|
1114
|
+
_context11.next = 44;
|
|
1115
|
+
break;
|
|
1116
|
+
}
|
|
1117
|
+
return _context11.abrupt("continue", 51);
|
|
1118
|
+
case 44:
|
|
1119
|
+
totalPerUnitDiscount = (product.discount_list || []).reduce(function (sum, pd) {
|
|
1120
|
+
return sum + Number(pd.amount || 0);
|
|
1121
|
+
}, 0);
|
|
1122
|
+
optionSum = sumOptionUnitPrice(product.product_option_item);
|
|
1123
|
+
sourcePrice = (_product$metadata$sou = (_product$metadata3 = product.metadata) === null || _product$metadata3 === void 0 ? void 0 : _product$metadata3.source_product_price) !== null && _product$metadata$sou !== void 0 ? _product$metadata$sou : ((_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.main_product_original_price) != null ? new Decimal(Number(product.metadata.main_product_original_price) || 0).minus(optionSum).toFixed(2) : (_product$original_pri = product.original_price) !== null && _product$original_pri !== void 0 ? _product$original_pri : '0';
|
|
1124
|
+
newSourceSellingPrice = new Decimal(Number(sourcePrice) || 0).minus(totalPerUnitDiscount).toDecimalPlaces(2).toString();
|
|
1125
|
+
newMainSellingPrice = new Decimal(Number(newSourceSellingPrice) || 0).plus(optionSum).toDecimalPlaces(2).toFixed(2);
|
|
1126
|
+
if (product.metadata) {
|
|
1127
|
+
product.metadata.main_product_selling_price = newMainSellingPrice;
|
|
1128
|
+
product.metadata.price_schema_version = 2;
|
|
1129
|
+
}
|
|
1130
|
+
product.selling_price = composeLinePrice({
|
|
1131
|
+
mainPrice: newMainSellingPrice,
|
|
1132
|
+
bundle: product.product_bundle
|
|
1133
|
+
});
|
|
1134
|
+
case 51:
|
|
1135
|
+
_context11.next = 38;
|
|
1136
|
+
break;
|
|
1137
|
+
case 53:
|
|
1138
|
+
_context11.next = 58;
|
|
1139
|
+
break;
|
|
1140
|
+
case 55:
|
|
1141
|
+
_context11.prev = 55;
|
|
1142
|
+
_context11.t0 = _context11["catch"](36);
|
|
1143
|
+
_iterator.e(_context11.t0);
|
|
1144
|
+
case 58:
|
|
1145
|
+
_context11.prev = 58;
|
|
1146
|
+
_iterator.f();
|
|
1147
|
+
return _context11.finish(58);
|
|
1148
|
+
case 61:
|
|
1088
1149
|
if (!result.discountList) {
|
|
1089
|
-
_context11.next =
|
|
1150
|
+
_context11.next = 67;
|
|
1090
1151
|
break;
|
|
1091
1152
|
}
|
|
1092
1153
|
nextDiscountList = this.mergeHistoricalDiscountList(result.discountList, tempOrder.products || []);
|
|
1093
1154
|
OrderModule.populateSavedAmounts(tempOrder.products, nextDiscountList);
|
|
1094
|
-
_context11.next =
|
|
1155
|
+
_context11.next = 66;
|
|
1095
1156
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
1096
|
-
case
|
|
1157
|
+
case 66:
|
|
1097
1158
|
tempOrder.discount_list = nextDiscountList.filter(function (discount) {
|
|
1098
1159
|
return discount.isSelected;
|
|
1099
1160
|
});
|
|
1100
|
-
case
|
|
1161
|
+
case 67:
|
|
1162
|
+
_context11.next = 69;
|
|
1163
|
+
return this.store.order.recalculateSummary({
|
|
1164
|
+
createIfMissing: true
|
|
1165
|
+
});
|
|
1166
|
+
case 69:
|
|
1167
|
+
summary = _context11.sent;
|
|
1101
1168
|
this.store.order.persistTempOrder();
|
|
1102
|
-
_context11.next =
|
|
1169
|
+
_context11.next = 73;
|
|
1103
1170
|
return this.effectsEmit('onDiscountApplied', {
|
|
1104
1171
|
productList: tempOrder.products || [],
|
|
1105
1172
|
discountList: nextDiscountList,
|
|
1106
1173
|
selectedDiscountList: tempOrder.discount_list || [],
|
|
1107
1174
|
tempOrder: tempOrder
|
|
1108
1175
|
});
|
|
1109
|
-
case
|
|
1176
|
+
case 73:
|
|
1110
1177
|
return _context11.abrupt("return", {
|
|
1111
1178
|
productList: tempOrder.products || [],
|
|
1112
1179
|
discountList: nextDiscountList
|
|
1113
1180
|
});
|
|
1114
|
-
case
|
|
1181
|
+
case 74:
|
|
1115
1182
|
case "end":
|
|
1116
1183
|
return _context11.stop();
|
|
1117
1184
|
}
|
|
1118
|
-
}, _callee11, this);
|
|
1185
|
+
}, _callee11, this, [[36, 55, 58, 61]]);
|
|
1119
1186
|
}));
|
|
1120
1187
|
function loadDiscountConfig(_x5) {
|
|
1121
1188
|
return _loadDiscountConfig.apply(this, arguments);
|
|
@@ -1126,8 +1193,8 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1126
1193
|
key: "bestDiscount",
|
|
1127
1194
|
value: function () {
|
|
1128
1195
|
var _bestDiscount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(cb) {
|
|
1129
|
-
var _discountModule$
|
|
1130
|
-
var tempOrder, orderStore, discountModule, rulesModule, originalDiscountList, nextDiscountList, result, _tempOrder$holder3, _tempOrder$holder4, _orderStore$summary2, holders;
|
|
1196
|
+
var _discountModule$getOr2, _discountModule$getDi3;
|
|
1197
|
+
var tempOrder, orderStore, discountModule, rulesModule, originalDiscountList, currentDiscountList, nextDiscountList, result, _tempOrder$holder3, _tempOrder$holder4, _orderStore$summary2, holders;
|
|
1131
1198
|
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
1132
1199
|
while (1) switch (_context12.prev = _context12.next) {
|
|
1133
1200
|
case 0:
|
|
@@ -1141,17 +1208,18 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1141
1208
|
orderStore = this.store.order.store || {};
|
|
1142
1209
|
discountModule = orderStore.discount;
|
|
1143
1210
|
rulesModule = orderStore.rules;
|
|
1144
|
-
originalDiscountList = (discountModule === null || discountModule === void 0 || (_discountModule$
|
|
1211
|
+
originalDiscountList = (discountModule === null || discountModule === void 0 || (_discountModule$getOr2 = discountModule.getOriginalDiscountList) === null || _discountModule$getOr2 === void 0 ? void 0 : _discountModule$getOr2.call(discountModule)) || this.getDiscountList();
|
|
1212
|
+
currentDiscountList = (discountModule === null || discountModule === void 0 || (_discountModule$getDi3 = discountModule.getDiscountList) === null || _discountModule$getDi3 === void 0 ? void 0 : _discountModule$getDi3.call(discountModule)) || [];
|
|
1145
1213
|
nextDiscountList = this.mergeHistoricalDiscountList(originalDiscountList || [], tempOrder.products || []);
|
|
1146
1214
|
result = {
|
|
1147
1215
|
productList: tempOrder.products || [],
|
|
1148
1216
|
discountList: nextDiscountList
|
|
1149
1217
|
};
|
|
1150
|
-
_context12.next =
|
|
1218
|
+
_context12.next = 12;
|
|
1151
1219
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
1152
|
-
case
|
|
1220
|
+
case 12:
|
|
1153
1221
|
if (!rulesModule) {
|
|
1154
|
-
_context12.next =
|
|
1222
|
+
_context12.next = 23;
|
|
1155
1223
|
break;
|
|
1156
1224
|
}
|
|
1157
1225
|
holders = (_tempOrder$holder3 = tempOrder.holder) !== null && _tempOrder$holder3 !== void 0 && _tempOrder$holder3.form_record_id ? [{
|
|
@@ -1168,14 +1236,14 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1168
1236
|
tempOrder.products = result.productList;
|
|
1169
1237
|
}
|
|
1170
1238
|
if (!result.discountList) {
|
|
1171
|
-
_context12.next =
|
|
1239
|
+
_context12.next = 23;
|
|
1172
1240
|
break;
|
|
1173
1241
|
}
|
|
1174
1242
|
nextDiscountList = this.mergeHistoricalDiscountList(result.discountList, tempOrder.products || []);
|
|
1175
1243
|
OrderModule.populateSavedAmounts(tempOrder.products, nextDiscountList);
|
|
1176
|
-
_context12.next =
|
|
1244
|
+
_context12.next = 21;
|
|
1177
1245
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
1178
|
-
case
|
|
1246
|
+
case 21:
|
|
1179
1247
|
tempOrder.discount_list = nextDiscountList.filter(function (discount) {
|
|
1180
1248
|
return discount.isSelected;
|
|
1181
1249
|
});
|
|
@@ -1183,16 +1251,16 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1183
1251
|
productList: tempOrder.products,
|
|
1184
1252
|
discountList: nextDiscountList
|
|
1185
1253
|
};
|
|
1186
|
-
case
|
|
1187
|
-
_context12.next =
|
|
1254
|
+
case 23:
|
|
1255
|
+
_context12.next = 25;
|
|
1188
1256
|
return this.store.order.recalculateSummary({
|
|
1189
1257
|
createIfMissing: true
|
|
1190
1258
|
});
|
|
1191
|
-
case
|
|
1259
|
+
case 25:
|
|
1192
1260
|
this.store.order.persistTempOrder();
|
|
1193
1261
|
cb === null || cb === void 0 || cb(result);
|
|
1194
1262
|
return _context12.abrupt("return", result);
|
|
1195
|
-
case
|
|
1263
|
+
case 28:
|
|
1196
1264
|
case "end":
|
|
1197
1265
|
return _context12.stop();
|
|
1198
1266
|
}
|
|
@@ -1263,7 +1331,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1263
1331
|
key: "setDiscountSelected",
|
|
1264
1332
|
value: function () {
|
|
1265
1333
|
var _setDiscountSelected = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14(params) {
|
|
1266
|
-
var _tempOrder$holder5, list, updated, tempOrder, orderStore, discountModule, rulesModule, holders, nextDiscountList, _tempOrder$holder6, result, beforeSelectedIds,
|
|
1334
|
+
var _tempOrder$holder5, list, updated, tempOrder, orderStore, discountModule, rulesModule, holders, nextDiscountList, _tempOrder$holder6, result, beforeSelectedIds, _iterator2, _step2, d, selectedResourceIds, _iterator3, _step3, _product$metadata5, _tempOrder$_extend4, _product$metadata6, _product$metadata$sou2, _product$metadata7, _product$metadata8, _product$original_pri2, product, productUid, runtimeOrigin, totalPerUnitDiscount, optionSum, sourcePrice, newSourceSellingPrice, newMainSellingPrice;
|
|
1267
1335
|
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
1268
1336
|
while (1) switch (_context14.prev = _context14.next) {
|
|
1269
1337
|
case 0:
|
|
@@ -1281,6 +1349,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1281
1349
|
isManualSelect: !params.isSelected
|
|
1282
1350
|
}) : d;
|
|
1283
1351
|
});
|
|
1352
|
+
this.hasManualDiscountSelection = true;
|
|
1284
1353
|
tempOrder = this.store.order.ensureTempOrder();
|
|
1285
1354
|
orderStore = this.store.order.store || {};
|
|
1286
1355
|
discountModule = orderStore.discount;
|
|
@@ -1289,9 +1358,9 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1289
1358
|
form_record_id: tempOrder.holder.form_record_id
|
|
1290
1359
|
}] : [];
|
|
1291
1360
|
nextDiscountList = updated;
|
|
1292
|
-
_context14.next =
|
|
1361
|
+
_context14.next = 14;
|
|
1293
1362
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(updated);
|
|
1294
|
-
case
|
|
1363
|
+
case 14:
|
|
1295
1364
|
if (rulesModule) {
|
|
1296
1365
|
result = rulesModule.calcDiscount({
|
|
1297
1366
|
productList: tempOrder.products,
|
|
@@ -1316,18 +1385,19 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1316
1385
|
}).map(function (d) {
|
|
1317
1386
|
return d.id;
|
|
1318
1387
|
}));
|
|
1319
|
-
|
|
1388
|
+
_iterator2 = _createForOfIteratorHelper(nextDiscountList);
|
|
1320
1389
|
try {
|
|
1321
|
-
for (
|
|
1322
|
-
d =
|
|
1390
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
1391
|
+
d = _step2.value;
|
|
1323
1392
|
if (d.isSelected && !beforeSelectedIds.has(d.id)) {
|
|
1324
1393
|
d.isSelected = false;
|
|
1394
|
+
d.isManualSelect = true;
|
|
1325
1395
|
}
|
|
1326
1396
|
}
|
|
1327
1397
|
} catch (err) {
|
|
1328
|
-
|
|
1398
|
+
_iterator2.e(err);
|
|
1329
1399
|
} finally {
|
|
1330
|
-
|
|
1400
|
+
_iterator2.f();
|
|
1331
1401
|
}
|
|
1332
1402
|
}
|
|
1333
1403
|
}
|
|
@@ -1337,23 +1407,23 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1337
1407
|
}).map(function (d) {
|
|
1338
1408
|
return d.id;
|
|
1339
1409
|
}));
|
|
1340
|
-
|
|
1341
|
-
_context14.prev =
|
|
1342
|
-
|
|
1343
|
-
case
|
|
1344
|
-
if ((
|
|
1345
|
-
_context14.next =
|
|
1410
|
+
_iterator3 = _createForOfIteratorHelper(tempOrder.products);
|
|
1411
|
+
_context14.prev = 17;
|
|
1412
|
+
_iterator3.s();
|
|
1413
|
+
case 19:
|
|
1414
|
+
if ((_step3 = _iterator3.n()).done) {
|
|
1415
|
+
_context14.next = 35;
|
|
1346
1416
|
break;
|
|
1347
1417
|
}
|
|
1348
|
-
product =
|
|
1349
|
-
productUid = (_product$
|
|
1350
|
-
runtimeOrigin = productUid ? (_tempOrder$
|
|
1351
|
-
if (!(runtimeOrigin !== null && runtimeOrigin !== void 0 && runtimeOrigin.isManualDiscount || (_product$
|
|
1352
|
-
_context14.next =
|
|
1418
|
+
product = _step3.value;
|
|
1419
|
+
productUid = (_product$metadata5 = product.metadata) === null || _product$metadata5 === void 0 ? void 0 : _product$metadata5.unique_identification_number;
|
|
1420
|
+
runtimeOrigin = productUid ? (_tempOrder$_extend4 = tempOrder._extend) === null || _tempOrder$_extend4 === void 0 || (_tempOrder$_extend4 = _tempOrder$_extend4.productsByUid) === null || _tempOrder$_extend4 === void 0 || (_tempOrder$_extend4 = _tempOrder$_extend4[productUid]) === null || _tempOrder$_extend4 === void 0 ? void 0 : _tempOrder$_extend4.origin : undefined;
|
|
1421
|
+
if (!(runtimeOrigin !== null && runtimeOrigin !== void 0 && runtimeOrigin.isManualDiscount || (_product$metadata6 = product.metadata) !== null && _product$metadata6 !== void 0 && _product$metadata6.is_manual_discount)) {
|
|
1422
|
+
_context14.next = 25;
|
|
1353
1423
|
break;
|
|
1354
1424
|
}
|
|
1355
|
-
return _context14.abrupt("continue",
|
|
1356
|
-
case
|
|
1425
|
+
return _context14.abrupt("continue", 33);
|
|
1426
|
+
case 25:
|
|
1357
1427
|
product.discount_list = (product.discount_list || []).filter(function (pd) {
|
|
1358
1428
|
var _pd$discount$resource, _pd$discount;
|
|
1359
1429
|
var rid = (_pd$discount$resource = (_pd$discount = pd.discount) === null || _pd$discount === void 0 ? void 0 : _pd$discount.resource_id) !== null && _pd$discount$resource !== void 0 ? _pd$discount$resource : pd.id;
|
|
@@ -1366,7 +1436,7 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1366
1436
|
return sum + (pd.amount || 0);
|
|
1367
1437
|
}, 0); // TODO 这块逻辑需要拿掉
|
|
1368
1438
|
optionSum = sumOptionUnitPrice(product.product_option_item);
|
|
1369
|
-
sourcePrice = (_product$metadata$
|
|
1439
|
+
sourcePrice = (_product$metadata$sou2 = (_product$metadata7 = product.metadata) === null || _product$metadata7 === void 0 ? void 0 : _product$metadata7.source_product_price) !== null && _product$metadata$sou2 !== void 0 ? _product$metadata$sou2 : ((_product$metadata8 = product.metadata) === null || _product$metadata8 === void 0 ? void 0 : _product$metadata8.main_product_original_price) != null ? new Decimal(Number(product.metadata.main_product_original_price) || 0).minus(optionSum).toFixed(2) : (_product$original_pri2 = product.original_price) !== null && _product$original_pri2 !== void 0 ? _product$original_pri2 : '0';
|
|
1370
1440
|
newSourceSellingPrice = new Decimal(Number(sourcePrice) || 0).minus(totalPerUnitDiscount).toDecimalPlaces(2).toString();
|
|
1371
1441
|
newMainSellingPrice = new Decimal(Number(newSourceSellingPrice) || 0).plus(optionSum).toDecimalPlaces(2).toFixed(2);
|
|
1372
1442
|
if (product.metadata) {
|
|
@@ -1377,33 +1447,33 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1377
1447
|
mainPrice: newMainSellingPrice,
|
|
1378
1448
|
bundle: product.product_bundle
|
|
1379
1449
|
});
|
|
1380
|
-
case
|
|
1381
|
-
_context14.next =
|
|
1450
|
+
case 33:
|
|
1451
|
+
_context14.next = 19;
|
|
1382
1452
|
break;
|
|
1383
|
-
case
|
|
1384
|
-
_context14.next =
|
|
1453
|
+
case 35:
|
|
1454
|
+
_context14.next = 40;
|
|
1385
1455
|
break;
|
|
1386
|
-
case
|
|
1387
|
-
_context14.prev =
|
|
1388
|
-
_context14.t0 = _context14["catch"](
|
|
1389
|
-
|
|
1390
|
-
case
|
|
1391
|
-
_context14.prev =
|
|
1392
|
-
|
|
1393
|
-
return _context14.finish(
|
|
1394
|
-
case
|
|
1456
|
+
case 37:
|
|
1457
|
+
_context14.prev = 37;
|
|
1458
|
+
_context14.t0 = _context14["catch"](17);
|
|
1459
|
+
_iterator3.e(_context14.t0);
|
|
1460
|
+
case 40:
|
|
1461
|
+
_context14.prev = 40;
|
|
1462
|
+
_iterator3.f();
|
|
1463
|
+
return _context14.finish(40);
|
|
1464
|
+
case 43:
|
|
1395
1465
|
OrderModule.populateSavedAmounts(tempOrder.products, nextDiscountList);
|
|
1396
|
-
_context14.next =
|
|
1466
|
+
_context14.next = 46;
|
|
1397
1467
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
1398
|
-
case
|
|
1468
|
+
case 46:
|
|
1399
1469
|
tempOrder.discount_list = (nextDiscountList || []).filter(function (d) {
|
|
1400
1470
|
return d.isSelected;
|
|
1401
1471
|
});
|
|
1402
|
-
_context14.next =
|
|
1472
|
+
_context14.next = 49;
|
|
1403
1473
|
return this.store.order.recalculateSummary({
|
|
1404
1474
|
createIfMissing: true
|
|
1405
1475
|
});
|
|
1406
|
-
case
|
|
1476
|
+
case 49:
|
|
1407
1477
|
this.store.order.persistTempOrder();
|
|
1408
1478
|
this.effectsEmit('onDiscountApplied', {
|
|
1409
1479
|
productList: tempOrder.products,
|
|
@@ -1411,17 +1481,17 @@ export var BaseSalesImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1411
1481
|
selectedDiscountList: tempOrder.discount_list,
|
|
1412
1482
|
tempOrder: tempOrder
|
|
1413
1483
|
});
|
|
1414
|
-
_context14.next =
|
|
1484
|
+
_context14.next = 56;
|
|
1415
1485
|
break;
|
|
1416
|
-
case
|
|
1417
|
-
_context14.prev =
|
|
1486
|
+
case 53:
|
|
1487
|
+
_context14.prev = 53;
|
|
1418
1488
|
_context14.t1 = _context14["catch"](0);
|
|
1419
1489
|
throw _context14.t1;
|
|
1420
|
-
case
|
|
1490
|
+
case 56:
|
|
1421
1491
|
case "end":
|
|
1422
1492
|
return _context14.stop();
|
|
1423
1493
|
}
|
|
1424
|
-
}, _callee14, this, [[0,
|
|
1494
|
+
}, _callee14, this, [[0, 53], [17, 37, 40, 43]]);
|
|
1425
1495
|
}));
|
|
1426
1496
|
function setDiscountSelected(_x9) {
|
|
1427
1497
|
return _setDiscountSelected.apply(this, arguments);
|
|
@@ -243,6 +243,19 @@ export interface BaseSalesProductBookingPriceSegment {
|
|
|
243
243
|
quotation_shelf_id: number;
|
|
244
244
|
source: BaseSalesProductBookingPriceSegmentSource;
|
|
245
245
|
}
|
|
246
|
+
export interface BaseSalesBundleProductBookingPriceResult {
|
|
247
|
+
bundle_id?: number;
|
|
248
|
+
group_id?: number;
|
|
249
|
+
bundle_group_id?: number;
|
|
250
|
+
bundle_product_id: number | null;
|
|
251
|
+
bundle_variant_id: number;
|
|
252
|
+
unit_price: string;
|
|
253
|
+
total_price: string;
|
|
254
|
+
quantity: number;
|
|
255
|
+
quotation_shelf_id: number;
|
|
256
|
+
source: BaseSalesProductBookingPriceSegmentSource;
|
|
257
|
+
segments: BaseSalesProductBookingPriceSegment[];
|
|
258
|
+
}
|
|
246
259
|
export interface BaseSalesProductBookingPriceResult {
|
|
247
260
|
product_id: number | null;
|
|
248
261
|
product_variant_id: number;
|
|
@@ -253,6 +266,7 @@ export interface BaseSalesProductBookingPriceResult {
|
|
|
253
266
|
duration?: BaseSalesQuotationDurationConfig;
|
|
254
267
|
quotation_shelf_id: number;
|
|
255
268
|
segments: BaseSalesProductBookingPriceSegment[];
|
|
269
|
+
product_bundle?: BaseSalesBundleProductBookingPriceResult[];
|
|
256
270
|
}
|
|
257
271
|
export type BaseSalesAvailabilityMode = 'idle' | 'shop_closed' | 'submit_disabled' | 'resource_busy' | 'additional_order_with_code' | 'additional_order';
|
|
258
272
|
export interface BaseSalesTableFormRecord {
|