Exemple #1
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;
        }
Exemple #2
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;
        }