Files
BeWoPlaner/BeWo/View/Detail/Accounting/InvoiceOverview.xaml
2025-06-26 13:55:52 +02:00

437 lines
22 KiB
XML

<localView:BeWoView
x:Class="BeWo.View.Detail.Accounting.InvoiceOverview"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:proxy="clr-namespace:BeWo.ServiceProxy"
xmlns:r="clr-namespace:BeWo.Security"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:val="clr-namespace:BeWo.Validation"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True">
<Grid>
<GroupBox
x:Name="groupbox_editArea"
Grid.Row="0"
Header="Rechnungsübersicht"
Style="{DynamicResource ObjectEditGroupBox}">
<Grid Margin="0,3,0,0" Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<localView:YearMonthFilter
x:Name="yearMonthFilter"
Grid.Column="0"
Margin="3,0,0,3"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
FilterSpanChanged="YearMonthFilter_FilterSpanChanged" />
<StackPanel
Grid.Column="1"
Margin="12,5,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Orientation="Vertical">
<RadioButton
x:Name="radioFilterByInvoiceDate"
Content="Nach Rechnungsdatum filtern"
IsChecked="True" />
<RadioButton x:Name="radioFilterByAccountingDate" Content="Nach Abrechnungszeitraum filtern" />
</StackPanel>
<Button
x:Name="button_reload"
Grid.Column="1"
Width="80"
Height="24"
Margin="250,0,0,5"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Click="ReloadButton_OnClick"
Content="Aktualisieren" />
<dxg:GridControl
x:Name="datagrid_invoices"
Grid.Row="1"
Grid.ColumnSpan="4"
Margin="3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
DataSource="{Binding VMList}"
SelectedItem="{Binding SelectedVM}">
<dxg:GridControl.Columns>
<dxg:GridColumn
x:Name="ColumnChecked"
MinWidth="30"
FieldName="IsChecked"
Header=" " />
<dxg:GridColumn
x:Name="ColumnButtons"
MinWidth="90"
AllowEditing="False"
FieldName="ReportLink"
Header=" ">
<dxg:GridColumn.DisplayTemplate>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<Button
x:Name="btn_report"
Width="20"
Height="20"
Margin="1"
VerticalAlignment="Center"
ToolTip="Formular anzeigen">
<TextBlock Padding="0">
<Hyperlink
NavigateUri="{Binding DisplayText, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
RequestNavigate="Hyperlink_OnRequestNavigate"
TextDecorations="None"
TargetName="_NewWindow">
<TextBlock
Width="16"
Height="17"
Padding="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Webdings"
FontSize="15"
Foreground="#FFFFFF"
Text="¥" />
</Hyperlink>
</TextBlock>
</Button>
<Button
x:Name="btn_xRechnung"
Width="20"
Height="20"
Margin="1"
Padding="0"
VerticalAlignment="Center"
Command="{Binding DataContext.ShowXRechnungCommand, RelativeSource={RelativeSource AncestorType={x:Type dxg:GridControl}}}"
CommandParameter="{Binding RowData.Row}"
Content="a"
FontFamily="Webdings"
FontSize="13"
Foreground="#FFFFFF"
ToolTip="xRechnung erstellen" />
<Button
x:Name="btn_edit"
Width="20"
Height="20"
Margin="1"
Padding="0"
VerticalAlignment="Center"
Click="btn_edit_Click"
Content="@"
FontFamily="Webdings"
FontSize="13"
Foreground="#FFFFFF"
ToolTip="Editieren" />
<Button
x:Name="btn_storno"
Width="20"
Height="20"
Margin="1"
Padding="0"
VerticalAlignment="Center"
Click="btn_storno_Click"
Content="S"
FontSize="13"
Foreground="#FFFFFF"
Initialized="btn_storno_Initialized"
ToolTip="Stornieren" />
<Button
x:Name="btn_delete"
Width="20"
Height="20"
Margin="1"
Padding="0"
VerticalAlignment="Center"
Click="btn_delete_Click"
Content="r"
FontFamily="Webdings"
FontSize="13"
Foreground="#FF0000"
ToolTip="Löschen" />
</StackPanel>
</ControlTemplate>
</dxg:GridColumn.DisplayTemplate>
</dxg:GridColumn>
<dxg:GridColumn
Width="150"
AllowEditing="False"
FieldName="TypeString"
Header="Art der Rechnung"
ReadOnly="True" />
<dxg:GridColumn
Width="100"
AllowEditing="False"
FieldName="CustomerName"
Header="{markup:Translate Klient/in}"
ReadOnly="True" />
<dxg:GridColumn
Width="100"
AllowEditing="False"
FieldName="AccountingPeriodString"
Header="Zeitraum"
ReadOnly="True"
SortFieldName="AccountingPeriodStart" />
<dxg:GridColumn
AllowEditing="False"
FieldName="InvoiceNumber"
Header="Nummer"
ReadOnly="True"
SortOrder="Ascending" />
<dxg:GridColumn
MinWidth="70"
AllowEditing="False"
EditSettings="{dxe:DateSettings DisplayFormat=d}"
FieldName="InvoiceDate"
Header="Datum"
ReadOnly="True" />
<dxg:GridColumn
AllowEditing="False"
FieldName="RecipientString"
Header="{markup:Translate EmpfängerSingular}"
ReadOnly="True" />
<!--<dxg:GridColumn FieldName="AccountingPeriodString" Header="Abrechnungszeitraum" />-->
<dxg:GridColumn
MinWidth="70"
AllowEditing="False"
FieldName="TotalAmount"
Header="Betrag"
ReadOnly="True">
<!--<dxg:GridColumn.CellStyle>
<Style TargetType="dxg:LightweightCellEditor">
<Setter Property="TextBlock.FontWeight" Value="Bold"/>
</Style>
</dxg:GridColumn.CellStyle>-->
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings
DisplayFormat="c"
Mask="c"
MaskType="Numeric" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn
MinWidth="200"
AllowEditing="False"
FieldName="Notice"
Header="Bemerkung"
ReadOnly="True">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings TextWrapping="Wrap" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn
x:Name="ReviewedColumn"
FieldName="IsReviewed"
Header="Geprüft" />
<dxg:GridColumn
x:Name="SentColumn"
FieldName="IsSent"
Header="Versendet" />
<dxg:GridColumn
x:Name="ExportColumn"
FieldName="IsExported"
Header="Exportiert" />
<dxg:GridColumn
x:Name="PaidColumn"
FieldName="IsPaid"
Header="Bezahlt" />
<dxg:GridColumn
MinWidth="200"
AllowEditing="True"
FieldName="PartialPayment"
Header="Teilzahlung"
ReadOnly="False">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings TextWrapping="Wrap" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView
x:Name="gridView"
Margin="3,22,3,3"
AllowBestFit="True"
BestFitMode="Smart"
CellValueChanged="gridView_CellValueChanged"
CellValueChanging="gridView_CellValueChanging"
CustomRowAppearance="TableView_OnCustomRowAppearance"
Loaded="gridView_Loaded"
NavigationStyle="Cell"
ScrollingMode="Smart"
ShowGroupPanel="False"
SnapsToDevicePixels="True" />
</dxg:GridControl.View>
</dxg:GridControl>
<Grid
Grid.Row="1"
Grid.ColumnSpan="4"
Margin="5,2,5,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal">
<Label
Margin="10,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{Binding FilterResultAmountSum, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}Summe aller Rechnungen: {0:c}'}"
FontSize="14"
Foreground="{StaticResource GridPrintMenuLightBrush}" />
<Label
Margin="0,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content=" | "
FontSize="14"
Foreground="{StaticResource GridPrintMenuLightBrush}" />
<Label
x:Name="lblAmoutNotPaid"
Margin="0,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{Binding FilterResultAmountNotPaidSum, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}Summe der noch offenen Rechnungen: {0:c}'}"
FontSize="14"
Foreground="{StaticResource GridPrintMenuLightBrush}" />
</StackPanel>
<TextBlock
x:Name="textblock_link_pdfexport"
Grid.Column="1"
Margin="5,0,5,0"
VerticalAlignment="Center"
FontSize="14">
<Hyperlink
x:Name="linkPdfExport"
Foreground="{StaticResource GridPrintMenuLightBrush}"
RequestNavigate="linkPdfExport_RequestNavigate"
TargetName="newWindow">
<Run Text="Drucken" />
</Hyperlink>
</TextBlock>
<TextBlock
x:Name="textblock_link"
Grid.Column="2"
Margin="5,0,5,0"
VerticalAlignment="Center"
FontSize="14">
<Hyperlink
x:Name="linkExcelExport"
Foreground="{StaticResource GridPrintMenuLightBrush}"
RequestNavigate="linkExcelExport_RequestNavigate"
TargetName="newWindow">
<Run Text="Excel Export" />
</Hyperlink>
</TextBlock>
</Grid>
<StackPanel Grid.Row="2" Orientation="Horizontal">
<Button
Name="button_checkAllLeistungen"
Margin="10,3,0,0"
HorizontalAlignment="Left"
Click="button_checkAll_Click">
Alle auswählen
</Button>
<Button
Name="button_uncheckAllLeistungen"
Margin="10,3,0,0"
HorizontalAlignment="Left"
Click="button_uncheckAll_Click">
Alle abwählen
</Button>
</StackPanel>
<StackPanel
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="3"
Orientation="Horizontal">
<Button
Name="button_aufklappenAllLeistungen"
Margin="10,3,0,0"
HorizontalAlignment="Left"
Click="button_printInvoices_Click">
Ausgewählte drucken
</Button>
<Button
Name="button_reviewAllLeistungen"
Margin="10,3,0,0"
HorizontalAlignment="Left"
Click="button_reviewInvoices_Click"
ToolTip="Ausgewählte Rechnungen auf geprüft setzen">
Geprüft setzen
</Button>
<Button
Name="button_sentAllLeistungen"
Height="Auto"
Margin="10,3,0,0"
HorizontalAlignment="Left"
Click="button_sentInvoices_Click"
ToolTip="Ausgewählte Rechnungen auf versendet setzen">
Versendet setzen
</Button>
<Button
Name="button_exportAllLeistungen"
Margin="10,3,0,0"
HorizontalAlignment="Left"
Click="button_exportedInvoices_Click"
ToolTip="Ausgewählte Rechnungen auf exportiert setzen">
Exportiert setzen
</Button>
<Button
Name="button_paidAllLeistungen"
Margin="10,3,0,0"
HorizontalAlignment="Left"
Click="button_paidInvoices_Click"
ToolTip="Ausgewählte Rechnungen auf bezahlt setzen">
Bezahlt setzen
</Button>
<Button
Name="button_eRechnung"
Margin="20,3,0,0"
HorizontalAlignment="Left"
Click="button_eRechnung_Click"
ToolTip="Ausgewählte Rechnungen eRechnung erstellen">
eRechnung erstellen
</Button>
</StackPanel>
</Grid>
</GroupBox>
</Grid>
</localView:BeWoView>