示例#1
0
        public static int AddRange(List <DevisWebType> devisWebs)
        {
            var count = 0;

            DevisWebs.AddRange(devisWebs);

            var document = XDocument.Load(Path);

            foreach (var devisWeb in devisWebs)
            {
                document.GetXElement("DevisWebs").Add(DevisWebType.ToXElement(devisWeb));
            }
            File.WriteAllText(Path, document.ToString());

            if (SyncData.IsConnect)
            {
                using (var connection = ConnectionFactory.CreateConnection())
                {
                    connection.Open();
                    var trans = connection.BeginTransaction();

                    count = connection.Execute(InsertQuery, devisWebs, trans);

                    trans.Commit();
                }
            }
            return(count);
        }
示例#2
0
        public static void XmlToDbSaveD(XDocument x)
        {
            var infoClientsCustomerId = ModePro ? Pro.CustomerId : new Guid("87da7ba2-5e52-4d31-8def-5a2dad508e94");

            var di = new DevisIdType(-1, DateTime.Now, false, infoClientsCustomerId, 0);

            var products = x.GetXElements("check", "product");
            var p        = new List <XElement>();

            foreach (var product in products)
            {
                var pf = p.Find(l => (l.GetXElementValue("CustomerId") == product.GetXElementValue("CustomerId")));

                if (pf == null || (pf.GetXElementValue("price") != product.GetXElementValue("price")))
                {
                    p.Add(product);
                }
                else
                {
                    var qty    = pf.GetXElementValue("qty").ToDecimal();
                    var qty1   = product.GetXElementValue("qty").ToDecimal();
                    var total  = pf.GetXElementValue("total").ToDecimal();
                    var total1 = product.GetXElementValue("total").ToDecimal();
                    pf.GetXElement("qty").SetValue(qty + qty1);
                    pf.GetXElement("total").SetValue(total + total1);
                }
            }

            x.GetXElements("check", "product").Remove();

            di.DivisWebs = new List <DevisWebType>();

            foreach (var product in p)
            {
                x.GetXElement("check").Add(product);
                var prixHt      = Math.Round(product.GetXElementValue("price").ToDecimal(), 2);
                var tva         = RepositoryTva.GetById(product.GetXElementValue("tva").ToInt());
                var tva1        = PrixTtcOnlyTva(product.GetXElementValue("price").ToDecimal(), tva);
                var monPrixHt   = product.GetXElementValue("contenance").ToDecimal();
                var qty         = product.GetXElementValue("qty").ToDecimal();
                var prixHtValue = prixHt - tva1;
                var dw          = new DevisWebType(Guid.NewGuid(), -1, prixHtValue, monPrixHt == 0 ? 1 : monPrixHt, qty,
                                                   qty * prixHtValue, 0, true, product.GetXElementValue("CustomerId").ToGuid(), di.InfoClientsCustomerId ?? Guid.Empty);

                var cusumerIdRealStock = Guid.Parse(product.GetXElementValue("cusumerIdRealStock").Replace('.', ','));

                RepositoryStockReal.AddProductCount(-dw.Qty, cusumerIdRealStock);

                RepositoryStockReal.UpdateProductCountByEstablishment(dw.Qty, Config.IdEstablishmentGros, dw.ProductsCustomerId);
                di.DivisWebs.Add(dw);
            }

            di.Total = di.DivisWebs.Sum(l => l.TotalHt);
            SyncService.InsDevis(di);
            FileMove();
        }
示例#3
0
        private static void SaveFile()
        {
            var root = new XElement("DevisWebs");

            foreach (var devisWeb in DevisWebs)
            {
                root.Add(DevisWebType.ToXElement(devisWeb));
            }

            File.WriteAllText(Path, new XDocument(root).ToString());
        }
示例#4
0
        private static void LoadFile()
        {
            if (File.Exists(Path))
            {
                var document = XDocument.Load(Path);

                DevisWebs.Clear();
                foreach (var element in document.GetXElements("DevisWebs", "rec"))
                {
                    DevisWebs.Add(DevisWebType.FromXElement(element));
                }
            }
        }