OrderChangeOrAddPage.xaml.cs 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. using System;
  2. using System.Linq;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. namespace Hotel_Course_Project
  6. {
  7. /// <summary>
  8. /// Логика взаимодействия для OrderChangeOrAddPage.xaml
  9. /// </summary>
  10. public partial class OrderChangeOrAddPage : Page
  11. {
  12. Order _order;
  13. Staff _hostel;
  14. public OrderChangeOrAddPage(Order order, Staff hostel)
  15. {
  16. InitializeComponent();
  17. DataContext = order;
  18. _order = order;
  19. _hostel = hostel;
  20. if (DataContext == null)
  21. {
  22. SOrderDateStart.Text = DateTime.Now.Date.ToString("d"); ;
  23. SOrderDateEnd.DisplayDateStart = DateTime.Now.AddDays(1);
  24. SOrderDateEnd.DisplayDateEnd = DateTime.Now.AddMonths(12);
  25. PaySP.Visibility = Visibility.Collapsed;
  26. AddOrChangeBtn.Visibility = Visibility.Collapsed;
  27. }
  28. else
  29. {
  30. SClientBtn.Visibility = Visibility.Collapsed;
  31. SRoomBtn.Visibility = Visibility.Collapsed;
  32. SOrderDateEnd.IsEnabled = false;
  33. PayMakeBtn.Visibility = Visibility.Collapsed;
  34. AddOrChangeBtn.Content = "Отменить";
  35. AddOrChangeBtn.Content = "Назад";
  36. }
  37. }
  38. private void SClientBtn_Click(object sender, RoutedEventArgs e)
  39. {
  40. ClientAddOnOrderWindow clientAddOnOrder = new ClientAddOnOrderWindow();
  41. clientAddOnOrder.ShowDialog();
  42. if (clientAddOnOrder.DialogResult == true)
  43. {
  44. SClient.Text = "" + Helper.SelectedClientOnOrder.LName + " " + Helper.SelectedClientOnOrder.FName[0] + ".";
  45. if (Helper.SelectedClientOnOrder.MName != null)
  46. {
  47. SClient.Text += Helper.SelectedClientOnOrder.MName[0] + ".";
  48. }
  49. SClientBtn.Content = "Изменить";
  50. SClientBtn.HorizontalAlignment = HorizontalAlignment.Right;
  51. SClientBtn.VerticalAlignment = VerticalAlignment.Center;
  52. }
  53. else
  54. {
  55. SClientBtn.Content = "Добавить";
  56. SClient.Text = String.Empty;
  57. SClientBtn.HorizontalAlignment = HorizontalAlignment.Stretch;
  58. SClientBtn.VerticalAlignment = VerticalAlignment.Stretch;
  59. }
  60. }
  61. private void SRoomBtn_Click(object sender, RoutedEventArgs e)
  62. {
  63. RoomAddOnOrderWindow roomAddOnOrder = new RoomAddOnOrderWindow();
  64. roomAddOnOrder.ShowDialog();
  65. if (roomAddOnOrder.DialogResult == true)
  66. {
  67. SRoom.Text = "№" + Helper.SelectedRoomOnOrder.NumRoom + " дневная оплата: " + Helper.SelectedRoomOnOrder.CostPerDay;
  68. SRoomBtn.Content = "Изменить";
  69. SRoomBtn.HorizontalAlignment = HorizontalAlignment.Right;
  70. SRoomBtn.VerticalAlignment = VerticalAlignment.Center;
  71. }
  72. else
  73. {
  74. SRoomBtn.Content = "Изменить";
  75. SRoomBtn.HorizontalAlignment = HorizontalAlignment.Stretch;
  76. SRoomBtn.VerticalAlignment = VerticalAlignment.Stretch;
  77. SRoom.Text = String.Empty;
  78. }
  79. }
  80. private void PayMakeBtn_Click(object sender, RoutedEventArgs e)
  81. {
  82. if (SOrderDateEnd.SelectedDate == null)
  83. {
  84. MessageBox.Show("ВЫберите конец периода съёма комнаты");
  85. }
  86. else if (SRoom.Text == string.Empty)
  87. {
  88. MessageBox.Show("Комната не выбрана");
  89. }
  90. else
  91. {
  92. DateTime dateEnd = (DateTime)SOrderDateEnd.SelectedDate;
  93. int dateDiff = dateEnd.Subtract(DateTime.Parse(SOrderDateStart.Text.ToString())).Days + 1;
  94. PayAddOnOrderWindow payAddOnOrder = new PayAddOnOrderWindow(dateDiff, (decimal)Helper.SelectedRoomOnOrder.CostPerDay);
  95. payAddOnOrder.ShowDialog();
  96. if (payAddOnOrder.DialogResult == true)
  97. {
  98. PayMakeBtn.Visibility = Visibility.Hidden;
  99. PaySP.Visibility = Visibility.Visible;
  100. SPayEndSum.Text = DataBase.db.Pay.SingleOrDefault(item => item.Id == Helper.idNewPay).EndSum.ToString();
  101. SPayType.Text = DataBase.db.Pay.SingleOrDefault(item => item.Id == Helper.idNewPay).PayType.Name.ToString();
  102. SClientBtn.Visibility = Visibility.Collapsed;
  103. SRoomBtn.Visibility = Visibility.Collapsed;
  104. SOrderDateEnd.IsEnabled = false;
  105. CancelOrderBtn.Content = "Отменить";
  106. AddOrChangeBtn.Visibility = Visibility.Visible;
  107. }
  108. else
  109. {
  110. PayMakeBtn.Visibility = Visibility.Visible;
  111. PaySP.Visibility = Visibility.Hidden;
  112. SPayEndSum.Text = string.Empty;
  113. SPayType.Text = string.Empty;
  114. }
  115. }
  116. }
  117. private void AddOrChangeBtn_Click(object sender, RoutedEventArgs e)
  118. {
  119. if (DataContext == null)
  120. {
  121. Order order = new Order()
  122. {
  123. Id_Client = Helper.SelectedClientOnOrder.Id,
  124. Id_Staff = _hostel.Id,
  125. Id_OrderStatus = 2,
  126. Id_Pay = Helper.idNewPay,
  127. DateStart = DateTime.Parse(SOrderDateStart.Text.ToString()),
  128. DateEnd = (DateTime)SOrderDateEnd.SelectedDate,
  129. Id_Room = Helper.SelectedRoomOnOrder.Id
  130. };
  131. DataBase.db.Order.Add(order);
  132. var lastId = DataBase.db.Order.OrderByDescending(item => item.Id).FirstOrDefault().Id;
  133. DataBase.db.SaveChanges();
  134. MessageBox.Show("Заказ добавлен");
  135. PChanger.MainFrame.GoBack();
  136. }
  137. else
  138. {
  139. PChanger.MainFrame.GoBack();
  140. }
  141. }
  142. private void CancelOrderBtn_Click(object sender, RoutedEventArgs e)
  143. {
  144. if (DataContext == null)
  145. {
  146. if (PayMakeBtn.Visibility == Visibility.Hidden)
  147. {
  148. DataBase.db.Pay.Remove(Helper.pay);
  149. DataBase.db.SaveChanges();
  150. PChanger.MainFrame.GoBack();
  151. }
  152. else
  153. {
  154. PChanger.MainFrame.GoBack();
  155. }
  156. }
  157. else
  158. {
  159. _order.Id_OrderStatus = 3;
  160. MessageBox.Show("Заказ отменён");
  161. DataBase.db.SaveChanges();
  162. PChanger.MainFrame.GoBack();
  163. }
  164. }
  165. }
  166. }