OrderChangeOrAddPage.xaml.cs 6.2 KB

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