Ejemplo n.º 1
0
        public static CloseTicketTmp GetCloseTicketTmp()
        {
            var closeTicket = CloseTicketTmp.FromCheckXElement(Document);

            RepositoryCloseTicketTmp.MergeProductsInCloseTicket(closeTicket);
            return(closeTicket);
        }
Ejemplo n.º 2
0
        public static void MergeProductsInCloseTicket(CloseTicketTmp closeTicket)
        {
            foreach (var checkTicket in closeTicket.ChecksTicket)
            {
                checkTicket.CloseTicketCustomerId = closeTicket.CustomerId;
                var tempProducts = new List <PayProductTmp>(checkTicket.PayProducts);

                foreach (var product in tempProducts)
                {
                    var mergedProducts = checkTicket.PayProducts.Where(p => p.ProductId == product.ProductId).ToList();

                    if (mergedProducts.Count > 1)
                    {
                        for (var i = 1; i < mergedProducts.Count; i++)
                        {
                            checkTicket.PayProducts.Remove(mergedProducts[i]);
                        }

                        var oneProduct = checkTicket.PayProducts.First(p => p.ProductId == product.ProductId);
                        oneProduct.Qty   = mergedProducts.Sum(l => l.Qty);
                        oneProduct.Total = mergedProducts.Sum(l => l.Total);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private static void SaveFile()
        {
            var root = new XElement("CloseTicketTmps");

            foreach (var actionCash in CloseTicketTmps)
            {
                root.Add(CloseTicketTmp.ToXElement(actionCash));
            }

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

                CloseTicketTmps.Clear();
                foreach (var element in document.GetXElements("CloseTicketTmps", "rec"))
                {
                    CloseTicketTmps.Add(CloseTicketTmp.FromXElement(element));
                }
            }
        }
Ejemplo n.º 5
0
        public static void RemoveProductCountFromStockReal(CloseTicketTmp closeTicket)
        {
            foreach (var checkTicket in closeTicket.ChecksTicket)
            {
                foreach (var product in checkTicket.PayProducts)
                {
                    var productFromStock = RepositoryProduct.Products.FirstOrDefault(p => p.CustomerId == product.ProductId);

                    if (productFromStock != null)
                    {
                        RepositoryStockReal.AddProductCount(-product.Qty, productFromStock.CusumerIdRealStock);
                    }
                    else
                    {
                        var message = " нет записи об данном продукте в таблице СТОК, Детали: IDcustomer " + product.ProductId + " -  Название продукта " + product.Name +
                                      " - Количество " + product.Qty + " Штрих код : " + product.Barcode;
                        LogService.LogText(TraceLevel.Error, message);
                    }
                }
            }
        }