public static CloseTicketTmp GetCloseTicketTmp() { var closeTicket = CloseTicketTmp.FromCheckXElement(Document); RepositoryCloseTicketTmp.MergeProductsInCloseTicket(closeTicket); return(closeTicket); }
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); } } } }
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()); }
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)); } } }
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); } } } }