@crystaldesign/web-planner-logic 26.12.0-beta.3 → 26.12.0-beta.30
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-484a325e.js} +13 -10
- package/build/cjs/{DivaStandardPlanner-3d6a05bc.js → DivaStandardPlanner-6dbf81c3.js} +9 -5
- package/build/cjs/{DoorPlanner-adda9c0d.js → DoorPlanner-87fac8b8.js} +2 -2
- package/build/cjs/{Host3DSignalR-6914541f.js → Host3DSignalR-2b5a6bae.js} +2 -2
- package/build/cjs/{LiviqueWWSHandler-635cffae.js → LiviqueWWSHandler-992fe2a1.js} +2 -2
- package/build/cjs/{PfisterWWSHandler-d95419db.js → PfisterWWSHandler-e95029c3.js} +2 -2
- package/build/cjs/{PlannerHandler2D-b76ba907.js → PlannerHandler2D-c74ff8ac.js} +5 -272
- package/build/cjs/{SeriousBasketHandler-777904e8.js → SeriousBasketHandler-a20bd057.js} +141 -79
- package/build/cjs/{ShelfPlanner-5ffd15a2.js → ShelfPlanner-c1de034e.js} +107 -79
- package/build/cjs/{StandardWWSHandler-e92acae6.js → StandardWWSHandler-e72d5813.js} +2 -2
- package/build/cjs/{index-d516d2b2.js → index-bd35eec6.js} +3150 -976
- package/build/cjs/index.js +9 -1
- package/build/esm/{DivaBoxPlanner-6f0727a3.js → DivaBoxPlanner-550c74ca.js} +13 -10
- package/build/esm/{DivaStandardPlanner-7188da61.js → DivaStandardPlanner-da5556ac.js} +9 -5
- package/build/esm/{DoorPlanner-74bcd21d.js → DoorPlanner-2f95bff9.js} +2 -2
- package/build/esm/{Host3DSignalR-bb6db8e6.js → Host3DSignalR-7588005e.js} +2 -2
- package/build/esm/{LiviqueWWSHandler-c4ba143d.js → LiviqueWWSHandler-22fe4525.js} +2 -2
- package/build/esm/{PfisterWWSHandler-41b7b1b7.js → PfisterWWSHandler-cc671647.js} +2 -2
- package/build/esm/{PlannerHandler2D-829ffceb.js → PlannerHandler2D-3ae7d185.js} +3 -268
- package/build/esm/{SeriousBasketHandler-0bb8ee55.js → SeriousBasketHandler-c8a94b84.js} +141 -79
- package/build/esm/{ShelfPlanner-1406888d.js → ShelfPlanner-62c2844a.js} +107 -79
- package/build/esm/{StandardWWSHandler-a8045129.js → StandardWWSHandler-f031a067.js} +2 -2
- package/build/esm/{index-16a1a540.js → index-ead00f31.js} +3142 -977
- package/build/esm/index.js +1 -1
- package/build/types/web-planner-logic/src/index.d.ts +10 -0
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/PartListArticleToLoadType.d.ts +3 -0
- package/build/types/web-planner-logic/src/interface/Articles/PartListArticleToLoadType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ConfiguratorStructureDataType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/ConfiguratorStructureDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/CoreTypes/index.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/CoreTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +2 -1
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.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/interface/Planner/DockingPointDataType.d.ts +10 -0
- package/build/types/web-planner-logic/src/interface/Planner/DockingPointDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +8 -2
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts +5 -0
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +40 -0
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts +6 -0
- package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +17 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts +2 -2
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/SeriousBasketHandler.d.ts +12 -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/DivaConfigTree.d.ts +10 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts +40 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +6 -3
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts +7 -1
- 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/DivaApiHandler.d.ts +7 -0
- package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +22 -6
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts +8 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts.map +1 -1
- 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/logic/Set/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts +16 -2
- package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/CatalogPlannerArticleData.d.ts +6 -0
- package/build/types/web-planner-logic/src/model/Articles/CatalogPlannerArticleData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.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/ArticleOptionValueData.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/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts +31 -0
- package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/model/Properties/propertyValueCodec.d.ts +34 -0
- package/build/types/web-planner-logic/src/model/Properties/propertyValueCodec.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/accessoryWithoutDocking.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/accessoryWithoutDocking.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/cloneArticle.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/cloneArticle.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/configTreeStepArticle.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/configTreeStepArticle.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/countDockingPoints.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/countDockingPoints.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/eanFormula.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/eanFormula.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/fallbackRowWarning.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/fallbackRowWarning.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/idmOpgParentNames.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/idmOpgParentNames.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/idmSerieStaleId.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/idmSerieStaleId.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/mergeOptionGroupConnectedSteps.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/mergeOptionGroupConnectedSteps.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/partlistChildInit.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/partlistChildInit.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/propertyEncodingsKnowhow.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/propertyEncodingsKnowhow.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/propertyValueCodec.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/propertyValueCodec.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/staticVisibleOptionValues.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/staticVisibleOptionValues.test.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
2
2
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
-
import { s as summaryHandlerInstance } from './index-
|
|
4
|
+
import { s as summaryHandlerInstance } from './index-ead00f31.js';
|
|
5
5
|
import DivaUtils from '@crystaldesign/diva-utils';
|
|
6
6
|
import '@babel/runtime/helpers/slicedToArray';
|
|
7
7
|
import '@babel/runtime/helpers/asyncToGenerator';
|
|
@@ -9,6 +9,7 @@ import '@babel/runtime/regenerator';
|
|
|
9
9
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
10
10
|
import '@babel/runtime/helpers/toConsumableArray';
|
|
11
11
|
import 'axios';
|
|
12
|
+
import '@crystaldesign/planner-2d-core';
|
|
12
13
|
import '@crystaldesign/basket-model';
|
|
13
14
|
import '@babel/runtime/helpers/typeof';
|
|
14
15
|
import 'fast-xml-parser';
|
|
@@ -18,25 +19,37 @@ import '@babel/runtime/helpers/inherits';
|
|
|
18
19
|
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
19
20
|
import '@crystaldesign/basket-handler';
|
|
20
21
|
import 'socket.io-client';
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
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; } } }; }
|
|
24
|
+
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; } }
|
|
25
|
+
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; }
|
|
26
|
+
|
|
27
|
+
/** An emitted formatted option that may become the main color: flagged with IS_MAIN_COLOR (explicit) or the API2 OPTBE_BOX fallback */
|
|
22
28
|
|
|
23
29
|
//Der in einem Set gemergte Optionsbaum
|
|
24
|
-
|
|
30
|
+
// API2 fallback for the main color used in the PDF; catalogs mark it explicitly with the option property IS_MAIN_COLOR
|
|
31
|
+
var MAIN_COLOR_OPTIONCODEX = 'OPTBE_BOX';
|
|
25
32
|
var StandardWWSHandler = /*#__PURE__*/function () {
|
|
26
33
|
function StandardWWSHandler() {
|
|
27
34
|
_classCallCheck(this, StandardWWSHandler);
|
|
28
|
-
_defineProperty(this, "
|
|
35
|
+
_defineProperty(this, "mainColorCandidates", []);
|
|
29
36
|
}
|
|
30
37
|
return _createClass(StandardWWSHandler, [{
|
|
31
38
|
key: "repairWWSFlags",
|
|
32
39
|
value: function repairWWSFlags(articles, orderLines) {
|
|
33
40
|
return orderLines;
|
|
34
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Builds the part list for the Serious PDF. Components are collected at any partlist depth: intermediate articles that
|
|
44
|
+
* only bundle further components without a price of their own (IDM "Hülsen") are not listed themselves, a priced parent
|
|
45
|
+
* (e.g. an IDM Vorzugskombi header) is listed with its own price next to its components, and the options of a component
|
|
46
|
+
* are looked up on its direct parent, which is the set article itself for flat (API2) partlists.
|
|
47
|
+
*/
|
|
35
48
|
}, {
|
|
36
49
|
key: "getWWSData",
|
|
37
50
|
value: function getWWSData(basket, set, orderSet, orderlines) {
|
|
38
51
|
var _this = this;
|
|
39
|
-
this.
|
|
52
|
+
this.mainColorCandidates = [];
|
|
40
53
|
var pos = set.CatalogData.summaryTabGroupPosition;
|
|
41
54
|
var isIDM = set.CatalogData.isIDMFormat;
|
|
42
55
|
var partListOrderLines = [];
|
|
@@ -52,10 +65,12 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
52
65
|
var articles = set.getDivaArticles();
|
|
53
66
|
var groupedPartlistArticles = [];
|
|
54
67
|
var usedOptionCodexes = [];
|
|
68
|
+
// set articles plus the parents of nested components, so catalog tab group codices resolve for both
|
|
69
|
+
var tabGroupLookupArticles = Object.values(articles);
|
|
55
70
|
var posNr = 1;
|
|
56
71
|
for (var iKey in articles) {
|
|
57
72
|
var article = articles[iKey];
|
|
58
|
-
var partlistArticles =
|
|
73
|
+
var partlistArticles = summaryHandlerInstance.getPartlistComponents(article);
|
|
59
74
|
var partlistArticlesWithTabGroup = [];
|
|
60
75
|
groupedPartlistArticles.push({
|
|
61
76
|
article: article,
|
|
@@ -63,52 +78,65 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
63
78
|
partlistArticles: [],
|
|
64
79
|
letOthesMatch: true
|
|
65
80
|
});
|
|
66
|
-
var
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
81
|
+
var _iterator = _createForOfIteratorHelper(partlistArticles),
|
|
82
|
+
_step;
|
|
83
|
+
try {
|
|
84
|
+
var _loop = function _loop() {
|
|
85
|
+
var _partlistArticle$part, _partlistArticle$cata, _optionArticle$getArt, _optionArticle$getArt2;
|
|
86
|
+
var partlistArticle = _step.value;
|
|
87
|
+
var optionArticle = (_partlistArticle$part = partlistArticle.partListParentArticle) !== null && _partlistArticle$part !== void 0 ? _partlistArticle$part : article;
|
|
88
|
+
if (!tabGroupLookupArticles.includes(optionArticle)) tabGroupLookupArticles.push(optionArticle);
|
|
89
|
+
var preDefinedPosNr = (_partlistArticle$cata = partlistArticle.catalogArticle.orderPosNr) !== null && _partlistArticle$cata !== void 0 ? _partlistArticle$cata : null;
|
|
90
|
+
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;
|
|
91
|
+
if (preDefinedPosNr !== null) {
|
|
92
|
+
var existingentry = !preDefinedPosNr.endsWith(';') && groupedPartlistArticles.find(function (group) {
|
|
93
|
+
return (group.posNr == Number(preDefinedPosNr) || group.groupKey == preDefinedPosNr) && group.letOthesMatch;
|
|
79
94
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
var newPosNr = Number(preDefinedPosNr);
|
|
83
|
-
if (isNaN(newPosNr)) {
|
|
84
|
-
newPosNr = posNr;
|
|
85
|
-
letOthesMatch = false;
|
|
86
|
-
do {
|
|
87
|
-
newPosNr++;
|
|
88
|
-
} while (groupedPartlistArticles.find(function (group) {
|
|
89
|
-
return group.posNr == newPosNr;
|
|
90
|
-
}));
|
|
91
|
-
}
|
|
92
|
-
groupedPartlistArticles.push({
|
|
93
|
-
article: article,
|
|
94
|
-
posNr: newPosNr,
|
|
95
|
-
letOthesMatch: letOthesMatch,
|
|
96
|
-
partlistArticles: [{
|
|
95
|
+
if (existingentry) {
|
|
96
|
+
existingentry.partlistArticles.push({
|
|
97
97
|
article: partlistArticle,
|
|
98
|
-
tabGroup: tabGroup
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
tabGroup: tabGroup,
|
|
99
|
+
optionArticle: optionArticle
|
|
100
|
+
});
|
|
101
|
+
} else {
|
|
102
|
+
var letOthesMatch = true;
|
|
103
|
+
var newPosNr = Number(preDefinedPosNr);
|
|
104
|
+
if (isNaN(newPosNr)) {
|
|
105
|
+
newPosNr = posNr;
|
|
106
|
+
letOthesMatch = false;
|
|
107
|
+
do {
|
|
108
|
+
newPosNr++;
|
|
109
|
+
} while (groupedPartlistArticles.find(function (group) {
|
|
110
|
+
return group.posNr == newPosNr;
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
groupedPartlistArticles.push({
|
|
114
|
+
article: article,
|
|
115
|
+
posNr: newPosNr,
|
|
116
|
+
letOthesMatch: letOthesMatch,
|
|
117
|
+
partlistArticles: [{
|
|
118
|
+
article: partlistArticle,
|
|
119
|
+
tabGroup: tabGroup,
|
|
120
|
+
optionArticle: optionArticle
|
|
121
|
+
}],
|
|
122
|
+
groupKey: preDefinedPosNr
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
partlistArticlesWithTabGroup.push({
|
|
127
|
+
article: partlistArticle,
|
|
128
|
+
tabGroup: tabGroup,
|
|
129
|
+
optionArticle: optionArticle
|
|
101
130
|
});
|
|
102
131
|
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
tabGroup: tabGroup
|
|
107
|
-
});
|
|
132
|
+
};
|
|
133
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
134
|
+
_loop();
|
|
108
135
|
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
136
|
+
} catch (err) {
|
|
137
|
+
_iterator.e(err);
|
|
138
|
+
} finally {
|
|
139
|
+
_iterator.f();
|
|
112
140
|
}
|
|
113
141
|
groupedPartlistArticles.find(function (group) {
|
|
114
142
|
return group.posNr === posNr;
|
|
@@ -120,23 +148,25 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
120
148
|
}));
|
|
121
149
|
}
|
|
122
150
|
if (pos) this.sort(pos, groupedPartlistArticles);
|
|
123
|
-
var
|
|
151
|
+
for (var _i = 0; _i < groupedPartlistArticles.length; _i++) {
|
|
124
152
|
var group = groupedPartlistArticles[_i];
|
|
125
|
-
var article = group.article;
|
|
126
153
|
var posNrCount = 1;
|
|
127
154
|
|
|
128
155
|
//get count of tabgroupOption - articles within each tabgroup
|
|
129
|
-
var
|
|
130
|
-
var
|
|
131
|
-
var
|
|
132
|
-
|
|
156
|
+
var _loop2 = function _loop2() {
|
|
157
|
+
var _optionArticle$getArt3, _optionArticle$getArt4;
|
|
158
|
+
var _group$partlistArticl = group.partlistArticles[j],
|
|
159
|
+
partListArticle = _group$partlistArticl.article,
|
|
160
|
+
optionArticle = _group$partlistArticl.optionArticle;
|
|
161
|
+
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;
|
|
133
162
|
var fountEntry = partListOrderLines.find(function (item) {
|
|
134
163
|
var _item$FormattedOption, _item$FormattedOption2, _this$getFormattedOpt;
|
|
135
|
-
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,
|
|
164
|
+
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);
|
|
136
165
|
});
|
|
166
|
+
var unitPrice = summaryHandlerInstance.getPartlistUnitPrice(partListArticle);
|
|
137
167
|
if (fountEntry) {
|
|
138
168
|
fountEntry.Quantity = fountEntry.Quantity + partListArticle.quantity;
|
|
139
|
-
fountEntry.FormattedPrice = DivaUtils.formatPrice(
|
|
169
|
+
fountEntry.FormattedPrice = DivaUtils.formatPrice(unitPrice * fountEntry.Quantity);
|
|
140
170
|
} else {
|
|
141
171
|
var colorCodices = [];
|
|
142
172
|
if (tabGroup && tabGroup !== 'Aktion' /* Aktion delete in 2024 */ && tabGroup !== 'BOX_AF_PARIS' || firstItem) {
|
|
@@ -145,14 +175,14 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
145
175
|
finalPosNr = _this$getFinalPosNr.finalPosNr,
|
|
146
176
|
newPosNrCount = _this$getFinalPosNr.newPosNrCount;
|
|
147
177
|
posNrCount = newPosNrCount;
|
|
148
|
-
var formattedOptions = _this.getFormattedOptions(partListArticle,
|
|
178
|
+
var formattedOptions = _this.getFormattedOptions(partListArticle, optionArticle, colorCodices, finalPosNr, usedOptionCodexes);
|
|
149
179
|
partListOrderLines.push({
|
|
150
180
|
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,
|
|
151
181
|
ColorCodices: colorCodices,
|
|
152
182
|
FormattedOptions: formattedOptions,
|
|
153
|
-
FormattedPrice: DivaUtils.formatPrice(
|
|
183
|
+
FormattedPrice: DivaUtils.formatPrice(unitPrice * partListArticle.quantity),
|
|
154
184
|
PosNr: finalPosNr,
|
|
155
|
-
Price:
|
|
185
|
+
Price: unitPrice,
|
|
156
186
|
Quantity: partListArticle.quantity,
|
|
157
187
|
TabGroup: tabGroup !== null && tabGroup !== void 0 ? tabGroup : ' ',
|
|
158
188
|
Name: partListArticle.name,
|
|
@@ -164,9 +194,9 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
164
194
|
formattedOptions: [],
|
|
165
195
|
ArticleNr: (_partListArticle$conf3 = partListArticle.configArticleCodex) !== null && _partListArticle$conf3 !== void 0 ? _partListArticle$conf3 : partListArticle.articleCodex,
|
|
166
196
|
ColorCodices: [],
|
|
167
|
-
FormattedPrice: DivaUtils.formatPrice(
|
|
197
|
+
FormattedPrice: DivaUtils.formatPrice(unitPrice * partListArticle.quantity),
|
|
168
198
|
PosNr: group.posNr + '.00',
|
|
169
|
-
Price:
|
|
199
|
+
Price: unitPrice,
|
|
170
200
|
Quantity: partListArticle.quantity,
|
|
171
201
|
TabGroup: 'SetArtikel',
|
|
172
202
|
Name: (_basket$SetName = basket.SetName) !== null && _basket$SetName !== void 0 ? _basket$SetName : partListArticle.name
|
|
@@ -175,11 +205,8 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
175
205
|
}
|
|
176
206
|
};
|
|
177
207
|
for (var j = 0; j < group.partlistArticles.length; j++) {
|
|
178
|
-
|
|
208
|
+
_loop2();
|
|
179
209
|
}
|
|
180
|
-
};
|
|
181
|
-
for (var _i = 0; _i < groupedPartlistArticles.length; _i++) {
|
|
182
|
-
_loop2();
|
|
183
210
|
}
|
|
184
211
|
for (var _i2 = 0; _i2 < partListOrderLines.length; _i2++) {
|
|
185
212
|
if (partListOrderLines[_i2].TabGroup && !partListGroups.includes(partListOrderLines[_i2].TabGroup)) {
|
|
@@ -190,7 +217,7 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
190
217
|
var partListOrderLinesSorted = [];
|
|
191
218
|
var _loop3 = function _loop3() {
|
|
192
219
|
var _DivaSummaryHandler$g;
|
|
193
|
-
var p = (_DivaSummaryHandler$g = summaryHandlerInstance.getTabgroupByOptionCodex(pos[_i3],
|
|
220
|
+
var p = (_DivaSummaryHandler$g = summaryHandlerInstance.getTabgroupByOptionCodex(pos[_i3], tabGroupLookupArticles)) !== null && _DivaSummaryHandler$g !== void 0 ? _DivaSummaryHandler$g : pos[_i3];
|
|
194
221
|
while (partListOrderLines.find(function (orderline) {
|
|
195
222
|
return orderline.TabGroup === p;
|
|
196
223
|
})) {
|
|
@@ -217,11 +244,26 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
217
244
|
return posA - posB;
|
|
218
245
|
});
|
|
219
246
|
if (firstItem) partListOrderLines.unshift(firstItem);
|
|
247
|
+
this.markMainColor();
|
|
220
248
|
return {
|
|
221
249
|
PartListOrderLines: partListOrderLines,
|
|
222
250
|
PartListGroups: partListGroups
|
|
223
251
|
};
|
|
224
252
|
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* The first emitted option flagged with IS_MAIN_COLOR is the main color of the part list; without one, the first emitted
|
|
256
|
+
* OPTBE_BOX option (API2 fallback) is. Decided after all lines exist, so only options that really appear can be chosen.
|
|
257
|
+
*/
|
|
258
|
+
}, {
|
|
259
|
+
key: "markMainColor",
|
|
260
|
+
value: function markMainColor() {
|
|
261
|
+
var _this$mainColorCandid;
|
|
262
|
+
var mainColor = (_this$mainColorCandid = this.mainColorCandidates.find(function (candidate) {
|
|
263
|
+
return candidate.explicit;
|
|
264
|
+
})) !== null && _this$mainColorCandid !== void 0 ? _this$mainColorCandid : this.mainColorCandidates[0];
|
|
265
|
+
if (mainColor) mainColor.option.IsMainColor = true;
|
|
266
|
+
}
|
|
225
267
|
}, {
|
|
226
268
|
key: "getFinalPosNr",
|
|
227
269
|
value: function getFinalPosNr(group, posNrCount, partListArticle, firstItem) {
|
|
@@ -230,7 +272,8 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
230
272
|
//betriebsanleitung soll diese PosNr haben
|
|
231
273
|
finalPosNr = '1.99';
|
|
232
274
|
} else if (group.partlistArticles.length > 1) {
|
|
233
|
-
|
|
275
|
+
// string formatting: float arithmetic yields "1.1" for the 10th and "1.1400000000000001" for the 14th position
|
|
276
|
+
finalPosNr = "".concat(group.posNr, ".").concat(String(posNrCount).padStart(2, '0'));
|
|
234
277
|
posNrCount++;
|
|
235
278
|
} else {
|
|
236
279
|
finalPosNr = (group.posNr + '.00').toString();
|
|
@@ -248,14 +291,27 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
248
291
|
for (var i = 0; i < groupedPartlistArticles.length; i++) {
|
|
249
292
|
var partlistArticlesSorted = [];
|
|
250
293
|
var article = groupedPartlistArticles[i];
|
|
294
|
+
var lookupArticles = [article.article];
|
|
295
|
+
var _iterator2 = _createForOfIteratorHelper(article.partlistArticles),
|
|
296
|
+
_step2;
|
|
297
|
+
try {
|
|
298
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
299
|
+
var entry = _step2.value;
|
|
300
|
+
if (!lookupArticles.includes(entry.optionArticle)) lookupArticles.push(entry.optionArticle);
|
|
301
|
+
}
|
|
302
|
+
} catch (err) {
|
|
303
|
+
_iterator2.e(err);
|
|
304
|
+
} finally {
|
|
305
|
+
_iterator2.f();
|
|
306
|
+
}
|
|
251
307
|
for (var j = 0; j < pos.length; j++) {
|
|
252
308
|
var _DivaSummaryHandler$g2;
|
|
253
309
|
var indexesOf = [];
|
|
254
|
-
var p = (_DivaSummaryHandler$g2 = summaryHandlerInstance.getTabgroupByOptionCodex(pos[j],
|
|
310
|
+
var p = (_DivaSummaryHandler$g2 = summaryHandlerInstance.getTabgroupByOptionCodex(pos[j], lookupArticles)) !== null && _DivaSummaryHandler$g2 !== void 0 ? _DivaSummaryHandler$g2 : pos[j];
|
|
255
311
|
for (var m = 0; m < article.partlistArticles.length; m++) {
|
|
256
|
-
var
|
|
312
|
+
var _partListArticle$opti, _partListArticle$opti2;
|
|
257
313
|
var partListArticle = article.partlistArticles[m];
|
|
258
|
-
var tabGroup = (
|
|
314
|
+
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;
|
|
259
315
|
if (tabGroup == p) {
|
|
260
316
|
indexesOf.push(m);
|
|
261
317
|
}
|
|
@@ -279,26 +335,32 @@ var StandardWWSHandler = /*#__PURE__*/function () {
|
|
|
279
335
|
var optionStates = summaryHandlerInstance.getOptionCodexesOfTabGroupForSummary(article, partListArticle, usedOptionCodexes, finalPosNr == '');
|
|
280
336
|
for (var i = 0; i < optionStates.length; i++) {
|
|
281
337
|
var optionState = optionStates[i];
|
|
282
|
-
if (optionState.optionCodex.startsWith('OPTBE_') || optionState.optionCodex.startsWith('OPTAB_') || optionState.option.addToWWS) {
|
|
338
|
+
if (optionState.optionCodex.startsWith('OPTBE_') || optionState.optionCodex.startsWith('OPTAB_') || optionState.option.addToWWS || optionState.option.isMainColor) {
|
|
283
339
|
var _optionState$vCodex;
|
|
284
340
|
var coloCodex = (_optionState$vCodex = optionState.vCodex) !== null && _optionState$vCodex !== void 0 ? _optionState$vCodex : optionState.valCodex;
|
|
285
341
|
if (coloCodex) {
|
|
286
342
|
var _optionState$val$grou, _optionState$val, _article$getMergesToO;
|
|
287
343
|
colorCodices.push(coloCodex);
|
|
288
|
-
var isMainColor = false;
|
|
289
|
-
if (!this.mainColorFound && optionState.optionCodex == MAIN_COLOR_OPTIONCODEX) {
|
|
290
|
-
isMainColor = true;
|
|
291
|
-
this.mainColorFound = true;
|
|
292
|
-
}
|
|
293
344
|
//IDM has no group name on the value itself: there the Bezugsgruppe is its own feature, merged into this one only for the view
|
|
294
345
|
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;
|
|
295
|
-
|
|
346
|
+
// API2 carries the fabric number as VCodex; IDM values have none, there the option key is the fabric number ("0_227_1" → "0-227-1")
|
|
347
|
+
var codex = optionState.vCodex && optionState.vCodex !== optionState.valName ? optionState.vCodex : article.CatalogData.isIDMFormat ? summaryHandlerInstance.getDisplayCodex(optionState) : '';
|
|
348
|
+
var formattedOption = {
|
|
296
349
|
PosNr: finalPosNr,
|
|
297
350
|
Text: (groupName ? groupName + ' ' : '') + optionState.valName,
|
|
298
351
|
Title: optionState.optionOrigName,
|
|
299
|
-
Codex:
|
|
300
|
-
IsMainColor:
|
|
301
|
-
}
|
|
352
|
+
Codex: codex,
|
|
353
|
+
IsMainColor: false
|
|
354
|
+
};
|
|
355
|
+
formattedOptions.push(formattedOption);
|
|
356
|
+
// only options of real lines can become the main color; the dedupe probe (empty PosNr) discards its result
|
|
357
|
+
var explicit = !!optionState.option.isMainColor;
|
|
358
|
+
if (finalPosNr !== '' && (explicit || optionState.optionCodex == MAIN_COLOR_OPTIONCODEX)) {
|
|
359
|
+
this.mainColorCandidates.push({
|
|
360
|
+
option: formattedOption,
|
|
361
|
+
explicit: explicit
|
|
362
|
+
});
|
|
363
|
+
}
|
|
302
364
|
}
|
|
303
365
|
}
|
|
304
366
|
}
|