Раздел переделан: вместо поиска по прайсу и корзины с наименованиями — список неотправленных накладных (черновиков) и кнопка «Отправить все» (плюс отправка по одной). Отправка создаёт реальный заказ у поставщика и убирает черновик. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
90 lines
6.4 KiB
XML
90 lines
6.4 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="using:Elfisa.Avalonia.ViewModels"
|
|
xmlns:core="using:Elfisa.Core"
|
|
xmlns:conv="using:Avalonia.Data.Converters"
|
|
x:Class="Elfisa.Avalonia.Views.SendOrderView"
|
|
x:DataType="vm:SendOrderViewModel">
|
|
|
|
<DockPanel Margin="24">
|
|
<Grid DockPanel.Dock="Top" Margin="0,0,0,14" ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="2" VerticalAlignment="Center">
|
|
<TextBlock Text="Отправить" Classes="h1"/>
|
|
<TextBlock Text="Отправка неотправленных накладных из раздела «Заказы»" Classes="muted"/>
|
|
</StackPanel>
|
|
<Button Grid.Column="1" Content="Обновить" VerticalAlignment="Center"
|
|
Command="{Binding RefreshCommand}"/>
|
|
</Grid>
|
|
|
|
<Border DockPanel.Dock="Bottom" Margin="0,10,0,0" Padding="10,7" CornerRadius="6"
|
|
Background="{DynamicResource AccentSoft}"
|
|
IsVisible="{Binding Status, Converter={x:Static conv:ObjectConverters.IsNotNull}}">
|
|
<TextBlock Text="{Binding Status}" Foreground="{DynamicResource AccentPressed}" TextWrapping="Wrap" FontSize="12.5"/>
|
|
</Border>
|
|
|
|
<!-- Панель отправки: главное действие — отправить все -->
|
|
<Border DockPanel.Dock="Top" Classes="card" Padding="16" Margin="0,0,0,12">
|
|
<Grid ColumnDefinitions="*,Auto" VerticalAlignment="Center">
|
|
<StackPanel Grid.Column="0" Spacing="2" VerticalAlignment="Center">
|
|
<TextBlock Foreground="{DynamicResource Text}" FontWeight="SemiBold" FontSize="15"
|
|
Text="{Binding Count, StringFormat='Неотправленных накладных: {0}'}"/>
|
|
<TextBlock Classes="muted" FontSize="12.5"
|
|
Text="{Binding TotalSum, StringFormat='на сумму {0:N2}'}"/>
|
|
</StackPanel>
|
|
<Button Grid.Column="1" Classes="primary" Padding="26,12" FontSize="15"
|
|
Content="Отправить все ▸" Command="{Binding SendAllCommand}"
|
|
IsEnabled="{Binding !Busy}" IsVisible="{Binding !IsEmpty}"/>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- Список накладных -->
|
|
<Border Classes="card" Padding="0" ClipToBounds="True">
|
|
<Grid>
|
|
<!-- Пусто -->
|
|
<StackPanel IsVisible="{Binding IsEmpty}" VerticalAlignment="Center" HorizontalAlignment="Center"
|
|
Spacing="8" Margin="24">
|
|
<TextBlock Text="📭" FontSize="34" HorizontalAlignment="Center"/>
|
|
<TextBlock Text="Нет неотправленных накладных" Classes="h2" HorizontalAlignment="Center"/>
|
|
<TextBlock Classes="muted" HorizontalAlignment="Center" TextAlignment="Center" MaxWidth="360" TextWrapping="Wrap"
|
|
Text="Соберите заказ в разделе «Прайс-лист» и нажмите «Сохранить заказ» — он появится здесь для отправки."/>
|
|
</StackPanel>
|
|
|
|
<!-- Есть накладные -->
|
|
<ScrollViewer IsVisible="{Binding !IsEmpty}">
|
|
<ItemsControl ItemsSource="{Binding Drafts}" x:CompileBindings="False" Margin="0,0,0,14">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate x:DataType="core:DraftOrder">
|
|
<Border Padding="14" Margin="14,14,14,0" CornerRadius="10"
|
|
Background="{DynamicResource RowAlt}" BorderThickness="1" BorderBrush="{DynamicResource Border}">
|
|
<Grid ColumnDefinitions="*,Auto" VerticalAlignment="Center">
|
|
<StackPanel Grid.Column="0" Spacing="3">
|
|
<TextBlock Text="{Binding Number}" FontWeight="Bold" FontSize="15" Foreground="{DynamicResource Text}"/>
|
|
<TextBlock Classes="muted" FontSize="12.5"
|
|
Text="{Binding CreatedAt, StringFormat='dd.MM.yyyy HH:mm'}"/>
|
|
<TextBlock Classes="muted" FontSize="12.5" TextTrimming="CharacterEllipsis"
|
|
Text="{Binding LocationAddress}"/>
|
|
<TextBlock Classes="muted" FontSize="12.5"
|
|
Text="{Binding ItemsCount, StringFormat='Позиций: {0}'}"/>
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="12" VerticalAlignment="Center">
|
|
<TextBlock Text="{Binding Total, StringFormat='{}{0:N2}'}" FontWeight="Bold"
|
|
FontSize="16" Foreground="{DynamicResource Accent}" VerticalAlignment="Center"/>
|
|
<Button Classes="primary" Content="Отправить"
|
|
Command="{Binding $parent[ItemsControl].DataContext.SendCommand}"
|
|
CommandParameter="{Binding}"/>
|
|
<Button Content="✕" Width="32" Height="32" Padding="0" VerticalAlignment="Center"
|
|
Background="Transparent" Foreground="{DynamicResource Muted}" Cursor="Hand"
|
|
Command="{Binding $parent[ItemsControl].DataContext.DeleteCommand}"
|
|
CommandParameter="{Binding}"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
</Grid>
|
|
</Border>
|
|
</DockPanel>
|
|
</UserControl>
|