AddOrderWindow.xaml.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using Cafe.ElementsWindows;
  7. namespace Cafe.AddWindows
  8. {
  9. public partial class AddOrderWindow : Window
  10. {
  11. public AddOrderWindow()
  12. {
  13. InitializeComponent();
  14. DishesBox.ItemsSource = Connection.db.Dishes.Select(item => item.Name).ToList();
  15. TablesBox.ItemsSource = Connection.db.Tables.Select(item => item.ID).ToList();
  16. }
  17. private void DeliteDishClick(object sender, RoutedEventArgs e)
  18. {
  19. DishesList.Items.Remove((Dishes)DishesList.SelectedItem);
  20. }
  21. private void DishesListSelectionChanged(object sender, SelectionChangedEventArgs e)
  22. {
  23. int idDish = Connection.db.Dishes.Where(item => item.ID == ((Dishes)DishesList.SelectedItem).ID).Select(item => item.ID).FirstOrDefault();
  24. DishWindow dishWindow = new DishWindow(idDish);
  25. dishWindow.Show();
  26. this.Close();
  27. }
  28. private void AddDishClick(object sender, RoutedEventArgs e)
  29. {
  30. if (DishesBox.SelectedItem == null)
  31. {
  32. ErrorWindow errorWindow = new ErrorWindow("не выбрано блюдо");
  33. errorWindow.Show();
  34. return;
  35. }
  36. Dishes dish = Connection.db.Dishes.Where(item => item.Name == DishesBox.SelectedItem.ToString()).FirstOrDefault();
  37. DishesList.Items.Add(dish);
  38. SumOfOrder.Content = Convert.ToString(Convert.ToDecimal(SumOfOrder.Content) + dish.Price);
  39. }
  40. private void ToOrderClick(object sender, RoutedEventArgs e)
  41. {
  42. if (DishesList.Items == null)
  43. {
  44. ErrorWindow errorWindow = new ErrorWindow("не выбрано ни одного блюда");
  45. errorWindow.Show();
  46. return;
  47. }
  48. if (TablesBox.SelectedItem == null)
  49. {
  50. ErrorWindow errorWindow = new ErrorWindow("не выбран столик");
  51. errorWindow.Show();
  52. return;
  53. }
  54. Exchange exchange = GetExchange();
  55. if (exchange is null)
  56. {
  57. ErrorWindow errorWindow = new ErrorWindow("сейчас нет смены");
  58. errorWindow.Show();
  59. return;
  60. }
  61. int idTable = Convert.ToInt32(TablesBox.SelectedItem.ToString());
  62. Orders order = new Orders()
  63. {
  64. IDEmployeeExchange = Connection.db.EmployeesExchanges.Where(item => item.IDExchange == exchange.ID && item.IDEmployee == User.IDUser).Select(item => item.ID).FirstOrDefault(),
  65. IDTable = Connection.db.Tables.Where(item => item.ID == idTable).Select(item => item.ID).FirstOrDefault(),
  66. Time = DateTime.Now,
  67. SumOfOrder = Convert.ToDecimal(SumOfOrder.Content),
  68. IsPaid = false,
  69. IsReady = false
  70. };
  71. Connection.db.Orders.Add(order);
  72. Connection.db.SaveChanges();
  73. int idOrder = Connection.db.Orders.Select(item => item.ID).ToList().Last();
  74. foreach (var item in DishesList.Items)
  75. {
  76. OrderDishes orderDishes = new OrderDishes()
  77. {
  78. IDOrder = idOrder,
  79. IDDish = ((Dishes)item).ID
  80. };
  81. Connection.db.OrderDishes.Add(orderDishes);
  82. Connection.db.SaveChanges();
  83. }
  84. MainWindow mainWindow = new MainWindow();
  85. mainWindow.Show();
  86. this.Close();
  87. }
  88. private Exchange GetExchange()
  89. {
  90. DateTime now = DateTime.Now;
  91. return Connection.db.Exchange.Where(item => item.Date == now.Date && item.TimeOfBegin <= now.TimeOfDay && item.TimeOfEnd >= now.TimeOfDay).FirstOrDefault();
  92. }
  93. private void BackButtonClick(object sender, RoutedEventArgs e)
  94. {
  95. MainWindow mainWindow = new MainWindow();
  96. mainWindow.Show();
  97. this.Close();
  98. }
  99. }
  100. }