@pisell/pisellos 2.3.1 → 2.3.2
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/Order/index.d.ts +9 -0
- package/dist/modules/Order/index.js +448 -369
- package/dist/modules/Order/types.d.ts +2 -0
- package/dist/modules/Quotation/index.d.ts +16 -2
- package/dist/modules/Quotation/index.js +71 -38
- package/dist/modules/Quotation/types.d.ts +14 -0
- package/dist/modules/SalesSummary/index.d.ts +1 -0
- package/dist/modules/SalesSummary/index.js +7 -4
- package/dist/modules/Schedule/index.d.ts +4 -0
- package/dist/modules/Schedule/index.js +31 -1
- package/dist/modules/Schedule/types.d.ts +2 -0
- package/dist/server/index.js +13 -12
- package/dist/server/modules/products/index.d.ts +4 -0
- package/dist/server/modules/products/index.js +76 -45
- package/dist/server/modules/quotation/index.d.ts +39 -0
- package/dist/server/modules/quotation/index.js +278 -66
- package/dist/server/modules/schedule/index.d.ts +2 -0
- package/dist/server/modules/schedule/index.js +10 -2
- package/dist/solution/BaseSales/index.d.ts +10 -1
- package/dist/solution/BaseSales/index.js +825 -528
- package/dist/solution/BaseSales/types.d.ts +7 -0
- package/dist/solution/BaseSales/utils/quotationPrice.d.ts +12 -1
- package/dist/solution/BaseSales/utils/quotationPrice.js +16 -3
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/lib/modules/Order/index.d.ts +9 -0
- package/lib/modules/Order/index.js +48 -7
- package/lib/modules/Order/types.d.ts +2 -0
- package/lib/modules/Quotation/index.d.ts +16 -2
- package/lib/modules/Quotation/index.js +49 -13
- package/lib/modules/Quotation/types.d.ts +14 -0
- package/lib/modules/SalesSummary/index.d.ts +1 -0
- package/lib/modules/SalesSummary/index.js +4 -3
- package/lib/modules/Schedule/index.d.ts +4 -0
- package/lib/modules/Schedule/index.js +21 -0
- package/lib/modules/Schedule/types.d.ts +2 -0
- package/lib/server/index.js +1 -1
- package/lib/server/modules/products/index.d.ts +4 -0
- package/lib/server/modules/products/index.js +43 -19
- package/lib/server/modules/quotation/index.d.ts +39 -0
- package/lib/server/modules/quotation/index.js +179 -1
- package/lib/server/modules/schedule/index.d.ts +2 -0
- package/lib/server/modules/schedule/index.js +8 -1
- package/lib/solution/BaseSales/index.d.ts +10 -1
- package/lib/solution/BaseSales/index.js +218 -19
- package/lib/solution/BaseSales/types.d.ts +7 -0
- package/lib/solution/BaseSales/utils/quotationPrice.d.ts +12 -1
- package/lib/solution/BaseSales/utils/quotationPrice.js +15 -3
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2
4
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
5
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
4
6
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
@@ -16,8 +18,14 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
16
18
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
17
19
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
20
|
import { cloneDeep } from 'lodash-es';
|
|
21
|
+
import dayjs from 'dayjs';
|
|
22
|
+
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
|
|
23
|
+
import isSameOrAfter from 'dayjs/plugin/isSameOrAfter';
|
|
19
24
|
import { BaseModule } from "../../../modules/BaseModule";
|
|
20
25
|
import { QuotationHooks } from "./types";
|
|
26
|
+
import { getDateIsInSchedule } from "../../../modules/Schedule/getDateIsInSchedule";
|
|
27
|
+
dayjs.extend(isSameOrBefore);
|
|
28
|
+
dayjs.extend(isSameOrAfter);
|
|
21
29
|
|
|
22
30
|
/**
|
|
23
31
|
* IndexDB 存储名称
|
|
@@ -30,8 +38,6 @@ var INDEXDB_STORE_NAME = 'quotation';
|
|
|
30
38
|
export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
31
39
|
_inherits(QuotationModule, _BaseModule);
|
|
32
40
|
var _super = _createSuper(QuotationModule);
|
|
33
|
-
// IndexDBManager 实例
|
|
34
|
-
|
|
35
41
|
function QuotationModule(name, version) {
|
|
36
42
|
var _this;
|
|
37
43
|
_classCallCheck(this, QuotationModule);
|
|
@@ -41,6 +47,8 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
41
47
|
_defineProperty(_assertThisInitialized(_this), "request", void 0);
|
|
42
48
|
_defineProperty(_assertThisInitialized(_this), "store", void 0);
|
|
43
49
|
_defineProperty(_assertThisInitialized(_this), "dbManager", void 0);
|
|
50
|
+
// IndexDBManager 实例
|
|
51
|
+
_defineProperty(_assertThisInitialized(_this), "scheduleResolver", void 0);
|
|
44
52
|
return _this;
|
|
45
53
|
}
|
|
46
54
|
_createClass(QuotationModule, [{
|
|
@@ -170,82 +178,286 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
170
178
|
value: function getQuotationList() {
|
|
171
179
|
return this.store.quotationList;
|
|
172
180
|
}
|
|
181
|
+
}, {
|
|
182
|
+
key: "loadQuotations",
|
|
183
|
+
value: function () {
|
|
184
|
+
var _loadQuotations = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
|
|
185
|
+
var _data;
|
|
186
|
+
var query, res, list;
|
|
187
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
188
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
189
|
+
case 0:
|
|
190
|
+
if (!(Array.isArray(this.store.quotationList) && this.store.quotationList.length > 0)) {
|
|
191
|
+
_context4.next = 3;
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
this.store.quotationList.sort(function (a, b) {
|
|
195
|
+
var _ref, _a$sort, _ref2, _b$sort;
|
|
196
|
+
return Number((_ref = (_a$sort = a.sort) !== null && _a$sort !== void 0 ? _a$sort : a.priority) !== null && _ref !== void 0 ? _ref : 0) - Number((_ref2 = (_b$sort = b.sort) !== null && _b$sort !== void 0 ? _b$sort : b.priority) !== null && _ref2 !== void 0 ? _ref2 : 0);
|
|
197
|
+
});
|
|
198
|
+
return _context4.abrupt("return");
|
|
199
|
+
case 3:
|
|
200
|
+
query = {};
|
|
201
|
+
if (params !== null && params !== void 0 && params.channel) query.channel = params.channel;
|
|
202
|
+
if ((params === null || params === void 0 ? void 0 : params.channel) === 'online_store') query.channel = 'online-store';
|
|
203
|
+
_context4.next = 8;
|
|
204
|
+
return this.request.get('/quotation/available', query, {
|
|
205
|
+
useCache: false,
|
|
206
|
+
osServer: true
|
|
207
|
+
});
|
|
208
|
+
case 8:
|
|
209
|
+
res = _context4.sent;
|
|
210
|
+
list = (res === null || res === void 0 || (_data = res.data) === null || _data === void 0 ? void 0 : _data.list) || (res === null || res === void 0 ? void 0 : res.list) || [];
|
|
211
|
+
list.sort(function (a, b) {
|
|
212
|
+
var _ref3, _a$sort2, _ref4, _b$sort2;
|
|
213
|
+
return Number((_ref3 = (_a$sort2 = a.sort) !== null && _a$sort2 !== void 0 ? _a$sort2 : a.priority) !== null && _ref3 !== void 0 ? _ref3 : 0) - Number((_ref4 = (_b$sort2 = b.sort) !== null && _b$sort2 !== void 0 ? _b$sort2 : b.priority) !== null && _ref4 !== void 0 ? _ref4 : 0);
|
|
214
|
+
});
|
|
215
|
+
this.store.quotationList = list;
|
|
216
|
+
_context4.next = 14;
|
|
217
|
+
return this.core.effects.emit(QuotationHooks.onQuotationLoaded, this.store.quotationList);
|
|
218
|
+
case 14:
|
|
219
|
+
case "end":
|
|
220
|
+
return _context4.stop();
|
|
221
|
+
}
|
|
222
|
+
}, _callee4, this);
|
|
223
|
+
}));
|
|
224
|
+
function loadQuotations(_x4) {
|
|
225
|
+
return _loadQuotations.apply(this, arguments);
|
|
226
|
+
}
|
|
227
|
+
return loadQuotations;
|
|
228
|
+
}()
|
|
229
|
+
}, {
|
|
230
|
+
key: "setScheduleResolver",
|
|
231
|
+
value: function setScheduleResolver(resolver) {
|
|
232
|
+
this.scheduleResolver = resolver;
|
|
233
|
+
}
|
|
234
|
+
}, {
|
|
235
|
+
key: "getPriceForProduct",
|
|
236
|
+
value: function getPriceForProduct(params) {
|
|
237
|
+
var _this$getQuotationMat, _this$getQuotationMat2;
|
|
238
|
+
return (_this$getQuotationMat = (_this$getQuotationMat2 = this.getQuotationMatchForProduct(params)) === null || _this$getQuotationMat2 === void 0 ? void 0 : _this$getQuotationMat2.price) !== null && _this$getQuotationMat !== void 0 ? _this$getQuotationMat : null;
|
|
239
|
+
}
|
|
240
|
+
}, {
|
|
241
|
+
key: "getQuotationMatchForProduct",
|
|
242
|
+
value: function getQuotationMatchForProduct(params) {
|
|
243
|
+
var productId = params.productId,
|
|
244
|
+
variantId = params.variantId,
|
|
245
|
+
datetime = params.datetime,
|
|
246
|
+
channel = params.channel,
|
|
247
|
+
customer_id = params.customer_id;
|
|
248
|
+
for (var _i = 0, _arr = this.store.quotationList; _i < _arr.length; _i++) {
|
|
249
|
+
var _ref5, _match$value;
|
|
250
|
+
var quotation = _arr[_i];
|
|
251
|
+
if (!this.isQuotationVisibleForChannel(quotation, channel)) continue;
|
|
252
|
+
if (!this.isQuotationVisibleForCustomer(quotation, customer_id)) continue;
|
|
253
|
+
if (!this.isQuotationActiveAt(quotation, datetime)) continue;
|
|
254
|
+
var match = this.findProductData(quotation, productId, variantId);
|
|
255
|
+
if (!match) continue;
|
|
256
|
+
var value = (_ref5 = (_match$value = match.value) !== null && _match$value !== void 0 ? _match$value : match.final_price) !== null && _ref5 !== void 0 ? _ref5 : match.discount_value;
|
|
257
|
+
if (Number(value) === 0) continue;
|
|
258
|
+
if (value === undefined || value === null || value === '') continue;
|
|
259
|
+
return {
|
|
260
|
+
price: String(value),
|
|
261
|
+
quotationShelfId: Number(quotation.id) || 0
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
}, {
|
|
267
|
+
key: "getQuotationShelfId",
|
|
268
|
+
value: function getQuotationShelfId(params) {
|
|
269
|
+
var _this$getQuotationMat3, _this$getQuotationMat4;
|
|
270
|
+
return (_this$getQuotationMat3 = (_this$getQuotationMat4 = this.getQuotationMatchForProduct(params)) === null || _this$getQuotationMat4 === void 0 ? void 0 : _this$getQuotationMat4.quotationShelfId) !== null && _this$getQuotationMat3 !== void 0 ? _this$getQuotationMat3 : 0;
|
|
271
|
+
}
|
|
272
|
+
}, {
|
|
273
|
+
key: "getQuotationCustomerScopeInfo",
|
|
274
|
+
value: function getQuotationCustomerScopeInfo() {
|
|
275
|
+
var _this2 = this;
|
|
276
|
+
var customerById = new Map();
|
|
277
|
+
var quotationScopes = this.store.quotationList.filter(function (quotation) {
|
|
278
|
+
return Array.isArray(quotation === null || quotation === void 0 ? void 0 : quotation.customer) && quotation.customer.length > 0;
|
|
279
|
+
}).map(function (quotation) {
|
|
280
|
+
var customerIds = [];
|
|
281
|
+
var customers = [];
|
|
282
|
+
var localSeen = new Set();
|
|
283
|
+
(quotation.customer || []).forEach(function (customer) {
|
|
284
|
+
var customerId = _this2.normalizeCustomerId(customer === null || customer === void 0 ? void 0 : customer.id);
|
|
285
|
+
if (!customerId || localSeen.has(customerId)) return;
|
|
286
|
+
localSeen.add(customerId);
|
|
287
|
+
customerIds.push(customerId);
|
|
288
|
+
customers.push(customer);
|
|
289
|
+
if (!customerById.has(customerId)) customerById.set(customerId, customer);
|
|
290
|
+
});
|
|
291
|
+
return {
|
|
292
|
+
quotationId: Number(quotation.id),
|
|
293
|
+
quotationName: String(quotation.name || ''),
|
|
294
|
+
customerIds: customerIds,
|
|
295
|
+
customers: customers
|
|
296
|
+
};
|
|
297
|
+
});
|
|
298
|
+
var result = {
|
|
299
|
+
quotationCount: this.store.quotationList.length,
|
|
300
|
+
hasCustomerScopedQuotations: quotationScopes.length > 0,
|
|
301
|
+
allQuotationsCustomerScoped: this.store.quotationList.length > 0 && quotationScopes.length === this.store.quotationList.length,
|
|
302
|
+
customerIds: Array.from(customerById.keys()),
|
|
303
|
+
customers: Array.from(customerById.values()),
|
|
304
|
+
quotationScopes: quotationScopes
|
|
305
|
+
};
|
|
306
|
+
return result;
|
|
307
|
+
}
|
|
173
308
|
/**
|
|
174
309
|
* 清空缓存
|
|
175
310
|
*/
|
|
176
311
|
}, {
|
|
177
312
|
key: "clear",
|
|
178
313
|
value: (function () {
|
|
179
|
-
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
180
|
-
return _regeneratorRuntime().wrap(function
|
|
181
|
-
while (1) switch (
|
|
314
|
+
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
315
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
316
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
182
317
|
case 0:
|
|
183
318
|
this.store.quotationList = [];
|
|
184
319
|
|
|
185
320
|
// 同时清空 IndexDB 中的数据
|
|
186
321
|
if (!this.dbManager) {
|
|
187
|
-
|
|
322
|
+
_context5.next = 11;
|
|
188
323
|
break;
|
|
189
324
|
}
|
|
190
|
-
|
|
191
|
-
|
|
325
|
+
_context5.prev = 2;
|
|
326
|
+
_context5.next = 5;
|
|
192
327
|
return this.dbManager.clear(INDEXDB_STORE_NAME);
|
|
193
328
|
case 5:
|
|
194
329
|
console.log('[Quotation] IndexDB 缓存已清空');
|
|
195
|
-
|
|
330
|
+
_context5.next = 11;
|
|
196
331
|
break;
|
|
197
332
|
case 8:
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
console.error('[Quotation] 清空 IndexDB 缓存失败:',
|
|
333
|
+
_context5.prev = 8;
|
|
334
|
+
_context5.t0 = _context5["catch"](2);
|
|
335
|
+
console.error('[Quotation] 清空 IndexDB 缓存失败:', _context5.t0);
|
|
201
336
|
case 11:
|
|
202
337
|
console.log('[Quotation] 缓存已清空');
|
|
203
338
|
case 12:
|
|
204
339
|
case "end":
|
|
205
|
-
return
|
|
340
|
+
return _context5.stop();
|
|
206
341
|
}
|
|
207
|
-
},
|
|
342
|
+
}, _callee5, this, [[2, 8]]);
|
|
208
343
|
}));
|
|
209
344
|
function clear() {
|
|
210
345
|
return _clear.apply(this, arguments);
|
|
211
346
|
}
|
|
212
347
|
return clear;
|
|
213
|
-
}()
|
|
348
|
+
}())
|
|
349
|
+
}, {
|
|
350
|
+
key: "normalizeCustomerId",
|
|
351
|
+
value: function normalizeCustomerId(customerId) {
|
|
352
|
+
if (customerId === undefined || customerId === null || customerId === '') return null;
|
|
353
|
+
return String(customerId);
|
|
354
|
+
}
|
|
355
|
+
}, {
|
|
356
|
+
key: "hasValidCustomerId",
|
|
357
|
+
value: function hasValidCustomerId(customerId) {
|
|
358
|
+
if (customerId === undefined || customerId === null || customerId === '') return false;
|
|
359
|
+
return Number(customerId) > 0;
|
|
360
|
+
}
|
|
361
|
+
}, {
|
|
362
|
+
key: "isQuotationVisibleForCustomer",
|
|
363
|
+
value: function isQuotationVisibleForCustomer(quotation, customerId) {
|
|
364
|
+
var customers = quotation.customer || [];
|
|
365
|
+
if (!Array.isArray(customers) || customers.length === 0) return true;
|
|
366
|
+
if (!this.hasValidCustomerId(customerId)) return false;
|
|
367
|
+
return customers.some(function (customer) {
|
|
368
|
+
return String(customer.id) === String(customerId);
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
}, {
|
|
372
|
+
key: "isQuotationVisibleForChannel",
|
|
373
|
+
value: function isQuotationVisibleForChannel(quotation, channel) {
|
|
374
|
+
if (!channel) return true;
|
|
375
|
+
var normalizedChannel = channel === 'online_store' ? 'online-store' : channel;
|
|
376
|
+
var channels = quotation.channel;
|
|
377
|
+
if (!Array.isArray(channels) || channels.length === 0) return true;
|
|
378
|
+
return channels.some(function (item) {
|
|
379
|
+
return String(item) === normalizedChannel;
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
}, {
|
|
383
|
+
key: "isQuotationActiveAt",
|
|
384
|
+
value: function isQuotationActiveAt(quotation, datetime) {
|
|
385
|
+
var _this3 = this;
|
|
386
|
+
var quotationSchedules = Array.isArray(quotation.schedule) ? quotation.schedule : [];
|
|
387
|
+
var scheduleIds = Array.isArray(quotation.schedule_ids) ? quotation.schedule_ids : [];
|
|
388
|
+
if (!quotationSchedules.length && !scheduleIds.length) return false;
|
|
389
|
+
var scheduleItems = [];
|
|
390
|
+
quotationSchedules.forEach(function (schedule) {
|
|
391
|
+
var _this3$scheduleResolv;
|
|
392
|
+
var full = (_this3$scheduleResolv = _this3.scheduleResolver) === null || _this3$scheduleResolv === void 0 ? void 0 : _this3$scheduleResolv.call(_this3, schedule.id);
|
|
393
|
+
if (full) {
|
|
394
|
+
scheduleItems.push(full);
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
if (_this3.scheduleResolver) return;
|
|
398
|
+
scheduleItems.push(_objectSpread(_objectSpread({}, schedule), {}, {
|
|
399
|
+
repeat_type: schedule.repeat_type || 'none',
|
|
400
|
+
repeat_rule: schedule.repeat_rule || null,
|
|
401
|
+
time_slot: schedule.time_slot || []
|
|
402
|
+
}));
|
|
403
|
+
});
|
|
404
|
+
scheduleIds.forEach(function (id) {
|
|
405
|
+
var _this3$scheduleResolv2;
|
|
406
|
+
var full = (_this3$scheduleResolv2 = _this3.scheduleResolver) === null || _this3$scheduleResolv2 === void 0 ? void 0 : _this3$scheduleResolv2.call(_this3, id);
|
|
407
|
+
if (full) scheduleItems.push(full);
|
|
408
|
+
});
|
|
409
|
+
if (!scheduleItems.length) return false;
|
|
410
|
+
return getDateIsInSchedule(datetime, scheduleItems);
|
|
411
|
+
}
|
|
412
|
+
}, {
|
|
413
|
+
key: "findProductData",
|
|
414
|
+
value: function findProductData(quotation, productId, variantId) {
|
|
415
|
+
var productData = Array.isArray(quotation.product_data) ? quotation.product_data : Array.isArray(quotation.product_prices) ? quotation.product_prices : [];
|
|
416
|
+
if (variantId && variantId !== 0) {
|
|
417
|
+
var variantMatch = productData.find(function (item) {
|
|
418
|
+
return Number(item.product_id) === productId && Number(item.variant_id || 0) === variantId;
|
|
419
|
+
});
|
|
420
|
+
if (variantMatch) return variantMatch;
|
|
421
|
+
}
|
|
422
|
+
return productData.find(function (item) {
|
|
423
|
+
return Number(item.product_id) === productId && Number(item.variant_id || 0) === 0;
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
|
|
214
427
|
/**
|
|
215
428
|
* 从 IndexDB 加载报价单数据
|
|
216
429
|
* @private
|
|
217
430
|
*/
|
|
218
|
-
)
|
|
219
431
|
}, {
|
|
220
432
|
key: "loadQuotationFromIndexDB",
|
|
221
433
|
value: (function () {
|
|
222
|
-
var _loadQuotationFromIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
434
|
+
var _loadQuotationFromIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
223
435
|
var quotationList;
|
|
224
|
-
return _regeneratorRuntime().wrap(function
|
|
225
|
-
while (1) switch (
|
|
436
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
437
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
226
438
|
case 0:
|
|
227
439
|
if (this.dbManager) {
|
|
228
|
-
|
|
440
|
+
_context6.next = 2;
|
|
229
441
|
break;
|
|
230
442
|
}
|
|
231
|
-
return
|
|
443
|
+
return _context6.abrupt("return", []);
|
|
232
444
|
case 2:
|
|
233
|
-
|
|
234
|
-
|
|
445
|
+
_context6.prev = 2;
|
|
446
|
+
_context6.next = 5;
|
|
235
447
|
return this.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
236
448
|
case 5:
|
|
237
|
-
quotationList =
|
|
238
|
-
return
|
|
449
|
+
quotationList = _context6.sent;
|
|
450
|
+
return _context6.abrupt("return", quotationList || []);
|
|
239
451
|
case 9:
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
console.error('[Quotation] 从 IndexDB 读取数据失败:',
|
|
243
|
-
return
|
|
452
|
+
_context6.prev = 9;
|
|
453
|
+
_context6.t0 = _context6["catch"](2);
|
|
454
|
+
console.error('[Quotation] 从 IndexDB 读取数据失败:', _context6.t0);
|
|
455
|
+
return _context6.abrupt("return", []);
|
|
244
456
|
case 13:
|
|
245
457
|
case "end":
|
|
246
|
-
return
|
|
458
|
+
return _context6.stop();
|
|
247
459
|
}
|
|
248
|
-
},
|
|
460
|
+
}, _callee6, this, [[2, 9]]);
|
|
249
461
|
}));
|
|
250
462
|
function loadQuotationFromIndexDB() {
|
|
251
463
|
return _loadQuotationFromIndexDB.apply(this, arguments);
|
|
@@ -260,43 +472,43 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
260
472
|
}, {
|
|
261
473
|
key: "saveQuotationToIndexDB",
|
|
262
474
|
value: (function () {
|
|
263
|
-
var _saveQuotationToIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
264
|
-
var
|
|
475
|
+
var _saveQuotationToIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(quotationList) {
|
|
476
|
+
var _this4 = this;
|
|
265
477
|
var savePromises;
|
|
266
|
-
return _regeneratorRuntime().wrap(function
|
|
267
|
-
while (1) switch (
|
|
478
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
479
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
268
480
|
case 0:
|
|
269
481
|
if (this.dbManager) {
|
|
270
|
-
|
|
482
|
+
_context7.next = 2;
|
|
271
483
|
break;
|
|
272
484
|
}
|
|
273
|
-
return
|
|
485
|
+
return _context7.abrupt("return");
|
|
274
486
|
case 2:
|
|
275
|
-
|
|
276
|
-
|
|
487
|
+
_context7.prev = 2;
|
|
488
|
+
_context7.next = 5;
|
|
277
489
|
return this.dbManager.clear(INDEXDB_STORE_NAME);
|
|
278
490
|
case 5:
|
|
279
491
|
// 逐个保存报价单(每个报价单是独立的记录)
|
|
280
492
|
savePromises = quotationList.map(function (quotation) {
|
|
281
|
-
return
|
|
493
|
+
return _this4.dbManager.add(INDEXDB_STORE_NAME, quotation);
|
|
282
494
|
});
|
|
283
|
-
|
|
495
|
+
_context7.next = 8;
|
|
284
496
|
return Promise.all(savePromises);
|
|
285
497
|
case 8:
|
|
286
498
|
console.log("[Quotation] \u5DF2\u5C06 ".concat(quotationList.length, " \u6761\u62A5\u4EF7\u5355\u6570\u636E\u4FDD\u5B58\u5230 IndexDB"));
|
|
287
|
-
|
|
499
|
+
_context7.next = 14;
|
|
288
500
|
break;
|
|
289
501
|
case 11:
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
console.error('[Quotation] 保存数据到 IndexDB 失败:',
|
|
502
|
+
_context7.prev = 11;
|
|
503
|
+
_context7.t0 = _context7["catch"](2);
|
|
504
|
+
console.error('[Quotation] 保存数据到 IndexDB 失败:', _context7.t0);
|
|
293
505
|
case 14:
|
|
294
506
|
case "end":
|
|
295
|
-
return
|
|
507
|
+
return _context7.stop();
|
|
296
508
|
}
|
|
297
|
-
},
|
|
509
|
+
}, _callee7, this, [[2, 11]]);
|
|
298
510
|
}));
|
|
299
|
-
function saveQuotationToIndexDB(
|
|
511
|
+
function saveQuotationToIndexDB(_x5) {
|
|
300
512
|
return _saveQuotationToIndexDB.apply(this, arguments);
|
|
301
513
|
}
|
|
302
514
|
return saveQuotationToIndexDB;
|
|
@@ -309,53 +521,53 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
309
521
|
}, {
|
|
310
522
|
key: "preload",
|
|
311
523
|
value: (function () {
|
|
312
|
-
var _preload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
524
|
+
var _preload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
|
|
313
525
|
var cachedData, quotationList;
|
|
314
|
-
return _regeneratorRuntime().wrap(function
|
|
315
|
-
while (1) switch (
|
|
526
|
+
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
527
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
316
528
|
case 0:
|
|
317
529
|
console.log('[Quotation] 开始预加载数据...');
|
|
318
|
-
|
|
319
|
-
|
|
530
|
+
_context8.prev = 1;
|
|
531
|
+
_context8.next = 4;
|
|
320
532
|
return this.loadQuotationFromIndexDB();
|
|
321
533
|
case 4:
|
|
322
|
-
cachedData =
|
|
534
|
+
cachedData = _context8.sent;
|
|
323
535
|
if (!(cachedData && cachedData.length > 0)) {
|
|
324
|
-
|
|
536
|
+
_context8.next = 10;
|
|
325
537
|
break;
|
|
326
538
|
}
|
|
327
539
|
console.log("[Quotation] \u4ECE IndexDB \u52A0\u8F7D\u4E86 ".concat(cachedData.length, " \u6761\u62A5\u4EF7\u5355\u6570\u636E"));
|
|
328
540
|
// 将缓存数据放入 store
|
|
329
541
|
this.store.quotationList = cloneDeep(cachedData);
|
|
330
542
|
this.core.effects.emit(QuotationHooks.onQuotationChanged, this.store.quotationList);
|
|
331
|
-
return
|
|
543
|
+
return _context8.abrupt("return");
|
|
332
544
|
case 10:
|
|
333
545
|
console.log('[Quotation] IndexDB 中没有缓存数据,从服务器加载...');
|
|
334
|
-
|
|
546
|
+
_context8.next = 16;
|
|
335
547
|
break;
|
|
336
548
|
case 13:
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
console.warn('[Quotation] 从 IndexDB 加载数据失败:',
|
|
549
|
+
_context8.prev = 13;
|
|
550
|
+
_context8.t0 = _context8["catch"](1);
|
|
551
|
+
console.warn('[Quotation] 从 IndexDB 加载数据失败:', _context8.t0);
|
|
340
552
|
case 16:
|
|
341
|
-
|
|
553
|
+
_context8.next = 18;
|
|
342
554
|
return this.loadQuotationList();
|
|
343
555
|
case 18:
|
|
344
|
-
quotationList =
|
|
556
|
+
quotationList = _context8.sent;
|
|
345
557
|
if (!(quotationList && quotationList.length > 0)) {
|
|
346
|
-
|
|
558
|
+
_context8.next = 24;
|
|
347
559
|
break;
|
|
348
560
|
}
|
|
349
|
-
|
|
561
|
+
_context8.next = 22;
|
|
350
562
|
return this.saveQuotationToIndexDB(quotationList);
|
|
351
563
|
case 22:
|
|
352
564
|
this.store.quotationList = cloneDeep(quotationList);
|
|
353
565
|
this.core.effects.emit(QuotationHooks.onQuotationChanged, this.store.quotationList);
|
|
354
566
|
case 24:
|
|
355
567
|
case "end":
|
|
356
|
-
return
|
|
568
|
+
return _context8.stop();
|
|
357
569
|
}
|
|
358
|
-
},
|
|
570
|
+
}, _callee8, this, [[1, 13]]);
|
|
359
571
|
}));
|
|
360
572
|
function preload() {
|
|
361
573
|
return _preload.apply(this, arguments);
|
|
@@ -12,6 +12,7 @@ export declare class ScheduleModuleEx extends BaseModule implements Module, Sche
|
|
|
12
12
|
private store;
|
|
13
13
|
private dbManager;
|
|
14
14
|
private logger;
|
|
15
|
+
private hasLoadedScheduleList;
|
|
15
16
|
constructor(name?: string, version?: string);
|
|
16
17
|
/**
|
|
17
18
|
* 记录信息日志
|
|
@@ -41,6 +42,7 @@ export declare class ScheduleModuleEx extends BaseModule implements Module, Sche
|
|
|
41
42
|
* 获取所有日程列表
|
|
42
43
|
*/
|
|
43
44
|
getScheduleList(): ScheduleItem[];
|
|
45
|
+
isScheduleListLoaded(): boolean;
|
|
44
46
|
/**
|
|
45
47
|
* 根据 schedule IDs 获取日程数据
|
|
46
48
|
* 使用 Map 快速查询,时间复杂度 O(m),m 为 ids 数量
|
|
@@ -43,8 +43,6 @@ var SCHEDULE_STORE_NAME = 'schedule';
|
|
|
43
43
|
export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
44
44
|
_inherits(ScheduleModuleEx, _BaseModule);
|
|
45
45
|
var _super = _createSuper(ScheduleModuleEx);
|
|
46
|
-
// LoggerManager 实例
|
|
47
|
-
|
|
48
46
|
function ScheduleModuleEx(name, version) {
|
|
49
47
|
var _this;
|
|
50
48
|
_classCallCheck(this, ScheduleModuleEx);
|
|
@@ -56,6 +54,8 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
56
54
|
_defineProperty(_assertThisInitialized(_this), "dbManager", void 0);
|
|
57
55
|
// SQLiteAdapter 实例
|
|
58
56
|
_defineProperty(_assertThisInitialized(_this), "logger", void 0);
|
|
57
|
+
// LoggerManager 实例
|
|
58
|
+
_defineProperty(_assertThisInitialized(_this), "hasLoadedScheduleList", false);
|
|
59
59
|
return _this;
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -144,9 +144,11 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
144
144
|
this.store.scheduleList = options.initialState.scheduleList;
|
|
145
145
|
// 同步更新 Map 缓存
|
|
146
146
|
this.syncScheduleMap();
|
|
147
|
+
this.hasLoadedScheduleList = Array.isArray(options.initialState.scheduleList);
|
|
147
148
|
} else {
|
|
148
149
|
this.store.scheduleList = [];
|
|
149
150
|
this.store.map = new Map();
|
|
151
|
+
this.hasLoadedScheduleList = false;
|
|
150
152
|
}
|
|
151
153
|
|
|
152
154
|
// 获取并存储 SQLite 和 logger
|
|
@@ -237,6 +239,7 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
237
239
|
key: "setScheduleList",
|
|
238
240
|
value: function setScheduleList(list) {
|
|
239
241
|
this.store.scheduleList = list;
|
|
242
|
+
this.hasLoadedScheduleList = true;
|
|
240
243
|
// 同步更新 Map 缓存
|
|
241
244
|
this.syncScheduleMap();
|
|
242
245
|
}
|
|
@@ -249,6 +252,11 @@ export var ScheduleModuleEx = /*#__PURE__*/function (_BaseModule) {
|
|
|
249
252
|
value: function getScheduleList() {
|
|
250
253
|
return this.store.scheduleList;
|
|
251
254
|
}
|
|
255
|
+
}, {
|
|
256
|
+
key: "isScheduleListLoaded",
|
|
257
|
+
value: function isScheduleListLoaded() {
|
|
258
|
+
return this.hasLoadedScheduleList;
|
|
259
|
+
}
|
|
252
260
|
|
|
253
261
|
/**
|
|
254
262
|
* 根据 schedule IDs 获取日程数据
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Module, ModuleOptions, PisellCore } from '../../types';
|
|
2
2
|
import { BaseModule } from '../../modules/BaseModule';
|
|
3
|
-
import { BaseSalesOrderProduct, BaseSalesOrderProductIdentity, BaseSalesPaymentStatus, BaseSalesUpdateOrderProductQuantityParams, BaseSalesCalculateProductBookingPriceParams, BaseSalesProductBookingPriceResult, BaseSalesScanCodeResult } from './types';
|
|
3
|
+
import { BaseSalesOrderProduct, BaseSalesOrderProductIdentity, BaseSalesPaymentStatus, BaseSalesUpdateOrderProductQuantityParams, BaseSalesCalculateProductBookingPriceParams, BaseSalesPriceRecalculationContextChange, BaseSalesProductBookingPriceResult, BaseSalesQuotationCustomerScopeInfo, BaseSalesScanCodeResult } from './types';
|
|
4
4
|
import { OrderModule } from '../../modules/Order';
|
|
5
5
|
import type { AddProductBookingInput, LoadSalesDetailParams, OrderPaymentData, OrderPaymentSource, SendCustomerPayLinkParams, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, UpdateTempOrderCustomerInput, UpdateOrderBookingParams, UpdateOrderProductParams, OrderTempOrder, OrderSummary, OrderPromotionEvaluator, OrderGiftSelectResolver, OrderUnfulfilledPromotion, OrderLastGiftActions } from '../../modules/Order/types';
|
|
6
6
|
import type { SubmitPayloadEnhancer } from '../../modules/Order/utils';
|
|
@@ -44,6 +44,7 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
|
|
|
44
44
|
protected currentSalesDetail: ISalesDetail | null;
|
|
45
45
|
protected discountConfigCacheKey: string | null;
|
|
46
46
|
protected hasManualDiscountSelection: boolean;
|
|
47
|
+
private readonly reusedSharedSubModuleNames;
|
|
47
48
|
private paymentMethodsCache;
|
|
48
49
|
constructor(name?: string, version?: string);
|
|
49
50
|
/**
|
|
@@ -51,6 +52,8 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
|
|
|
51
52
|
* 默认包含通用销售模块:products / order / salesSummary / schedule / payment / quotation。
|
|
52
53
|
*/
|
|
53
54
|
protected getRegisteredModuleNames(): readonly string[];
|
|
55
|
+
private getReusableSharedSubModule;
|
|
56
|
+
private isScheduleListLoaded;
|
|
54
57
|
/**
|
|
55
58
|
* 记录信息日志
|
|
56
59
|
*/
|
|
@@ -66,10 +69,12 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
|
|
|
66
69
|
private hydrateOrderPaymentNames;
|
|
67
70
|
get payment(): PaymentModule | undefined;
|
|
68
71
|
private getCurrentOrderCustomerId;
|
|
72
|
+
private normalizePriceContextCustomerId;
|
|
69
73
|
private applyQuotationScheduleResolver;
|
|
70
74
|
private loadQuotationForPriceQuery;
|
|
71
75
|
private getPriceQueryProductId;
|
|
72
76
|
private getPriceQuerySchedule;
|
|
77
|
+
private loadProductsForPriceQuery;
|
|
73
78
|
private loadProductForPriceQuery;
|
|
74
79
|
private getAuthoritativeBundleItems;
|
|
75
80
|
private findAuthoritativeBundleItem;
|
|
@@ -268,8 +273,12 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
|
|
|
268
273
|
}): Promise<T>;
|
|
269
274
|
transformBaseProductToOrderProduct(params: TransformBaseProductToOrderProductParams): import("./utils/transformBaseProductToOrderProduct").BaseProductOrderProductInput | null;
|
|
270
275
|
calculateProductBookingPrice(params: BaseSalesCalculateProductBookingPriceParams): Promise<BaseSalesProductBookingPriceResult>;
|
|
276
|
+
getQuotationCustomerScopeInfo(): BaseSalesQuotationCustomerScopeInfo;
|
|
277
|
+
shouldRecalculateProductBookingPricesForContextChange(params: BaseSalesPriceRecalculationContextChange): boolean;
|
|
278
|
+
calculateProductBookingPrices(paramsList: BaseSalesCalculateProductBookingPriceParams[]): Promise<BaseSalesProductBookingPriceResult[]>;
|
|
271
279
|
addProductToOrder(product: Partial<BaseSalesOrderProduct> & BaseSalesOrderProductIdentity, booking?: AddProductBookingInput): Promise<import("../../modules/Order/types").OrderProduct[]>;
|
|
272
280
|
updateOrderProduct(params: UpdateOrderProductParams): Promise<import("../../modules/Order/types").OrderProduct[]>;
|
|
281
|
+
updateOrderProducts(paramsList: UpdateOrderProductParams[]): Promise<import("../../modules/Order/types").OrderProduct[]>;
|
|
273
282
|
updateOrderProductQuantity(params: BaseSalesUpdateOrderProductQuantityParams): Promise<import("../../modules/Order/types").OrderProduct[]>;
|
|
274
283
|
updateOrderBooking(params: UpdateOrderBookingParams): any[];
|
|
275
284
|
/**
|