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; }
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; }