213 lines
20 KiB
XML
213 lines
20 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:vm="using:CourseProject1125.ViewModels"
|
||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||
mc:Ignorable="d" d:DesignWidth="1100" d:DesignHeight="650"
|
||
x:Class="CourseProject1125.Views.LibrarianWindow"
|
||
x:DataType="vm:LibrarianWindowViewModel"
|
||
Title="Панель библиотекаря - Библиотека"
|
||
Width="1100" Height="650"
|
||
WindowStartupLocation="CenterScreen"
|
||
Background="White">
|
||
|
||
<Grid ColumnDefinitions="240, *">
|
||
<Border Grid.Column="0" Background="LightGray" BorderBrush="Gray" BorderThickness="0,0,1,0" Padding="15">
|
||
<Grid RowDefinitions="Auto, *, Auto">
|
||
<StackPanel Grid.Row="0" Margin="0,10,0,30">
|
||
<TextBlock Text="БИБЛИОТЕКА" Foreground="Black" FontSize="20" FontWeight="Bold" HorizontalAlignment="Center" LetterSpacing="1"/>
|
||
<TextBlock Text="Панель библиотекаря" Foreground="Black" FontSize="11" HorizontalAlignment="Center"/>
|
||
<TextBlock Name="TxtLibrarianName" Text="{Binding LibrarianName}" Foreground="Black" FontSize="12" FontWeight="SemiBold" HorizontalAlignment="Center" Margin="0,10,0,0"/>
|
||
</StackPanel>
|
||
|
||
<StackPanel Grid.Row="1">
|
||
<Button Name="BtnTabIssue" Content=" Выдача книг" Command="{Binding ShowTabCommand}" CommandParameter="Issue" Background="{Binding IssueTabBackground}" Foreground="{Binding IssueTabForeground}" HorizontalAlignment="Stretch" Height="40" FontWeight="SemiBold" CornerRadius="6" HorizontalContentAlignment="Left" Padding="15,0,0,0"/>
|
||
<Button Name="BtnTabReturns" Content=" Возврат книг" Command="{Binding ShowTabCommand}" CommandParameter="Returns" Background="{Binding ReturnsTabBackground}" Foreground="{Binding ReturnsTabForeground}" HorizontalAlignment="Stretch" Height="40" FontWeight="SemiBold" CornerRadius="6" HorizontalContentAlignment="Left" Padding="15,0,0,0"/>
|
||
<Button Name="BtnTabRegister" Content=" Регистрация читателей" Command="{Binding ShowTabCommand}" CommandParameter="Register" Background="{Binding RegisterTabBackground}" Foreground="{Binding RegisterTabForeground}" HorizontalAlignment="Stretch" Height="40" FontWeight="SemiBold" CornerRadius="6" HorizontalContentAlignment="Left" Padding="15,0,0,0"/>
|
||
<Button Name="BtnTabFines" Content=" Штрафы" Command="{Binding ShowTabCommand}" CommandParameter="Fines" Background="{Binding FinesTabBackground}" Foreground="{Binding FinesTabForeground}" HorizontalAlignment="Stretch" Height="40" FontWeight="SemiBold" CornerRadius="6" HorizontalContentAlignment="Left" Padding="15,0,0,0"/>
|
||
<Button Name="BtnTabReservations" Content=" Бронирования" Command="{Binding ShowTabCommand}" CommandParameter="Reservations" Background="{Binding ReservationsTabBackground}" Foreground="{Binding ReservationsTabForeground}" HorizontalAlignment="Stretch" Height="40" FontWeight="SemiBold" CornerRadius="6" HorizontalContentAlignment="Left" Padding="15,0,0,0"/>
|
||
</StackPanel>
|
||
|
||
<Button Grid.Row="3" Content=" Выйти из системы" Command="{Binding LogoutCommand}" HorizontalAlignment="Stretch" Height="40" Background="Red" Foreground="White" FontWeight="Bold" CornerRadius="6" HorizontalContentAlignment="Center"/>
|
||
</Grid>
|
||
</Border>
|
||
|
||
<Grid Grid.Column="1" RowDefinitions="Auto, *">
|
||
<Border Grid.Row="0" Background="LightGray" Height="60" Padding="20,0" BorderBrush="Gray" BorderThickness="0,0,0,1">
|
||
<Grid ColumnDefinitions="*, Auto">
|
||
<TextBlock Name="TxtActiveTabHeader" Text="{Binding ActiveTabHeader}" Foreground="Black" FontSize="18" FontWeight="Bold" VerticalAlignment="Center"/>
|
||
<TextBlock Grid.Column="1" Text="Роль: Библиотекарь" Foreground="Black" FontSize="12" VerticalAlignment="Center"/>
|
||
</Grid>
|
||
</Border>
|
||
|
||
<Grid Grid.Row="1" Margin="20">
|
||
<Grid Name="GridIssue" ColumnDefinitions="450, *" IsVisible="{Binding IsIssueVisible}">
|
||
<Border Grid.Column="0" Background="White" CornerRadius="8" Padding="20" BorderBrush="LightGray" BorderThickness="1" VerticalAlignment="Top">
|
||
<StackPanel>
|
||
<TextBlock Text="Выдача книги читателю" Foreground="Black" FontSize="16" FontWeight="Bold" Margin="0,0,0,5"/>
|
||
|
||
<StackPanel Margin="0,0,0,10">
|
||
<TextBlock Text="Поиск и выбор книги" Foreground="Black" FontSize="12" Margin="0,0,0,4"/>
|
||
<TextBox Name="TxtSearchCopy" Text="{Binding SearchCopyText, Mode=TwoWay}" Watermark="Введите название, инв. номер или автора..." Height="36" CornerRadius="4"/>
|
||
<ListBox Name="LbIssueCopies" ItemsSource="{Binding FilteredCopies}" SelectedItem="{Binding SelectedAvailableCopy, Mode=TwoWay}" Height="120" Margin="0,4,0,0" CornerRadius="4" Background="White" BorderBrush="LightGray" BorderThickness="1">
|
||
<ListBox.ItemTemplate>
|
||
<DataTemplate>
|
||
<StackPanel Margin="4">
|
||
<TextBlock Text="{Binding BookId.Title}" Foreground="Black" FontSize="13" FontWeight="Bold"/>
|
||
<TextBlock Text="{Binding Inventory_number}" Foreground="Black" FontSize="11"/>
|
||
</StackPanel>
|
||
</DataTemplate>
|
||
</ListBox.ItemTemplate>
|
||
</ListBox>
|
||
</StackPanel>
|
||
|
||
<StackPanel Margin="0,0,0,10">
|
||
<TextBlock Text="Поиск и выбор читателя" Foreground="Black" FontSize="12" Margin="0,0,0,4"/>
|
||
<TextBox Name="TxtSearchReader" Text="{Binding SearchReaderText, Mode=TwoWay}" Watermark="Введите ФИО или логин читателя..." Height="36" CornerRadius="4"/>
|
||
<ListBox Name="LbIssueReaders" ItemsSource="{Binding FilteredReaders}" SelectedItem="{Binding SelectedReader, Mode=TwoWay}" Height="120" Margin="0,4,0,0" CornerRadius="4" Background="White" BorderBrush="LightGray" BorderThickness="1">
|
||
<ListBox.ItemTemplate>
|
||
<DataTemplate>
|
||
<StackPanel Margin="4">
|
||
<TextBlock Text="{Binding Full_name}" Foreground="Black" FontSize="13" FontWeight="Bold"/>
|
||
<TextBlock Text="{Binding Login}" Foreground="Black" FontSize="11"/>
|
||
</StackPanel>
|
||
</DataTemplate>
|
||
</ListBox.ItemTemplate>
|
||
</ListBox>
|
||
</StackPanel>
|
||
|
||
<StackPanel>
|
||
<TextBlock Text="Срок возврата" Foreground="Black" FontSize="12"/>
|
||
<CalendarDatePicker Name="DpIssueDueDate" SelectedDate="{Binding IssueDueDate, Mode=TwoWay}" HorizontalAlignment="Stretch" Height="36" CornerRadius="4"/>
|
||
</StackPanel>
|
||
|
||
<Button Content=" Оформить выдачу" Command="{Binding IssueBookCommand}" Background="Green" Foreground="White" HorizontalAlignment="Stretch" Height="40" FontWeight="Bold" CornerRadius="4" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="0,10,0,0"/>
|
||
|
||
<TextBlock Name="TxtIssueStatus" Text="{Binding IssueStatus}" Foreground="{Binding IssueStatusColor}" FontSize="13" TextWrapping="Wrap" HorizontalAlignment="Center"/>
|
||
</StackPanel>
|
||
</Border>
|
||
<Border Grid.Column="1" Background="White" CornerRadius="8" Padding="20" BorderBrush="LightGray" BorderThickness="1">
|
||
<StackPanel>
|
||
<TextBlock Text="Памятка библиотекаря" Foreground="Black" FontSize="15" FontWeight="Bold"/>
|
||
<TextBlock Text="1. Книга выдается только зарегистрированным читателям." Foreground="Black" TextWrapping="Wrap"/>
|
||
<TextBlock Text="2. Рекомендуемый срок выдачи — 14 дней." Foreground="Black" TextWrapping="Wrap"/>
|
||
<TextBlock Text="3. При просрочке сдачи книги система автоматически начислит штраф в размере 15 руб. за каждый день задержки при возврате." Foreground="Black" TextWrapping="Wrap"/>
|
||
</StackPanel>
|
||
</Border>
|
||
</Grid>
|
||
|
||
<Grid Name="GridReturns" RowDefinitions="*, Auto" IsVisible="{Binding IsReturnsVisible}">
|
||
<Grid Grid.Row="0" ColumnDefinitions="*, 320">
|
||
<DataGrid Name="DgActiveLoans" Grid.Column="0" ItemsSource="{Binding ActiveLoansList}" SelectedItem="{Binding SelectedActiveLoan, Mode=TwoWay}" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="All" BorderThickness="1" BorderBrush="LightGray" Background="White">
|
||
<DataGrid.Columns>
|
||
<DataGridTextColumn Header="Инв. номер" Binding="{Binding CopyId.Inventory_number}" Width="120"/>
|
||
<DataGridTextColumn Header="Книга" Binding="{Binding CopyId.BookId.Title}" Width="2*"/>
|
||
<DataGridTextColumn Header="Читатель" Binding="{Binding ReaderId.Full_name}" Width="1.5*"/>
|
||
<DataGridTextColumn Header="Дата выдачи" Binding="{Binding Issue_date, StringFormat={}{0:dd.MM.yyyy}}" Width="110"/>
|
||
<DataGridTextColumn Header="Срок сдачи" Binding="{Binding Due_date, StringFormat={}{0:dd.MM.yyyy}}" Width="110"/>
|
||
<DataGridTextColumn Header="Статус" Binding="{Binding StatusText}" Width="120"/>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
|
||
<Border Grid.Column="1" Background="White" CornerRadius="8" Padding="15" BorderBrush="LightGray" BorderThickness="1" VerticalAlignment="Top">
|
||
<StackPanel>
|
||
<TextBlock Text="Приём возврата" Foreground="Black" FontSize="15" FontWeight="Bold"/>
|
||
<TextBlock Name="TxtReturnDetails" Text="{Binding ReturnDetails}" Foreground="Black" TextWrapping="Wrap" FontSize="13"/>
|
||
|
||
<Button Name="BtnReturnBook" Content=" Принять возврат" Command="{Binding ReturnBookCommand}" IsEnabled="{Binding IsReturnEnabled}" Background="Blue" Foreground="White" HorizontalAlignment="Stretch" Height="40" FontWeight="Bold" CornerRadius="4" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
||
|
||
<TextBlock Name="TxtReturnStatus" Text="{Binding ReturnStatus}" Foreground="{Binding ReturnStatusColor}" FontSize="13" TextWrapping="Wrap" HorizontalAlignment="Center" FontWeight="SemiBold"/>
|
||
</StackPanel>
|
||
</Border>
|
||
</Grid>
|
||
</Grid>
|
||
|
||
<Grid Name="GridRegister" ColumnDefinitions="450, *" IsVisible="{Binding IsRegisterVisible}">
|
||
<Border Grid.Column="0" Background="White" CornerRadius="8" Padding="20" BorderBrush="LightGray" BorderThickness="1" VerticalAlignment="Top">
|
||
<StackPanel>
|
||
<TextBlock Text="Регистрация нового читателя" Foreground="Black" FontSize="16" FontWeight="Bold" Margin="0,0,0,5"/>
|
||
|
||
<StackPanel>
|
||
<TextBlock Text="ФИО читателя" Foreground="Black" FontSize="12"/>
|
||
<TextBox Name="TxtRegFullName" Text="{Binding RegFullName, Mode=TwoWay}" Height="34" CornerRadius="4"/>
|
||
</StackPanel>
|
||
|
||
<StackPanel>
|
||
<TextBlock Text="Email" Foreground="Black" FontSize="12"/>
|
||
<TextBox Name="TxtRegEmail" Text="{Binding RegEmail, Mode=TwoWay}" Height="34" CornerRadius="4"/>
|
||
</StackPanel>
|
||
|
||
<StackPanel>
|
||
<TextBlock Text="Телефон" Foreground="Black" FontSize="12"/>
|
||
<TextBox Name="TxtRegPhone" Text="{Binding RegPhone, Mode=TwoWay}" Height="34" CornerRadius="4"/>
|
||
</StackPanel>
|
||
|
||
<StackPanel>
|
||
<TextBlock Text="Логин для входа" Foreground="Black" FontSize="12"/>
|
||
<TextBox Name="TxtRegLogin" Text="{Binding RegLogin, Mode=TwoWay}" Height="34" CornerRadius="4"/>
|
||
</StackPanel>
|
||
|
||
<StackPanel>
|
||
<TextBlock Text="Пароль" Foreground="Black" FontSize="12"/>
|
||
<TextBox Name="TxtRegPass" Text="{Binding RegPass, Mode=TwoWay}" Height="34" CornerRadius="4"/>
|
||
</StackPanel>
|
||
|
||
<Button Content=" Зарегистрировать" Command="{Binding RegisterReaderCommand}" Background="Green" Foreground="White" HorizontalAlignment="Stretch" Height="38" FontWeight="Bold" CornerRadius="4" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="0,10,0,0"/>
|
||
|
||
<TextBlock Name="TxtRegStatus" Text="{Binding RegStatus}" Foreground="{Binding RegStatusColor}" FontSize="13" HorizontalAlignment="Center"/>
|
||
</StackPanel>
|
||
</Border>
|
||
</Grid>
|
||
|
||
<Grid Name="GridFines" ColumnDefinitions="*, 320" IsVisible="{Binding IsFinesVisible}">
|
||
<DataGrid Name="DgFines" Grid.Column="0" ItemsSource="{Binding FinesList}" SelectedItem="{Binding SelectedFine, Mode=TwoWay}" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="All" BorderThickness="1" BorderBrush="LightGray" Background="White">
|
||
<DataGrid.Columns>
|
||
<DataGridTextColumn Header="Читатель" Binding="{Binding LoanId.ReaderId.Full_name}" Width="1.5*"/>
|
||
<DataGridTextColumn Header="Книга" Binding="{Binding LoanId.CopyId.BookId.Title}" Width="2*"/>
|
||
<DataGridTextColumn Header="Сумма" Binding="{Binding Amount}" Width="90"/>
|
||
<DataGridTextColumn Header="Статус" Binding="{Binding StatusText}" Width="100"/>
|
||
<DataGridTextColumn Header="Дата выписки" Binding="{Binding Created_at, StringFormat={}{0:dd.MM.yyyy}}" Width="110"/>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
|
||
<Border Grid.Column="1" Background="White" CornerRadius="8" Padding="15" BorderBrush="LightGray" BorderThickness="1" VerticalAlignment="Top">
|
||
<StackPanel>
|
||
<TextBlock Text="Управление штрафами" Foreground="Black" FontSize="15" FontWeight="Bold"/>
|
||
<TextBlock Name="TxtFineDetails" Text="{Binding FineDetails}" Foreground="Black" TextWrapping="Wrap" FontSize="13"/>
|
||
|
||
<Button Name="BtnPayFine" Content=" Отметить как оплаченный" Command="{Binding PayFineCommand}" IsEnabled="{Binding IsPayFineEnabled}" Background="Green" Foreground="White" HorizontalAlignment="Stretch" Height="40" FontWeight="Bold" CornerRadius="4" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
||
|
||
<TextBlock Name="TxtFineStatus" Text="{Binding FineStatus}" Foreground="{Binding FineStatusColor}" FontSize="13" TextWrapping="Wrap" HorizontalAlignment="Center"/>
|
||
</StackPanel>
|
||
</Border>
|
||
</Grid>
|
||
|
||
<Grid Name="GridReservations" RowDefinitions="*, Auto" IsVisible="{Binding IsReservationsVisible}">
|
||
<Grid Grid.Row="0" ColumnDefinitions="*, 320">
|
||
<DataGrid Name="DgReservations" Grid.Column="0" ItemsSource="{Binding ReservationsList}" SelectedItem="{Binding SelectedReservation, Mode=TwoWay}" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="All" BorderThickness="1" BorderBrush="LightGray" Background="White">
|
||
<DataGrid.Columns>
|
||
<DataGridTextColumn Header="Книга" Binding="{Binding BookId.Title}" Width="2*"/>
|
||
<DataGridTextColumn Header="Читатель" Binding="{Binding ReaderId.Full_name}" Width="1.5*"/>
|
||
<DataGridTextColumn Header="Дата брони" Binding="{Binding Reservation_date, StringFormat={}{0:dd.MM.yyyy}}" Width="110"/>
|
||
<DataGridTextColumn Header="Истекает" Binding="{Binding Expiry_date, StringFormat={}{0:dd.MM.yyyy}}" Width="110"/>
|
||
<DataGridTextColumn Header="Активна" Binding="{Binding is_active}" Width="90"/>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
|
||
<Border Grid.Column="1" Background="White" CornerRadius="8" Padding="15" BorderBrush="LightGray" BorderThickness="1" VerticalAlignment="Top">
|
||
<StackPanel>
|
||
<TextBlock Text="Детали бронирования" Foreground="Black" FontSize="15" FontWeight="Bold"/>
|
||
<TextBlock Name="TxtReservationDetails" Text="{Binding ReservationDetails}" Foreground="Black" TextWrapping="Wrap" FontSize="13"/>
|
||
|
||
<Button Name="BtnCancelReservation" Content=" Отменить бронь" Command="{Binding CancelReservationCommand}" IsEnabled="{Binding IsCancelReservationEnabled}" Background="Red" Foreground="White" HorizontalAlignment="Stretch" Height="40" FontWeight="Bold" CornerRadius="4" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
|
||
|
||
<TextBlock Name="TxtReservationStatus" Text="{Binding ReservationStatus}" Foreground="{Binding ReservationStatusColor}" FontSize="13" TextWrapping="Wrap" HorizontalAlignment="Center"/>
|
||
</StackPanel>
|
||
</Border>
|
||
</Grid>
|
||
</Grid>
|
||
</Grid>
|
||
</Grid>
|
||
</Grid>
|
||
</Window>
|