Prechádzať zdrojové kódy

Зазаы добавляются

Oleg Kireev 3 rokov pred
rodič
commit
bf65caf724

+ 6 - 1
Hotel_Course_Project/AdminPage.xaml

@@ -37,7 +37,12 @@
                         <TextBox  Name="StaffSeacrhTB" TextChanged="StaffSeacrhTB_TextChanged" VerticalAlignment="Center" Width="100"></TextBox>
                         <Button Name="StaffSrchBtn" Click="StaffSrchBtn_Click">Поиск</Button>
                     </StackPanel>
-                    <DataGrid x:Name="StaffList" Grid.Row="1" Grid.ColumnSpan="3" AutoGenerateColumns="False" ColumnWidth="*" IsReadOnly="True" >
+                    <DataGrid x:Name="StaffList" Grid.Row="1" Grid.ColumnSpan="3" AutoGenerateColumns="False" ColumnWidth="*" IsReadOnly="True" SelectionMode="Single">
+                        <!--<DataGrid.ItemContainerStyle>
+                            <Style TargetType="DataGridRow">
+                                <EventSetter Event="MouseDoubleClick" Handler="Row_DoubleClick"/>
+                            </Style>
+                        </DataGrid.ItemContainerStyle>-->
                         <DataGrid.Columns>
                             <DataGridTextColumn Header="Фамилия" Binding="{Binding LName}"></DataGridTextColumn>
                             <DataGridTextColumn Header="Имя" Binding="{Binding FName}"></DataGridTextColumn>

+ 0 - 1
Hotel_Course_Project/AdminPage.xaml.cs

@@ -231,6 +231,5 @@ namespace Hotel_Course_Project
             }
         }
         #endregion
-
     }
 }

+ 2 - 0
Hotel_Course_Project/Helper.cs

@@ -10,5 +10,7 @@ namespace Hotel_Course_Project
     {
         public static Client SelectedClientOnOrder;
         public static Room SelectedRoomOnOrder;
+        public static int idNewPay;
+        public static Pay pay;
     }
 }

+ 1 - 0
Hotel_Course_Project/HostelsPage.xaml.cs

@@ -24,6 +24,7 @@ namespace Hotel_Course_Project
         private void AddOrderBtn_Click(object sender, RoutedEventArgs e)
         {
             PChanger.MainFrame.Navigate(new OrderChangeOrAddPage(null, _hostels));
+            Page_Loaded(sender, e);
         }
         private void SelectOrderBtn_Click(object sender, RoutedEventArgs e)
         {

+ 8 - 1
Hotel_Course_Project/MainWindow.xaml.cs

@@ -25,7 +25,14 @@ namespace Hotel_Course_Project
 
         private void MainFrame_ContentRendered(object sender, EventArgs e)
         {
-            var visibleBackBtn = PChanger.MainFrame.CanGoBack ? BackBtn.Visibility = Visibility.Visible : BackBtn.Visibility = Visibility.Collapsed;
+            if (Title == "Добавление заказа")
+            {
+                var visibleBackBtnOnOrder = BackBtn.Visibility == Visibility.Collapsed;
+            }
+            else
+            {
+            var visibleBackBtn = PChanger.MainFrame.CanGoBack ? BackBtn.Visibility = Visibility.Visible : BackBtn.Visibility = Visibility.Collapsed;            
+            }
         }
 
         private void BackBtn_Click(object sender, RoutedEventArgs e)

+ 1 - 1
Hotel_Course_Project/ModelDB.Designer.cs

@@ -1,4 +1,4 @@
-// Создание кода T4 для модели "C:\Users\gr692_kov\source\repos\CourseProject\Hotel_Course_Project\ModelDB.edmx" включено. 
+// Создание кода T4 для модели "C:\Users\gr692_kov\Source\Repos\CourseProject\Hotel_Course_Project\ModelDB.edmx" включено. 
 // Чтобы включить формирование кода прежних версий, измените значение свойства "Стратегия создания кода" конструктора
 // на "Legacy ObjectContext". Это свойство доступно в окне "Свойства", если модель
 // открыта в конструкторе.

+ 2 - 2
Hotel_Course_Project/ModelDB.edmx

@@ -26,7 +26,7 @@
           <Property Name="Id_Room" Type="int" />
           <Property Name="Id_Pay" Type="int" />
           <Property Name="DateStart" Type="date" />
-          <Property Name="DateEnd" Type="nchar" MaxLength="10" />
+          <Property Name="DateEnd" Type="date" />
           <Property Name="Id_OrderStatus" Type="int" />
         </EntityType>
         <EntityType Name="OrderStatus">
@@ -306,7 +306,7 @@
           <Property Name="Id_Client" Type="Int32" />
           <Property Name="Id_Room" Type="Int32" />
           <Property Name="DateStart" Type="DateTime" Precision="0" />
-          <Property Name="DateEnd" Type="String" MaxLength="10" FixedLength="true" Unicode="true" />
+          <Property Name="DateEnd" Type="DateTime" />
           <NavigationProperty Name="Client" Relationship="Self.FK_Order_Client" FromRole="Order" ToRole="Client" />
           <NavigationProperty Name="Room" Relationship="Self.FK_Order_Room" FromRole="Order" ToRole="Room" />
           <NavigationProperty Name="Staff" Relationship="Self.FK_Order_Staff" FromRole="Order" ToRole="Staff" />

+ 1 - 1
Hotel_Course_Project/Order.cs

@@ -19,7 +19,7 @@ namespace Hotel_Course_Project
         public Nullable<int> Id_Client { get; set; }
         public Nullable<int> Id_Room { get; set; }
         public Nullable<System.DateTime> DateStart { get; set; }
-        public string DateEnd { get; set; }
+        public Nullable<System.DateTime> DateEnd { get; set; }
         public Nullable<int> Id_Pay { get; set; }
         public Nullable<int> Id_OrderStatus { get; set; }
     

+ 5 - 5
Hotel_Course_Project/OrderChangeOrAddPage.xaml

@@ -6,7 +6,7 @@
       xmlns:local="clr-namespace:Hotel_Course_Project"
       mc:Ignorable="d" 
       d:DesignHeight="450" d:DesignWidth="800"
-      Title="OrderChangeOrAddPage">
+      Title="Добавление заказа">
 
     <Grid>
         <Grid.ColumnDefinitions>
@@ -45,15 +45,15 @@
         <StackPanel Margin="10,0,0,0" Grid.Row="4" Grid.Column="1" Name="PaySP">
             <StackPanel Orientation="Horizontal">
                 <TextBlock>Стоимость: </TextBlock>
-                <TextBlock Name="SPayEndSum"></TextBlock>
+                <TextBlock Margin="10,0,0,0" Name="SPayEndSum"></TextBlock>
             </StackPanel>
             <StackPanel Margin="0,20,0,0" Orientation="Horizontal">
                 <TextBlock>Вид платежа: </TextBlock>
-                <TextBlock Name="SPayType"></TextBlock>
+                <TextBlock Margin="10,0,0,0" Name="SPayType"></TextBlock>
             </StackPanel>
         </StackPanel>
 
-        <Button Grid.Row="5" Grid.Column="1" x:Name="AddOrChangeBtn" Click="AddOrChangeBtn_Click"></Button>
-        <Button Name="CancelOrderBtn" Click="CancelOrderBtn_Click" Grid.Row="5" HorizontalAlignment="Center">Отменить заказ</Button>
+        <Button Grid.Row="5" Grid.Column="1" x:Name="AddOrChangeBtn" Click="AddOrChangeBtn_Click" HorizontalAlignment="Center" VerticalAlignment="Center">Подтвердить</Button>
+        <Button Name="CancelOrderBtn" Click="CancelOrderBtn_Click" Grid.Row="5" HorizontalAlignment="Center" VerticalAlignment="Center">Назад</Button>
     </Grid>
 </Page>

+ 59 - 3
Hotel_Course_Project/OrderChangeOrAddPage.xaml.cs

@@ -20,13 +20,20 @@ namespace Hotel_Course_Project
     /// </summary>
     public partial class OrderChangeOrAddPage : Page
     {
+        Staff _hostel;
         public OrderChangeOrAddPage(Order order, Staff hostel)
         {
             InitializeComponent();
+            DataContext = order;
+            _hostel = hostel;
+            if (DataContext == null)
+            {
             SOrderDateStart.Text = DateTime.Now.Date.ToString();
             SOrderDateEnd.DisplayDateStart = DateTime.Now.AddDays(1);
             SOrderDateEnd.DisplayDateEnd = DateTime.Now.AddMonths(12);
             PaySP.Visibility = Visibility.Collapsed;
+            AddOrChangeBtn.Visibility = Visibility.Collapsed;
+            }
         }
 
         private void SClientBtn_Click(object sender, RoutedEventArgs e)
@@ -78,20 +85,69 @@ namespace Hotel_Course_Project
             {
                 MessageBox.Show("ВЫберите конец периода съёма комнаты");
             }
+            else if(SRoom.Text == string.Empty)
+            {
+                MessageBox.Show("Комната не выбрана");
+            }
             else
             {
-
+                DateTime dateEnd = (DateTime)SOrderDateEnd.SelectedDate;
+                int dateDiff = dateEnd.Subtract(DateTime.Parse(SOrderDateStart.Text.ToString())).Days+1;
+                PayAddOnOrderWindow payAddOnOrder = new PayAddOnOrderWindow(dateDiff, (decimal)Helper.SelectedRoomOnOrder.CostPerDay);
+                payAddOnOrder.ShowDialog();
+                if(payAddOnOrder.DialogResult == true)
+                {
+                    PayMakeBtn.Visibility = Visibility.Hidden;
+                    PaySP.Visibility = Visibility.Visible;
+                    SPayEndSum.Text = DataBase.db.Pay.SingleOrDefault(item => item.Id == Helper.idNewPay).EndSum.ToString();
+                    SPayType.Text = DataBase.db.Pay.SingleOrDefault(item => item.Id == Helper.idNewPay).PayType.Name.ToString();
+                    SClientBtn.Visibility = Visibility.Collapsed;
+                    SRoomBtn.Visibility = Visibility.Collapsed;
+                    SOrderDateEnd.IsEnabled = false;
+                    CancelOrderBtn.Content = "Отменить";
+                    AddOrChangeBtn.Visibility = Visibility.Visible;
+                }
+                else
+                {
+                    PayMakeBtn.Visibility = Visibility.Visible; 
+                    PaySP.Visibility = Visibility.Hidden;
+                    SPayEndSum.Text = string.Empty;
+                    SPayType.Text = string.Empty;
+                }
             }
         }
 
         private void AddOrChangeBtn_Click(object sender, RoutedEventArgs e)
         {
-
+            Order order = new Order()
+            {
+                Id_Client = Helper.SelectedClientOnOrder.Id,
+                Id_Staff = _hostel.Id,
+                Id_OrderStatus = 2,
+                Id_Pay = Helper.idNewPay,
+                DateStart = DateTime.Parse(SOrderDateStart.Text.ToString()),
+                DateEnd = (DateTime)SOrderDateEnd.SelectedDate,
+                Id_Room = Helper.SelectedRoomOnOrder.Id                 
+            };
+            DataBase.db.Order.Add(order);
+            var lastId = DataBase.db.Order.OrderByDescending(item => item.Id).FirstOrDefault().Id;
+            DataBase.db.SaveChanges();
+            MessageBox.Show("Заказ добавлен");
+            PChanger.MainFrame.GoBack();
         }
 
         private void CancelOrderBtn_Click(object sender, RoutedEventArgs e)
         {
-
+            if(PayMakeBtn.Visibility == Visibility.Hidden)
+            {
+                DataBase.db.Pay.Remove(Helper.pay);
+                DataBase.db.SaveChanges();
+                PChanger.MainFrame.GoBack();
+            }
+            else
+            {
+            PChanger.MainFrame.GoBack();
+            }
         }
 
     }

+ 2 - 2
Hotel_Course_Project/PayAddOnOrderWindow.xaml

@@ -5,7 +5,7 @@
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:local="clr-namespace:Hotel_Course_Project"
         mc:Ignorable="d"
-        Title="Подтверждение платежа" Height="200" Width="200">
+        Title="Подтверждение платежа" Height="200" Width="200" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition></ColumnDefinition>
@@ -19,7 +19,7 @@
         <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Итоговая сумма</TextBlock>
         <TextBlock Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center">Вид оплаты</TextBlock>
         <TextBlock Name="SummEnd" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
-        <ComboBox Name="SPayTypeCB" Grid.Row="1" Grid.Column="1"></ComboBox>
+        <ComboBox Name="SPayTypeCB" DisplayMemberPath="Name" Grid.Row="1" Grid.Column="1"></ComboBox>
         <Button Grid.Row="2" Name="BackBtn" Click="BackBtn_Click">Отменить</Button>
         <Button Grid.Row="2" Grid.Column="1" Name="AddBtn" Click="AddBtn_Click">Подтвердить</Button>
     </Grid>

+ 21 - 3
Hotel_Course_Project/PayAddOnOrderWindow.xaml.cs

@@ -19,19 +19,37 @@ namespace Hotel_Course_Project
     /// </summary>
     public partial class PayAddOnOrderWindow : Window
     {
-        public PayAddOnOrderWindow()
+        public int _numDays;
+        public decimal _costPerDay;
+        public PayAddOnOrderWindow(int numDays, decimal costPerDay)
         {
             InitializeComponent();
+            _numDays = numDays;
+            _costPerDay = costPerDay;
+            SummEnd.Text = (_numDays * _costPerDay).ToString();
+            SPayTypeCB.ItemsSource = DataBase.db.PayType.ToList();
         }
 
         private void BackBtn_Click(object sender, RoutedEventArgs e)
         {
-
+            DialogResult = false;
         }
 
         private void AddBtn_Click(object sender, RoutedEventArgs e)
         {
-
+            int idPayType = DataBase.db.PayType.SingleOrDefault(item => item.Name == SPayTypeCB.Text).Id;
+            Pay pay = new Pay()
+            {
+                EndSum = _numDays * _costPerDay,
+                Id_PayType = idPayType,
+                PayDate = DateTime.Now.Date                
+            };
+            DataBase.db.Pay.Add(pay);
+            Helper.pay = pay;
+            var lastId = DataBase.db.Pay.OrderByDescending(item => item.Id).FirstOrDefault().Id;
+            DataBase.db.SaveChanges();
+            Helper.idNewPay = lastId;
+            DialogResult = true;
         }
     }
 }

+ 1 - 1
Hotel_Course_Project/RoomAddOnOrderWindow.xaml

@@ -5,7 +5,7 @@
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:local="clr-namespace:Hotel_Course_Project"
         mc:Ignorable="d"
-        Title="Добавление комнаты" Height="350" Width="500">
+        Title="Добавление комнаты" Height="350" Width="500" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="40"></RowDefinition>

+ 1 - 1
Hotel_Course_Project/RoomAddOnOrderWindow.xaml.cs

@@ -22,7 +22,7 @@ namespace Hotel_Course_Project
         public RoomAddOnOrderWindow()
         {
             InitializeComponent();
-            RoomList.ItemsSource = DataBase.db.Room.Where(item => item.Id_RoomStatus == 1);
+            RoomList.ItemsSource = DataBase.db.Room.Where(item => item.Id_RoomStatus == 1).ToList();
         }
 
         private void BackBtn_Click(object sender, RoutedEventArgs e)