private void DelSale_Click(object sender, RoutedEventArgs e) { var btn = sender as Button; DelSaleButtonTag dt = btn.Tag as DelSaleButtonTag; try { DGSaleItems sale = new DGSaleItems(); var lst = sales.Where(w => w.SaleNumber == dt.SaleNumber).ToList(); List <DGSaleItems> tmpLst = new List <DGSaleItems>(); foreach (var item in sales) { if (dt.ProdId != item.ProductId && item.ProductId != null) { //lst.Remove(item); tmpLst.Add(item);//sales.Remove(item); } if (dt.ServId != item.ServiceId && item.ServiceId != null) { //lst.Remove(item); tmpLst.Add(item);//sales.Remove(item); } } sales = tmpLst; salesToCheck = tmpLst; decimal totalSum = 0; if (sales.Any(a => a.ProdName == "Общая сумма чека")) { var sale2 = sales.Single(s => s.ProdName == "Общая сумма чека"); sales.RemoveAt(sales.IndexOf(sale2)); } foreach (var sale2 in sales) { totalSum += sale2.Price; } if (totalSum > 0) { sales.Add(new DGSaleItems() { ProdName = "Общая сумма чека", Price = totalSum }); } DGSaleFix.ItemsSource = sales; DGSaleFix.Items.Refresh(); } catch (Exception ex) { int point = 0; } }
private void GetGrid(DateTime today, List <PComboBox> list, string msg) { using (u0324292_tyreshopEntities db = new u0324292_tyreshopEntities()) { try { var operations = db.operations.Where(w => w.OperationDate == today).ToList(); users = db.users.Where(w => w.Role == "manager").ToList(); //Report.Columns[] decimal totalSum = 0; foreach (var oper in operations) { string uName = ""; if (users.Exists(e => e.UserId == oper.UserId)) { uName = users.Single(s => s.UserId == oper.UserId).UserName; } else { uName = users.Single(s => s.UserId == 14).UserName; } DelSaleButtonTag tag = new DelSaleButtonTag(); if (oper.ProductId != null) { tag.ServId = null; tag.ProdId = oper.ProductId; tag.AnotherId = null; tag.SaleNumber = (long)oper.SaleNumber; } if (oper.ServiceId != null) { tag.ServId = oper.ServiceId; tag.ProdId = null; tag.AnotherId = null; tag.SaleNumber = (long)oper.SaleNumber; } DGSaleItems dg = new DGSaleItems(); dg.Comment = oper.Comment; dg.Date = oper.OperationDate.ToString(); dg.OperationType = oper.OperationType; dg.PayType = oper.PayType; dg.Price = oper.Price; if (oper.ProductId != null && oper.ProductId != 0) { dg.ProdName = list.Where(w => w.ProductId == oper.ProductId).Select(s => s.ProductName).First(); } else if (oper.ServiceId != null) { dg.ProdName = db.services.Where(w => w.ServiceId == oper.ServiceId).Select(s => s.ServiceName).First(); } dg.Time = oper.OperationTime.ToString(); dg.Price = oper.Price; dg.Quantity = oper.Count; dg.StoreHouse = oper.Storehouse; dg.SaleNumber = (long)oper.SaleNumber; dg.CardToTotalSum = oper.CardToTotalSum; dg.TagToBtn = tag; dg.ProductId = oper.ProductId; dg.ServiceId = oper.ServiceId; if (oper.PayType == "Наличный расчет" && oper.OperationType != "Списание наличных") { if (oper.CardPay == "Да") { if (oper.CardToTotalSum != 0) { totalSum += oper.Price; } } else { totalSum += oper.Price; } } if (oper.OperationType == "Списание наличных") { totalSum -= oper.Price; } dg.UserName = uName; dg.User = users; lst.Add(dg); } lst.Add(new DGSaleItems() { ProdName = "Сдача наличных", Price = totalSum }); Report.ItemsSource = lst; Report.Items.Refresh(); } catch (Exception ex) { MessageBox.Show(msg, "Информация", MessageBoxButton.OK); } } }
private void DelSale_Click(object sender, RoutedEventArgs e) { var btn = sender as Button; DelSaleButtonTag dt = btn.Tag as DelSaleButtonTag; try { DGSaleItems sale = new DGSaleItems(); var sales = lst.Where(w => w.SaleNumber == dt.SaleNumber).ToList(); foreach (var item in sales) { var prod = new product(); if (dt.ProdId != null) { sale = lst.First(s => s.ProductId == dt.ProdId && s.SaleNumber == dt.SaleNumber); } if (dt.ServId != null) { sale = lst.First(s => s.ServiceId == dt.ServId && s.SaleNumber == dt.SaleNumber); } lst.Remove(sale); using (u0324292_tyreshopEntities db = new u0324292_tyreshopEntities()) { prod = db.products.Single(s => s.ProductId == item.ProductId); var oper = db.operations.First(s => (s.ProductId == dt.ProdId && s.SaleNumber == dt.SaleNumber) || (s.ServiceId == dt.ServId && s.SaleNumber == dt.SaleNumber)); var res = MessageBox.Show("Вы действительно хотите полностью удалить данную операцию? Действие необратимо.", "Информация", MessageBoxButton.OKCancel); if (res == MessageBoxResult.OK) { if (oper.ProductId != null && oper.ProductId != 0) { int store = db.storehouses.First(s => s.StorehouseName == oper.Storehouse).StorehouseId; int quant = oper.Count; var pq = db.productquantities.First(s => s.StorehouseId == store && s.ProductId == oper.ProductId); pq.Quantity += quant; db.Entry(pq).Property(x => x.Quantity).IsModified = true; var prodsQ = db.productquantities.Where(w => w.ProductId == item.ProductId).ToList(); foreach (var innerItem in prodsQ) { quant += (int)innerItem.Quantity; } var product = db.products.Single(s => s.ProductId == item.ProductId); if (quant > 0) { product.ProdStatus = true; } else { product.ProdStatus = false; } db.Entry(product).Property(p => p.ProdStatus).IsModified = true; using (u0324292_mainEntities db2 = new u0324292_mainEntities()) { //var prod = db.products.Single(s => s.ProductId == prodId); var id = int.Parse(prod.ProdNumber); if (db2.shop_product.Any(a => a.product_id == id)) { var siteProd = db2.shop_product.Single(a => a.product_id == id); siteProd.quantity += quant; db2.Entry(siteProd).Property(p => p.quantity).IsModified = true; if (siteProd.quantity >= 0) { db2.SaveChanges(); } if (siteProd.quantity >= 0 && siteProd.stock_status_id == 8) { siteProd.stock_status_id = 7; db2.Entry(siteProd).Property(p => p.stock_status_id).IsModified = true; db2.SaveChangesAsync(); } } } } db.operations.Remove(oper); db.SaveChanges(); } } } Report.Items.Refresh(); } catch (Exception ex) { int point = 0; } }
private void AddToSaleBtn_Click(object sender, RoutedEventArgs e) { DelSaleButtonTag tag = new DelSaleButtonTag(); var newSale = new DGSaleItems(); var newSale2 = new DGSaleItems(); int cardToTotalSum = -1; bool flag = false; if (CardPay.IsChecked == true) { var res = MessageBox.Show("Платеж на карте. Добавлять данную сумму в общую дневную выручку наличных?", "Информация", MessageBoxButton.OKCancel); if (res == MessageBoxResult.OK) { cardToTotalSum = 1; } else { cardToTotalSum = 0; } } else { cardToTotalSum = 1; } int managerId = 14; if (Manager.SelectedValue != null) { managerId = (int)Manager.SelectedValue; } try { if (Products.SelectedValue != null) { tag.ServId = null; tag.ProdId = (int)Products.SelectedValue; tag.AnotherId = null; tag.SaleNumber = sales.Count + 1; newSale.ProductId = (int)Products.SelectedValue; newSale.ProdName = Products.Text; newSale.ProductId = (int)Products.SelectedValue; newSale.Date = DateTime.Now.ToString("dd-MM-yyyy"); newSale.Time = DateTime.Now.ToString("hh:mm:ss"); newSale.Price = decimal.Parse(ProductPrice.Text); newSale.Quantity = int.Parse(Quantity.Text); newSale.SaleNumber = sales.Count + 1; newSale.OperationType = "Продажа"; newSale.StoreId = (int)StorehouseFrom.SelectedValue; newSale.CardToTotalSum = cardToTotalSum; newSale.Comment = OperComment.Text; newSale.UserId = managerId; newSale.TagToBtn = tag; if (PayTypeCheckBox.IsChecked == true) { newSale.PayType = "Безналичный расчет"; } else { newSale.PayType = "Наличный расчет"; } if (CardPay.IsChecked == true) { newSale.CardPayed = "Да"; } else { newSale.CardPayed = "Нет"; } if (!sales.Any(a => a.ProductId == (int)Products.SelectedValue)) { sales.Add(newSale); } else { var sale = sales.Single(w => w.ProductId == (int)Products.SelectedValue); sale.Quantity += int.Parse(Quantity.Text); sale.Price += decimal.Parse(ProductPrice.Text); } DelSaleButtonTag tag2 = new DelSaleButtonTag() { ServId = null, ProdId = (int)Products.SelectedValue, AnotherId = null, SaleNumber = sales.Count + 1 }; newSale2.TagToBtn = tag2; newSale2.ProdName = Products.Text; newSale2.ProductId = (int)Products.SelectedValue; newSale2.Date = DateTime.Now.ToString("dd-MM-yyyy"); newSale2.Time = DateTime.Now.ToString("hh:mm:ss"); newSale2.Price = decimal.Parse(ProductPrice.Text); newSale2.Quantity = int.Parse(Quantity.Text); newSale2.SaleNumber = salesToCheck.Count + 1; newSale2.OperationType = "Продажа"; newSale2.StoreId = (int)StorehouseFrom.SelectedValue; newSale2.CardToTotalSum = cardToTotalSum; newSale2.Comment = OperComment.Text; newSale2.ProductId = (int)Products.SelectedValue; newSale2.UserId = managerId; if (PayTypeCheckBox.IsChecked == true) { newSale2.PayType = "Безналичный расчет"; } else { newSale2.PayType = "Наличный расчет"; } if (CardPay.IsChecked == true) { newSale2.CardPayed = "Да"; } else { newSale2.CardPayed = "Нет"; } salesToCheck.Add(newSale2); } } catch (Exception ex) { log.Error(ex.Message + " \n" + ex.StackTrace); MessageBox.Show("Кажется, что-то пошло не так...", "Информация", MessageBoxButton.OK); } try { if (Services.SelectedValue != null) { string servComment = ""; tag.ServId = (int)Services.SelectedValue; tag.ProdId = null; tag.AnotherId = null; tag.SaleNumber = sales.Count + 1; if (CardPayServ.IsChecked == true) { var res = MessageBox.Show("Платеж на карте. Добавлять данную сумму в общую дневную выручку наличных?", "Информация", MessageBoxButton.OKCancel); if (res == MessageBoxResult.OK) { cardToTotalSum = 1; } else { cardToTotalSum = 0; } } else { cardToTotalSum = 1; } int? servQuant = null; bool res2 = int.TryParse(QuantityServ.Text, out var tmp); bool Flag = false; if (res2) { servQuant = int.Parse(QuantityServ.Text); flag = true; } if (ServComment.Text != string.Empty) { servComment = ServComment.Text; } string PayType = ""; if (PayTypeCheckBoxServ.IsChecked == true) { PayType = "Безналичный расчет"; } else { PayType = "Наличный расчет"; } string CardPayed = ""; if (CardPayServ.IsChecked == true) { CardPayed = "Да"; } else { CardPayed = "Нет"; } if (flag) { newSale = new DGSaleItems() { ServiceId = (int)Services.SelectedValue, Date = DateTime.Now.ToString("dd-MM-yyyy"), Time = DateTime.Now.ToString("hh:mm:ss"), ProdName = Services.Text, Price = decimal.Parse(ServicePrice.Text), SaleNumber = sales.Count + 1, Quantity = (int)servQuant, OperationType = "Услуга", PayType = PayType, StoreId = null, CardPayed = CardPayed, CardToTotalSum = cardToTotalSum, TagToBtn = tag, UserId = managerId, Comment = servComment }; sales.Add(newSale); salesToCheck.Add(newSale); } } } catch (Exception ex) { log.Error(ex.Message + " \n" + ex.StackTrace); MessageBox.Show("Кажется, что-то пошло не так...", "Информация", MessageBoxButton.OK); } try { if (OtherProduct.Text != string.Empty) { } } catch (Exception ex) { log.Error(ex.Message + " \n" + ex.StackTrace); MessageBox.Show("Кажется, что-то пошло не так...", "Информация", MessageBoxButton.OK); } decimal totalSum = 0; if (sales.Any(a => a.ProdName == "Общая сумма чека")) { var sale = sales.Single(s => s.ProdName == "Общая сумма чека"); sales.RemoveAt(sales.IndexOf(sale)); } foreach (var sale in sales) { totalSum += sale.Price; } sales.Add(new DGSaleItems() { ProdName = "Общая сумма чека", Price = totalSum }); DGSaleFix.ItemsSource = sales; DGSaleFix.Items.Refresh(); Products.SelectionChanged -= Products_SelectionChanged; Products.SelectedValue = -1; Products.SelectionChanged += Products_SelectionChanged; Products.Text = ""; Quantity.TextChanged -= Quantity_TextChanged; Quantity.Text = string.Empty; Quantity.TextChanged += Quantity_TextChanged; ProductPrice.Text = string.Empty; StorehouseFrom.SelectedValue = -1; Services.SelectedValue = -1; Services.Text = ""; ServicePrice.Text = ""; SaleSave.IsEnabled = true; PrintSale.IsEnabled = true; Thread.Sleep(500); }