Erweiterung Rechnungsübersicht um neue Bools,
neues Recht Rechnung nach Versand bearbeiten
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,7 @@ using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Translation;
|
||||
|
||||
namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
@@ -134,9 +135,14 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void bt_delete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<InvoiceBaseVM>(sender);
|
||||
if (vm.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Sind Sie sicher, dass Sie den gewählten Eintrag löschen möchten?", "Rechnung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<InvoiceBaseVM>(sender);
|
||||
this.ViewModel.VMList.Remove(vm);
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.DeactivateInvoiceBases(new[] { vm.DataContract }.ToList()));
|
||||
}
|
||||
@@ -145,6 +151,11 @@ namespace BeWo.View.Detail.Accounting
|
||||
private void bt_edit_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<InvoiceBaseVM>(sender);
|
||||
if (vm.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
this._EditView.ViewModel = vm;
|
||||
this.MainControl.ShowControlAsModalPopup(this._EditView);
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Translation;
|
||||
|
||||
namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
@@ -106,9 +107,14 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void btnDelete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<InvoiceBaseVM>(sender);
|
||||
if (vm.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Sind Sie sicher, dass Sie den gewählten Eintrag löschen möchten?", "Rechnung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<InvoiceBaseVM>(sender);
|
||||
ViewModel.VMList.Remove(vm);
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.DeactivateInvoiceBases(new[] {vm.DataContract}.ToList()));
|
||||
}
|
||||
@@ -116,7 +122,13 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void btnEdit_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
_EditView.ViewModel = BeWoWpfUtils.GetTag<InvoiceBaseVM>(sender);
|
||||
var vm = BeWoWpfUtils.GetTag<InvoiceBaseVM>(sender);
|
||||
if (vm.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
_EditView.ViewModel = vm;
|
||||
MainControl.ShowControlAsModalPopup(_EditView);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,103 +15,118 @@
|
||||
xmlns:r="clr-namespace:BeWo.Security" VerticalAlignment="Stretch" Focusable="True"
|
||||
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic">
|
||||
|
||||
<Grid>
|
||||
<GroupBox x:Name="groupbox_editArea" Grid.Row="0" Header="Rechnungsübersicht" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
<Grid>
|
||||
|
||||
<GroupBox x:Name="groupbox_editArea" Grid.Row="0" Header="Rechnungsübersicht" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
|
||||
<Grid Grid.IsSharedSizeScope="True" Margin="0,3,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<Grid Grid.IsSharedSizeScope="True" Margin="0,3,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<localView:YearMonthFilter Margin="3 0 0 3" VerticalAlignment="Bottom" HorizontalAlignment="Left" Grid.Column="0" x:Name="yearMonthFilter" FilterSpanChanged="YearMonthFilter_FilterSpanChanged" />
|
||||
<localView:YearMonthFilter Margin="3 0 0 3" VerticalAlignment="Bottom" HorizontalAlignment="Left" Grid.Column="0" x:Name="yearMonthFilter" FilterSpanChanged="YearMonthFilter_FilterSpanChanged" />
|
||||
<StackPanel Orientation="Vertical" Grid.Column="1" Margin="12,5,0,0" VerticalAlignment="Center" HorizontalAlignment="Left">
|
||||
<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="2" Content="Aktualisieren" Margin="12,0,0,0" Click="ReloadButton_OnClick" Height="24" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="80" />
|
||||
|
||||
|
||||
<dxg:GridControl Margin="3" Grid.ColumnSpan="3" Grid.Row="1" DataSource="{Binding VMList}" x:Name="datagrid_invoices" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
|
||||
<dxg:GridControl.Columns>
|
||||
|
||||
<Button x:Name="button_reload" Grid.Column="1" Content="Aktualisieren" Margin="250,0,0,5" Click="ReloadButton_OnClick" Height="24" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="80" />
|
||||
|
||||
|
||||
<dxg:GridControl Margin="3" Grid.ColumnSpan="4" Grid.Row="1" DataSource="{Binding VMList}" x:Name="datagrid_invoices" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn x:Name="ColumnChecked" FieldName="IsChecked" Header=" " MinWidth="30"></dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="ColumnButtons" AllowEditing="False" MinWidth="90" FieldName="ReportLink" Header=" ">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Button Margin="1" ToolTip="Formular anzeigen" x:Name="btn_report" Height="20" Width="20" VerticalAlignment="Center">
|
||||
<TextBlock Padding="0">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Button Margin="1" ToolTip="Formular anzeigen" x:Name="btn_report" Height="20" Width="20" VerticalAlignment="Center">
|
||||
<TextBlock Padding="0">
|
||||
<Hyperlink TextDecorations="None" TargetName="_NewWindow" NavigateUri="{Binding DisplayText, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" RequestNavigate="Hyperlink_OnRequestNavigate">
|
||||
<TextBlock Padding="0" Text="¥" Foreground="#FFFFFF" FontSize="15" FontFamily="Webdings" Height="17" Width="16" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</Button>
|
||||
</Button>
|
||||
<Button Click="btn_edit_Click" Content="@" Padding="0" Margin="1" ToolTip="Editieren" Foreground="#FFFFFF" FontSize="13" FontFamily="Webdings" x:Name="btn_edit" Height="20" Width="20" VerticalAlignment="Center" />
|
||||
<Button Click="btn_storno_Click" Content="S" Padding="0" Margin="1" ToolTip="Stornieren" Foreground="#FFFFFF" FontSize="13" x:Name="btn_storno" Height="20" Width="20" VerticalAlignment="Center" Initialized="btn_storno_Initialized"/>
|
||||
<Button Click="btn_delete_Click" Content="r" Padding="0" Margin="1" ToolTip="Löschen" Foreground="#FF0000" FontSize="13" FontFamily="Webdings" x:Name="btn_delete" Height="20" Width="20" VerticalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.DisplayTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TypeString" Header="Art der Rechnung" Width="150" />
|
||||
</StackPanel>
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.DisplayTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TypeString" Header="Art der Rechnung" Width="150" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="CustomerName" Header="{markup:Translate Klient/in}" Width="100" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="AccountingPeriodString" SortFieldName="AccountingPeriodStart" Header="Zeitraum" Width="100" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceNumber" Header="Nummer" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceDate" Header="Datum" EditSettings="{dxe:DateSettings DisplayFormat=d}" MinWidth="70" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceDate" Header="Datum" EditSettings="{dxe:DateSettings DisplayFormat=d}" MinWidth="70" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="RecipientString" Header="{markup:Translate EmpfängerSingular}" />
|
||||
<!--<dxg:GridColumn FieldName="AccountingPeriodString" Header="Abrechnungszeitraum" />-->
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TotalAmount" Header="Betrag" MinWidth="70">
|
||||
<!--<dxg:GridColumn.CellStyle>
|
||||
<!--<dxg:GridColumn FieldName="AccountingPeriodString" Header="Abrechnungszeitraum" />-->
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TotalAmount" Header="Betrag" MinWidth="70">
|
||||
<!--<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"></dxe:TextEditSettings>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Notice" Header="Bemerkung" MinWidth="200" >
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings TextWrapping="Wrap" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings DisplayFormat="c" Mask="c" MaskType="Numeric"></dxe:TextEditSettings>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Notice" Header="Bemerkung" MinWidth="200" >
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings TextWrapping="Wrap" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
|
||||
<dxg:GridColumn x:Name="ReviewedColumn" FieldName="IsReviewed" Header="Geprüft"></dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="SentColumn" FieldName="IsSent" Header="Versendet"></dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="ExportColumn" FieldName="IsExported" Header="Exportiert"></dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="PaidColumn" FieldName="IsPaid" Header="Bezahlt"></dxg:GridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView NavigationStyle="Cell" Loaded="gridView_Loaded" x:Name="gridView" BestFitMode="Smart"
|
||||
<dxg:GridColumn ReadOnly="False" AllowEditing="True" FieldName="PartialPayment" Header="Teilzahlung" MinWidth="200" >
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings TextWrapping="Wrap" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView NavigationStyle="Cell" Loaded="gridView_Loaded" x:Name="gridView" BestFitMode="Smart"
|
||||
AllowBestFit="True" ShowGroupPanel="False" ScrollingMode="Smart" SnapsToDevicePixels="True"
|
||||
CellValueChanging="gridView_CellValueChanged"
|
||||
CustomRowAppearance="TableView_OnCustomRowAppearance"
|
||||
CellValueChanging="gridView_CellValueChanging" CellValueChanged="gridView_CellValueChanged" CustomRowAppearance="TableView_OnCustomRowAppearance"
|
||||
Margin="3,22,3,3" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
|
||||
<Grid Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,2,5,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<WrapPanel>
|
||||
<Grid Grid.Row="1" Grid.ColumnSpan="4" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,2,5,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Label FontSize="14" Foreground="{StaticResource GridPrintMenuLightBrush}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10 0 0 0" Content="{Binding FilterResultAmountSum, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}Summe aller Rechnungen: {0:c}'}" />
|
||||
<Label FontSize="14" Foreground="{StaticResource GridPrintMenuLightBrush}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0 0 0 0" Content=" | " />
|
||||
<Label FontSize="14" x:Name="lblAmoutNotPaid" Foreground="{StaticResource GridPrintMenuLightBrush}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0 0 0 0" Content="{Binding FilterResultAmountNotPaidSum, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}Summe der noch offenen Rechnungen: {0:c}'}" />
|
||||
</WrapPanel>
|
||||
<TextBlock Grid.Column="1" x:Name="textblock_link" VerticalAlignment="Bottom" Margin="5,0,5,3" HorizontalAlignment="Right" FontSize="14">
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Column="1" x:Name="textblock_link_pdfexport" VerticalAlignment="Center" Margin="5,0,5,0" FontSize="14">
|
||||
<Hyperlink x:Name="linkPdfExport" TargetName="newWindow" Foreground="{StaticResource GridPrintMenuLightBrush}" RequestNavigate="linkPdfExport_RequestNavigate">
|
||||
<Run Text="Drucken" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
<TextBlock Grid.Column="2" x:Name="textblock_link" VerticalAlignment="Center" Margin="5,0,5,0" FontSize="14">
|
||||
<Hyperlink x:Name="linkExcelExport" TargetName="newWindow" Foreground="{StaticResource GridPrintMenuLightBrush}" RequestNavigate="linkExcelExport_RequestNavigate">
|
||||
<Run Text="Excel Export" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</TextBlock>
|
||||
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal">
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_checkAllLeistungen" Click="button_checkAll_Click"
|
||||
@@ -119,13 +134,28 @@
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_uncheckAllLeistungen" Click="button_uncheckAll_Click"
|
||||
HorizontalAlignment="Left">Alle abwählen</Button>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" Grid.Column="1" Grid.ColumnSpan="3" >
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_aufklappenAllLeistungen" Click="button_printInvoices_Click"
|
||||
HorizontalAlignment="Left">Ausgewählte Rechnungen drucken</Button>
|
||||
|
||||
HorizontalAlignment="Left">Ausgewählte drucken</Button>
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_reviewAllLeistungen" Click="button_reviewInvoices_Click"
|
||||
HorizontalAlignment="Left" ToolTip="Ausgewählte Rechnungen auf geprüft setzen">Geprüft setzen</Button>
|
||||
<Button Margin="10,3,0,0"
|
||||
Name="button_sentAllLeistungen" Click="button_sentInvoices_Click"
|
||||
HorizontalAlignment="Left" Height="Auto" ToolTip="Ausgewählte Rechnungen auf versendet setzen">Versendet setzen</Button>
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_exportAllLeistungen" Click="button_exportedInvoices_Click"
|
||||
HorizontalAlignment="Left" ToolTip="Ausgewählte Rechnungen auf exportiert setzen">Exportiert setzen</Button>
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_paidAllLeistungen" Click="button_paidInvoices_Click"
|
||||
HorizontalAlignment="Left" ToolTip="Ausgewählte Rechnungen auf bezahlt setzen">Bezahlt setzen</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
</Grid>
|
||||
|
||||
</localView:BeWoView>
|
||||
@@ -17,7 +17,7 @@ using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
using BS.Shared.Translation;
|
||||
using DevExpress.Xpf.Editors;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using Microsoft.Win32;
|
||||
@@ -46,6 +46,7 @@ namespace BeWo.View.Detail.Accounting
|
||||
this.ViewModel = vm;
|
||||
this.DownloadLinkEngine = new DownloadLinkEngine();
|
||||
this.linkExcelExport.NavigateUri = this.DownloadLinkEngine.GenerateNewExcelLink();
|
||||
this.linkPdfExport.NavigateUri = new Uri("http://www.ownsoft.de");
|
||||
|
||||
this.gridView.ShownEditor += this.gridView_ShownEditor;
|
||||
//this.gridView.HiddenEditor += new EditorEventHandler(gridView_HiddenEditor);
|
||||
@@ -156,16 +157,6 @@ namespace BeWo.View.Detail.Accounting
|
||||
});
|
||||
}
|
||||
|
||||
private void SaveIsPaidChange(InvoiceBaseVM vm, bool isPaid)
|
||||
{
|
||||
if (!mIgnoreCheckChanges)
|
||||
{
|
||||
vm.IsPaid = isPaid;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.SetInvoicePaid(new[] { vm.CommitToDataContract() }.ToList(), vm.IsPaid), cb => vm.DataContract.InvoiceBaseVersion = cb[0], false);
|
||||
}
|
||||
}
|
||||
|
||||
private void YearMonthFilter_FilterSpanChanged(object sender, EventArgs<DateTimeSpan> e)
|
||||
{
|
||||
mIgnoreCheckChanges = true;
|
||||
@@ -176,8 +167,13 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void btn_delete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
mIgnoreCheckChanges = true;
|
||||
var vm = this.datagrid_invoices.GetCurrentValue<InvoiceBaseVM>();
|
||||
if (vm.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
mIgnoreCheckChanges = true;
|
||||
|
||||
if (MessageBox.Show("Sind Sie sicher, dass Sie die gewählte Rechnung löschen möchten?", "Rechnung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
{
|
||||
@@ -216,7 +212,11 @@ namespace BeWo.View.Detail.Accounting
|
||||
private void btn_edit_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = this.datagrid_invoices.GetCurrentValue<InvoiceBaseVM>();
|
||||
|
||||
if (vm.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
switch (vm.DataContract.Type)
|
||||
{
|
||||
case InvoiceType.CustomerEquity:
|
||||
@@ -261,7 +261,6 @@ namespace BeWo.View.Detail.Accounting
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void gridView_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.gridView.BestFitColumns();
|
||||
@@ -292,37 +291,68 @@ namespace BeWo.View.Detail.Accounting
|
||||
// //}
|
||||
//}
|
||||
|
||||
|
||||
private void linkExcelExport_RequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
//var list = ViewModel.VMList;
|
||||
|
||||
var list = ViewModel.VMList;
|
||||
var oids = list.Select(r => r.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
|
||||
var lHeaderCaptions = new List<string>();
|
||||
var lContent = new List<List<string>>();
|
||||
|
||||
lHeaderCaptions.Add("Art der Rechnung");
|
||||
lHeaderCaptions.Add("Klient/in");
|
||||
lHeaderCaptions.Add("Zeitraum");
|
||||
lHeaderCaptions.Add("Nummer");
|
||||
lHeaderCaptions.Add("Datum");
|
||||
lHeaderCaptions.Add(BS.Shared.Translation.Translator.Translate("EmpfängerSingular"));
|
||||
lHeaderCaptions.Add("Betrag");
|
||||
lHeaderCaptions.Add("Bemerkung");
|
||||
lHeaderCaptions.Add("Bezahlt");
|
||||
|
||||
if (list != null)
|
||||
ServiceFacade.DoReportServiceAsync(s => s.CreateInvoiceOverviewReport(oids), r =>
|
||||
{
|
||||
lContent.AddRange(list.Select(vm => new List<string>
|
||||
{
|
||||
vm.TypeString, vm.CustomerName, vm.AccountingPeriodString, vm.InvoiceNumber, vm.InvoiceDate.Value.ToShortDateString(), vm.RecipientString, string.Format("{0:0.00}", vm.TotalAmount), vm.Notice, vm.IsPaid ? "Ja" : ""
|
||||
}));
|
||||
}
|
||||
var path = BeWoApp.GetAndCreateUserAppDataPath() + "\\Rechnungen.xls";
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
BeWoUtils.ShowReportWindow(r, Translator.Translate("Rechnungen"));
|
||||
});
|
||||
});
|
||||
|
||||
var sf = new SaveFileDialog { FileName = Path.GetFileName(path), Filter = "Microsoft Excel 97-2003-Arbeitsblatt|*.xls|Alle Dateien|*.*" };
|
||||
if (sf.ShowDialog() != true)
|
||||
return;
|
||||
ServiceFacade.DoDownloadServiceSync(s => BeWoUtils.WriteExcelFile(s.PrepareExcelFile(DownloadLinkEngine.ExcelFileId, lHeaderCaptions, lContent), sf.FileName));
|
||||
// var lHeaderCaptions = new List<string>();
|
||||
// var lContent = new List<List<string>>();
|
||||
|
||||
// lHeaderCaptions.Add("Art der Rechnung");
|
||||
// lHeaderCaptions.Add("Klient/in");
|
||||
// lHeaderCaptions.Add("Zeitraum");
|
||||
// lHeaderCaptions.Add("Nummer");
|
||||
// lHeaderCaptions.Add("Datum");
|
||||
// lHeaderCaptions.Add(BS.Shared.Translation.Translator.Translate("EmpfängerSingular"));
|
||||
// lHeaderCaptions.Add("Betrag");
|
||||
// lHeaderCaptions.Add("Bemerkung");
|
||||
// lHeaderCaptions.Add("Geprüft");
|
||||
// lHeaderCaptions.Add("Versendet");
|
||||
// lHeaderCaptions.Add("Exportiert");
|
||||
// lHeaderCaptions.Add("Bezahlt");
|
||||
// lHeaderCaptions.Add("Teilzahlung");
|
||||
|
||||
// if (list != null)
|
||||
// {
|
||||
// lContent.AddRange(list.Select(vm => new List<string>
|
||||
// {
|
||||
// vm.TypeString, vm.CustomerName, vm.AccountingPeriodString, vm.InvoiceNumber, vm.InvoiceDate.Value.ToShortDateString(),
|
||||
// vm.RecipientString, string.Format("{0:0.00}", vm.TotalAmount), vm.Notice, vm.IsReviewed ? "Ja" : "", vm.IsSent ? "Ja" : "",
|
||||
// vm.IsExported ? "Ja" : "", vm.IsPaid ? "Ja" : "", vm.PartialPayment
|
||||
// }));
|
||||
// }
|
||||
//var path = BeWoApp.GetAndCreateUserAppDataPath() + "\\Rechnungen.xls";
|
||||
|
||||
// var sf = new SaveFileDialog { FileName = Path.GetFileName(path), Filter = "Microsoft Excel 97-2003-Arbeitsblatt|*.xls|Alle Dateien|*.*" };
|
||||
// if (sf.ShowDialog() != true)
|
||||
// return;
|
||||
// ServiceFacade.DoDownloadServiceSync(s => BeWoUtils.WriteExcelFile(s.PrepareExcelFile(DownloadLinkEngine.ExcelFileId, lHeaderCaptions, lContent), sf.FileName));
|
||||
}
|
||||
|
||||
private void linkPdfExport_RequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
var list = ViewModel.VMList;
|
||||
var oids = list.Select(r => r.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
|
||||
ServiceFacade.DoReportServiceAsync(s => s.CreateInvoiceOverviewReport(oids), r =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
BeWoUtils.ShowReportWindow(r, Translator.Translate("Rechnungen"));
|
||||
});
|
||||
});
|
||||
//System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo((sender as System.Windows.Documents.Hyperlink).NavigateUri.ToString()));
|
||||
}
|
||||
|
||||
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
@@ -346,11 +376,61 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void gridView_CellValueChanged(object sender, CellValueChangedEventArgs e)
|
||||
{
|
||||
if (e.Column != null && e.Column.FieldName == "IsPaid")
|
||||
var vm = e.Row as InvoiceBaseVM;
|
||||
|
||||
if (vm != null)
|
||||
{
|
||||
if (e.Value is bool b && e.Row is InvoiceBaseVM vm)
|
||||
if (e.Column != null && e.Column.FieldName == "PartialPayment")
|
||||
{
|
||||
SaveIsPaidChange(vm, b);
|
||||
var dc = vm.CommitToDataContract();
|
||||
dc.PartialPayment = (String)e.Value;
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.UpdateInvoiceBases(new[] { dc }.ToList()), cb => vm.DataContract.InvoiceBaseVersion = cb[0], false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void gridView_CellValueChanging(object sender, CellValueChangedEventArgs e)
|
||||
{
|
||||
var vm = e.Row as InvoiceBaseVM;
|
||||
|
||||
if (vm != null)
|
||||
{
|
||||
bool save = false;
|
||||
var dc = vm.CommitToDataContract();
|
||||
|
||||
if (e.Column != null && e.Column.FieldName == "IsPaid")
|
||||
{
|
||||
dc.IsPaid = (bool)e.Value;
|
||||
save = true;
|
||||
}
|
||||
|
||||
if (e.Column != null && e.Column.FieldName == "IsReviewed")
|
||||
{
|
||||
dc.IsReviewed = (bool)e.Value;
|
||||
save = true;
|
||||
}
|
||||
|
||||
if (e.Column != null && e.Column.FieldName == "IsSent")
|
||||
{
|
||||
if (vm.IsSent && (bool)e.Value == false && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
RefreshInvoiceList();
|
||||
return;
|
||||
}
|
||||
dc.IsSent = (bool)e.Value;
|
||||
save = true;
|
||||
}
|
||||
|
||||
if (e.Column != null && e.Column.FieldName == "IsExported")
|
||||
{
|
||||
dc.IsExported = (bool)e.Value;
|
||||
save = true;
|
||||
}
|
||||
|
||||
if (save)
|
||||
{
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.UpdateInvoiceBases(new[] { dc }.ToList()), cb => vm.DataContract.InvoiceBaseVersion = cb[0], false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -409,6 +489,123 @@ namespace BeWo.View.Detail.Accounting
|
||||
PrintInvoices(list);
|
||||
}
|
||||
|
||||
private void button_reviewInvoices_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
var items = datagrid_invoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
if (items != null)
|
||||
{
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
var vm = datagrid_invoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm != null && vm.IsChecked)
|
||||
{
|
||||
list.Add(vm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ChangeAllInvoices(list, "reviewed");
|
||||
}
|
||||
|
||||
private void button_sentInvoices_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
var items = datagrid_invoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
if (items != null)
|
||||
{
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
var vm = datagrid_invoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm != null && vm.IsChecked)
|
||||
{
|
||||
list.Add(vm);
|
||||
}
|
||||
}
|
||||
}
|
||||
ChangeAllInvoices(list, "sent");
|
||||
}
|
||||
|
||||
private void button_exportedInvoices_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
var items = datagrid_invoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
if (items != null)
|
||||
{
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
var vm = datagrid_invoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm != null && vm.IsChecked)
|
||||
{
|
||||
list.Add(vm);
|
||||
}
|
||||
}
|
||||
}
|
||||
ChangeAllInvoices(list, "export");
|
||||
}
|
||||
|
||||
private void button_paidInvoices_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
var items = datagrid_invoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
if (items != null)
|
||||
{
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
var vm = datagrid_invoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm != null && vm.IsChecked)
|
||||
{
|
||||
list.Add(vm);
|
||||
}
|
||||
}
|
||||
}
|
||||
ChangeAllInvoices(list, "paid");
|
||||
}
|
||||
|
||||
private void ChangeAllInvoices(List<InvoiceBaseVM> list, String function)
|
||||
{
|
||||
var dcList = new List<InvoiceBaseDC>();
|
||||
foreach (var item in list)
|
||||
{
|
||||
if (function == "reviewed" && !item.IsReviewed)
|
||||
{
|
||||
item.IsReviewed = true;
|
||||
var dc = item.CommitToDataContract();
|
||||
dc.IsReviewed = true;
|
||||
dcList.Add(dc);
|
||||
}
|
||||
else if (function == "sent" && !item.IsSent)
|
||||
{
|
||||
item.IsSent = true;
|
||||
var dc = item.CommitToDataContract();
|
||||
dc.IsSent = true;
|
||||
dcList.Add(dc);
|
||||
}
|
||||
else if (function == "export" && !item.IsExported)
|
||||
{
|
||||
item.IsExported = true;
|
||||
var dc = item.CommitToDataContract();
|
||||
dc.IsExported = true;
|
||||
dcList.Add(dc);
|
||||
}
|
||||
else if (function == "paid" && !item.IsPaid)
|
||||
{
|
||||
item.IsPaid = true;
|
||||
var dc = item.CommitToDataContract();
|
||||
dc.IsPaid = true;
|
||||
dcList.Add(dc);
|
||||
}
|
||||
}
|
||||
if (dcList.Count > 0)
|
||||
{
|
||||
ServiceFacade.DoAccountingServiceSync(s => s.UpdateInvoiceBases(dcList));
|
||||
foreach (var item in dcList)
|
||||
{
|
||||
item.InvoiceBaseVersion++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrintInvoices(List<InvoiceBaseVM> list)
|
||||
{
|
||||
var oidList = list.Select(i => i.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
@@ -440,6 +637,33 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
private void linkPdfExport_RequestNavigate_1(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
var list = ViewModel.VMList;
|
||||
var oids = list.Select(r => r.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
|
||||
ServiceFacade.DoReportServiceAsync(s => s.CreateInvoiceOverviewReport(oids), r =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
BeWoUtils.ShowReportWindow(r, Translator.Translate("Rechnungen"));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private void textblock_link_pdfexport_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
||||
{
|
||||
var list = ViewModel.VMList;
|
||||
var oids = list.Select(r => r.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
|
||||
ServiceFacade.DoReportServiceAsync(s => s.CreateInvoiceOverviewReport(oids), r =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
BeWoUtils.ShowReportWindow(r, Translator.Translate("Rechnungen"));
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Translation;
|
||||
|
||||
namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
@@ -210,13 +211,17 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void btnDelete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<ServiceInvoiceVM>(sender);
|
||||
if (vm.InvoiceBase.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Sind Sie sicher, dass Sie den gewählten Eintrag löschen möchten?",
|
||||
"Spitzabrechnung löschen",
|
||||
MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<ServiceInvoiceVM>(sender);
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.DeactivateServiceInvoices(new[]
|
||||
{
|
||||
vm.DataContract
|
||||
@@ -227,7 +232,13 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void btnEdit_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this._EditView.ViewModel = BeWoWpfUtils.GetTag<ServiceInvoiceVM>(sender);
|
||||
var vm = BeWoWpfUtils.GetTag<ServiceInvoiceVM>(sender);
|
||||
if (vm.InvoiceBase.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
this._EditView.ViewModel = vm;
|
||||
this.MainControl.ShowControlAsModalPopup(this._EditView);
|
||||
}
|
||||
|
||||
|
||||
@@ -105,9 +105,14 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
private void bt_delete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<SettlementVM>(sender);
|
||||
if (vm.DataContract.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show("Sind Sie sicher, dass Sie den gewählten Eintrag löschen möchten?", "Spitzabrechnung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<SettlementVM>(sender);
|
||||
this.ViewModel.VMList.Remove(vm);
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.DeactivateSettlementInvoice(new[] { vm.DataContract }.ToList()));
|
||||
}
|
||||
@@ -116,6 +121,11 @@ namespace BeWo.View.Detail.Accounting
|
||||
private void bt_edit_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var vm = BeWoWpfUtils.GetTag<SettlementVM>(sender);
|
||||
if (vm.DataContract.IsSent && !BeWoApp.LoggedOnUser.HasRight(UserRightType.FinanzenRechnungenNachVersandBearbeiten))
|
||||
{
|
||||
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Recht Rechnungen nach Versand zu bearbeiten. Bitte wenden Sie sich an den Administrator!"), "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
||||
return;
|
||||
}
|
||||
if (vm != null)
|
||||
{
|
||||
if (ShowOldEditView(vm))
|
||||
|
||||
@@ -43,8 +43,16 @@ namespace BeWo.ViewModel
|
||||
|
||||
public static string PropertyName_DiffErstellen = "DiffErstellen";
|
||||
|
||||
public static string PropertyName_IsReviewed = "IsReviewed";
|
||||
|
||||
public static string PropertyName_IsSent = "IsSent";
|
||||
|
||||
public static string PropertyName_IsExported = "IsExported";
|
||||
|
||||
public static string PropertyName_IsPaid = "IsPaid";
|
||||
|
||||
public static string PropertyName_PartialPayment = "PartialPayment";
|
||||
|
||||
public static string PropertyName_Notice = "Notice";
|
||||
|
||||
public static string PropertyName_RecipientCostBearerOid = "RecipientCostBearerOid";
|
||||
@@ -130,8 +138,17 @@ namespace BeWo.ViewModel
|
||||
private string _InvoiceNumber = string.Empty;
|
||||
|
||||
private string _InvoiceTitle = string.Empty;
|
||||
|
||||
internal bool _IsReviewed;
|
||||
|
||||
internal bool _IsSent;
|
||||
|
||||
internal bool _IsExported;
|
||||
|
||||
internal bool _IsPaid;
|
||||
|
||||
private string _PartialPayment = string.Empty;
|
||||
|
||||
internal bool _NeuErstellen;
|
||||
|
||||
internal bool _DiffErstellen;
|
||||
@@ -461,6 +478,52 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsReviewed
|
||||
{
|
||||
get { return _IsReviewed; }
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_IsReviewed, value))
|
||||
{
|
||||
_IsReviewed = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.IsReviewed, value), PropertyName_IsReviewed);
|
||||
FirePropertyChanged(PropertyName_IsReviewed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsSent
|
||||
{
|
||||
get { return _IsSent; }
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_IsSent, value))
|
||||
{
|
||||
_IsSent = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.IsSent, value), PropertyName_IsSent);
|
||||
FirePropertyChanged(PropertyName_IsSent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsExported
|
||||
{
|
||||
get { return _IsExported; }
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_IsExported, value))
|
||||
{
|
||||
_IsExported = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.IsExported, value), PropertyName_IsExported);
|
||||
FirePropertyChanged(PropertyName_IsExported);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public bool IsPaid
|
||||
{
|
||||
get { return _IsPaid; }
|
||||
@@ -491,6 +554,21 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public string PartialPayment
|
||||
{
|
||||
get { return _PartialPayment; }
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_PartialPayment, value))
|
||||
{
|
||||
_PartialPayment = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.PartialPayment, value), PropertyName_PartialPayment);
|
||||
FirePropertyChanged(PropertyName_PartialPayment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public long? RecipientCostBearerOid
|
||||
{
|
||||
get { return _RecipientCostBearerOid; }
|
||||
@@ -905,7 +983,11 @@ namespace BeWo.ViewModel
|
||||
_RecipientAddressLine1 = pDataContract.RecipientAddressLine1;
|
||||
_RecipientTown = pDataContract.RecipientTown;
|
||||
_RecipientPostCode = pDataContract.RecipientPostCode;
|
||||
_IsReviewed = pDataContract.IsReviewed;
|
||||
_IsSent = pDataContract.IsSent;
|
||||
_IsExported = pDataContract.IsExported;
|
||||
_IsPaid = pDataContract.IsPaid;
|
||||
_PartialPayment = pDataContract.PartialPayment;
|
||||
_NeuErstellen = pDataContract.NeuErstellen;
|
||||
_DiffErstellen = pDataContract.DiffErstellen;
|
||||
_InvoiceTitle = pDataContract.InvoiceTitle;
|
||||
@@ -965,7 +1047,11 @@ namespace BeWo.ViewModel
|
||||
pDataContract.RecipientStreet = _RecipientStreet;
|
||||
pDataContract.RecipientAddressLine1 = _RecipientAddressLine1;
|
||||
pDataContract.RecipientTown = _RecipientTown;
|
||||
pDataContract.IsReviewed = _IsReviewed;
|
||||
pDataContract.IsSent = _IsSent;
|
||||
pDataContract.IsExported = _IsExported;
|
||||
pDataContract.IsPaid = _IsPaid;
|
||||
pDataContract.PartialPayment = _PartialPayment;
|
||||
pDataContract.NeuErstellen = _NeuErstellen;
|
||||
pDataContract.DiffErstellen = _DiffErstellen;
|
||||
pDataContract.InvoiceTitle = _InvoiceTitle;
|
||||
|
||||
@@ -103,8 +103,16 @@ namespace BeWo.Data.Entities
|
||||
|
||||
private string _InvoiceId;
|
||||
|
||||
private bool _IsReviewed;
|
||||
|
||||
private bool _IsSent;
|
||||
|
||||
private bool _IsExported;
|
||||
|
||||
private bool _IsPaid;
|
||||
|
||||
private string _PartialPayment;
|
||||
|
||||
private bool _IsPrinted;
|
||||
|
||||
private Address _RecipientAddress;
|
||||
@@ -396,6 +404,54 @@ namespace BeWo.Data.Entities
|
||||
|
||||
public virtual string InvoiceTypeText { get; set; }
|
||||
|
||||
public virtual bool IsReviewed
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._IsReviewed;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._IsReviewed, value))
|
||||
{
|
||||
this._IsReviewed = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsSent
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._IsSent;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._IsSent, value))
|
||||
{
|
||||
this._IsSent = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsExported
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._IsExported;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._IsExported, value))
|
||||
{
|
||||
this._IsExported = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsPaid
|
||||
{
|
||||
get
|
||||
@@ -412,6 +468,22 @@ namespace BeWo.Data.Entities
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string PartialPayment
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._PartialPayment;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._PartialPayment, value))
|
||||
{
|
||||
this._PartialPayment = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsPrinted
|
||||
{
|
||||
get
|
||||
|
||||
@@ -24,7 +24,11 @@
|
||||
<property column="InvoiceTitle" type="String" name="InvoiceTitle" />
|
||||
<property column="InvoiceId" type="String" name="InvoiceId" />
|
||||
<property column="InvoiceTypeText" type="String" name="InvoiceTypeText" />
|
||||
<property column="IsReviewed" type="Boolean" name="IsReviewed" />
|
||||
<property column="IsSent" type="Boolean" name="IsSent" />
|
||||
<property column="IsExported" type="Boolean" name="IsExported" />
|
||||
<property column="IsPaid" type="Boolean" name="IsPaid" />
|
||||
<property column="PartialPayment" type="String" name="PartialPayment" />
|
||||
<property column="RecipientCostBearerOid" type="Int64" name="RecipientCostBearerOid" />
|
||||
<property column="RecipientCustomerOid" type="Int64" name="RecipientCustomerOid" />
|
||||
<property column="RecipientDivision" type="String" name="RecipientDivision" />
|
||||
|
||||
@@ -151,10 +151,11 @@ namespace BeWo.Data.Security
|
||||
{
|
||||
return "3.19";
|
||||
}
|
||||
|
||||
if (r == UserRightType.FinanzenRechnungenNachVersandBearbeiten)
|
||||
{
|
||||
return "3.21";
|
||||
}
|
||||
return "1.0";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
5
Model/Changes_2024-06-12_Sent_InvoiceBase.txt
Normal file
5
Model/Changes_2024-06-12_Sent_InvoiceBase.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE `invoicebase`
|
||||
ADD COLUMN `IsReviewed` tinyint NULL DEFAULT 0 AFTER `Type`,
|
||||
ADD COLUMN `IsSent` tinyint NULL DEFAULT 0 AFTER `IsReviewed`,
|
||||
ADD COLUMN `IsExported` tinyint NULL DEFAULT 0 AFTER `IsSent`,
|
||||
ADD COLUMN `PartialPayment` VARCHAR(512) NULL DEFAULT NULL AFTER `IsPaid`;
|
||||
@@ -1040,6 +1040,10 @@ CREATE TABLE `bargeldtransaktionshistory` (
|
||||
|
||||
ALTER TABLE bargeldtransaktion ADD COLUMN SignatureOid BIGINT;
|
||||
|
||||
ALTER TABLE `goalrating` CHANGE COLUMN `Notice` `Notice` MEDIUMTEXT NULL DEFAULT NULL;
|
||||
|
||||
|
||||
ALTER TABLE `goalrating` CHANGE COLUMN `Notice` `Notice` MEDIUMTEXT NULL DEFAULT NULL;
|
||||
ALTER TABLE `invoicebase`
|
||||
ADD COLUMN `IsReviewed` tinyint NULL DEFAULT 0 AFTER `Type`,
|
||||
ADD COLUMN `IsSent` tinyint NULL DEFAULT 0 AFTER `IsReviewed`,
|
||||
ADD COLUMN `IsExported` tinyint NULL DEFAULT 0 AFTER `IsSent`,
|
||||
ADD COLUMN `PartialPayment` VARCHAR(512) NULL DEFAULT NULL AFTER `IsPaid`;
|
||||
@@ -117,6 +117,8 @@ namespace BeWo.Report
|
||||
|
||||
public abstract XtraReport CreateEmployeeListReport(List<long> oids);
|
||||
|
||||
public abstract XtraReport CreateInvoiceOverviewReport(List<long> oids);
|
||||
|
||||
public abstract XtraReport CreateTeamListReport(List<long> oids);
|
||||
|
||||
public abstract XtraReport CreateUserListReport(List<long> oids);
|
||||
|
||||
@@ -1616,6 +1616,53 @@ namespace BeWo.Report
|
||||
return queryReport as XtraReport;
|
||||
}
|
||||
|
||||
public override XtraReport CreateInvoiceOverviewReport(List<long> oids)
|
||||
{
|
||||
var queryReport = FindReportImp<QueryRO>(null, "Invoices");
|
||||
var invoices = MapperFactory.InvoiceBaseDC_InvoiceBase.MapToNewDCs(DAOFactory.GenericDAO.LoadByIDs<InvoiceBase>(oids));
|
||||
|
||||
|
||||
DataTable table = new DataTable();
|
||||
string[] spalten = new string[] { "Art der Rechnung", "Klient/in", "Zeitraum", "Nummer", "Datum", "Empfänger", "Betrag", "Bemerkung",
|
||||
"Geprüft", "Versendet", "Exportiert", "Bezahlt", "Teilzahlung"};
|
||||
|
||||
for (int i = 0; i < spalten.Length; i++)
|
||||
table.Columns.Add(spalten[i], typeof(string));
|
||||
|
||||
for (int i = 0; i < invoices.Count; i++)
|
||||
{
|
||||
DataRow row = table.NewRow();
|
||||
InvoiceBaseDC invoice = invoices[i];
|
||||
row[0] = invoice.InvoiceTypeText;
|
||||
row[1] = invoice.CustomerLastName + ", " + invoice.CustomerFirstName;
|
||||
row[2] = invoice.PeriodString;
|
||||
row[3] = invoice.InvoiceNumber;
|
||||
row[4] = string.Format("{0:dd.MM.yyyy}", invoice.InvoiceDate);
|
||||
string recipient = invoice.RecipientOrganisation;
|
||||
if (!string.IsNullOrEmpty(recipient) && (!string.IsNullOrEmpty(invoice.RecipientPersonFirstName) || !string.IsNullOrEmpty(invoice.RecipientPersonLastName)))
|
||||
{
|
||||
recipient += " - ";
|
||||
}
|
||||
recipient += invoice.RecipientPersonFirstName + " " + invoice.RecipientPersonLastName;
|
||||
|
||||
row[5] = recipient;
|
||||
row[6] = string.Format("{0:0.00}", invoice.TotalAmount);
|
||||
row[7] = invoice.Notice;
|
||||
row[8] = invoice.IsReviewed ? "Ja" : "";
|
||||
row[9] = invoice.IsSent ? "Ja" : "";
|
||||
row[10] = invoice.IsExported ? "Ja" : "";
|
||||
row[11] = invoice.IsPaid ? "Ja" : "";
|
||||
row[12] = invoice.PartialPayment;
|
||||
table.Rows.Add(row);
|
||||
}
|
||||
|
||||
var queryReportObject = QueryRO.Create(new Query() { Title = "Rechnungen" }, table);
|
||||
queryReportObject.Name = "Rechnungen";
|
||||
queryReport.SetReportDataSource(queryReportObject);
|
||||
|
||||
return queryReport as XtraReport;
|
||||
}
|
||||
|
||||
public override XtraReport CreateTeamListReport(List<long> oids)
|
||||
{
|
||||
var queryReport = FindReportImp<QueryRO>(null, "Teams");
|
||||
@@ -1714,15 +1761,15 @@ namespace BeWo.Report
|
||||
return queryReport as XtraReport;
|
||||
}
|
||||
|
||||
public XtraReport CreateServiceRecordChangesReport(DateTime start, DateTime end)
|
||||
{
|
||||
var ro = ServiceRecordChangesAfterInvoiceDateRO.Create(start, end);
|
||||
//public XtraReport CreateServiceRecordChangesReport(DateTime start, DateTime end)
|
||||
//{
|
||||
// var ro = ServiceRecordChangesAfterInvoiceDateRO.Create(start, end);
|
||||
|
||||
var report = FindReportImp<ServiceRecordChangesAfterInvoiceDateRO>();
|
||||
report.SetReportDataSource(ro);
|
||||
// var report = FindReportImp<ServiceRecordChangesAfterInvoiceDateRO>();
|
||||
// report.SetReportDataSource(ro);
|
||||
|
||||
return report as XtraReport;
|
||||
// return report as XtraReport;
|
||||
|
||||
}
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -100,6 +100,10 @@ namespace ReportingService.ServiceContracts
|
||||
[OperationContract]
|
||||
MemoryStream CreateEmployeeListReport(List<long> oids);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
MemoryStream CreateInvoiceOverviewReport(List<long> oids);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
MemoryStream CreateWohnheimListReport(List<long> oids);
|
||||
|
||||
@@ -292,6 +292,12 @@ namespace ReportingService.ServiceImplementations
|
||||
return CreateReportStream(reportCreator.CreateEmployeeListReport(oids));
|
||||
}
|
||||
|
||||
public MemoryStream CreateInvoiceOverviewReport(List<long> oids)
|
||||
{
|
||||
var reportCreator = GetReportCreator();
|
||||
return CreateReportStream(reportCreator.CreateInvoiceOverviewReport(oids));
|
||||
}
|
||||
|
||||
public MemoryStream CreateWohnheimListReport(List<long> oids)
|
||||
{
|
||||
var reportCreator = GetReportCreator();
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
costBearer.CustomerReferenceNumber = iCBRel.CustomerReferenceNumber;
|
||||
costBearer.IsCalculatingWithFactor = iCBRel.CostBearer.IsCalculatingWithFactor;
|
||||
|
||||
pDataContract.IsApproved = iCBRel.ApprovedStartDate.HasValue && iCBRel.ApprovedEndDate.HasValue;
|
||||
pDataContract.IsApproved = iCBRel.ApprovedStartDate.HasValue;
|
||||
pDataContract.CostBearerList.Add(costBearer);
|
||||
pDataContract.CostBearerOids2CostBearerRelOids.Add(costBearer.Oid.Value, iCBRel.Oid.Value);
|
||||
pDataContract.CustomerReferenceNumbers.Add(iCBRel.CustomerReferenceNumber);
|
||||
|
||||
@@ -30,7 +30,11 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pDataContract.RecipientDivision = pEntity.RecipientDivision;
|
||||
pDataContract.RecipientCustomerOid = pEntity.RecipientCustomerOid;
|
||||
pDataContract.RecipientCostBearerOid = pEntity.RecipientCostBearerOid;
|
||||
pDataContract.IsReviewed = pEntity.IsReviewed;
|
||||
pDataContract.IsSent = pEntity.IsSent;
|
||||
pDataContract.IsExported = pEntity.IsExported;
|
||||
pDataContract.IsPaid = pEntity.IsPaid;
|
||||
pDataContract.PartialPayment = pEntity.PartialPayment;
|
||||
pDataContract.InvoiceTitle = pEntity.InvoiceTitle;
|
||||
pDataContract.InvoiceNumber = pEntity.InvoiceNumber;
|
||||
pDataContract.InvoiceDate = pEntity.InvoiceDate;
|
||||
@@ -162,7 +166,11 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pEntity.RecipientDivision = pDataContract.RecipientDivision;
|
||||
pEntity.RecipientCustomerOid = pDataContract.RecipientCustomerOid;
|
||||
pEntity.RecipientCostBearerOid = pDataContract.RecipientCostBearerOid;
|
||||
pEntity.IsReviewed = pDataContract.IsReviewed;
|
||||
pEntity.IsSent = pDataContract.IsSent;
|
||||
pEntity.IsExported = pDataContract.IsExported;
|
||||
pEntity.IsPaid = pDataContract.IsPaid;
|
||||
pEntity.PartialPayment = pDataContract.PartialPayment;
|
||||
pEntity.InvoiceTitle = pDataContract.InvoiceTitle;
|
||||
pEntity.InvoiceNumber = pDataContract.InvoiceNumber;
|
||||
pEntity.InvoiceDate = pDataContract.InvoiceDate;
|
||||
|
||||
@@ -75,8 +75,16 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
public string InvoiceNumber { get; set; }
|
||||
|
||||
public bool IsReviewed { get; set; }
|
||||
|
||||
public bool IsSent { get; set; }
|
||||
|
||||
public bool IsExported { get; set; }
|
||||
|
||||
public bool IsPaid { get; set; }
|
||||
|
||||
public string PartialPayment { get; set; }
|
||||
|
||||
public string Notice { get; set; }
|
||||
|
||||
public decimal? RateFactor { get; set; }
|
||||
|
||||
@@ -78,6 +78,10 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pDataContract.InvoiceBaseVersion = pEntity.InvoiceBase.Version;
|
||||
pDataContract.SupportConceptOid = pEntity.InvoiceBase.SupportConceptOid;
|
||||
pDataContract.IsPaid = pEntity.InvoiceBase.IsPaid;
|
||||
pDataContract.IsSent = pEntity.InvoiceBase.IsSent;
|
||||
pDataContract.IsReviewed = pEntity.InvoiceBase.IsReviewed;
|
||||
pDataContract.IsExported = pEntity.InvoiceBase.IsExported;
|
||||
pDataContract.PartialPayment = pEntity.InvoiceBase.PartialPayment;
|
||||
|
||||
if (pEntity.InvoiceBase.CostBearer2SupportConcept != null)
|
||||
pDataContract.CostBearer2SupportConceptOid = pEntity.InvoiceBase.CostBearer2SupportConcept.Oid;
|
||||
@@ -212,6 +216,10 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pEntity.InvoiceBase.SenderFirstName = pDataContract.SenderContactPersonFirstName;
|
||||
pEntity.InvoiceBase.SenderDivision = pDataContract.SenderContactPersonDivision;
|
||||
pEntity.InvoiceBase.IsPaid = pDataContract.IsPaid;
|
||||
pEntity.InvoiceBase.IsSent = pDataContract.IsSent;
|
||||
pEntity.InvoiceBase.IsReviewed = pDataContract.IsReviewed;
|
||||
pEntity.InvoiceBase.IsExported = pDataContract.IsExported;
|
||||
pEntity.InvoiceBase.PartialPayment = pDataContract.PartialPayment;
|
||||
pEntity.InvoiceBase.RecipientPersonFirstName = pDataContract.RecipientContactPerson;
|
||||
|
||||
// pDataContract.RecipientrePersonLastName = pEntity.InvoiceBase.RecipientPersonLastName;
|
||||
@@ -315,6 +323,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
target.InvoiceDate = source.InvoiceDate;
|
||||
target.InvoiceNumber = source.InvoiceNumber;
|
||||
target.IsPaid = source.IsPaid;
|
||||
target.IsSent = source.IsSent;
|
||||
target.MaxAmountAllowed = source.MaxAmountAllowed;
|
||||
target.Notice = source.Notice;
|
||||
target.RateFactor = source.RateFactor;
|
||||
@@ -386,6 +395,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
target.InvoiceDate = source.InvoiceDate;
|
||||
target.InvoiceNumber = source.InvoiceNumber;
|
||||
target.IsPaid = source.IsPaid;
|
||||
target.IsSent = source.IsSent;
|
||||
target.MaxAmountAllowed = source.MaxAmountAllowed;
|
||||
target.Notice = source.Notice;
|
||||
target.RateFactor = source.RateFactor;
|
||||
|
||||
@@ -65,11 +65,11 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pEntity.ApprovedEndDate = pDataContract.ApprovedEndDate;
|
||||
pEntity.CustomerReferenceNumber = pDataContract.CustomerReferenceNumber;
|
||||
pEntity.AuswahlBezeichnung = pDataContract.AuswahlBezeichnung;
|
||||
if (!Utils.IsAnyNull(pDataContract.ApprovedStartDate, pDataContract.ApprovedEndDate))
|
||||
if (pDataContract.ApprovedStartDate.HasValue)
|
||||
{
|
||||
pEntity.Status = CostBearer2SupportConceptStatus.Approved;
|
||||
}
|
||||
else if (!Utils.IsAnyNull(pDataContract.RequestedStartDate, pDataContract.RequestedEndDate))
|
||||
else if (pDataContract.RequestedStartDate.HasValue)
|
||||
{
|
||||
pEntity.Status = CostBearer2SupportConceptStatus.Requested;
|
||||
}
|
||||
|
||||
@@ -579,7 +579,10 @@ namespace BS.Shared
|
||||
Signature_ProvideMonthlySignatureByProxy = 60002,
|
||||
|
||||
Customer_ViewAbsenceTimes = 22222,
|
||||
Customer_ViewBetreuung = 22223
|
||||
Customer_ViewBetreuung = 22223,
|
||||
|
||||
FinanzenRechnungenNachVersandBearbeiten = 22224
|
||||
|
||||
}
|
||||
|
||||
public enum PersonType
|
||||
|
||||
@@ -732,6 +732,9 @@ namespace BS.Shared.Core
|
||||
},
|
||||
{
|
||||
UserRightType.Customer_ViewBetreuung, Translator.Translate($"{Translator.Translate("Klienten")} Betreuung ansehen")
|
||||
},
|
||||
{
|
||||
UserRightType.FinanzenRechnungenNachVersandBearbeiten, Translator.Translate($"Finanzen->Rechnungen nach Versand bearbeiten")
|
||||
}
|
||||
};
|
||||
#endregion
|
||||
|
||||
@@ -447,7 +447,7 @@ namespace BS.Shared.DataContracts.Compact
|
||||
cbstr.Append(cb.Organisation.Name);
|
||||
}
|
||||
|
||||
if (cb.ApprovedStartDate == null || cb.ApprovedEndDate == null)
|
||||
if (cb.ApprovedStartDate == null)
|
||||
{
|
||||
cbstr.Append(" nicht bewilligt!");
|
||||
}
|
||||
|
||||
@@ -58,9 +58,21 @@ namespace BS.Shared.DataContracts
|
||||
[DataMember]
|
||||
public string InvoiceTitle { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsReviewed { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsSent { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsExported { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsPaid { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string PartialPayment { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool NeuErstellen { get; set; }
|
||||
|
||||
|
||||
@@ -111,9 +111,21 @@ namespace BS.Shared.DataContracts
|
||||
[DataMember]
|
||||
public string InvoiceNumber { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsReviewed { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsSent { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsExported { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public bool IsPaid { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string PartialPayment { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Notice { get; set; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user