Beispiel #1
0
        public IList <ArticleForCreate> MapPimProductsToVismaArticles(IEnumerable <ProductQueryResponseItem> pimProducts)
        {
            var list = new List <ArticleForCreate>();

            foreach (var pimProduct in pimProducts)
            {
                var article = new ArticleForCreate
                {
                    PimSku             = pimProduct.SKU,
                    Name               = pimProduct.FullModel,
                    PostingTemplateNo  = _settings.VismaPostingTemplateNo,
                    PriceCalcMethodsNo = _settings.VismaPriceCalcMethodsNo,
                    StockProfileNo     = _settings.VismaStockProfileNo
                };

                if (pimProduct.Markets != null)
                {
                    foreach (var market in pimProduct.Markets)
                    {
                        switch (market.Market)
                        {
                        case "4Sound.dk":
                            article.ShortDescriptionDen = market.ShortDescription;
                            break;

                        case "4Sound.no":
                            article.ShortDescriptionNor = market.ShortDescription;
                            break;

                        case "4Sound.se":
                            article.ShortDescriptionSwe = market.ShortDescription;
                            break;
                        }
                    }
                }

                list.Add(article);
            }

            return(list);
        }
Beispiel #2
0
        private static string CreateArticle(ArticleForCreate article, IBisComNavigate articleComponent)
        {
            var articleNo = string.Empty;

            articleComponent.bcInitData();
            articleComponent.bcSetInitialValues();

            articleComponent.bcNewRecord();
            articleNo = articleComponent.bcGetStr((int)Article_Properties.ART_ArticleNo);
            articleComponent.bcUpdateStr((int)Article_Properties.ART_Name, article.Name);
            articleComponent.bcUpdateStr(ZUsrFields.ArticleZUsrPimSku, article.PimSku);
            articleComponent.bcUpdateStr(ZUsrFields.ArticleZUsrLuthmanKortTextDen, article.ShortDescriptionDen);
            articleComponent.bcUpdateStr(ZUsrFields.ArticleZUsrLuthmanKortTextNor, article.ShortDescriptionNor);
            articleComponent.bcUpdateStr(ZUsrFields.ArticleZUsrLuthmanKortTextSwe, article.ShortDescriptionSwe);

            if (article.PostingTemplateNo.HasValue)
            {
                articleComponent.bcUpdateInt((int)Article_Properties.ART_PostingTemplateNo, article.PostingTemplateNo.Value);                 // Konteringsmall
            }
            if (article.PriceCalcMethodsNo.HasValue)
            {
                articleComponent.bcUpdateInt((int)Article_Properties.ART_PriceCalcMethodsNo, article.PriceCalcMethodsNo.Value);                 // Prisprofil
            }
            if (article.StockProfileNo.HasValue)
            {
                articleComponent.bcUpdateInt((int)Article_Properties.ART_StockProfileNo, article.StockProfileNo.Value);                 // Lagerprofil
            }
            var errCode = articleComponent.bcSaveRecord();

            if (errCode != 0)
            {
                articleComponent.bcCancelRecord();
                Log.ForCurrent.ErrorFormat("Attempt to create article failed. SKU: {0} Code {1} - {2}", article.PimSku, errCode, articleComponent.bcGetMessageText(errCode));
            }

            return(articleNo);
        }