Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo

This commit is contained in:
2024-06-13 10:42:39 +02:00
35 changed files with 3211 additions and 2636 deletions

View File

@@ -39,16 +39,16 @@
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>true</UpdateRequired>
<MapFileExtensions>false</MapFileExtensions>
<InstallUrl>https://app.ownsoft.de/test/</InstallUrl>
<InstallUrl>https://app.ownsoft.de/</InstallUrl>
<TargetCulture>de-DE</TargetCulture>
<ProductName>BeWoPlaner</ProductName>
<PublisherName>ownSoft GmbH</PublisherName>
<MinimumRequiredVersion>2.0.1.238</MinimumRequiredVersion>
<MinimumRequiredVersion>2.0.1.240</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>239</ApplicationRevision>
<ApplicationRevision>241</ApplicationRevision>
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
@@ -2672,392 +2672,392 @@
<ItemGroup>
<PublishFile Include="Blacklight.Wpf.Controls">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Charts.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Data.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Data.v23.2.Linq">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Office.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.PivotGrid.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Printing.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.RichEdit.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.RichEdit.v23.2.Export">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Sparkline.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Utils.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Accordion.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Charts.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Core.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Docking.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Grid.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Grid.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Layout.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Mvvm.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Printing.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Printing.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Ribbon.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Scheduler.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Themes.LightGray.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Themes.Office2007Black.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Themes.Office2010Black.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Themes.Office2013.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Themes.Office2016White.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraBars.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraCharts.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraEditors.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraNavBar.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraPivotGrid.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraPrinting.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraReports.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraScheduler.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraScheduler.v23.2.Core">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraScheduler.v23.2.Reporting">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.XtraTreeList.v23.2">
<Visible>False</Visible>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
</ItemGroup>

View File

@@ -2,7 +2,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\|D:\Projects\beyondsoft\BeWoPlaner\Publish45\</PublishUrlHistory>
<InstallUrlHistory>https://app.ownsoft.de/test/|https://app.ownsoft.de/|https://app.ownsoft.de/dev/|http://app.ownsoft.de/dev/|http://app.beyondsoft.de/dev/</InstallUrlHistory>
<InstallUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/test/|https://app.ownsoft.de/dev/|http://app.ownsoft.de/dev/|http://app.beyondsoft.de/dev/</InstallUrlHistory>
<SupportUrlHistory />
<UpdateUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/bewoplaner.application/</UpdateUrlHistory>
<BootstrapperUrlHistory />

View File

@@ -50,7 +50,7 @@ namespace BeWo
public static MainControl MainControl;
public static string ShortVersion = "3.20";
public static string Version = "Version 3.20 (GKV Test)";
public static string Version = "Version 3.20.2";
public static int RenderTier = 0;

View File

@@ -690,7 +690,7 @@ namespace BeWo
if (!isNet45OrNewer)
{
if (!CheckStatusMessage(String.Format(GETNETMESSAGE_URL, profile.Tenant, BeWoApp.Version)))
if (!CheckStatusMessage(String.Format(GETNETMESSAGE_URL, profile.Tenant, BeWoApp.ShortVersion)))
{
return;
}

View File

@@ -83,7 +83,7 @@ namespace BeWo
#if DEBUG
ButtonScheduling.Visibility = Visibility.Visible;
#else
ButtonScheduling.Visibility = Visibility.Hidden;
ButtonScheduling.Visibility = Visibility.Collapsed;
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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>

View File

@@ -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,11 +291,9 @@ namespace BeWo.View.Detail.Accounting
// //}
//}
private void linkExcelExport_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
var list = ViewModel.VMList;
var lHeaderCaptions = new List<string>();
var lContent = new List<List<string>>();
@@ -308,16 +305,22 @@ namespace BeWo.View.Detail.Accounting
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.IsPaid ? "Ja" : ""
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 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)
@@ -325,6 +328,20 @@ namespace BeWo.View.Detail.Accounting
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"));
});
});
}
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
BeWoUtils.NavigateToReportUri(((Hyperlink)sender).NavigateUri.ToString(), "Druckvorschau");
@@ -346,11 +363,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 +476,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();
@@ -441,5 +625,4 @@ namespace BeWo.View.Detail.Accounting
return list;
}
}
}

View File

@@ -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);
}

View File

@@ -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))

View File

@@ -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;

View File

@@ -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

View File

@@ -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" />

View File

@@ -151,10 +151,11 @@ namespace BeWo.Data.Security
{
return "3.19";
}
if (r == UserRightType.FinanzenRechnungenNachVersandBearbeiten)
{
return "3.21";
}
return "1.0";
}
}
}

View 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`;

View File

@@ -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`;

View File

@@ -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);

View File

@@ -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;
}
//}
}
}

View File

@@ -110,11 +110,23 @@ namespace SHKServiceSBD
}
foreach (var e2c in empDetail.Employee.Employee2CustomerList)
{
if ((!e2c.StartDate.HasValue || e2c.StartDate.Value < berichtsEnde) && (!e2c.EndDate.HasValue || e2c.EndDate.Value >= berichtsAnfang))
var start = ersterVertragsStart;
var ende = letzerVertragsEnde;
if (e2c.StartDate.HasValue && e2c.StartDate > start)
{
start = e2c.StartDate.Value;
}
if (e2c.EndDate.HasValue && e2c.EndDate < ende)
{
ende = e2c.EndDate.Value;
}
if (start <= ende)
{
var kind = e2c.Customer;
BerechneSollZeitenDictionary(kind.Arbeitszeiten, empDetail, ersterVertragsStart, letzerVertragsEnde);
BerechneSollZeitenDictionary(kind.Arbeitszeiten, empDetail, start, ende);
}
}
@@ -167,6 +179,10 @@ namespace SHKServiceSBD
DateTime dt = start;
while (dt <= ende)
{
if (dt == new DateTime(2024, 2, 19))
{
int test = 0;
}
String key = String.Format("{0}_{1:yyyyMMdd}", empDetail.Employee.Oid, dt);
if (!_SollStundenProTagDict.ContainsKey(key))
{
@@ -550,6 +566,11 @@ namespace SHKServiceSBD
return base.GetFeiertagsFaktor(start);
}
protected override bool StundenDurchAbwesenheitenDuerfenNegativSein()
{
return true;
}
public FerienDC GetFerienTag(DateTime start)
{
return vacationService.GetFerien(start, vacationService.Bundesland);

View File

@@ -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);

View File

@@ -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();

View File

@@ -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);

View File

@@ -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;

View File

@@ -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; }

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -111,7 +111,10 @@ namespace BeWo.Service.Import.AvisImport
this.Klient = klientenZeile.Replace("GP:", "").Replace(Aktenzeichen, "").Replace("Ihr Aktenzeichen", "").Replace("lhr Aktenzeichen", "").Replace("Sachbearbeiter", "").Replace(":", "").Trim();
this.Sachbearbeiter = sbZeile.Replace("GP:", "").Replace(Aktenzeichen, "").Replace("Ihr Aktenzeichen", "").Replace("lhr Aktenzeichen", "").Replace("Sachbearbeiter", "").Replace(":", "").Trim();
if (sbZeile != null)
{
this.Sachbearbeiter = sbZeile.Replace("GP:", "").Replace(Aktenzeichen, "").Replace("Ihr Aktenzeichen", "").Replace("lhr Aktenzeichen", "").Replace("Sachbearbeiter", "").Replace(":", "").Trim();
}
if (this.Klient.IndexOf("\r\n") > 0)
{
this.Klient = this.Klient.Substring(0, this.Klient.IndexOf("\r\n")).Trim();

View File

@@ -84,7 +84,5 @@ namespace BeWo.Service.Import.AvisImport
return bereiche;
}
}
}

View File

@@ -579,7 +579,10 @@ namespace BS.Shared
Signature_ProvideMonthlySignatureByProxy = 60002,
Customer_ViewAbsenceTimes = 22222,
Customer_ViewBetreuung = 22223
Customer_ViewBetreuung = 22223,
FinanzenRechnungenNachVersandBearbeiten = 22224
}
public enum PersonType

View File

@@ -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

View File

@@ -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!");
}

View File

@@ -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; }

View File

@@ -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; }