elfisa-pharmacy/src/Elfisa.Avalonia/Views/SendOrderView.axaml
Exest 124a891025 Отправить: отправка неотправленных накладных (из Заказы), без поиска/наименований
Раздел переделан: вместо поиска по прайсу и корзины с наименованиями — список
неотправленных накладных (черновиков) и кнопка «Отправить все» (плюс отправка
по одной). Отправка создаёт реальный заказ у поставщика и убирает черновик.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 13:41:34 +03:00

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>