@crystaldesign/web-planner-logic 26.12.0-beta.5 → 26.12.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/{DivaBoxPlanner-2c699ee3.js → DivaBoxPlanner-e772f6a3.js} +2 -2
- package/build/cjs/{DivaStandardPlanner-3d6a05bc.js → DivaStandardPlanner-d6cb5f39.js} +2 -2
- package/build/cjs/{DoorPlanner-adda9c0d.js → DoorPlanner-9ea7a6aa.js} +1 -1
- package/build/cjs/{Host3DSignalR-6914541f.js → Host3DSignalR-9710fc4e.js} +1 -1
- package/build/cjs/{LiviqueWWSHandler-635cffae.js → LiviqueWWSHandler-fbc83326.js} +1 -1
- package/build/cjs/{PfisterWWSHandler-d95419db.js → PfisterWWSHandler-1a240ebf.js} +1 -1
- package/build/cjs/{PlannerHandler2D-b76ba907.js → PlannerHandler2D-1d75a95f.js} +1 -1
- package/build/cjs/{SeriousBasketHandler-777904e8.js → SeriousBasketHandler-f492ea60.js} +157 -77
- package/build/cjs/{ShelfPlanner-5ffd15a2.js → ShelfPlanner-65f4da8e.js} +1 -1
- package/build/cjs/{StandardWWSHandler-e92acae6.js → StandardWWSHandler-6187c7c9.js} +1 -1
- package/build/cjs/{index-d516d2b2.js → index-34ea53f6.js} +58 -11
- package/build/cjs/index.js +2 -1
- package/build/esm/{DivaBoxPlanner-6f0727a3.js → DivaBoxPlanner-2ba492c3.js} +2 -2
- package/build/esm/{DivaStandardPlanner-7188da61.js → DivaStandardPlanner-19e1f3d9.js} +2 -2
- package/build/esm/{DoorPlanner-74bcd21d.js → DoorPlanner-dd3a1b18.js} +1 -1
- package/build/esm/{Host3DSignalR-bb6db8e6.js → Host3DSignalR-d5d5d7f3.js} +1 -1
- package/build/esm/{LiviqueWWSHandler-c4ba143d.js → LiviqueWWSHandler-1634b15e.js} +1 -1
- package/build/esm/{PfisterWWSHandler-41b7b1b7.js → PfisterWWSHandler-1ba9df74.js} +1 -1
- package/build/esm/{PlannerHandler2D-829ffceb.js → PlannerHandler2D-8b9dbf35.js} +1 -1
- package/build/esm/{SeriousBasketHandler-0bb8ee55.js → SeriousBasketHandler-f0ccbf97.js} +157 -77
- package/build/esm/{ShelfPlanner-1406888d.js → ShelfPlanner-b7d908ec.js} +1 -1
- package/build/esm/{StandardWWSHandler-a8045129.js → StandardWWSHandler-2a205527.js} +1 -1
- package/build/esm/{index-16a1a540.js → index-0e729418.js} +58 -12
- package/build/esm/index.js +1 -1
- package/build/types/web-planner-logic/src/index.d.ts +1 -0
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/SeriousBasketHandler.d.ts +20 -1
- package/build/types/web-planner-logic/src/logic/Basket/SeriousBasketHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/SeriousBasketHandler.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Basket/SeriousBasketHandler.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Basket/seriousSetName.d.ts +8 -0
- package/build/types/web-planner-logic/src/logic/Basket/seriousSetName.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Basket/seriousSetName.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Basket/seriousSetName.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +2 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -5,11 +5,11 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
5
5
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-34ea53f6.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
10
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
11
11
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
12
|
-
var PlannerHandler2D = require('./PlannerHandler2D-
|
|
12
|
+
var PlannerHandler2D = require('./PlannerHandler2D-1d75a95f.js');
|
|
13
13
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
14
14
|
require('axios');
|
|
15
15
|
require('@crystaldesign/basket-model');
|
|
@@ -6,10 +6,10 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
6
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
7
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
8
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-34ea53f6.js');
|
|
10
10
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
11
11
|
var planner2dCore = require('@crystaldesign/planner-2d-core');
|
|
12
|
-
var PlannerHandler2D = require('./PlannerHandler2D-
|
|
12
|
+
var PlannerHandler2D = require('./PlannerHandler2D-1d75a95f.js');
|
|
13
13
|
require('@babel/runtime/helpers/slicedToArray');
|
|
14
14
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
15
15
|
require('axios');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
require('./index-
|
|
6
|
+
require('./index-34ea53f6.js');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
9
9
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
5
5
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-34ea53f6.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
10
|
var signalr = require('@microsoft/signalr');
|
|
11
11
|
var io = require('socket.io-client');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
require('./index-
|
|
5
|
+
require('./index-34ea53f6.js');
|
|
6
6
|
require('@babel/runtime/helpers/slicedToArray');
|
|
7
7
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
8
8
|
require('@babel/runtime/helpers/defineProperty');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index = require('./index-34ea53f6.js');
|
|
6
6
|
var basketModel = require('@crystaldesign/basket-model');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
5
5
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-34ea53f6.js');
|
|
9
9
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
10
10
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
11
11
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-34ea53f6.js');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
9
9
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -29,23 +29,36 @@ var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
|
29
29
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
30
30
|
var DivaUtils__default = /*#__PURE__*/_interopDefaultLegacy(DivaUtils);
|
|
31
31
|
|
|
32
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
33
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
34
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
|
+
|
|
36
|
+
/** An emitted formatted option that may become the main color: flagged with IS_MAIN_COLOR (explicit) or the API2 OPTBE_BOX fallback */
|
|
37
|
+
|
|
32
38
|
//Der in einem Set gemergte Optionsbaum
|
|
33
|
-
|
|
39
|
+
// API2 fallback for the main color used in the PDF; catalogs mark it explicitly with the option property IS_MAIN_COLOR
|
|
40
|
+
var MAIN_COLOR_OPTIONCODEX = 'OPTBE_BOX';
|
|
34
41
|
var StandardWWSHandler = /*#__PURE__*/function () {
|
|
35
42
|
function StandardWWSHandler() {
|
|
36
43
|
_classCallCheck__default["default"](this, StandardWWSHandler);
|
|
37
|
-
_defineProperty__default["default"](this, "
|
|
44
|
+
_defineProperty__default["default"](this, "mainColorCandidates", []);
|
|
38
45
|
}
|
|
39
46
|
return _createClass__default["default"](StandardWWSHandler, [{
|
|
40
47
|
key: "repairWWSFlags",
|
|
41
48
|
value: function repairWWSFlags(articles, orderLines) {
|
|
42
49
|
return orderLines;
|
|
43
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Builds the part list for the Serious PDF. Components are collected at any partlist depth: intermediate articles that
|
|
53
|
+
* only bundle further components without a price of their own (IDM "Hülsen") are not listed themselves, a priced parent
|
|
54
|
+
* (e.g. an IDM Vorzugskombi header) is listed with its own price next to its components, and the options of a component
|
|
55
|
+
* are looked up on its direct parent, which is the set article itself for flat (API2) partlists.
|
|
56
|
+
*/
|
|
44
57
|
}, {
|
|
45
58
|
key: "getWWSData",
|
|
46
59
|
value: function getWWSData(basket, set, orderSet, orderlines) {
|
|
47
60
|
var _this = this;
|
|
48
|
-
this.
|
|
61
|
+
this.mainColorCandidates = [];
|
|
49
62
|
var pos = set.CatalogData.summaryTabGroupPosition;
|
|
50
63
|
var isIDM = set.CatalogData.isIDMFormat;
|
|
51
64
|
var partListOrderLines = [];
|
|
@@ -61,10 +74,12 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
61
74
|
var articles = set.getDivaArticles();
|
|
62
75
|
var groupedPartlistArticles = [];
|
|
63
76
|
var usedOptionCodexes = [];
|
|
77
|
+
// set articles plus the parents of nested components, so catalog tab group codices resolve for both
|
|
78
|
+
var tabGroupLookupArticles = Object.values(articles);
|
|
64
79
|
var posNr = 1;
|
|
65
80
|
for (var iKey in articles) {
|
|
66
81
|
var article = articles[iKey];
|
|
67
|
-
var partlistArticles =
|
|
82
|
+
var partlistArticles = this.getPartlistComponents(article);
|
|
68
83
|
var partlistArticlesWithTabGroup = [];
|
|
69
84
|
groupedPartlistArticles.push({
|
|
70
85
|
article: article,
|
|
@@ -72,52 +87,65 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
72
87
|
partlistArticles: [],
|
|
73
88
|
letOthesMatch: true
|
|
74
89
|
});
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
var _iterator = _createForOfIteratorHelper(partlistArticles),
|
|
91
|
+
_step;
|
|
92
|
+
try {
|
|
93
|
+
var _loop = function _loop() {
|
|
94
|
+
var _partlistArticle$part, _partlistArticle$cata, _optionArticle$getArt, _optionArticle$getArt2;
|
|
95
|
+
var partlistArticle = _step.value;
|
|
96
|
+
var optionArticle = (_partlistArticle$part = partlistArticle.partListParentArticle) !== null && _partlistArticle$part !== void 0 ? _partlistArticle$part : article;
|
|
97
|
+
if (!tabGroupLookupArticles.includes(optionArticle)) tabGroupLookupArticles.push(optionArticle);
|
|
98
|
+
var preDefinedPosNr = (_partlistArticle$cata = partlistArticle.catalogArticle.orderPosNr) !== null && _partlistArticle$cata !== void 0 ? _partlistArticle$cata : null;
|
|
99
|
+
var tabGroup = (_optionArticle$getArt = (_optionArticle$getArt2 = optionArticle.getArticleOptionState((!isIDM ? 'OPT' : '') + partlistArticle.tabGroup)) === null || _optionArticle$getArt2 === void 0 ? void 0 : _optionArticle$getArt2.optionTabGroup) !== null && _optionArticle$getArt !== void 0 ? _optionArticle$getArt : partlistArticle.tabGroup;
|
|
100
|
+
if (preDefinedPosNr !== null) {
|
|
101
|
+
var existingentry = !preDefinedPosNr.endsWith(';') && groupedPartlistArticles.find(function (group) {
|
|
102
|
+
return (group.posNr == Number(preDefinedPosNr) || group.groupKey == preDefinedPosNr) && group.letOthesMatch;
|
|
88
103
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
var newPosNr = Number(preDefinedPosNr);
|
|
92
|
-
if (isNaN(newPosNr)) {
|
|
93
|
-
newPosNr = posNr;
|
|
94
|
-
letOthesMatch = false;
|
|
95
|
-
do {
|
|
96
|
-
newPosNr++;
|
|
97
|
-
} while (groupedPartlistArticles.find(function (group) {
|
|
98
|
-
return group.posNr == newPosNr;
|
|
99
|
-
}));
|
|
100
|
-
}
|
|
101
|
-
groupedPartlistArticles.push({
|
|
102
|
-
article: article,
|
|
103
|
-
posNr: newPosNr,
|
|
104
|
-
letOthesMatch: letOthesMatch,
|
|
105
|
-
partlistArticles: [{
|
|
104
|
+
if (existingentry) {
|
|
105
|
+
existingentry.partlistArticles.push({
|
|
106
106
|
article: partlistArticle,
|
|
107
|
-
tabGroup: tabGroup
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
tabGroup: tabGroup,
|
|
108
|
+
optionArticle: optionArticle
|
|
109
|
+
});
|
|
110
|
+
} else {
|
|
111
|
+
var letOthesMatch = true;
|
|
112
|
+
var newPosNr = Number(preDefinedPosNr);
|
|
113
|
+
if (isNaN(newPosNr)) {
|
|
114
|
+
newPosNr = posNr;
|
|
115
|
+
letOthesMatch = false;
|
|
116
|
+
do {
|
|
117
|
+
newPosNr++;
|
|
118
|
+
} while (groupedPartlistArticles.find(function (group) {
|
|
119
|
+
return group.posNr == newPosNr;
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
groupedPartlistArticles.push({
|
|
123
|
+
article: article,
|
|
124
|
+
posNr: newPosNr,
|
|
125
|
+
letOthesMatch: letOthesMatch,
|
|
126
|
+
partlistArticles: [{
|
|
127
|
+
article: partlistArticle,
|
|
128
|
+
tabGroup: tabGroup,
|
|
129
|
+
optionArticle: optionArticle
|
|
130
|
+
}],
|
|
131
|
+
groupKey: preDefinedPosNr
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
} else {
|
|
135
|
+
partlistArticlesWithTabGroup.push({
|
|
136
|
+
article: partlistArticle,
|
|
137
|
+
tabGroup: tabGroup,
|
|
138
|
+
optionArticle: optionArticle
|
|
110
139
|
});
|
|
111
140
|
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
tabGroup: tabGroup
|
|
116
|
-
});
|
|
141
|
+
};
|
|
142
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
143
|
+
_loop();
|
|
117
144
|
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
145
|
+
} catch (err) {
|
|
146
|
+
_iterator.e(err);
|
|
147
|
+
} finally {
|
|
148
|
+
_iterator.f();
|
|
121
149
|
}
|
|
122
150
|
groupedPartlistArticles.find(function (group) {
|
|
123
151
|
return group.posNr === posNr;
|
|
@@ -129,23 +157,25 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
129
157
|
}));
|
|
130
158
|
}
|
|
131
159
|
if (pos) this.sort(pos, groupedPartlistArticles);
|
|
132
|
-
var
|
|
160
|
+
for (var _i = 0; _i < groupedPartlistArticles.length; _i++) {
|
|
133
161
|
var group = groupedPartlistArticles[_i];
|
|
134
|
-
var article = group.article;
|
|
135
162
|
var posNrCount = 1;
|
|
136
163
|
|
|
137
164
|
//get count of tabgroupOption - articles within each tabgroup
|
|
138
|
-
var
|
|
139
|
-
var
|
|
140
|
-
var
|
|
141
|
-
|
|
165
|
+
var _loop2 = function _loop2() {
|
|
166
|
+
var _optionArticle$getArt3, _optionArticle$getArt4;
|
|
167
|
+
var _group$partlistArticl = group.partlistArticles[j],
|
|
168
|
+
partListArticle = _group$partlistArticl.article,
|
|
169
|
+
optionArticle = _group$partlistArticl.optionArticle;
|
|
170
|
+
var tabGroup = (_optionArticle$getArt3 = (_optionArticle$getArt4 = optionArticle.getArticleOptionState((!isIDM ? 'OPT' : '') + partListArticle.tabGroup)) === null || _optionArticle$getArt4 === void 0 ? void 0 : _optionArticle$getArt4.optionTabGroup) !== null && _optionArticle$getArt3 !== void 0 ? _optionArticle$getArt3 : partListArticle.tabGroup;
|
|
142
171
|
var fountEntry = partListOrderLines.find(function (item) {
|
|
143
172
|
var _item$FormattedOption, _item$FormattedOption2, _this$getFormattedOpt;
|
|
144
|
-
return item.Name == partListArticle.name && item.ArticleNr == partListArticle.configArticleCodex && ((_item$FormattedOption = item.FormattedOptions) === null || _item$FormattedOption === void 0 ? void 0 : _item$FormattedOption[0]) && ((_item$FormattedOption2 = item.FormattedOptions) === null || _item$FormattedOption2 === void 0 ? void 0 : _item$FormattedOption2[0].Title) == ((_this$getFormattedOpt = _this.getFormattedOptions(partListArticle,
|
|
173
|
+
return item.Name == partListArticle.name && item.ArticleNr == partListArticle.configArticleCodex && ((_item$FormattedOption = item.FormattedOptions) === null || _item$FormattedOption === void 0 ? void 0 : _item$FormattedOption[0]) && ((_item$FormattedOption2 = item.FormattedOptions) === null || _item$FormattedOption2 === void 0 ? void 0 : _item$FormattedOption2[0].Title) == ((_this$getFormattedOpt = _this.getFormattedOptions(partListArticle, optionArticle, [], '', usedOptionCodexes)) === null || _this$getFormattedOpt === void 0 ? void 0 : _this$getFormattedOpt[0].Title);
|
|
145
174
|
});
|
|
175
|
+
var unitPrice = _this.unitPrice(partListArticle);
|
|
146
176
|
if (fountEntry) {
|
|
147
177
|
fountEntry.Quantity = fountEntry.Quantity + partListArticle.quantity;
|
|
148
|
-
fountEntry.FormattedPrice = DivaUtils__default["default"].formatPrice(
|
|
178
|
+
fountEntry.FormattedPrice = DivaUtils__default["default"].formatPrice(unitPrice * fountEntry.Quantity);
|
|
149
179
|
} else {
|
|
150
180
|
var colorCodices = [];
|
|
151
181
|
if (tabGroup && tabGroup !== 'Aktion' /* Aktion delete in 2024 */ && tabGroup !== 'BOX_AF_PARIS' || firstItem) {
|
|
@@ -154,14 +184,14 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
154
184
|
finalPosNr = _this$getFinalPosNr.finalPosNr,
|
|
155
185
|
newPosNrCount = _this$getFinalPosNr.newPosNrCount;
|
|
156
186
|
posNrCount = newPosNrCount;
|
|
157
|
-
var formattedOptions = _this.getFormattedOptions(partListArticle,
|
|
187
|
+
var formattedOptions = _this.getFormattedOptions(partListArticle, optionArticle, colorCodices, finalPosNr, usedOptionCodexes);
|
|
158
188
|
partListOrderLines.push({
|
|
159
189
|
ArticleNr: (_partListArticle$conf = partListArticle.configArticleCodex) !== null && _partListArticle$conf !== void 0 && _partListArticle$conf.startsWith('HIDE_CODEX') ? '' : (_partListArticle$conf2 = partListArticle.configArticleCodex) !== null && _partListArticle$conf2 !== void 0 ? _partListArticle$conf2 : partListArticle.articleCodex,
|
|
160
190
|
ColorCodices: colorCodices,
|
|
161
191
|
FormattedOptions: formattedOptions,
|
|
162
|
-
FormattedPrice: DivaUtils__default["default"].formatPrice(
|
|
192
|
+
FormattedPrice: DivaUtils__default["default"].formatPrice(unitPrice * partListArticle.quantity),
|
|
163
193
|
PosNr: finalPosNr,
|
|
164
|
-
Price:
|
|
194
|
+
Price: unitPrice,
|
|
165
195
|
Quantity: partListArticle.quantity,
|
|
166
196
|
TabGroup: tabGroup !== null && tabGroup !== void 0 ? tabGroup : ' ',
|
|
167
197
|
Name: partListArticle.name,
|
|
@@ -173,9 +203,9 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
173
203
|
formattedOptions: [],
|
|
174
204
|
ArticleNr: (_partListArticle$conf3 = partListArticle.configArticleCodex) !== null && _partListArticle$conf3 !== void 0 ? _partListArticle$conf3 : partListArticle.articleCodex,
|
|
175
205
|
ColorCodices: [],
|
|
176
|
-
FormattedPrice: DivaUtils__default["default"].formatPrice(
|
|
206
|
+
FormattedPrice: DivaUtils__default["default"].formatPrice(unitPrice * partListArticle.quantity),
|
|
177
207
|
PosNr: group.posNr + '.00',
|
|
178
|
-
Price:
|
|
208
|
+
Price: unitPrice,
|
|
179
209
|
Quantity: partListArticle.quantity,
|
|
180
210
|
TabGroup: 'SetArtikel',
|
|
181
211
|
Name: (_basket$SetName = basket.SetName) !== null && _basket$SetName !== void 0 ? _basket$SetName : partListArticle.name
|
|
@@ -184,11 +214,8 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
184
214
|
}
|
|
185
215
|
};
|
|
186
216
|
for (var j = 0; j < group.partlistArticles.length; j++) {
|
|
187
|
-
|
|
217
|
+
_loop2();
|
|
188
218
|
}
|
|
189
|
-
};
|
|
190
|
-
for (var _i = 0; _i < groupedPartlistArticles.length; _i++) {
|
|
191
|
-
_loop2();
|
|
192
219
|
}
|
|
193
220
|
for (var _i2 = 0; _i2 < partListOrderLines.length; _i2++) {
|
|
194
221
|
if (partListOrderLines[_i2].TabGroup && !partListGroups.includes(partListOrderLines[_i2].TabGroup)) {
|
|
@@ -199,7 +226,7 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
199
226
|
var partListOrderLinesSorted = [];
|
|
200
227
|
var _loop3 = function _loop3() {
|
|
201
228
|
var _DivaSummaryHandler$g;
|
|
202
|
-
var p = (_DivaSummaryHandler$g = index.summaryHandlerInstance.getTabgroupByOptionCodex(pos[_i3],
|
|
229
|
+
var p = (_DivaSummaryHandler$g = index.summaryHandlerInstance.getTabgroupByOptionCodex(pos[_i3], tabGroupLookupArticles)) !== null && _DivaSummaryHandler$g !== void 0 ? _DivaSummaryHandler$g : pos[_i3];
|
|
203
230
|
while (partListOrderLines.find(function (orderline) {
|
|
204
231
|
return orderline.TabGroup === p;
|
|
205
232
|
})) {
|
|
@@ -226,11 +253,46 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
226
253
|
return posA - posB;
|
|
227
254
|
});
|
|
228
255
|
if (firstItem) partListOrderLines.unshift(firstItem);
|
|
256
|
+
this.markMainColor();
|
|
229
257
|
return {
|
|
230
258
|
PartListOrderLines: partListOrderLines,
|
|
231
259
|
PartListGroups: partListGroups
|
|
232
260
|
};
|
|
233
261
|
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Components at any partlist depth. Articles that only bundle further components without a price of their own (IDM
|
|
265
|
+
* "Hülsen") are left out, also when the current configuration loads none of their components (e.g. no mattress chosen):
|
|
266
|
+
* an empty Hülse is not a part. A partlist parent with a price of its own stays a part, so its price is not lost.
|
|
267
|
+
*/
|
|
268
|
+
}, {
|
|
269
|
+
key: "getPartlistComponents",
|
|
270
|
+
value: function getPartlistComponents(article) {
|
|
271
|
+
return Object.values(article.getRecursivePartlistArticles()).filter(function (partlistArticle) {
|
|
272
|
+
return !partlistArticle.hasPartlistArticle || partlistArticle.mainPrice > 0;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/** Unit price of a part: a partlist parent contributes only its own price, its components are listed themselves. */
|
|
277
|
+
}, {
|
|
278
|
+
key: "unitPrice",
|
|
279
|
+
value: function unitPrice(partListArticle) {
|
|
280
|
+
return partListArticle.hasPartlistArticle ? partListArticle.mainPrice : partListArticle.price;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* The first emitted option flagged with IS_MAIN_COLOR is the main color of the part list; without one, the first emitted
|
|
285
|
+
* OPTBE_BOX option (API2 fallback) is. Decided after all lines exist, so only options that really appear can be chosen.
|
|
286
|
+
*/
|
|
287
|
+
}, {
|
|
288
|
+
key: "markMainColor",
|
|
289
|
+
value: function markMainColor() {
|
|
290
|
+
var _this$mainColorCandid;
|
|
291
|
+
var mainColor = (_this$mainColorCandid = this.mainColorCandidates.find(function (candidate) {
|
|
292
|
+
return candidate.explicit;
|
|
293
|
+
})) !== null && _this$mainColorCandid !== void 0 ? _this$mainColorCandid : this.mainColorCandidates[0];
|
|
294
|
+
if (mainColor) mainColor.option.IsMainColor = true;
|
|
295
|
+
}
|
|
234
296
|
}, {
|
|
235
297
|
key: "getFinalPosNr",
|
|
236
298
|
value: function getFinalPosNr(group, posNrCount, partListArticle, firstItem) {
|
|
@@ -239,7 +301,8 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
239
301
|
//betriebsanleitung soll diese PosNr haben
|
|
240
302
|
finalPosNr = '1.99';
|
|
241
303
|
} else if (group.partlistArticles.length > 1) {
|
|
242
|
-
|
|
304
|
+
// string formatting: float arithmetic yields "1.1" for the 10th and "1.1400000000000001" for the 14th position
|
|
305
|
+
finalPosNr = "".concat(group.posNr, ".").concat(String(posNrCount).padStart(2, '0'));
|
|
243
306
|
posNrCount++;
|
|
244
307
|
} else {
|
|
245
308
|
finalPosNr = (group.posNr + '.00').toString();
|
|
@@ -257,14 +320,27 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
257
320
|
for (var i = 0; i < groupedPartlistArticles.length; i++) {
|
|
258
321
|
var partlistArticlesSorted = [];
|
|
259
322
|
var article = groupedPartlistArticles[i];
|
|
323
|
+
var lookupArticles = [article.article];
|
|
324
|
+
var _iterator2 = _createForOfIteratorHelper(article.partlistArticles),
|
|
325
|
+
_step2;
|
|
326
|
+
try {
|
|
327
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
328
|
+
var entry = _step2.value;
|
|
329
|
+
if (!lookupArticles.includes(entry.optionArticle)) lookupArticles.push(entry.optionArticle);
|
|
330
|
+
}
|
|
331
|
+
} catch (err) {
|
|
332
|
+
_iterator2.e(err);
|
|
333
|
+
} finally {
|
|
334
|
+
_iterator2.f();
|
|
335
|
+
}
|
|
260
336
|
for (var j = 0; j < pos.length; j++) {
|
|
261
337
|
var _DivaSummaryHandler$g2;
|
|
262
338
|
var indexesOf = [];
|
|
263
|
-
var p = (_DivaSummaryHandler$g2 = index.summaryHandlerInstance.getTabgroupByOptionCodex(pos[j],
|
|
339
|
+
var p = (_DivaSummaryHandler$g2 = index.summaryHandlerInstance.getTabgroupByOptionCodex(pos[j], lookupArticles)) !== null && _DivaSummaryHandler$g2 !== void 0 ? _DivaSummaryHandler$g2 : pos[j];
|
|
264
340
|
for (var m = 0; m < article.partlistArticles.length; m++) {
|
|
265
|
-
var
|
|
341
|
+
var _partListArticle$opti, _partListArticle$opti2;
|
|
266
342
|
var partListArticle = article.partlistArticles[m];
|
|
267
|
-
var tabGroup = (
|
|
343
|
+
var tabGroup = (_partListArticle$opti = (_partListArticle$opti2 = partListArticle.optionArticle.getArticleOptionState((!partListArticle.article.CatalogData.isIDMFormat ? 'OPT' : '') + partListArticle.tabGroup)) === null || _partListArticle$opti2 === void 0 ? void 0 : _partListArticle$opti2.optionTabGroup) !== null && _partListArticle$opti !== void 0 ? _partListArticle$opti : partListArticle.tabGroup;
|
|
268
344
|
if (tabGroup == p) {
|
|
269
345
|
indexesOf.push(m);
|
|
270
346
|
}
|
|
@@ -288,26 +364,30 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
288
364
|
var optionStates = index.summaryHandlerInstance.getOptionCodexesOfTabGroupForSummary(article, partListArticle, usedOptionCodexes, finalPosNr == '');
|
|
289
365
|
for (var i = 0; i < optionStates.length; i++) {
|
|
290
366
|
var optionState = optionStates[i];
|
|
291
|
-
if (optionState.optionCodex.startsWith('OPTBE_') || optionState.optionCodex.startsWith('OPTAB_') || optionState.option.addToWWS) {
|
|
367
|
+
if (optionState.optionCodex.startsWith('OPTBE_') || optionState.optionCodex.startsWith('OPTAB_') || optionState.option.addToWWS || optionState.option.isMainColor) {
|
|
292
368
|
var _optionState$vCodex;
|
|
293
369
|
var coloCodex = (_optionState$vCodex = optionState.vCodex) !== null && _optionState$vCodex !== void 0 ? _optionState$vCodex : optionState.valCodex;
|
|
294
370
|
if (coloCodex) {
|
|
295
371
|
var _optionState$val$grou, _optionState$val, _article$getMergesToO;
|
|
296
372
|
colorCodices.push(coloCodex);
|
|
297
|
-
var isMainColor = false;
|
|
298
|
-
if (!this.mainColorFound && optionState.optionCodex == MAIN_COLOR_OPTIONCODEX) {
|
|
299
|
-
isMainColor = true;
|
|
300
|
-
this.mainColorFound = true;
|
|
301
|
-
}
|
|
302
373
|
//IDM has no group name on the value itself: there the Bezugsgruppe is its own feature, merged into this one only for the view
|
|
303
374
|
var groupName = (_optionState$val$grou = (_optionState$val = optionState.val) === null || _optionState$val === void 0 ? void 0 : _optionState$val.groupName) !== null && _optionState$val$grou !== void 0 ? _optionState$val$grou : (_article$getMergesToO = article.getMergesToOPGParentOps(optionState.optionCodex)) === null || _article$getMergesToO === void 0 ? void 0 : _article$getMergesToO.valName;
|
|
304
|
-
|
|
375
|
+
var formattedOption = {
|
|
305
376
|
PosNr: finalPosNr,
|
|
306
377
|
Text: (groupName ? groupName + ' ' : '') + optionState.valName,
|
|
307
378
|
Title: optionState.optionOrigName,
|
|
308
379
|
Codex: optionState.vCodex && optionState.vCodex !== optionState.valName ? optionState.vCodex : '',
|
|
309
|
-
IsMainColor:
|
|
310
|
-
}
|
|
380
|
+
IsMainColor: false
|
|
381
|
+
};
|
|
382
|
+
formattedOptions.push(formattedOption);
|
|
383
|
+
// only options of real lines can become the main color; the dedupe probe (empty PosNr) discards its result
|
|
384
|
+
var explicit = !!optionState.option.isMainColor;
|
|
385
|
+
if (finalPosNr !== '' && (explicit || optionState.optionCodex == MAIN_COLOR_OPTIONCODEX)) {
|
|
386
|
+
this.mainColorCandidates.push({
|
|
387
|
+
option: formattedOption,
|
|
388
|
+
explicit: explicit
|
|
389
|
+
});
|
|
390
|
+
}
|
|
311
391
|
}
|
|
312
392
|
}
|
|
313
393
|
}
|
|
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
6
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
7
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
8
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-34ea53f6.js');
|
|
10
10
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
11
11
|
require('@babel/runtime/helpers/slicedToArray');
|
|
12
12
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
require('./index-
|
|
5
|
+
require('./index-34ea53f6.js');
|
|
6
6
|
require('@babel/runtime/helpers/slicedToArray');
|
|
7
7
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
8
8
|
require('@babel/runtime/helpers/defineProperty');
|