import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
import _createClass from '@babel/runtime/helpers/createClass';
import './index-fe887b5f.js';
import '@babel/runtime/helpers/slicedToArray';
import '@babel/runtime/helpers/asyncToGenerator';
import '@babel/runtime/helpers/defineProperty';
import '@babel/runtime/regenerator';
import '@babel/runtime/helpers/objectWithoutProperties';
import '@babel/runtime/helpers/toConsumableArray';
import 'axios';
import '@crystaldesign/diva-utils';
import '@crystaldesign/basket-model';
import '@crystaldesign/basket-handler';
import 'socket.io-client';
import '@babel/runtime/helpers/typeof';

//Der in einem Set gemergte Optionsbaum
var LiviqueWWSHandler = /*#__PURE__*/function () {
  function LiviqueWWSHandler() {
    _classCallCheck(this, LiviqueWWSHandler);
  }
  return _createClass(LiviqueWWSHandler, [{
    key: "repairWWSFlags",
    value: function repairWWSFlags(articles, orderLines) {
      var _loop = function _loop() {
        var orderLine = orderLines[_i];
        var article = Object.values(articles).find(function (article) {
          return orderLine.BasketID == article.basketId;
        });
        if (article) {
          orderLine.RetailArticleNr = article.retailArticleNr;
          orderLine.VariantDesc = article.articleVariantDesc('\n');
        }
      };
      for (var _i = 0; _i < orderLines.length; _i++) {
        _loop();
      }
      var partlistArticles = {};
      //partlistarticles aller article werden auch überprüft
      for (var iKey in articles) {
        if (articles[iKey].partlistArticles) {
          for (var jKey in articles[iKey].partlistArticles) {
            partlistArticles[jKey] = articles[iKey].partlistArticles[jKey];
          }
        }
      }
      for (var i = 0; i < orderLines.length; i++) {
        if (articles[orderLines[i].BasketID] || partlistArticles[orderLines[i].BasketID]) {
          var orderLineItem = orderLines[i],
            article = articles[orderLines[i].BasketID];
          if (!article) article = partlistArticles[orderLines[i].BasketID];

          //Neuerdings kann man Artikelnr auch über RetailTypeNr pflegen, das hat VORRANG

          if (article.retailTypeNr) ; else if (article.sendToSap && article.sendToSap != '' && article.sendToSap != '0') {
            //VORRANG 2: SendToSap als Artikelnummer im CE
            orderLineItem.SendToSAP = '2';
            orderLineItem.ConfigArticleCodex = article.sendToSap;
          }
          //VORRANG 1: RetailTypeNr (ZKAT Artikel)  in Categorymanager Artikel-Katalogübersicht
          //Kann sein dass diese Variante nur für flache Artikel greift ????
          else if (article.retailArticleNr && (orderLineItem.ConfigArticleCodex == '' || !orderLineItem.ConfigArticleCodex)) {
            orderLineItem.ConfigArticleCodex = article.retailArticleNr;
          }
          if (article.isPartListArticle) {
            if (article.supplierOrderCodex) {
              orderLineItem.ConfigArticleCodex = article.supplierOrderCodex;
            }
            if (article.retailPrefix == 'SAP') {
              orderLineItem.SendToSAP = '2'; //Artikel soll auch im Warenkorb gelistet werden, damit der Preis stimmt
              orderLineItem.ConfigArticleCodex = article.retailArticleNr;
            } else if (article.retailPrefix == 'ZKAT') {
              orderLineItem.SendToSAP = '';
              orderLineItem.RuleDesc = article.ruleDesc;
              if (article.typeNr && article.typeNr != '' && !article.supplierOrderCodex) {
                orderLineItem.ConfigArticleCodex = article.typeNr;
              }
            } else if (!article.retailPrefix || article.typeNr && article.typeNr != '') {
              orderLineItem.ConfigArticleCodex = article.typeNr;
            }
          }
          if (article.hasPartlistArticle) {
            //Artikel für welche bereits Stücklisten die Bestellung darstellen müssen nicht in die Bestellung eingehen -> actOrderlineData.RetailArticleNr = ""
            if (!article.retailPrefix && article.mainPrice == 0) {
              orderLineItem.RetailArticleNr = '';
            }
          }
        }
      }
      return orderLines;
    }
  }, {
    key: "getWWSData",
    value: function getWWSData(basket, set, orderSet, orderlines) {
      for (var i = 0; i < orderlines.length; i++) {
        var orderLineItem = orderlines[i];
        if (orderLineItem.DontAddToFinalOrderLine) {
          orderlines.splice(i, 1);
          i--;
        }
      }
      return {
        orderlines: orderlines
      };
    }
  }, {
    key: "getCustomIdsForProductsMatch",
    value: function getCustomIdsForProductsMatch(set) {}
  }]);
}();

export { LiviqueWWSHandler as default };
