Пример #1
0
        private bool importArticle(FuncClasses.FastXML bdb)
        {
            var list = bdb.GetAllArticles(user);
            var savingList = new List<Articles.Article>();
            foreach(var prevart in list)
            {
                var article = bdb.GetArticle(prevart.ArticleID, user);
                var outputArticle = new Articles.Article();

                outputArticle.ArticleID = article.ArticleID;
                outputArticle.ArticleDescription = article.ArticleDescription;
                outputArticle.ArticleCategory = article.ArticleCategory;
                outputArticle.ArticleText = article.ArticleText;
                //outputArticle.ArticleWeight = article.WeightString;
                outputArticle.Price1 = new Models.PriceModel(outputArticle) { Price1 = new Utils.EMoney(article.ArticlePrice1.Amount, article.ArticlePrice1.IsGross) };
                outputArticle.Price2 = new Models.PriceModel(outputArticle) { Price1 = new Utils.EMoney(article.ArticlePrice2.Amount, article.ArticlePrice2.IsGross) };
                outputArticle.Price3 = new Models.PriceModel(outputArticle) { Price1 = new Utils.EMoney(article.ArticlePrice3.Amount, article.ArticlePrice3.IsGross) };
                
                // TaxClass
                var TaxClass = new Utils.TaxClass();
                TaxClass.Name = article.TaxClass.Name;
                TaxClass.TaxRate = new Utils.Percentage() { PercentageString = article.TaxClass.TaxRateString };
                Database.SaveOrUpdateTaxClass(TaxClass);
                outputArticle.TaxClass = TaxClass;

                // Unit
                var ArticleUnit = new Utils.Unit();
                ArticleUnit.DecimalSeperator = ",";
                // Gets the count of digits after the seperating "."
                var format = article.ArticleUnit.UnitFormat.Split(new Char[] { '.' });
                if (format.Length>1)
                {
                    ArticleUnit.DecimalDigits = format[1].Length;
                }
                else
                {
                    ArticleUnit.DecimalDigits = 0;
                }
                
                ArticleUnit.Name = article.ArticleUnit.Name;
                ArticleUnit.ShortName = article.ArticleUnit.ShortName;
                outputArticle.ArticleUnit = ArticleUnit;
                Database.SaveOrUpdateArticleUnit(ArticleUnit);

                savingList.Add(outputArticle);
            }
            Database.SaveOrUpdateArticle(savingList);
            return true;
        }
Пример #2
0
        private bool importArticles(string filepath, Interfaces.IDatabase database)
        {
            using (System.IO.TextReader textreader = System.IO.File.OpenText(filepath))
            {
                var csv = new CsvReader(textreader);
                csv.Configuration.Delimiter = ";";

                var taskedUnits = database.ArticleUnits();
                var unitlist = taskedUnits.Result;

                var output = new List<Core.Articles.Article>();

                while (csv.Read())
                {
                    string ID;
                    if (!csv.TryGetField("Artikelnummer", out ID))
                    {
                        var task = database.GetNextArticleID();
                        ID = (task.Result).ToString();
                    }

                    string description;
                    if (!csv.TryGetField("Bezeichnung", out description))
                    {
                        description = "" ;
                    }

                    string text;
                    if (!csv.TryGetField("Text", out text))
                    {
                        text = "";
                    }

                    string unit;
                    if (!csv.TryGetField("Einheit", out unit))
                    {
                        unit = "";
                    }

                    string price1;
                    if (!csv.TryGetField("Preis 1", out price1))
                    {
                        price1 = "";
                    }

                    string tax;
                    if (!csv.TryGetField("Steuersatz", out tax))
                    {
                        tax = "";
                    }

                    var article = new Articles.Article();
                    article.ArticleID = ID;
                    article.ArticleDescription = description;
                    article.ArticleText = text;
                    article.Price1.Price1.AmountString = price1;

                    var list = from units in unitlist where units.ShortName.ToLower().Contains(unit.ToLower()) select units;
                    if (list.Count() > 0)
                        article.ArticleUnit = list.First();

                    //var saveresult = database.SaveOrUpdateArticle(article);
                    //if (!saveresult.Result)
                    //    database.SaveOrUpdateArticle(article);

                    output.Add(article);
                }
                database.SaveOrUpdateArticle(output);
            }
            return true;
        }