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

This commit is contained in:
Christian
2024-11-15 10:38:53 +01:00
58 changed files with 1350 additions and 1657 deletions

View File

@@ -962,6 +962,8 @@
<DependentUpon>BSLogoControl.xaml</DependentUpon>
</Compile>
<Compile Include="Converter\AnonymizationRight2VisibilityConverter.cs" />
<Compile Include="Converter\ValidationToTooltipConverter.cs" />
<Compile Include="Converter\ValidationToBrushConverter.cs" />
<Compile Include="Converter\BooleanOrVisibilityMultiConverter.cs" />
<Compile Include="Converter\BooleanAndVisibilityMultiConverter.cs" />
<Compile Include="Converter\BoolNullCheckConverter.cs" />
@@ -995,6 +997,7 @@
<Compile Include="Converter\StringLengthVisibilityMultiConverter.cs" />
<Compile Include="Converter\TooltipTextConverter.cs" />
<Compile Include="Converter\UserPermission2BoolConverter.cs" />
<Compile Include="Converter\ValidationConverter.cs" />
<Compile Include="Converter\ValueConverterGroup.cs" />
<Compile Include="Core\AutoLockUI.cs" />
<Compile Include="Core\BeWoUtils.cs" />

View File

@@ -9,7 +9,7 @@
<ErrorReportUrlHistory />
<FallbackCulture>de-DE</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ProjectFiles</ProjectView>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>

View File

@@ -83,6 +83,16 @@
<conv:EnumTranslationConverter x:Key="EnumTranslationConverter" />
<conv:TooltipTextConverter x:Key="TooltipTextConverter" />
<conv:ValidationConverter x:Key="ValidationConverter" />
<conv:ValueConverterGroup x:Key="Validation2BrushConverter">
<conv:ValidationConverter />
<conv:ValidationToBrushConverter />
</conv:ValueConverterGroup>
<conv:ValueConverterGroup x:Key="Validation2TooltipConverter">
<conv:ValidationConverter />
<conv:ValidationToTooltipConverter />
</conv:ValueConverterGroup>
<conv:UserPermission2BoolConverter x:Key="UserPermission2BoolConverter" />
<conv:ValueConverterGroup x:Key="UserPermission2ReverseBoolConverter">
<conv:UserPermission2BoolConverter />

View File

@@ -13,7 +13,12 @@ namespace BeWo.Converter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is GkvAbrechnungVM gkv)
if (value is bool val_bool)
{
return val_bool ? null : parameter;
}
if (value is GkvAbrechnungVM gkv)
{
if (parameter is string s)
{
@@ -29,6 +34,12 @@ namespace BeWo.Converter
return invoice.IsGkvValidError;
}
if (value is MandatorVM mandator)
{
return mandator.CanEditIKLeistungserbringerTooltip;
}
return "xxx";
}

View File

@@ -0,0 +1,32 @@
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
namespace BeWo.Converter
{
public class ValidationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is string val_str && parameter is ValidationType val_type)
{
return Validator.IsValid(val_type, val_str);
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
namespace BeWo.Converter
{
public class ValidationToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is null)
{
return Brushes.Black;
}
if(value is bool val_bool)
{
return val_bool ? Brushes.Black : Brushes.Red;
}
return Brushes.Blue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,36 @@
using BS.Shared;
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
namespace BeWo.Converter
{
public class ValidationToTooltipConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is null)
{
return null;
}
if (value is bool val_bool && parameter is ValidationType val_type)
{
return val_bool ? null : Validator.InvalidTooltipTxt(val_type);
}
return "xxx";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -122,8 +122,8 @@ namespace BeWo
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureDakota,
AutoLogin = true,
SelectView = UIContext.Finance,
AutoLogin = false,
//SelectView = UIContext.Finance,
SelectIndex = 8,
Username = "m1",
Password = "bewobewo",

View File

@@ -63,8 +63,6 @@ namespace BeWo.View.Detail.Accounting
private void RefreshGkvAbrechnungenList()
{
var test = datagrid_gkvAbrechnungen;
ServiceFacade.DoAccountingServiceAsync(s => s.GetFilteredGkvAbrechnungen(null), UpdateGkvAbrechnungList);
}
@@ -80,6 +78,8 @@ namespace BeWo.View.Detail.Accounting
datagrid_gkvAbrechnungen.Visibility = Visibility.Visible;
UpdateDataGridFilter();
gridView.BestFitColumn(ColumnButtons);
});
}

View File

@@ -14,6 +14,7 @@
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:r="clr-namespace:BeWo.Security"
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:val="clr-namespace:BeWo.Validation"
@@ -954,10 +955,28 @@
Grid.Row="5"
Grid.Column="2"
Content="{markup:Translate Versichertennummer}" />
<TextBox
Grid.Row="5"
Grid.Column="3"
Height="23"
Margin="3"
Foreground="{Binding Path=InsuranceNumber, Converter={StaticResource Validation2BrushConverter}, ConverterParameter={x:Static shared:ValidationType.CustomerVersichertennummer}}"
Text="{Binding Path=InsuranceNumber, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=InsuranceNumber, Converter={StaticResource Validation2TooltipConverter}, ConverterParameter={x:Static shared:ValidationType.CustomerVersichertennummer}}"
ToolTipService.ShowOnDisabled="True" />
<Label
Grid.Row="6"
Grid.Column="2"
Content="{markup:Translate Versichertenstatus}" />
<TextBox
Grid.Row="6"
Grid.Column="3"
Height="23"
Margin="3"
Foreground="{Binding Path=VersichertenStatus, Converter={StaticResource Validation2BrushConverter}, ConverterParameter={x:Static shared:ValidationType.CustomerVersichertenstatus}}"
Text="{Binding Path=VersichertenStatus, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=VersichertenStatus, Converter={StaticResource Validation2TooltipConverter}, ConverterParameter={x:Static shared:ValidationType.CustomerVersichertenstatus}}"
ToolTipService.ShowOnDisabled="True" />
<Label
x:Name="lblArchiviert"
Grid.Row="7"
@@ -1163,18 +1182,6 @@
Height="23"
Margin="3"
Text="{Binding Path=HealthInsurance, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="5"
Grid.Column="3"
Height="23"
Margin="3"
Text="{Binding Path=InsuranceNumber, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="6"
Grid.Column="3"
Height="23"
Margin="3"
Text="{Binding Path=VersichertenStatus, UpdateSourceTrigger=PropertyChanged}" />
<CheckBox
x:Name="chkArchiviert"
Grid.Row="7"

View File

@@ -56,7 +56,12 @@
</Button>
</StackPanel>
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<CheckBox x:Name="checkbox_size" IsChecked="{Binding Path=IsLarge, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Visibility="Hidden">Groß</CheckBox>
<CheckBox
x:Name="checkbox_size"
IsChecked="{Binding Path=IsLarge, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="Hidden">
Groß
</CheckBox>
</StackPanel>
<TabControl
x:Name="tabcontrol_NotizenKategorien"

View File

@@ -54,7 +54,11 @@
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=IKLeistungserbringer, UpdateSourceTrigger=PropertyChanged}" />
IsEnabled="{Binding Path=CanEditIKLeistungserbringer}"
Text="{Binding Path=IKLeistungserbringer, UpdateSourceTrigger=PropertyChanged}"
TextChanged="TextBox_TextChanged"
ToolTip="{Binding Path=CanEditIKLeistungserbringerTooltip}"
ToolTipService.ShowOnDisabled="True" />
<GroupBox
Grid.Row="2"

View File

@@ -152,5 +152,10 @@ namespace BeWo.View.Detail
}
}
}
private void TextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
}
}
}

View File

@@ -165,432 +165,432 @@
Header="Details"
IsSelected="True">
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<GroupBox Header="Eigenschaften" Style="{StaticResource ObjectEditGroupBox}">
<Grid x:Name="grid_details">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MaxWidth="300" />
<ColumnDefinition Width="*" MaxWidth="300" />
<ColumnDefinition Width="*" MaxWidth="300" />
</Grid.ColumnDefinitions>
<Grid Grid.ColumnSpan="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Header="Eigenschaften" Style="{StaticResource ObjectEditGroupBox}">
<Grid x:Name="grid_details">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Content="Name" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="{val:ValidationBinding Path=Name,
UpdateSourceTrigger=PropertyChanged}" />
<Label
Grid.Row="1"
Grid.Column="0"
Content="{markup:Translate OrganisationAbteilung}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="{val:ValidationBinding Path=Name2,
UpdateSourceTrigger=PropertyChanged}" />
<Label
x:Name="lblDebitorNumber"
Grid.Row="2"
Content="{markup:Translate Kundennummer}" />
<TextBox
x:Name="txtDebitorNumber"
Grid.Row="2"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
Text="{val:ValidationBinding Path=DebitorNumber,
UpdateSourceTrigger=PropertyChanged}" />
<Label
x:Name="lblGeschaeftspartnernummer"
Grid.Row="3"
Content="{markup:Translate Geschäftspartnernummer}" />
<TextBox
x:Name="txtGeschaeftspartnernummer"
Grid.Row="3"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
Text="{val:ValidationBinding Path=BusinessPartnerId,
UpdateSourceTrigger=PropertyChanged}" />
<Label
Grid.Row="4"
Grid.Column="0"
Content="Funktion" />
<uc:NullItemComboBox
x:Name="comboBox_Function"
Grid.Row="4"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
SelectedValue="{Binding Path=Function, Mode=TwoWay}" />
<Label
x:Name="lblArchiviert"
Grid.Row="5"
Grid.Column="0"
Content="Archiviert" />
<CheckBox
x:Name="chkArchiviert"
Grid.Row="5"
Grid.Column="1"
Height="23"
Margin="10,6,3,0"
VerticalAlignment="Stretch"
IsChecked="{Binding Path=IsArchived, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
<GroupBox
Grid.Row="1"
Grid.Column="0"
Margin="0,8,0,0"
Header="Adresse"
Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="label" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Adresszusatz
</Label>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Strasse
</Label>
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postleitzahl
</Label>
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Ort
</Label>
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postfach
</Label>
<TextBox
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=AddressLine1, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=POBox, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<GroupBox
Grid.Row="1"
Grid.Column="1"
Margin="8,8,0,0"
Header="Rechnungsadresse"
Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="label" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Adresszusatz
</Label>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Strasse
</Label>
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postleitzahl
</Label>
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Ort
</Label>
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postfach
</Label>
<TextBox
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressLine1, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressStreet, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressPostalCode, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressTown, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressPOBox, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<GroupBox
Grid.Row="1"
Grid.Column="2"
Margin="8,8,0,0"
HorizontalAlignment="Stretch"
Header="Kontakt"
Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="label" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Telefon
</Label>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Fax
</Label>
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Mail
</Label>
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Homepage
</Label>
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="{markup:Translate Ansprechpartner}" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=Phone, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=Fax, UpdateSourceTrigger=PropertyChanged}" />
<Button
Grid.Row="2"
Grid.Column="1"
Height="21"
Margin="3"
Click="EMailButton_OnClick"
Content="*"
FontFamily="Wingdings"
IsEnabled="{Binding Path=EMail, Converter={StaticResource ObjectBoolConverter}}" />
<TextBox
Grid.Row="2"
Grid.Column="2"
Height="23"
Margin="3"
Text="{Binding Path=EMail, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=Website, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=ContactPerson, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<GroupBox
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="3"
Width="360"
HorizontalAlignment="Left"
Margin="0,8,0,0"
Header="GKV-Abrechnung"
Style="{StaticResource ObjectEditGroupBox}">
<GroupBox.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\..\Styles\ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</GroupBox.Resources>
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MaxWidth="300" />
<ColumnDefinition Width="*" MaxWidth="300" />
<ColumnDefinition Width="*" MaxWidth="300" />
</Grid.ColumnDefinitions>
<Grid Grid.ColumnSpan="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Content="Name" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="{val:ValidationBinding Path=Name,
UpdateSourceTrigger=PropertyChanged}" />
<Label
Grid.Row="1"
Grid.Column="0"
Content="{markup:Translate OrganisationAbteilung}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="{val:ValidationBinding Path=Name2,
UpdateSourceTrigger=PropertyChanged}" />
<Label
x:Name="lblDebitorNumber"
Grid.Row="2"
Content="{markup:Translate Kundennummer}" />
<TextBox
x:Name="txtDebitorNumber"
Grid.Row="2"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
Text="{val:ValidationBinding Path=DebitorNumber,
UpdateSourceTrigger=PropertyChanged}" />
<Label
x:Name="lblGeschaeftspartnernummer"
Grid.Row="3"
Content="{markup:Translate Geschäftspartnernummer}" />
<TextBox
x:Name="txtGeschaeftspartnernummer"
Grid.Row="3"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
Text="{val:ValidationBinding Path=BusinessPartnerId,
UpdateSourceTrigger=PropertyChanged}" />
<Label
Grid.Row="4"
Grid.Column="0"
Content="Funktion" />
<uc:NullItemComboBox
x:Name="comboBox_Function"
Grid.Row="4"
Grid.Column="1"
Width="300"
Height="23"
Margin="10,3,3,3"
HorizontalAlignment="Left"
SelectedValue="{Binding Path=Function, Mode=TwoWay}" />
<Label
x:Name="lblArchiviert"
Grid.Row="5"
Grid.Column="0"
Content="Archiviert" />
<CheckBox
x:Name="chkArchiviert"
Grid.Row="5"
Grid.Column="1"
Height="23"
Margin="10,6,3,0"
VerticalAlignment="Stretch"
IsChecked="{Binding Path=IsArchived, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
<GroupBox
Grid.Row="1"
Grid.Column="0"
Margin="0,8,0,0"
Header="Adresse"
Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="label" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Adresszusatz
</Label>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Strasse
</Label>
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postleitzahl
</Label>
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Ort
</Label>
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postfach
</Label>
<TextBox
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=AddressLine1, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=POBox, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<GroupBox
Grid.Row="1"
Grid.Column="1"
Margin="8,8,0,0"
Header="Rechnungsadresse"
Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="label" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Adresszusatz
</Label>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Strasse
</Label>
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postleitzahl
</Label>
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Ort
</Label>
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Postfach
</Label>
<TextBox
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressLine1, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressStreet, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressPostalCode, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressTown, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceAddressPOBox, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<GroupBox
Grid.Row="1"
Grid.Column="2"
Margin="8,8,0,0"
HorizontalAlignment="Stretch"
Header="Kontakt"
Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="label" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Telefon
</Label>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Fax
</Label>
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Mail
</Label>
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center">
Homepage
</Label>
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="{markup:Translate Ansprechpartner}" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=Phone, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=Fax, UpdateSourceTrigger=PropertyChanged}" />
<Button
Grid.Row="2"
Grid.Column="1"
Height="21"
Margin="3"
Click="EMailButton_OnClick"
Content="*"
FontFamily="Wingdings"
IsEnabled="{Binding Path=EMail, Converter={StaticResource ObjectBoolConverter}}" />
<TextBox
Grid.Row="2"
Grid.Column="2"
Height="23"
Margin="3"
Text="{Binding Path=EMail, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=Website, UpdateSourceTrigger=PropertyChanged}" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
Text="{Binding Path=ContactPerson, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<GroupBox
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="3"
Width="360"
Margin="0,8,0,0"
HorizontalAlignment="Left"
Header="GKV-Abrechnung"
Style="{StaticResource ObjectEditGroupBox}">
<GroupBox.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\..\Styles\ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</GroupBox.Resources>
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition
Width="*"
MinWidth="50"
MaxWidth="200" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Center">
@@ -602,9 +602,10 @@
HorizontalAlignment="Stretch">
<TextBox
Grid.Row="0"
Grid.Column="1"
Text="{Binding Path=IKKrankenkasse, UpdateSourceTrigger=PropertyChanged}" />
Foreground="{Binding Path=IKKrankenkasse, Converter={StaticResource Validation2BrushConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationIKNumber}}"
Text="{Binding Path=IKKrankenkasse, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=IKKrankenkasse, Converter={StaticResource Validation2TooltipConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationIKNumber}}"
ToolTipService.ShowOnDisabled="True" />
</DockPanel>
<Label
Grid.Row="1"
@@ -613,6 +614,13 @@
ToolTip="Abrechnungscode + Tarifkennzeichen. Zum Beispiel: 6901000">
Leistungserbringergruppe
</Label>
<TextBox
Grid.Row="1"
Grid.Column="1"
Foreground="{Binding Path=Leistungserbringergruppe, Converter={StaticResource Validation2BrushConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationLeistungserbringergruppe}}"
Text="{Binding Path=Leistungserbringergruppe, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=Leistungserbringergruppe, Converter={StaticResource Validation2TooltipConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationLeistungserbringergruppe}}"
ToolTipService.ShowOnDisabled="True" />
<Button
x:Name="btn_ik"
Grid.Row="2"
@@ -623,10 +631,6 @@
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}">
Weitere IK's ermitteln
</Button>
<TextBox
Grid.Row="1"
Grid.Column="1"
Text="{Binding Path=Leistungserbringergruppe, UpdateSourceTrigger=PropertyChanged}" />
<Label
Grid.Row="3"
Grid.Column="0"
@@ -636,7 +640,10 @@
<TextBox
Grid.Row="3"
Grid.Column="1"
Text="{Binding Path=IKKostentrager, UpdateSourceTrigger=PropertyChanged}" />
Foreground="{Binding Path=IKKostentrager, Converter={StaticResource Validation2BrushConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationIKNumber}}"
Text="{Binding Path=IKKostentrager, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=IKKostentrager, Converter={StaticResource Validation2TooltipConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationIKNumber}}"
ToolTipService.ShowOnDisabled="True" />
<Label
Grid.Row="4"
Grid.Column="0"
@@ -646,7 +653,10 @@
<TextBox
Grid.Row="4"
Grid.Column="1"
Text="{Binding Path=IKDatenannahmestelle, UpdateSourceTrigger=PropertyChanged}" />
Foreground="{Binding Path=IKDatenannahmestelle, Converter={StaticResource Validation2BrushConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationIKNumber}}"
Text="{Binding Path=IKDatenannahmestelle, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=IKDatenannahmestelle, Converter={StaticResource Validation2TooltipConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationIKNumber}}"
ToolTipService.ShowOnDisabled="True" />
<Label
Grid.Row="5"
Grid.Column="0"
@@ -658,7 +668,10 @@
<TextBox
Grid.Row="5"
Grid.Column="1"
Foreground="{Binding Path=BezDatenannahmestelle, Converter={StaticResource Validation2BrushConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationBezDatenannahmestelle}}"
Text="{Binding Path=BezDatenannahmestelle, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=BezDatenannahmestelle, Converter={StaticResource Validation2TooltipConverter}, ConverterParameter={x:Static shared:ValidationType.OrganisationBezDatenannahmestelle}}"
ToolTipService.ShowOnDisabled="True"
Visibility="{Binding Converter={StaticResource UserPermission2VisibleConverter}, ConverterParameter={x:Static core:SettingsKeys.AllowGkvAbrechnung}}" />
<Label
Grid.Row="6"

View File

@@ -22,35 +22,35 @@ using DevExpress.Xpf.Grid;
namespace BeWo.View.Detail
{
public partial class OrganisationView
{
private OrganisationVM _ViewModel;
public partial class OrganisationView
{
private OrganisationVM _ViewModel;
private GridControl grid_GroupBoxPersonGrid;
private GridControl grid_GroupBoxPersonGrid;
public OrganisationView(OrganisationVM pOrganisationVM)
{
InitializeComponent();
ViewModel = pOrganisationVM;
public OrganisationView(OrganisationVM pOrganisationVM)
{
InitializeComponent();
ViewModel = pOrganisationVM;
if (pOrganisationVM.VarFields == null || pOrganisationVM.VarFields.VMList.Count == 0)
{
tabitem_varFields.Visibility = Visibility.Collapsed;
}
tabitem_costbearer.Visibility = BeWoApp.LoggedOnUser.HasRight(UserRightType.OrganisationView_AllowEditCostBearer) ? Visibility.Visible : Visibility.Collapsed;
if (BeWoApp.Mandator != null && BeWoApp.Mandator.AllowSbd)
{
tabitem_schuldienst.Visibility = Visibility.Visible;
}
else
{
tabitem_schuldienst.Visibility = Visibility.Collapsed;
}
tabitem_costbearer.Visibility = BeWoApp.LoggedOnUser.HasRight(UserRightType.OrganisationView_AllowEditCostBearer) ? Visibility.Visible : Visibility.Collapsed;
if (BeWoApp.Mandator != null && BeWoApp.Mandator.AllowSbd)
{
tabitem_schuldienst.Visibility = Visibility.Visible;
}
else
{
tabitem_schuldienst.Visibility = Visibility.Collapsed;
}
comboBox_Function.ItemsSource = _ViewModel.Functions;
comboBox_Function.ItemsSource = _ViewModel.Functions;
Combobox_Rolle.ItemsSource = _ViewModel.RoleInOrganisations;
Combobox_Rolle.ItemsSource = _ViewModel.RoleInOrganisations;
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Organisation_AllowArchiving))
{
@@ -66,283 +66,284 @@ namespace BeWo.View.Detail
label_verfahrensstufe.Visibility = Visibility.Collapsed;
radiobuttons_verfahrensstufe.Visibility = Visibility.Collapsed;
#endif
}
}
public event EventHandler<EventArgs<OrganisationVM>> OrganisationSavedOrUpdated;
public event EventHandler<EventArgs<OrganisationVM>> OrganisationSavedOrUpdated;
public override bool IsDirty
{
get
{
return ViewModel != null && ViewModel.IsDirty;
}
}
public override bool IsDirty
{
get
{
return ViewModel != null && ViewModel.IsDirty;
}
}
public override string Title
{
get
{
return "Organisationen";
}
}
public override string Title
{
get
{
return "Organisationen";
}
}
internal OrganisationVM ViewModel
{
get
{
return _ViewModel;
}
internal OrganisationVM ViewModel
{
get
{
return _ViewModel;
}
set
{
_ViewModel = value;
DataContext = value;
set
{
_ViewModel = value;
DataContext = value;
if (tabitem_schuldienst.Content != null)
{
if (tabitem_schuldienst.Content is StundenplanView view)
{
view.ViewModel = value.Arbeitszeiten;
view.RefreshView();
}
}
}
}
if (tabitem_schuldienst.Content != null)
{
if (tabitem_schuldienst.Content is StundenplanView view)
{
view.ViewModel = value.Arbeitszeiten;
view.RefreshView();
}
}
}
}
protected override UserRightType[] GetSaveDemands()
{
return ViewModel.IsNew ? new[] { UserRightType.CreateAll, UserRightType.OrganisationView_Create } : new[] { UserRightType.EditAll, UserRightType.OrganisationView_Edit };
}
protected override UserRightType[] GetSaveDemands()
{
return ViewModel.IsNew ? new[] { UserRightType.CreateAll, UserRightType.OrganisationView_Create } : new[] { UserRightType.EditAll, UserRightType.OrganisationView_Edit };
}
protected override void Save()
{
var lDC = ViewModel.CommitToDataContract();
if (ViewModel.IsNew)
{
IsDoneWithInsertOrUpdate = false;
ServiceFacade.DoCustomerServiceAsync(s => s.InsertNewOrganisation(lDC), ReloadViewModel);
}
else
{
IsDoneWithInsertOrUpdate = false;
ServiceFacade.DoCustomerServiceAsync(s => s.UpdateOrganisation(lDC), ReloadViewModel);
}
protected override void Save()
{
var lDC = ViewModel.CommitToDataContract();
if (ViewModel.IsNew)
{
IsDoneWithInsertOrUpdate = false;
ServiceFacade.DoCustomerServiceAsync(s => s.InsertNewOrganisation(lDC), ReloadViewModel);
}
else
{
IsDoneWithInsertOrUpdate = false;
ServiceFacade.DoCustomerServiceAsync(s => s.UpdateOrganisation(lDC), ReloadViewModel);
}
Cache.GetInstance().ClearSupportConceptTree();
BeWoApp.MainControl.ResetView(UIContext.Organisation);
}
Cache.GetInstance().ClearSupportConceptTree();
BeWoApp.MainControl.ResetView(UIContext.Organisation);
}
private void ReloadViewModel(long pOid)
{
VMFactory.CreateOrganisationVMAsync(
pOid,
cb => this.Dispatch(
delegate
{
if (OrganisationSavedOrUpdated != null)
{
OrganisationSavedOrUpdated(this, new EventArgs<OrganisationVM>(cb));
}
private void ReloadViewModel(long pOid)
{
VMFactory.CreateOrganisationVMAsync(
pOid,
cb => this.Dispatch(
delegate
{
if (OrganisationSavedOrUpdated != null)
{
OrganisationSavedOrUpdated(this, new EventArgs<OrganisationVM>(cb));
}
ViewModel = cb;
ViewModel = cb;
if (ModalEditViewUpdateCallback != null)
{
ModalEditViewUpdateCallback();
}
}));
if (ModalEditViewUpdateCallback != null)
{
ModalEditViewUpdateCallback();
}
}));
IsDoneWithInsertOrUpdate = true;
}
IsDoneWithInsertOrUpdate = true;
}
public void ReloadViewModel()
{
if (ViewModel.DataContract.OrganisationOid.HasValue)
{
ReloadViewModel(ViewModel.DataContract.OrganisationOid.Value);
}
}
public void ReloadViewModel()
{
if (ViewModel.DataContract.OrganisationOid.HasValue)
{
ReloadViewModel(ViewModel.DataContract.OrganisationOid.Value);
}
}
private void bt_addQualificationRate_Click(object sender, RoutedEventArgs e)
{
var stand = ViewModel.CostRatePeriods.GetLatestRate(CostRatePeriodType.HourlyRate);
if (stand != null)
{
ViewModel.CostRatePeriods.NewVM.CostRateValue = stand.CostRateValue;
}
private void bt_addQualificationRate_Click(object sender, RoutedEventArgs e)
{
var stand = ViewModel.CostRatePeriods.GetLatestRate(CostRatePeriodType.HourlyRate);
if (stand != null)
{
ViewModel.CostRatePeriods.NewVM.CostRateValue = stand.CostRateValue;
}
ViewModel.CostRatePeriods.NewVM.ValueListEntry = (ValueListEntryDC) cb_qualifications.SelectedItem;
ViewModel.CostRatePeriods.NewVM.CostRateType = CostRatePeriodType.HourlyRate;
ViewModel.CostRatePeriods.AddNewVMToList();
}
ViewModel.CostRatePeriods.NewVM.ValueListEntry = (ValueListEntryDC)cb_qualifications.SelectedItem;
ViewModel.CostRatePeriods.NewVM.CostRateType = CostRatePeriodType.HourlyRate;
ViewModel.CostRatePeriods.AddNewVMToList();
}
private void button_deleteCostRatePeriodGroup_Click(object sender, RoutedEventArgs e)
{
var valueListEntry = (sender as Button).Tag as ValueListEntryDC;
ViewModel.CostRatePeriods.VMList.RemoveRange(i => i.ValueListEntry != null && i.ValueListEntry.ValueListEntryOid.Equals(valueListEntry.ValueListEntryOid));
}
private void button_deleteCostRatePeriodGroup_Click(object sender, RoutedEventArgs e)
{
var valueListEntry = (sender as Button).Tag as ValueListEntryDC;
ViewModel.CostRatePeriods.VMList.RemoveRange(i => i.ValueListEntry != null && i.ValueListEntry.ValueListEntryOid.Equals(valueListEntry.ValueListEntryOid));
}
private void tabitem_documents_Selected(object sender, RoutedEventArgs e)
{
if (ViewModel.IsNew)
{
MessageBox.Show("Bevor zu einem Datensatz Dokumente hinterlegt werden können, muss dieser gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
private void tabitem_documents_Selected(object sender, RoutedEventArgs e)
{
if (ViewModel.IsNew)
{
MessageBox.Show("Bevor zu einem Datensatz Dokumente hinterlegt werden können, muss dieser gespeichert werden.", "Erst speichern bitte", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
if (tabitem_documents.Content == null)
{
tabitem_documents.Content = new BeWoFileView(TableID.Organisation, ViewModel.DataContract.OrganisationOid.Value);
}
}
if (tabitem_documents.Content == null)
{
tabitem_documents.Content = new BeWoFileView(TableID.Organisation, ViewModel.DataContract.OrganisationOid.Value);
}
}
private void TabItemsPersons_Selected(object sender, RoutedEventArgs e)
{
if (grid_GroupBoxPersonGrid == null)
{
grid_GroupBoxPersonGrid = gridroot.Resources["datagrid_PersonRelation"] as GridControl;
GroupBoxPersonGrid.Content = grid_GroupBoxPersonGrid;
}
}
private void TabItemsPersons_Selected(object sender, RoutedEventArgs e)
{
if (grid_GroupBoxPersonGrid == null)
{
grid_GroupBoxPersonGrid = gridroot.Resources["datagrid_PersonRelation"] as GridControl;
GroupBoxPersonGrid.Content = grid_GroupBoxPersonGrid;
}
}
private void Button_deleteAnsprechpartnerClick(object sender, RoutedEventArgs e)
{
var vm = grid_GroupBoxPersonGrid.GetCurrentValue<OrganisationPersonRelationVM>();
private void Button_deleteAnsprechpartnerClick(object sender, RoutedEventArgs e)
{
var vm = grid_GroupBoxPersonGrid.GetCurrentValue<OrganisationPersonRelationVM>();
if (MessageBox.Show(String.Format("Möchten Sie " + Translator.Translate("den gewählten Ansprechpartner") + " '{0}, {1}' wirklich löschen?", vm.Person.LastName, vm.Person.FirstName) , "Löschen",
MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
ViewModel.PersonRelations.VMList.Remove(vm);
BeWoWpfUtils.RefreshDXGrid(grid_GroupBoxPersonGrid);
if (MessageBox.Show(String.Format("Möchten Sie " + Translator.Translate("den gewählten Ansprechpartner") + " '{0}, {1}' wirklich löschen?", vm.Person.LastName, vm.Person.FirstName), "Löschen",
MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
ViewModel.PersonRelations.VMList.Remove(vm);
BeWoWpfUtils.RefreshDXGrid(grid_GroupBoxPersonGrid);
ServiceFacade.DoOperationsServiceSync(s =>
s.DeletePerson2OrganisationRelation(vm.DataContract.Organisation2PersonOid.Value));
}
}
ServiceFacade.DoOperationsServiceSync(s =>
s.DeletePerson2OrganisationRelation(vm.DataContract.Organisation2PersonOid.Value));
}
}
private void TableView_OnRowDoubleClick(object sender, RowDoubleClickEventArgs e)
{
var grid = (GridControl) gridroot.Resources["datagrid_PersonRelation"];
var selectedPerson = (grid.GetRow(e.HitInfo.RowHandle) as OrganisationPersonRelationVM).Person;
if (selectedPerson == null || !BeWoApp.LoggedOnUser.HasRight(UserRightType.PersonView_View))
return;
private void TableView_OnRowDoubleClick(object sender, RowDoubleClickEventArgs e)
{
var grid = (GridControl)gridroot.Resources["datagrid_PersonRelation"];
var selectedPerson = (grid.GetRow(e.HitInfo.RowHandle) as OrganisationPersonRelationVM).Person;
VMFactory.CreatePersonVMAsync(selectedPerson.PersonOid,
cb => this.Dispatch(
() => BeWoUtils.OpenModalViewWindow<PersonVM, PersonDC, OrganisationView>(cb, this, () => this.Dispatch(
() => BeWoUtils.UpdateAllViews(selectedPerson)), personSavedOrUpdated: (s, args) => this.Dispatch(delegate { }))));
}
if (selectedPerson == null || !BeWoApp.LoggedOnUser.HasRight(UserRightType.PersonView_View))
return;
private void EMailButton_OnClick(object sender, RoutedEventArgs e)
{
BeWoUtils.OpenMailClient(ViewModel.EMail);
}
VMFactory.CreatePersonVMAsync(selectedPerson.PersonOid,
cb => this.Dispatch(
() => BeWoUtils.OpenModalViewWindow<PersonVM, PersonDC, OrganisationView>(cb, this, () => this.Dispatch(
() => BeWoUtils.UpdateAllViews(selectedPerson)), personSavedOrUpdated: (s, args) => this.Dispatch(delegate { }))));
}
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
BeWoUtils.OpenMailClient(e.Uri.ToString());
}
private void EMailButton_OnClick(object sender, RoutedEventArgs e)
{
BeWoUtils.OpenMailClient(ViewModel.EMail);
}
private void CreateNewAnsprechpartner_OnClick(object sender, RoutedEventArgs e)
{
if (ValidationTrigger.Validate(groupbox_newOrganisationAnsprechpartner) && pes != null)
{
var mail = textbox_mail.Text;
var fax = textbox_fax.Text;
var phone = textbox_phone.Text;
var notice = textbox_notice.Text;
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
BeWoUtils.OpenMailClient(e.Uri.ToString());
}
var ldc = ViewModel.CommitToDataContract();
private void CreateNewAnsprechpartner_OnClick(object sender, RoutedEventArgs e)
{
if (ValidationTrigger.Validate(groupbox_newOrganisationAnsprechpartner) && pes != null)
{
if (pes.PersonOid != 0)
{
//ViewModel.PersonRelations.AddNewVMToList();
var mail = textbox_mail.Text;
var fax = textbox_fax.Text;
var phone = textbox_phone.Text;
var notice = textbox_notice.Text;
ServiceFacade.DoOperationsServiceSync(s => s.CreateNewPerson2OrganisationRelation(ldc.OrganisationOid.Value, (ValueListEntryDC) Combobox_Rolle.SelectedItem, pes.PersonOid, mail, fax, phone.ToString(), notice.ToString()));
var ldc = ViewModel.CommitToDataContract();
Save();
}
if (pes.PersonOid != 0)
{
//ViewModel.PersonRelations.AddNewVMToList();
ServiceFacade.DoOperationsServiceSync(s => s.CreateNewPerson2OrganisationRelation(ldc.OrganisationOid.Value, (ValueListEntryDC)Combobox_Rolle.SelectedItem, pes.PersonOid, mail, fax, phone.ToString(), notice.ToString()));
textbox_mail.Text = "";
textbox_fax.Text = "";
textbox_phone.Text = "";
textbox_notice.Text = "";
Save();
}
//ReloadViewModel();
pes = null;
}
}
CompactPersonDC pes = new CompactPersonDC();
private void popupedit_Person_PopUpClick(object sender, RoutedEventArgs e)
{
personsearchview.ItemSelected += personsearchview_EnvironmentPersonSelected;
popup_person.IsOpen = true;
}
private void personsearchview_EnvironmentPersonSelected(object sender, EventArgs<CompactPersonDC> e)
{
popup_person.IsOpen = false;
personsearchview.ItemSelected -= personsearchview_EnvironmentPersonSelected;
pes = e.Data;
popupedit_environmentPersonSearch.Text = pes.FirstName +" "+ pes.LastName;
textbox_mail.Text = "";
textbox_fax.Text = "";
textbox_phone.Text = "";
textbox_notice.Text = "";
popupedit_environmentPersonSearch.Focus();
}
private void tabitem_SchulDienst_Selected(object sender, RoutedEventArgs e)
{
if (GridSBD.Children.Count == 0)
{
var sp = new StundenplanView(ViewModel.Arbeitszeiten, Translator.Translate("OrganisationStundenplan"));
Grid.SetRow(sp, 0);
GridSBD.Children.Add(sp);
//ReloadViewModel();
pes = null;
}
}
var ov = new SbdOrganisationView(ViewModel.Feiertage);
ov.Margin = new Thickness(0, 10, 0, 0);
Grid.SetRow(ov, 1);
GridSBD.Children.Add(ov);
}
}
CompactPersonDC pes = new CompactPersonDC();
private void popupedit_Person_PopUpClick(object sender, RoutedEventArgs e)
{
personsearchview.ItemSelected += personsearchview_EnvironmentPersonSelected;
popup_person.IsOpen = true;
}
private void personsearchview_EnvironmentPersonSelected(object sender, EventArgs<CompactPersonDC> e)
{
popup_person.IsOpen = false;
personsearchview.ItemSelected -= personsearchview_EnvironmentPersonSelected;
pes = e.Data;
popupedit_environmentPersonSearch.Text = pes.FirstName + " " + pes.LastName;
popupedit_environmentPersonSearch.Focus();
}
private void tabitem_SchulDienst_Selected(object sender, RoutedEventArgs e)
{
if (GridSBD.Children.Count == 0)
{
var sp = new StundenplanView(ViewModel.Arbeitszeiten, Translator.Translate("OrganisationStundenplan"));
Grid.SetRow(sp, 0);
GridSBD.Children.Add(sp);
var ov = new SbdOrganisationView(ViewModel.Feiertage);
ov.Margin = new Thickness(0, 10, 0, 0);
Grid.SetRow(ov, 1);
GridSBD.Children.Add(ov);
}
}
private void IKNumber_Button_Click(object sender, RoutedEventArgs e)
{
var req = new GkvAbrechnungGetIKRequestDC();
var req = new GkvAbrechnungGetIKRequestDC();
req.IKKrankenkasse = ViewModel.IKKrankenkasse;
req.Leistungserbringergruppe = ViewModel.Leistungserbringergruppe;
req.IKKrankenkasse = ViewModel.IKKrankenkasse;
req.Leistungserbringergruppe = ViewModel.Leistungserbringergruppe;
ServiceFacade.DoAccountingServiceAsync(x => x.SendGetIKRequest(req), cb => Dispatcher.Invoke(() => IKRequestCallback(req, cb)));
ServiceFacade.DoAccountingServiceAsync(x => x.SendGetIKRequest(req), cb => Dispatcher.Invoke(() => IKRequestCallback(req, cb)));
}
private void IKRequestCallback(GkvAbrechnungGetIKRequestDC req, GkvAbrechnungGetIKResponseDC response)
private void IKRequestCallback(GkvAbrechnungGetIKRequestDC req, GkvAbrechnungGetIKResponseDC response)
{
if(response is null || !response.Success)
if (response is null || !response.Success)
{
MessageBox.Show($"Interner Serverfehler.", "Fehler");
return;
}
MessageBox.Show($"Interner Serverfehler.", "Fehler");
return;
}
if (!response.Gefunden)
{
MessageBox.Show($"Für die Organisation mit dem IK \"{req.IKKrankenkasse}\" und Leistungserbringergruppe \"{req.Leistungserbringergruppe}\" konnte keine Datenannahmestelle gefunden werden. " +
$"Bitte informieren Sie sich bei der Krankenkasse, ob zum elektronischen Datenaustausch " +
$"eine seperate Anmeldung benötigt wird.", "Fehler");
return;
MessageBox.Show($"Für die Organisation mit dem IK \"{req.IKKrankenkasse}\" und Leistungserbringergruppe \"{req.Leistungserbringergruppe}\" \n" +
$"konnte keine Datenannahmestelle gefunden werden. Wenn Sie dennoch den elektronischen Datenaustausch mit der Krankenkasse \n" +
$"durchführen möchten, informieren Sie sich bitte bei der Krankenkasse, ob zum elektronischen Datenaustausch eine seperate \n" +
$"Anmeldung benötigt wird.", "Fehler");
return;
}
ViewModel.BezDatenannahmestelle = response.BezDatenannahmestelle;
ViewModel.IKKostentrager = response.IKKostentrager;
ViewModel.IKDatenannahmestelle = response.IKDatenannahmestelle;
ViewModel.BezDatenannahmestelle = response.BezDatenannahmestelle;
ViewModel.IKKostentrager = response.IKKostentrager;
ViewModel.IKDatenannahmestelle = response.IKDatenannahmestelle;
CommandManager.InvalidateRequerySuggested();
}
CommandManager.InvalidateRequerySuggested();
}
}
}

View File

@@ -932,18 +932,34 @@ namespace BeWo.ViewModel
}
}
}
public string InsuranceNumber
{
get { return _InsuranceNumber; }
set
{
if (!AreDifferent(_InsuranceNumber, value))
return;
_InsuranceNumber = value;
StoreDirtyInformation(AreDifferent(DataContract.InsuranceNumber, value), PropertyName_InsuranceNumber);
FirePropertyChanged(PropertyName_InsuranceNumber);
}
}
public string VersichertenStatus
{
get { return _VersichertenStatus; }
set
{
if (AreDifferent(_VersichertenStatus, value))
{
_VersichertenStatus = value;
StoreDirtyInformation(AreDifferent(DataContract.VersichertenStatus, value), nameof(VersichertenStatus));
FirePropertyChanged(nameof(VersichertenStatus));
}
if (!AreDifferent(_VersichertenStatus, value))
return;
_VersichertenStatus = value;
StoreDirtyInformation(AreDifferent(DataContract.VersichertenStatus, value), nameof(VersichertenStatus));
FirePropertyChanged(nameof(VersichertenStatus));
}
}
public string Environment
@@ -1707,26 +1723,12 @@ namespace BeWo.ViewModel
set
{
if (AreDifferent(_HealthInsurance, value))
{
_HealthInsurance = value;
StoreDirtyInformation(AreDifferent(DataContract.BemerkungenSbd, value), PropertyName_HealthInsurance);
FirePropertyChanged(PropertyName_HealthInsurance);
}
}
}
public string InsuranceNumber
{
get { return _InsuranceNumber; }
if (!AreDifferent(_HealthInsurance, value))
return;
set
{
if (AreDifferent(_InsuranceNumber, value))
{
_InsuranceNumber = value;
StoreDirtyInformation(AreDifferent(DataContract.BemerkungenSbd, value), PropertyName_InsuranceNumber);
FirePropertyChanged(PropertyName_InsuranceNumber);
}
_HealthInsurance = value;
StoreDirtyInformation(AreDifferent(DataContract.HealthInsurance, value), PropertyName_HealthInsurance);
FirePropertyChanged(PropertyName_HealthInsurance);
}
}
public ObservableSortCollection<ValueListEntryDC> EintragKategorien
@@ -2071,13 +2073,13 @@ namespace BeWo.ViewModel
pDataContract.Toilettengang = _Toilettengang;
pDataContract.Aggressiv = _Aggressiv;
pDataContract.Schutzstufe = _Schutzstufe;
pDataContract.Uebernahmeort = _Uebernahmeort;
pDataContract.Verhalten = _Verhalten;
pDataContract.Betreuungsbedarf = _Betreuungsbedarf;
pDataContract.BemerkungenSbd = _BemerkungenSbd;
pDataContract.HealthInsurance = _HealthInsurance;
pDataContract.InsuranceNumber = _InsuranceNumber;
pDataContract.VersichertenStatus = _VersichertenStatus;
pDataContract.Uebernahmeort = _Uebernahmeort;
pDataContract.Verhalten = _Verhalten;
pDataContract.Betreuungsbedarf = _Betreuungsbedarf;
pDataContract.BemerkungenSbd = _BemerkungenSbd;
pDataContract.HealthInsurance = _HealthInsurance;
pDataContract.InsuranceNumber = _InsuranceNumber?.Trim();
pDataContract.VersichertenStatus = _VersichertenStatus?.Trim();
pDataContract.Hygienebelehrung = _Hygienebelehrung;
pDataContract.Migrationshintergrund = _Migrationshintergrund;
pDataContract.SubstitutionNeed = _SubstitutionNeed;

View File

@@ -526,19 +526,24 @@ namespace BeWo.ViewModel
}
}
protected override void InitByDataContract(MandatorDC pDataContract)
public bool CanEditIKLeistungserbringer { get; set; }
public string CanEditIKLeistungserbringerTooltip { get; set; }
protected override void InitByDataContract(MandatorDC pDataContract)
{
this._Name = pDataContract.Name;
this._ClientId = pDataContract.ClientId;
this._BeWoClientType = pDataContract.BeWoClientType;
this._Country = pDataContract.Country;
this._State = pDataContract.State;
this._Town = pDataContract.Town;
this._PostalCode = pDataContract.PostalCode;
this._Street = pDataContract.Street;
this._Settings = pDataContract.Settings;
this._Apikey = pDataContract.Apikey;
this._IKLeistungserbringer = pDataContract.IKLeistungserbringer;
_Name = pDataContract.Name;
_ClientId = pDataContract.ClientId;
_BeWoClientType = pDataContract.BeWoClientType;
_Country = pDataContract.Country;
_State = pDataContract.State;
_Town = pDataContract.Town;
_PostalCode = pDataContract.PostalCode;
_Street = pDataContract.Street;
_Settings = pDataContract.Settings;
_Apikey = pDataContract.Apikey;
_IKLeistungserbringer = pDataContract.IKLeistungserbringer;
CanEditIKLeistungserbringer = pDataContract.CanEditIKLeistungserbringer;
CanEditIKLeistungserbringerTooltip = pDataContract.CanEditIKLeistungserbringerTooltip;
if (_Settings == null)
{

View File

@@ -770,8 +770,8 @@ namespace BeWo.ViewModel
}
public bool IsIKNumberValid
=> DakotaValidator.IsIKNumberValid(IKKrankenkasse)
&& DakotaValidator.IsLeistungserbringergruppeValid(Leistungserbringergruppe);
=> Validator.IsIKNumberValid(IKKrankenkasse)
&& Validator.IsLeistungserbringergruppeValid(Leistungserbringergruppe);
public string IKKrankenkasse
{
@@ -779,7 +779,7 @@ namespace BeWo.ViewModel
set
{
if (!AreDifferent(_IKKrankenkasse, value))
if (!AreDifferent(_IKKrankenkasse, value))
return;
_IKKrankenkasse = value;
@@ -794,45 +794,45 @@ namespace BeWo.ViewModel
get { return this._IKKostentrager; }
set
{
if (this.AreDifferent(this._IKKostentrager, value))
{
this._IKKostentrager = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.IKKostentrager, value), nameof(IKKostentrager));
this.FirePropertyChanged(nameof(IKKostentrager));
}
}
}
{
if (!AreDifferent(_IKKostentrager, value))
return;
_IKKostentrager = value;
StoreDirtyInformation(AreDifferent(DataContract.IKKostentrager, value), nameof(IKKostentrager));
FirePropertyChanged(nameof(IKKostentrager));
}
}
public string IKDatenannahmestelle
{
get { return this._IKDatenannahmestelle; }
set
{
if (this.AreDifferent(this._IKDatenannahmestelle, value))
{
this._IKDatenannahmestelle = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.IKDatenannahmestelle, value), nameof(IKDatenannahmestelle));
this.FirePropertyChanged(nameof(IKDatenannahmestelle));
}
}
}
{
if (!AreDifferent(_IKDatenannahmestelle, value))
return;
_IKDatenannahmestelle = value;
StoreDirtyInformation(AreDifferent(DataContract.IKDatenannahmestelle, value), nameof(IKDatenannahmestelle));
FirePropertyChanged(nameof(IKDatenannahmestelle));
}
}
public string BezDatenannahmestelle
{
get { return this._BezDatenannahmestelle; }
set
{
if (this.AreDifferent(this._BezDatenannahmestelle, value))
{
this._BezDatenannahmestelle = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.BezDatenannahmestelle, value), nameof(BezDatenannahmestelle));
this.FirePropertyChanged(nameof(BezDatenannahmestelle));
}
}
}
{
if (!AreDifferent(_BezDatenannahmestelle, value))
return;
_BezDatenannahmestelle = value;
StoreDirtyInformation(AreDifferent(DataContract.BezDatenannahmestelle, value), nameof(BezDatenannahmestelle));
FirePropertyChanged(nameof(BezDatenannahmestelle));
}
}
public string Leistungserbringergruppe
{
@@ -840,7 +840,7 @@ namespace BeWo.ViewModel
set
{
if (!AreDifferent(_Leistungserbringergruppe, value))
if (!AreDifferent(_Leistungserbringergruppe, value))
return;
_Leistungserbringergruppe = value;
@@ -1060,33 +1060,33 @@ namespace BeWo.ViewModel
protected override OrganisationDC MapToDataContract(OrganisationDC pDataContract, bool doCommit)
{
pDataContract.AccountNumber = this._AccountNumber;
pDataContract.BankCode = this._BankCode;
pDataContract.BankName = this._BankName;
pDataContract.Bic = this._Bic;
pDataContract.IBAN = this._IBAN;
pDataContract.Name = this._Name;
pDataContract.Name2 = this._Name2;
pDataContract.OrganisationNotice = this._Notice;
pDataContract.PostalCode = this._PostalCode;
pDataContract.RelatedPersons = this._PersonRelations.CopyToDCList(doCommit);
pDataContract.Street = this._Street;
pDataContract.Town = this._Town;
pDataContract.AddressLine1 = this._AddressLine1;
pDataContract.InvoiceAddressStreet = this._InvoiceAddressStreet;
pDataContract.InvoiceAddressTown = this._InvoiceAddressTown;
pDataContract.InvoiceAddressPostalCode = this._InvoiceAddressPostalCode;
pDataContract.InvoiceAddressLine1 = this._InvoiceAddressLine1;
pDataContract.IsCalculatingWithFactor = this._IsCalculatingWithFactor;
pDataContract.IsSingleInvoicePerCustomer = this._IsSingleInvoicePerCustomer;
pDataContract.DebitorNumber = this._DebitorNumber;
pDataContract.ActivationType = this._IsArchived ? ActivationTypeId.Archived : ActivationTypeId.Active;
pDataContract.Function = this._Function;
pDataContract.IKDatenannahmestelle = this._IKDatenannahmestelle;
pDataContract.BezDatenannahmestelle = this._BezDatenannahmestelle;
pDataContract.IKKostentrager = this._IKKostentrager;
pDataContract.IKKrankenkasse = this._IKKrankenkasse;
pDataContract.Leistungserbringergruppe = _Leistungserbringergruppe;
pDataContract.AccountNumber = _AccountNumber;
pDataContract.BankCode = _BankCode;
pDataContract.BankName = _BankName;
pDataContract.Bic = _Bic;
pDataContract.IBAN = _IBAN;
pDataContract.Name = _Name;
pDataContract.Name2 = _Name2;
pDataContract.OrganisationNotice = _Notice;
pDataContract.PostalCode = _PostalCode;
pDataContract.RelatedPersons = _PersonRelations.CopyToDCList(doCommit);
pDataContract.Street = _Street;
pDataContract.Town = _Town;
pDataContract.AddressLine1 = _AddressLine1;
pDataContract.InvoiceAddressStreet = _InvoiceAddressStreet;
pDataContract.InvoiceAddressTown = _InvoiceAddressTown;
pDataContract.InvoiceAddressPostalCode = _InvoiceAddressPostalCode;
pDataContract.InvoiceAddressLine1 = _InvoiceAddressLine1;
pDataContract.IsCalculatingWithFactor = _IsCalculatingWithFactor;
pDataContract.IsSingleInvoicePerCustomer = _IsSingleInvoicePerCustomer;
pDataContract.DebitorNumber = _DebitorNumber;
pDataContract.ActivationType = _IsArchived ? ActivationTypeId.Archived : ActivationTypeId.Active;
pDataContract.Function = _Function;
pDataContract.IKDatenannahmestelle = _IKDatenannahmestelle?.Trim();
pDataContract.BezDatenannahmestelle = _BezDatenannahmestelle?.Trim();
pDataContract.IKKostentrager = _IKKostentrager?.Trim();
pDataContract.IKKrankenkasse = _IKKrankenkasse?.Trim();
pDataContract.Leistungserbringergruppe = _Leistungserbringergruppe?.Trim();
pDataContract.BusinessPartnerId = _BusinessPartnerId;
pDataContract.Verfahrensstufe = _Verfahrensstufe;

View File

@@ -96,5 +96,17 @@ namespace Dakota
return input.Trim();
}
}
public static string GetVersichertenstatus(string versichertenStatus)
{
if (versichertenStatus.Length < 5)
return FillFromRight(versichertenStatus, 5, '0');
else if (versichertenStatus.Length == 5)
return versichertenStatus;
else if (versichertenStatus.Length == 7)
return versichertenStatus.Substring(0, 5);
else
throw new ArgumentException($"VersichertenStatus \"{versichertenStatus}\" ist ungültig.");
}
}
}

View File

@@ -229,11 +229,8 @@ namespace Dakota.Logic
{
var info = new InfoAbrechnungsfall();
var versicherten_status = infoParameter.Customer.VersichertenStatus;
var versicherten_status_kurz = versicherten_status.Substring(0, 5);
info.VersichtertenNummer = infoParameter.Customer.InsuranceNumber;
info.Versichertenstatus = versicherten_status_kurz;
info.Versichertenstatus = DakotaUtils.GetVersichertenstatus(infoParameter.Customer.VersichertenStatus);
info.Beleginformation = SchlüsselBeleginformation.KeineBeleguebermittlung;
info.Belegnummer = infoParameter.Customer.CustomerOid.ToString();

View File

@@ -61,7 +61,6 @@ namespace Dakota.Logic
return new Tuple<string, string, string, string>(datenannahmestelle, search.Item2, search.Item3, bez);
}
}
return null;
@@ -84,7 +83,9 @@ namespace Dakota.Logic
if (verweis is object && verweis.IKVerknüpfungspartners != kostentrager)
return GetIKNummern(dict, ikkrankenkasse, abrechnungscode, tarifkennzeichen, verweis.IKVerknüpfungspartners);
var datenannahmestellen = search.SegmentVKG.Where(x => x.ArtDerVerknüpfung == Models.Schlüssels.SchlüsselArtDerVerknüpfung.DatenannahmestelleMitEntschlusselungsbefugnis);
var datenannahmestellen = search.SegmentVKG
.Where(x => x.ArtDerVerknüpfung == Models.Schlüssels.SchlüsselArtDerVerknüpfung.DatenannahmestelleMitEntschlusselungsbefugnis)
.ToList();
// Hat keinen Verweis auf Kostenträger oder Datenannahmestelle gefunden
if (datenannahmestellen is null || !datenannahmestellen.Any())
@@ -93,17 +94,39 @@ namespace Dakota.Logic
if (datenannahmestellen.Count() == 1)
return GetIKNummern(datenannahmestellen.First(), kostentrager, ikkrankenkasse);
var datenannahmestellen_2 = datenannahmestellen.Where(x => x.Abrechnungscode == abrechnungscode);
// Abrechnungscode "69" <=> Sozio
var datenannahmestellen_2 = datenannahmestellen
.Where(x => x.Abrechnungscode == abrechnungscode)
.ToList();
if (datenannahmestellen_2.Count() == 1)
return GetIKNummern(datenannahmestellen_2.First(), kostentrager, ikkrankenkasse);
var datenannahmestellen_3 = datenannahmestellen_2.Where(x => x.Tarifkennzeichen == tarifkennzeichen);
// Tarifkennzeichen
var datenannahmestellen_3 = datenannahmestellen_2
.Where(x => x.Tarifkennzeichen == tarifkennzeichen)
.ToList();
if (datenannahmestellen_3.Count() == 1)
return GetIKNummern(datenannahmestellen_3.First(), kostentrager, ikkrankenkasse);
throw new GkvException($"Keine oder mehrere Datenannahmestellen für {ikkrankenkasse} gefunden.");
// ArtDesÜbermittlungsmediums "1" <=> Datenfernübertragung
var filter_list = datenannahmestellen_3;
if(!filter_list.Any())
filter_list = datenannahmestellen_2;
if (!filter_list.Any())
filter_list = datenannahmestellen;
filter_list = filter_list
.Where(x => x.ArtDesÜbermittlungsmediums == "1")
.ToList();
if (filter_list.Count() == 1)
return GetIKNummern(filter_list.First(), kostentrager, ikkrankenkasse);
return null;
}
private Tuple<string, string, string> GetIKNummern(SegmentKTDVKG vkg, string kostentrager, string ikkrankenkasse)

View File

@@ -56,8 +56,10 @@ namespace Dakota.Logic
// "E" - Echtdaten
// "T" - Testdaten
// Annahme: "E" auch für Erprobungsverfahrenstufe
var verfahrenkennung = verfahrensstufe == 0 ? "TSOL0" : "ESOL0";
// Zusatz: "T" bei Erprobungsverfahrenstufe
var isTest = verfahrensstufe == BS.Shared.GkvVerfahrensstufe.Test || verfahrensstufe == BS.Shared.GkvVerfahrensstufe.Erprobung;
var verfahrenkennung = isTest ? "TSOL0" : "ESOL0";
var logischer_dateiname = DakotaConfig.GetLogischerDateiname(Month).Trim();
var info_nutz_add = DakotaInfoCreator.GetEmptyInfoNutzdatendatei(DakotaConfig.IKAbsender, organisation.IKDatenannahmestelle, (int)verfahrensstufe, logischer_dateiname, datenaustauschreferenz);

View File

@@ -102,11 +102,13 @@ namespace Dakota.Models.Blocke
{
var sumseg = new decimal[3];
Dictionary<int, decimal[]> segments = new Dictionary<int, decimal[]>();
Dictionary<string, decimal[]> segments = new Dictionary<string, decimal[]>();
foreach (var fall in NachrichtSLLA.BlockKlienten)
{
int status = 11;
var versicherten_status = fall.SegmentSLLAINV.Versichertenstatus.GetValue();
var schlüssel_summenstatus = SchlüsselSummenstatus.Parse(versicherten_status);
var status = schlüssel_summenstatus.Value;
if (!segments.ContainsKey(status))
{
@@ -133,7 +135,7 @@ namespace Dakota.Models.Blocke
NachrichtSLGA.SegmentGES00.Gesamtbruttobetrag.SetValue(sumseg[1]);
NachrichtSLGA.SegmentGES00.GesamtbetragZuzahlung.SetValue(sumseg[2]);
foreach (var key in segments.Keys)
foreach (var key in segments.Keys.OrderBy(x => x))
{
var segment = new SegmentSLGAGES();
var array = segments[key];

View File

@@ -35,18 +35,20 @@ namespace Dakota.Models.Nachrichten
public static bool TryParse(string[] rows, string filename, int firstline, out NachrichtKTD nachricht)
{
nachricht = null;
try
{
nachricht = Parse(rows, filename, firstline);
return true;
}
catch(Exception e)
catch(Exception)
{
nachricht = null;
}
return false;
}
return false;
}
public static NachrichtKTD Parse(string[] rows, string filename, int firstline)
{

View File

@@ -62,7 +62,7 @@ namespace Dakota.Models.Nachrichten
SegmentSLLAFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringer);
SegmentSLLAFKT.IKKostenträgers.SetValue(info.IKKostentrager);
SegmentSLLAFKT.IKKrankenkasse.SetValue(info.IKKrankenkasse);
SegmentSLLAFKT.IKRechnungsstellers.SetValue(info.IKAbsender);
//SegmentSLLAFKT.IKRechnungsstellers.SetValue(info.IKAbsender);
foreach (var infofall in info.Abrechnungsfalle.OrderBy(x => x.InfosAbrechnungsposition.Min(y => y.DatumDerLeistungserbringung)))
{

View File

@@ -15,5 +15,21 @@ namespace Dakota.Models.Schlüssels
public static SchlüsselSummenstatus Angehörige => new SchlüsselSummenstatus("31");
public static SchlüsselSummenstatus Rentner => new SchlüsselSummenstatus("51");
public static SchlüsselSummenstatus NichtZugehörigerStatus => new SchlüsselSummenstatus("99");
public static SchlüsselSummenstatus Parse(string versichtenstatus)
{
var status_key = versichtenstatus.FirstOrDefault();
if (status_key == '1')
return Mitglieder;
if (status_key == '3')
return Angehörige;
if (status_key == '5')
return Rentner;
return NichtZugehörigerStatus;
}
}
}

View File

@@ -4,9 +4,14 @@
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings>
<add key="GkvAbrechnungResultFolderPath" value="C:\GkvAbrechnung\Results\" />
<add key="GkvAbrechnungQueueFolderPath" value="C:\GkvAbrechnung\Queue\" />
<add key="GkvAbrechnungFailedFolderPath" value="C:\GkvAbrechnung\Failed\" />
<add key="GkvAbrechnungResultFolderPath" value="C:\GkvAbrechnung\Results\" />
<add key="GkvAbrechnungQueueFolderPath" value="C:\GkvAbrechnung\Data\Queue\" />
<add key="GkvAbrechnungCopyFolderPath" value="C:\GkvAbrechnung\Data\QueueCopy\" />
<add key="GkvAbrechnungFailedFolderPath" value="C:\GkvAbrechnung\Data\QueueFailed\" />
<add key="GkvAbrechnungSuccessFolderPath" value="C:\GkvAbrechnung\Data\QueueSuccess\" />
<add key="GkvAbrechnungCopySave" value="True" />
<add key="GkvAbrechnungFailedSave" value="True" />
<add key="GkvAbrechnungSuccessSave" value="True" />
<add key="DakotaExePath" value="C:\Program Files (x86)\ITSG\dakotale\dakota30.exe" />
<add key="DakotaFolder" value="C:\dakotale\" />
<add key="ProcessWaitForExitMs" value="10000" />

View File

@@ -10,22 +10,44 @@ namespace DakotaSender
{
internal static class Config
{
public static string GkvSecretKey { get; set; } = ConfigurationManager.AppSettings.Get("GkvSecretKey");
public static DirectoryInfo ResultFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungResultFolderPath") ?? @"C:\GkvAbrechnung\Results\");
public static DirectoryInfo QueueFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungQueueFolderPath") ?? @"C:\GkvAbrechnung\Data\Queue\");
public static DirectoryInfo CopyFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungCopyFolderPath") ?? @"C:\GkvAbrechnung\Data\Copy\");
public static DirectoryInfo FailedFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungFailedFolderPath") ?? @"C:\GkvAbrechnung\Data\Failed\");
public static DirectoryInfo SuccessFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungSuccessFolderPath") ?? @"C:\GkvAbrechnung\Data\Success\");
public static bool CopySave { get; }
= bool.Parse(ConfigurationManager.AppSettings.Get("GkvAbrechnungCopySave") ?? bool.TrueString);
public static bool FailedSave { get; }
= bool.Parse(ConfigurationManager.AppSettings.Get("GkvAbrechnungFailedSave") ?? bool.TrueString);
public static bool SuccessSave { get; }
= bool.Parse(ConfigurationManager.AppSettings.Get("GkvAbrechnungSuccessSave") ?? bool.TrueString);
public static FileInfo DakotaExe { get; }
= new FileInfo(ConfigurationManager.AppSettings.Get("DakotaExePath") ?? @"C:\Program Files (x86)\ITSG\dakotale\dakota30.exe");
public static DirectoryInfo DakotaFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("DakotaFolder") ?? @"C:\dakotale\");
public static int ProcessWaitForExitMs { get; }
= int.Parse(ConfigurationManager.AppSettings.Get("ProcessWaitForExitMs") ?? "10000");
public static string LogPath { get; }
= ConfigurationManager.AppSettings.Get("LogPath") ?? @"C:\GkvAbrechnung\Sender\log.txt";
public static int ProcessWaitForExitMs { get; }
= int.Parse(ConfigurationManager.AppSettings.Get("ProcessWaitForExitMs") ?? "10000");
public static FileInfo DakotaExe { get; }
= new FileInfo(ConfigurationManager.AppSettings.Get("DakotaExePath") ?? @"C:\Program Files (x86)\ITSG\dakotale\dakota30.exe");
public static DirectoryInfo DakotaFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("DakotaFolder") ?? @"C:\dakotale\");
public static DirectoryInfo QueueFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungQueueFolderPath") ?? @"C:\GkvAbrechnung\Queue\");
public static DirectoryInfo ResultFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungResultFolderPath") ?? @"C:\GkvAbrechnung\Results\");
public static DirectoryInfo FailedFolder { get; }
= new DirectoryInfo(ConfigurationManager.AppSettings.Get("GkvAbrechnungFailedFolderPath") ?? @"C:\GkvAbrechnung\Failed\");
public static string GkvSecretKey { get; set; } = ConfigurationManager.AppSettings.Get("GkvSecretKey");
public static bool IsDatenannahmestelleValid(string datenannahmestelle)
{

View File

@@ -10,13 +10,36 @@ namespace DakotaSender
{
internal static class FileController
{
internal static void CopyFileToCopy(DakotaSystemFile file)
{
if (!Config.CopySave)
return;
var folder = Config.CopyFolder;
CopyFileTo(file.SourceAuftragsdatei, folder.FullName);
CopyFileTo(file.SourceNutzdatendatei, folder.FullName);
}
internal static void CopyFileToFailed(DakotaSystemFile file)
{
if (!Config.FailedSave)
return;
var failed_folder = Config.FailedFolder;
CopyFileTo(file.SourceAuftragsdatei, failed_folder.FullName);
CopyFileTo(file.SourceNutzdatendatei, failed_folder.FullName);
}
internal static void CopyFileToSuccesss(DakotaSystemFile file)
{
if (!Config.SuccessSave)
return;
var success_folder = Config.SuccessFolder;
CopyFileTo(file.SourceAuftragsdatei, success_folder.FullName);
CopyFileTo(file.SourceNutzdatendatei, success_folder.FullName);
}
internal static void CopyFileToDestination(DakotaSystemFile file)
{
var folder = Config.LoadDatenannahmestelleFolder(file.Datenannahmestelle);

View File

@@ -263,6 +263,10 @@ namespace DakotaSender
PrintLine(msg);
Add2Results(file, GkvTransferResultType.Success);
FileController.CopyFileToCopy(file);
FileController.CopyFileToSuccesss(file);
}
else
{
@@ -272,6 +276,8 @@ namespace DakotaSender
Add2Results(file, GkvTransferResultType.FailSoft, msg, "DS:Fehler");
FileController.CopyFileToCopy(file);
FileController.CopyFileToFailed(file);
}
}

View File

@@ -68,5 +68,27 @@ namespace DakotaUnitTest
Assert.IsTrue(test.Item3 == "104212505");
}
[TestMethod]
public void ValidateBarmar()
{
var test = Reader.Resolve("104080005", "69", "08101");
Assert.IsNull(test);
}
[TestMethod]
public void ValidateKnappschaft()
{
var test = Reader.Resolve("109905003", "69", "08000");
Assert.IsNotNull(test);
Assert.IsTrue(test.Item1 == "109905003");
Assert.IsTrue(test.Item2 == "109905003");
Assert.IsTrue(test.Item3 == "109905003");
}
}
}

View File

@@ -51,6 +51,7 @@
<ItemGroup>
<Compile Include="DakotaReaderUnitTest.cs" />
<Compile Include="GkvObjectUnitTest.cs" />
<Compile Include="MailUnitTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
@@ -61,6 +62,10 @@
<Project>{47331732-DD96-4075-869F-83AA9F3F9937}</Project>
<Name>Dakota</Name>
</ProjectReference>
<ProjectReference Include="..\Service\Service.csproj">
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>

View File

@@ -0,0 +1,18 @@
using BeWo.Service.Core;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace DakotaUnitTest
{
[TestClass]
public class MailUnitTest
{
[TestMethod]
public void SendTestMail()
{
var subject = "";
//var success = Utils.SendMail(subject, body, sende)
}
}
}

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Result ProtokollOid="31">
<Result ProtokollOid="31" UserOid="1">
<Titel>31</Titel>
<Datum>2024-06-01T09:00:00</Datum>
<Nachricht>TestNach</Nachricht>

View File

@@ -266,5 +266,9 @@ namespace BeWo.Data.Access
return obj;
}
public virtual int GetRowCount<T>() where T : BeWoEntityBase
{
return Session.QueryOver<T>().RowCount();
}
}
}

View File

@@ -237,7 +237,7 @@
<add key="OpenrouteServiceApiUrlGeocode" value="https://api.openrouteservice.org/geocode/search" />
<add key="OpenrouteServiceApiKey" value="5b3ce3597851110001cf62484b0917529e9a4008acda819dc06e47e8" />
<add key="GkvAbrechnungResultFolderPath" value="C:\GkvAbrechnung\Results\" />
<add key="GkvAbrechnungQueueFolderPath" value="C:\GkvAbrechnung\Queue\" />
<add key="GkvAbrechnungQueueFolderPath" value="C:\GkvAbrechnung\Data\Queue\" />
<add key="GkvKostentragerdateiFolderPath" value="C:\GkvAbrechnung\KTDatei\" />
<add key="DakotaPath" value="C:\Program Files (x86)\ITSG\dakotale\dakota30.exe" />
<add key="GkvSecretKey" value="DfDGNGn72PKfSYxSUsmRdzuBtpR9novewlmYU3gsjiFgSkaZZeylUXlbO42cWNqiKgLdMUFtWUNZT962F1raQDR7HGUzCNYsFeC" />

View File

@@ -52,7 +52,7 @@ CREATE TABLE `gkvtransferprotokoll` (
`Dateityp` varchar(4096) DEFAULT NULL,
`Dateiname` varchar(4096) DEFAULT NULL,
`Dateigrosse` int DEFAULT NULL,
`Nutzdatendatei` text,
`Nutzdatendatei` mediumtext,
`Auftragsdatei` varchar(1024) DEFAULT NULL,
`SentApp8Success` tinyint NOT NULL DEFAULT '0',
`SentDakotaSuccess` tinyint NOT NULL DEFAULT '0',

View File

@@ -0,0 +1,2 @@
ALTER TABLE `gkvtransferprotokoll`
CHANGE COLUMN `Nutzdatendatei` `Nutzdatendatei` MEDIUMTEXT NULL DEFAULT NULL ;

View File

@@ -76,12 +76,6 @@
</Compile>
<Compile Include="Invoicing\CustomInvoiceFactory.cs" />
<Compile Include="Invoicing\JugendamtInvoiceCreation.cs" />
<Compile Include="Mitarbeiterauslastung.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Mitarbeiterauslastung.designer.cs">
<DependentUpon>Mitarbeiterauslastung.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
@@ -154,9 +148,6 @@
<EmbeddedResource Include="InvoiceCustomerReport.resx">
<DependentUpon>InvoiceCustomerReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Mitarbeiterauslastung.resx">
<DependentUpon>Mitarbeiterauslastung.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>

View File

@@ -1,50 +0,0 @@
using System;
using System.Linq;
using BeWo.Report.ReportObjects;
using BeWo.Service.ServiceImplementations;
using BS.Shared.Core;
namespace BeWo.Report.DefaultReports
{
[IDSpecificClass(Identifier = "Mitarbeiterauslastung")]
public partial class Mitarbeiterauslastung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<MitarbeiterauslastungRO>
{
public Mitarbeiterauslastung()
{
InitializeComponent();
}
public void SetReportDataSource(MitarbeiterauslastungRO pRO)
{
AuslastungBerechnung b = new AuslastungBerechnung();
b.CreateReport(pRO);
AnalysisServiceImp analysisService = new AnalysisServiceImp();
var analysis = analysisService.GetSupportConceptAnalysis4(null, null, null, pRO.ReportStartDate, pRO.ReportEndDate, null, false);
foreach (var emp in pRO.EmployeeDetailList)
{
foreach (var sc in emp.SupportConceptDetailList)
{
var hpBeteiligter = sc.SupportConceptApprovalPeriod.SupportConceptApprovalPeriod2Employee.FirstOrDefault(d => d.Employee.Oid == emp.Employee.Oid); ;
if (hpBeteiligter != null)
{
var analyseDesSC = analysis.FirstOrDefault(a => a.SupportConceptOid == hpBeteiligter.SupportConceptApprovalPeriod.CostBearer2SupportConcept.SupportConcept.Oid);
// Jetzt aus der Analyse die Über/Unterbringung ziehen, sie mit dem Anteil des MA verrechnen und in Custom3 schreiben
if (analyseDesSC != null)
{
var anteiligeStunden = analyseDesSC.FLSOpenPerWeek * hpBeteiligter.Betreuungsschluessel / 100;
sc.Custom3 = string.Format("{0:0.00}", anteiligeStunden);
}
}
}
}
this.bindingSource1.DataSource = pRO;
}
}
}

View File

@@ -1,565 +0,0 @@
using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
{
partial class Mitarbeiterauslastung
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.xrTableDetail = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRowDetail = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell28 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.DetailReport1 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail2 = new DevExpress.XtraReports.UI.DetailBand();
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrTableHeader = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRowHeader = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell35 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell38 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellSollGesamt = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.lblMonat = new DevExpress.XtraReports.UI.XRLabel();
this.pageFooterBand1 = new DevExpress.XtraReports.UI.PageFooterBand();
this.xrPageInfo2 = new DevExpress.XtraReports.UI.XRPageInfo();
this.xrPageInfo1 = new DevExpress.XtraReports.UI.XRPageInfo();
this.Title = new DevExpress.XtraReports.UI.XRControlStyle();
this.FieldCaption = new DevExpress.XtraReports.UI.XRControlStyle();
this.PageInfo = new DevExpress.XtraReports.UI.XRControlStyle();
this.DataField = new DevExpress.XtraReports.UI.XRControlStyle();
this.fieldFLS = new DevExpress.XtraReports.UI.CalculatedField();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.fieldTotalSC = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldTotalEmp = new DevExpress.XtraReports.UI.CalculatedField();
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.Expanded = false;
this.Detail.HeightF = 0F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// Detail1
//
this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel2,
this.xrLabel1});
this.Detail1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Detail1.HeightF = 50F;
this.Detail1.KeepTogether = true;
this.Detail1.KeepTogetherWithDetailReports = true;
this.Detail1.Name = "Detail1";
this.Detail1.StylePriority.UseFont = false;
//
// xrLabel2
//
this.xrLabel2.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 25F);
this.xrLabel2.Multiline = true;
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.SizeF = new System.Drawing.SizeF(676.9999F, 25F);
this.xrLabel2.StyleName = "Title";
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.Text = "Wochenstunden: [WeeklyTotalHoursByContract!0.00], FLS/Woche: [FLSTotalHoursByCont" +
"ract!0.00]";
//
// xrLabel1
//
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.FullName")});
this.xrLabel1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold);
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel1.Multiline = true;
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.SizeF = new System.Drawing.SizeF(676.9999F, 25F);
this.xrLabel1.StyleName = "Title";
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.Text = "xrLabel1";
//
// xrTableDetail
//
this.xrTableDetail.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableDetail.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableDetail.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTableDetail.Name = "xrTableDetail";
this.xrTableDetail.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableDetail.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRowDetail});
this.xrTableDetail.SizeF = new System.Drawing.SizeF(748F, 25F);
this.xrTableDetail.StylePriority.UseBorders = false;
this.xrTableDetail.StylePriority.UseFont = false;
this.xrTableDetail.StylePriority.UsePadding = false;
this.xrTableDetail.StylePriority.UseTextAlignment = false;
this.xrTableDetail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrTableRowDetail
//
this.xrTableRowDetail.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell3,
this.xrTableCell19,
this.xrTableCell2,
this.xrTableCell28,
this.xrTableCell8});
this.xrTableRowDetail.Name = "xrTableRowDetail";
this.xrTableRowDetail.Weight = 1D;
//
// xrTableCell3
//
this.xrTableCell3.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.CustomerFullName")});
this.xrTableCell3.Name = "xrTableCell3";
this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell3.StylePriority.UseFont = false;
this.xrTableCell3.StylePriority.UsePadding = false;
this.xrTableCell3.StylePriority.UseTextAlignment = false;
this.xrTableCell3.Text = "xrTableCell3";
this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell3.Weight = 0.18034265103697025D;
//
// xrTableCell19
//
this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.TimeRangeString", "{0:0.00}")});
this.xrTableCell19.Name = "xrTableCell19";
this.xrTableCell19.Text = "xrTableCell19";
this.xrTableCell19.Weight = 0.15329125338142471D;
//
// xrTableCell2
//
this.xrTableCell2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.OrganisationName")});
this.xrTableCell2.Name = "xrTableCell2";
this.xrTableCell2.Text = "xrTableCell2";
this.xrTableCell2.Weight = 0.15329125338142469D;
//
// xrTableCell28
//
this.xrTableCell28.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.ApprovedHoursPerWeek", "{0:0.00}")});
this.xrTableCell28.Name = "xrTableCell28";
this.xrTableCell28.Text = "xrTableCell28";
this.xrTableCell28.Weight = 0.090171325518485085D;
//
// xrTableCell8
//
this.xrTableCell8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.SupportConceptDetailList.Custom3")});
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.Weight = 0.097385031559963892D;
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail1,
this.DetailReport1});
this.DetailReport.DataMember = "EmployeeDetailList";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
this.DetailReport.Name = "DetailReport";
//
// DetailReport1
//
this.DetailReport1.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail2,
this.GroupHeader2,
this.GroupFooter1});
this.DetailReport1.DataMember = "EmployeeDetailList.SupportConceptDetailList";
this.DetailReport1.DataSource = this.bindingSource1;
this.DetailReport1.Level = 0;
this.DetailReport1.Name = "DetailReport1";
//
// Detail2
//
this.Detail2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTableDetail});
this.Detail2.HeightF = 25F;
this.Detail2.Name = "Detail2";
//
// GroupHeader2
//
this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTableHeader});
this.GroupHeader2.HeightF = 40F;
this.GroupHeader2.Name = "GroupHeader2";
this.GroupHeader2.RepeatEveryPage = true;
//
// xrTableHeader
//
this.xrTableHeader.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableHeader.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
this.xrTableHeader.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTableHeader.Name = "xrTableHeader";
this.xrTableHeader.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableHeader.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRowHeader});
this.xrTableHeader.SizeF = new System.Drawing.SizeF(748F, 40F);
this.xrTableHeader.StylePriority.UseBorders = false;
this.xrTableHeader.StylePriority.UseFont = false;
this.xrTableHeader.StylePriority.UsePadding = false;
this.xrTableHeader.StylePriority.UseTextAlignment = false;
this.xrTableHeader.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrTableRowHeader
//
this.xrTableRowHeader.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell5,
this.xrTableCell4,
this.xrTableCell1,
this.xrTableCell9,
this.xrTableCell7});
this.xrTableRowHeader.Name = "xrTableRowHeader";
this.xrTableRowHeader.Weight = 1.5999999999999996D;
//
// xrTableCell5
//
this.xrTableCell5.Name = "xrTableCell5";
this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell5.StylePriority.UsePadding = false;
this.xrTableCell5.StylePriority.UseTextAlignment = false;
this.xrTableCell5.Text = "Klient/in";
this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell5.Weight = 0.18034264782021736D;
//
// xrTableCell4
//
this.xrTableCell4.Name = "xrTableCell4";
this.xrTableCell4.Text = "Zeitraum";
this.xrTableCell4.Weight = 0.15329125478030675D;
//
// xrTableCell1
//
this.xrTableCell1.Name = "xrTableCell1";
this.xrTableCell1.Text = "Kostenträger";
this.xrTableCell1.Weight = 0.15329125478030678D;
//
// xrTableCell9
//
this.xrTableCell9.Multiline = true;
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Text = "Bewilligt/Woche";
this.xrTableCell9.Weight = 0.090171325937473845D;
//
// xrTableCell7
//
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Text = "Tatsächliches Soll/Woche";
this.xrTableCell7.Weight = 0.097385031983482265D;
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable1});
this.GroupFooter1.HeightF = 60F;
this.GroupFooter1.Level = 1;
this.GroupFooter1.Name = "GroupFooter1";
//
// xrTable1
//
this.xrTable1.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable1.Name = "xrTable1";
this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow1});
this.xrTable1.SizeF = new System.Drawing.SizeF(639.9999F, 25F);
this.xrTable1.StylePriority.UseBorders = false;
this.xrTable1.StylePriority.UseFont = false;
this.xrTable1.StylePriority.UsePadding = false;
this.xrTable1.StylePriority.UseTextAlignment = false;
this.xrTable1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrTableRow1
//
this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell35,
this.xrTableCell38,
this.xrTableCell6,
this.cellSollGesamt});
this.xrTableRow1.Name = "xrTableRow1";
this.xrTableRow1.Weight = 1D;
//
// xrTableCell35
//
this.xrTableCell35.Name = "xrTableCell35";
this.xrTableCell35.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell35.StylePriority.UseFont = false;
this.xrTableCell35.StylePriority.UsePadding = false;
this.xrTableCell35.StylePriority.UseTextAlignment = false;
this.xrTableCell35.Text = "Gesamt";
this.xrTableCell35.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell35.Weight = 0.18034254096455143D;
//
// xrTableCell38
//
this.xrTableCell38.Name = "xrTableCell38";
this.xrTableCell38.Weight = 0.15329111579090118D;
//
// xrTableCell6
//
this.xrTableCell6.Name = "xrTableCell6";
this.xrTableCell6.Weight = 0.15329140580312939D;
//
// cellSollGesamt
//
this.cellSollGesamt.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.ApprovedHoursPerWeek", "{0:0.00}")});
this.cellSollGesamt.Name = "cellSollGesamt";
this.cellSollGesamt.Text = "cellSollGesamt";
this.cellSollGesamt.Weight = 0.090171342851318267D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterauslastungRO);
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.lblMonat});
this.ReportHeader.HeightF = 60F;
this.ReportHeader.Name = "ReportHeader";
//
// lblMonat
//
this.lblMonat.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ReportStartDate", "Auslastung {0:MMMM yy}")});
this.lblMonat.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold);
this.lblMonat.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.lblMonat.Multiline = true;
this.lblMonat.Name = "lblMonat";
this.lblMonat.SizeF = new System.Drawing.SizeF(676.9999F, 25F);
this.lblMonat.StyleName = "Title";
this.lblMonat.StylePriority.UseFont = false;
this.lblMonat.Text = "lblMonat";
//
// pageFooterBand1
//
this.pageFooterBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrPageInfo2,
this.xrPageInfo1});
this.pageFooterBand1.HeightF = 48F;
this.pageFooterBand1.Name = "pageFooterBand1";
//
// xrPageInfo2
//
this.xrPageInfo2.Font = new System.Drawing.Font("Arial", 8F);
this.xrPageInfo2.Format = "Seite {0} von {1}";
this.xrPageInfo2.LocationFloat = new DevExpress.Utils.PointFloat(342.4169F, 25F);
this.xrPageInfo2.Name = "xrPageInfo2";
this.xrPageInfo2.SizeF = new System.Drawing.SizeF(297.5831F, 23F);
this.xrPageInfo2.StyleName = "PageInfo";
this.xrPageInfo2.StylePriority.UseFont = false;
this.xrPageInfo2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
//
// xrPageInfo1
//
this.xrPageInfo1.Font = new System.Drawing.Font("Arial", 8F);
this.xrPageInfo1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 25F);
this.xrPageInfo1.Name = "xrPageInfo1";
this.xrPageInfo1.PageInfo = DevExpress.XtraPrinting.PageInfo.DateTime;
this.xrPageInfo1.SizeF = new System.Drawing.SizeF(287F, 23F);
this.xrPageInfo1.StyleName = "PageInfo";
this.xrPageInfo1.StylePriority.UseFont = false;
//
// Title
//
this.Title.BackColor = System.Drawing.Color.White;
this.Title.BorderColor = System.Drawing.SystemColors.ControlText;
this.Title.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.Title.BorderWidth = 1F;
this.Title.Font = new System.Drawing.Font("Times New Roman", 24F);
this.Title.ForeColor = System.Drawing.Color.Black;
this.Title.Name = "Title";
//
// FieldCaption
//
this.FieldCaption.BackColor = System.Drawing.Color.White;
this.FieldCaption.BorderColor = System.Drawing.SystemColors.ControlText;
this.FieldCaption.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.FieldCaption.BorderWidth = 1F;
this.FieldCaption.Font = new System.Drawing.Font("Times New Roman", 10F, System.Drawing.FontStyle.Bold);
this.FieldCaption.ForeColor = System.Drawing.Color.Black;
this.FieldCaption.Name = "FieldCaption";
//
// PageInfo
//
this.PageInfo.BackColor = System.Drawing.Color.White;
this.PageInfo.BorderColor = System.Drawing.SystemColors.ControlText;
this.PageInfo.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.PageInfo.BorderWidth = 1F;
this.PageInfo.Font = new System.Drawing.Font("Times New Roman", 8F);
this.PageInfo.ForeColor = System.Drawing.Color.Black;
this.PageInfo.Name = "PageInfo";
//
// DataField
//
this.DataField.BackColor = System.Drawing.Color.White;
this.DataField.BorderColor = System.Drawing.SystemColors.ControlText;
this.DataField.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.DataField.BorderWidth = 1F;
this.DataField.Font = new System.Drawing.Font("Times New Roman", 8F);
this.DataField.ForeColor = System.Drawing.SystemColors.ControlText;
this.DataField.Name = "DataField";
//
// fieldFLS
//
this.fieldFLS.DataMember = "FLSReportGroups";
this.fieldFLS.Expression = "[TotalFLM] / 60";
this.fieldFLS.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldFLS.Name = "fieldFLS";
//
// topMarginBand1
//
this.topMarginBand1.HeightF = 50F;
this.topMarginBand1.Name = "topMarginBand1";
//
// bottomMarginBand1
//
this.bottomMarginBand1.HeightF = 30F;
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// fieldTotalSC
//
this.fieldTotalSC.DataMember = "EmployeeDetailList.SupportConceptDetailList";
this.fieldTotalSC.Expression = "[DirectIst]+[MittelbarIst]";
this.fieldTotalSC.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldTotalSC.Name = "fieldTotalSC";
//
// fieldTotalEmp
//
this.fieldTotalEmp.DataMember = "EmployeeDetailList";
this.fieldTotalEmp.Expression = "[DirectIst]+[MittelbarIst]";
this.fieldTotalEmp.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldTotalEmp.Name = "fieldTotalEmp";
//
// Mitarbeiterauslastung
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,
this.DetailReport,
this.ReportHeader,
this.pageFooterBand1,
this.topMarginBand1,
this.bottomMarginBand1});
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.fieldFLS,
this.fieldTotalSC,
this.fieldTotalEmp});
this.DataSource = this.bindingSource1;
this.Margins = new System.Drawing.Printing.Margins(49, 30, 50, 30);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
this.StyleSheet.AddRange(new DevExpress.XtraReports.UI.XRControlStyle[] {
this.Title,
this.FieldCaption,
this.PageInfo,
this.DataField});
this.Version = "17.1";
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
#endregion
private DevExpress.XtraReports.UI.DetailBand Detail;
private System.Windows.Forms.BindingSource bindingSource1;
private DevExpress.XtraReports.UI.DetailBand Detail1;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport;
private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader;
private DevExpress.XtraReports.UI.XRLabel lblMonat;
private DevExpress.XtraReports.UI.PageFooterBand pageFooterBand1;
private DevExpress.XtraReports.UI.XRPageInfo xrPageInfo2;
private DevExpress.XtraReports.UI.XRPageInfo xrPageInfo1;
private DevExpress.XtraReports.UI.XRControlStyle Title;
private DevExpress.XtraReports.UI.XRControlStyle FieldCaption;
private DevExpress.XtraReports.UI.XRControlStyle PageInfo;
private DevExpress.XtraReports.UI.XRControlStyle DataField;
private DevExpress.XtraReports.UI.XRTable xrTableHeader;
private DevExpress.XtraReports.UI.XRTableRow xrTableRowHeader;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
private DevExpress.XtraReports.UI.XRTable xrTableDetail;
private DevExpress.XtraReports.UI.XRTableRow xrTableRowDetail;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
private DevExpress.XtraReports.UI.CalculatedField fieldFLS;
private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell19;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell28;
private DevExpress.XtraReports.UI.XRTable xrTable1;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell35;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell38;
private DevExpress.XtraReports.UI.XRTableCell cellSollGesamt;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport1;
private DevExpress.XtraReports.UI.DetailBand Detail2;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.CalculatedField fieldTotalSC;
private DevExpress.XtraReports.UI.CalculatedField fieldTotalEmp;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
}
}

View File

@@ -1,123 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -31,6 +31,7 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -39,6 +40,7 @@
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpo.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />

View File

@@ -66,18 +66,18 @@ namespace DiakonischesWerkDinslakenSozio.Invoicing
if (ii.ItemDescription.ToLower().Contains("gruppe"))
{
if (iServiceRecord.RoundedDuration <= 45)
{
ii.UnitDescription = "GPos: 2002678"; // 2 bis 5 Teilnehmer
}
else if (iServiceRecord.RoundedDuration <= 60)
{
ii.UnitDescription = "GPos: 2002677"; // 2 bis 5 Teilnehmer
}
else
{
//if (iServiceRecord.RoundedDuration <= 45)
//{
// ii.UnitDescription = "GPos: 2002678"; // 2 bis 5 Teilnehmer
//}
//else if (iServiceRecord.RoundedDuration <= 60)
//{
// ii.UnitDescription = "GPos: 2002677"; // 2 bis 5 Teilnehmer
//}
//else
//{
ii.UnitDescription = "GPos: 2002672"; // 2 bis 5 Teilnehmer - 90 Min
}
//}
// Gibt 2 Preise, einmal für Funktion Primärkasse und einmal für Funktion Ersatzkasse
var preisGruppe = GetGruppenPreis(scap.CostBearer2SupportConcept, iServiceRecord.Start.Value);
ii.AmountPerUnit = preisGruppe;
@@ -92,17 +92,13 @@ namespace DiakonischesWerkDinslakenSozio.Invoicing
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.GrossAmountTotal = ii.AmountTotal;
if (ii.ItemDescription.ToLower().Contains("probatorik"))
{
ii.UnitDescription = "GPos: 2001607";
}
else if (ii.ItemDescription.ToLower().Contains("video"))
if (ii.ItemDescription.ToLower().Contains("video"))
{
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001616";
}
else if (iServiceRecord.RoundedDuration > 30)
else
{
ii.UnitDescription = "GPos: 2001615";
}
@@ -113,30 +109,38 @@ namespace DiakonischesWerkDinslakenSozio.Invoicing
{
ii.UnitDescription = "GPos: 2001618";
}
else if (iServiceRecord.RoundedDuration > 30)
else
{
ii.UnitDescription = "GPos: 2001617";
}
}
else
else if (ii.ItemDescription.ToLower().Contains("aufsuchende einheit"))
{
if (iServiceRecord.RoundedDuration <= 10)
if (iServiceRecord.RoundedDuration <= 30)
{
ii.UnitDescription = "GPos: 2001613";
ii.UnitDescription = "GPos: 2001612 / 2009690";
}
else if (iServiceRecord.RoundedDuration <= 30)
else
{
ii.UnitDescription = "GPos: 2001612";
ii.UnitDescription = "GPos: 2001610 / 2009690";
}
else if (iServiceRecord.RoundedDuration <= 45)
}
else if (ii.ItemDescription.ToLower().Contains("probatorik"))
{
if (ii.ItemDescription.ToLower().Contains("aufsuchend"))
{
ii.UnitDescription = "GPos: 2001611";
ii.UnitDescription = "GPos: 2001607 / 2009690";
}
else if (iServiceRecord.RoundedDuration > 45)
else if (ii.ItemDescription.ToLower().Contains("büro"))
{
ii.UnitDescription = "GPos: 2001610";
ii.UnitDescription = "GPos: 2001607";
}
}
else if (ii.ItemDescription.ToLower().Contains("büro-einheit"))
{
ii.UnitDescription = "GPos: 2001610";
}
}
return ii;

View File

@@ -58,7 +58,7 @@ namespace DiakonischesWerkDinslakenSozio
{
s.IsGroup = true;
gesamtGruppe += s.Minutes;
s.ServiceDescription = "E";
s.ServiceDescription = "G";
s.Notice5 = "2002672";
}
else
@@ -71,11 +71,11 @@ namespace DiakonischesWerkDinslakenSozio
s.ServiceDescription = "V";
if (s.Minutes <= 30)
{
s.Notice5 = "2001615";
s.Notice5 = "2001616";
}
else
{
s.Notice5 = "2001616";
s.Notice5 = "2001615";
}
}
else if (s.ServiceDescription.Contains("Telefon"))
@@ -90,27 +90,37 @@ namespace DiakonischesWerkDinslakenSozio
s.Notice5 = "2001617";
}
}
else if (s.ServiceDescription.Contains("Probe"))
{
s.Notice5 = "2001607";
}
else if (s.ServiceDescription.Contains("Einrichtung") || s.ServiceDescription == "E" || s.ServiceDescription.Contains("Gruppe"))
{
s.ServiceDescription = "E";
}
else
else if (s.ServiceDescription.Contains("Aufsuchende Einheit"))
{
s.ServiceDescription = "A";
if (s.Minutes <= 30)
{
s.Notice5 = "2001612";
s.Notice5 = "2001612 / 2009690";
}
else
{
s.Notice5 = "2001610";
s.Notice5 = "2001610 / 2009690";
}
}
else if (s.ServiceDescription.Contains("Probatorik"))
{
if (s.ServiceDescription.ToLower().Contains("aufsuchend"))
{
s.ServiceDescription = "AP";
s.Notice5 = "2001607 / 2009690";
}
else if (s.ServiceDescription.ToLower().Contains("büro"))
{
s.ServiceDescription = "P";
s.Notice5 = "2001607";
}
}
else if (s.ServiceDescription.Contains("Büro-Einheit"))
{
s.ServiceDescription = "E";
s.Notice5 = "2001610";
}
}
}

View File

@@ -88,10 +88,10 @@ namespace BeWo.Service.Core
public static bool SendMail(string subject, string body, string toAddress)
{
return SendMail(null, null, subject, body, toAddress);
return SendMail(subject, body, toAddress, null, null);
}
public static bool SendMail(string senderName, string senderEMail, string subject, string body, string toAddress)
public static bool SendMail(string subject , string body, string toAddress, string senderName, string senderEMail)
{
var server = ConfigurationManager.AppSettings.Get("SmptServer");
var user = ConfigurationManager.AppSettings.Get("SmtpUser");
@@ -114,27 +114,28 @@ namespace BeWo.Service.Core
var body2 = "Kunde: " + MultitenancyOperationContextExt.Current.Tenant;
//body2 += "\r\nIP: " + GetClientIP();
body += "\n\n" + body2;
//}
//}
//if (to.Equals())
return SendMail(senderEMail.Trim(), senderName, to, subject, body, server, user, pass, sendAsync);
}
senderEMail = senderEMail.Trim();
public static bool SendMail(string fromEMail, string fromName, string to, string subject, string body, string smtpServer, string smtpUser, string smtpPassword, bool sendAsync)
return SendMail(subject, body, to, senderName, senderEMail, server, user, pass, sendAsync);
}
public static bool SendMail(string subject, string body, string toAddress, string senderName, string senderEMail, string smtpServer, string smtpUser, string smtpPassword, bool sendAsync)
{
try
{
if (!IsValidEmail(to) || !IsValidEmail(fromEMail))
if (!IsValidEmail(toAddress) || !IsValidEmail(senderEMail))
{
return false;
}
String from = fromEMail;
String from = senderEMail;
if (to.Equals("support@bewoplaner.de"))
if (toAddress.Equals("support@bewoplaner.de"))
{
var supportSenderMail = ConfigurationManager.AppSettings.Get("SupportSenderEMail");
if (String.IsNullOrEmpty(supportSenderMail))
@@ -146,20 +147,20 @@ namespace BeWo.Service.Core
MailMessage message = null;
if (String.IsNullOrEmpty(fromName))
message = new MailMessage(from, to, subject, body);
if (String.IsNullOrEmpty(senderName))
message = new MailMessage(from, toAddress, subject, body);
else
{
MailAddress fromMailAddress = new MailAddress(from);
MailAddress toMailAddress = new MailAddress(to);
MailAddress toMailAddress = new MailAddress(toAddress);
message = new MailMessage(fromMailAddress, toMailAddress);
message.Subject = subject;
message.Body = body;
}
if (fromEMail != from)
if (senderEMail != from)
{
message.ReplyToList.Add(new MailAddress(fromEMail, fromName));
message.ReplyToList.Add(new MailAddress(senderEMail, senderName));
}

View File

@@ -88,7 +88,7 @@ namespace BeWo.Service.DCEntityMapper
if (isReady)
{
if(!DakotaValidator.IsOrganisationInformationValid(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse, orga.BezDatenannahmestelle))
if(!Validator.IsOrganisationInformationValid(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse, orga.BezDatenannahmestelle))
{
isReady = false;
tooltip = "Organisation fehlen Informationen";

View File

@@ -147,7 +147,7 @@ namespace BeWo.Service.DCEntityMapper
{
pDataContract.CustomerFirstName = customer.Person.FirstName;
pDataContract.CustomerLastName = customer.Person.LastName;
var error = DakotaValidator.ValidateCustomer(customer.InsuranceNumber, customer.VersichertenStatus);
var error = Validator.ValidateCustomer(customer.InsuranceNumber, customer.VersichertenStatus);
pDataContract.IsGkvValidError = error;
pDataContract.IsGkvValid = error is null;
}

View File

@@ -1,6 +1,8 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.DataContracts;
using System;
namespace BeWo.Service.DCEntityMapper
{
@@ -30,6 +32,13 @@ namespace BeWo.Service.DCEntityMapper
#endif
pDataContract.Apikey = pEntity.Apikey;
pDataContract.IKLeistungserbringer = pEntity.IKLeistungserbringer;
var can_edit = GetCanEditIKLeistungserbringer();
pDataContract.CanEditIKLeistungserbringer = can_edit;
pDataContract.CanEditIKLeistungserbringerTooltip = can_edit ? null :
"Mit dem Senden mind. einer GKV Abrechnung haben Sie sich bereits\n" +
"mit dieser IK bei uns registiert. Bei Änderungswunsch wenden Sie\n" +
"sich bitte an unseren Support.";
return pDataContract;
}
@@ -65,5 +74,21 @@ namespace BeWo.Service.DCEntityMapper
return pDC.MandatorOid == pEntity.Oid;
}
private bool GetCanEditIKLeistungserbringer()
{
try
{
var row_count = DAOFactory.GenericDAO.GetRowCount<GkvTransferProtokoll>();
return row_count == 0;
}
catch (Exception)
{
}
return true;
}
}
}

View File

@@ -4,6 +4,7 @@ using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading;
using BeWo.Data;
using BS.Shared.Core;
namespace BeWo.Service.Plugins
@@ -391,7 +392,7 @@ namespace BeWo.Service.Plugins
//t = "7653029063"; // SkF Leverkusen JuHi
//t = "1453324901"; // Akkurat
//t = "5000000000";
//t = "5564670353"; // Mittelpunkt GbR
t = "5564670353"; // Mittelpunkt GbR
//t = "3788859817"; // Zukunft Leben (Stephan Hekermann)
//t = "2663321234"; // Aachener Laienhelfer Initiative e.V.
//t = "6290975576"; // Caritasverband Kelheim

View File

@@ -335,7 +335,7 @@ namespace BeWo.Service.Plugins
{
var res = new List<long>();
var filters = new List<string> { "URLAUB" };
var reasons = DAOFactory.GenericDAO.GetAllActive<AbsenceReason>();
var reasons = DAOFactory.GenericDAO.GetAll<AbsenceReason>();
foreach (var reason in reasons)
{

View File

@@ -1007,12 +1007,12 @@ namespace BeWo.Service.ServiceImplementations
var manager = new DakotaManager();
var mandatordc = new OperationsServiceImp().GetMandator();
DakotaValidator.ValidateMandator(mandatordc);
Validator.ValidateMandator(mandatordc);
var gkvAbrechnungDC = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(gkvAbrechnung);
var orgadc = gkvAbrechnungDC.Organisation;
DakotaValidator.ValidateOrganisation(orgadc);
Validator.ValidateOrganisation(orgadc);
var datenannahmestelle = orgadc.IKDatenannahmestelle;
var (datenaustauschreferenz, transfernummer) = GetNextDatenaustauschreferenzTransfernummer(gkvAbrechnung, datenannahmestelle);
@@ -1032,7 +1032,7 @@ namespace BeWo.Service.ServiceImplementations
var servicedc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(service);
var customerdc = MapperFactory.CustomerDC_Customer.MapToNewDC(customer);
DakotaValidator.ValidateCustomer(customerdc);
Validator.ValidateCustomer(customerdc);
manager.Add(servicedc, orgadc, customerdc, mandatordc, dat_short, tra_short);
}

View File

@@ -859,7 +859,7 @@ namespace BeWo.Service.ServiceImplementations
{
IList<Organisation> list = DAOFactory.GenericDAO.GetAllActiveAndArchived<Organisation>();
list = list.Where(x => DakotaValidator.IsOrganisationInformationValid(x.IKDatenannahmestelle, x.IKKostentrager, x.IKKrankenkasse, x.BezDatenannahmestelle)).ToList();
list = list.Where(x => Validator.IsOrganisationInformationValid(x.IKDatenannahmestelle, x.IKKostentrager, x.IKKrankenkasse, x.BezDatenannahmestelle)).ToList();
return CreateCompactOrganisations(list);
}

View File

@@ -122,7 +122,7 @@ namespace BeWo.Service.ServiceImplementations
}
}
return Utils.SendMail(senderName, senderEMail, subject, body, null);
return Utils.SendMail(subject, body, null, senderName, senderEMail);
}
private MailDC CreateMailDC(Mail2Receiver m2r)

View File

@@ -1297,4 +1297,13 @@ namespace BS.Shared
Erprobung,
Echt
}
public enum ValidationType
{
CustomerVersichertenstatus,
CustomerVersichertennummer,
OrganisationIKNumber,
OrganisationLeistungserbringergruppe,
OrganisationBezDatenannahmestelle
}
}

View File

@@ -9,8 +9,49 @@ using System.Threading.Tasks;
namespace BS.Shared.Core
{
public static class DakotaValidator
public static class Validator
{
public static bool? IsValid(ValidationType val_type, string val_str)
{
if (string.IsNullOrEmpty(val_str))
return null;
switch (val_type)
{
case ValidationType.CustomerVersichertenstatus:
return IsVersichertenstatusValid(val_str);
case ValidationType.CustomerVersichertennummer:
return IsVersichertennummerValid(val_str);
case ValidationType.OrganisationIKNumber:
return IsIKNumberValid(val_str);
case ValidationType.OrganisationLeistungserbringergruppe:
return IsLeistungserbringergruppeValid(val_str);
case ValidationType.OrganisationBezDatenannahmestelle:
return IsBezDatenannahmestelleValid(val_str);
}
return false;
}
public static string InvalidTooltipTxt(ValidationType val_type)
{
switch (val_type)
{
case ValidationType.CustomerVersichertenstatus:
return "CustomerVersichertenstatus invalid";
case ValidationType.CustomerVersichertennummer:
return "CustomerVersichertennummer invalid";
case ValidationType.OrganisationIKNumber:
return "OrganisationIKNumber invalid";
case ValidationType.OrganisationLeistungserbringergruppe:
return "OrganisationLeistungserbringergruppe invalid";
case ValidationType.OrganisationBezDatenannahmestelle:
return "OrganisationBezDatenannahmestelle invalid";
}
return "xxx";
}
public static string ValidateCustomer(string insuranceNumber, string versichertenStatus)
{
bool valid_number = IsVersichertennummerValid(insuranceNumber);
@@ -26,21 +67,14 @@ namespace BS.Shared.Core
return null;
}
/// <summary>
/// Validiert in erster Phase den Mandator.
/// </summary>
public static void ValidateMandator(MandatorDC mandatordc)
{
if (mandatordc == null)
throw new GkvException("Mandator ist null");
if (!DakotaValidator.IsIKNumberValid(mandatordc.IKLeistungserbringer))
if (!Validator.IsIKNumberValid(mandatordc.IKLeistungserbringer))
throw new GkvException($"Die IK Nummer des Leistungserbringers \"{mandatordc.IKLeistungserbringer}\" ist ungültig.");
}
/// <summary>
/// Validiert in zweiter Phase die Daten. Bei Fehler wird eine DakotaException geworfen.
/// </summary>
public static void ValidateCustomer(CustomerDC customerDC)
{
string error = null;
@@ -55,7 +89,6 @@ namespace BS.Shared.Core
if (error != null)
throw new GkvException(error);
}
public static void ValidateOrganisation(OrganisationDC orga)
{
string error = null;
@@ -76,17 +109,22 @@ namespace BS.Shared.Core
if (error != null)
throw new GkvException(error);
}
public static bool IsOrganisationInformationValid(string ik_datenannahmestelle, string ik_kostentrager, string ik_krankenkasse, string bez_datenannahmestelle)
=> IsIKNumberValid(ik_datenannahmestelle, ik_kostentrager, ik_krankenkasse) && !string.IsNullOrEmpty(bez_datenannahmestelle);
=> IsIKNumberValid(ik_datenannahmestelle, ik_kostentrager, ik_krankenkasse) && IsBezDatenannahmestelleValid(bez_datenannahmestelle);
public static bool IsIKNumberValid(params string[] iks)
=> iks?.All(IsIKNumberValid) ?? false;
public static bool IsBezDatenannahmestelleValid(string bez_datenannahmestelle)
{
return !string.IsNullOrWhiteSpace(bez_datenannahmestelle);
}
public static bool IsIKNumberValid(string iknummer)
{
if (iknummer == null)
return false;
iknummer = iknummer.Trim();
if (iknummer.Length != 9)
return false;
@@ -97,7 +135,12 @@ namespace BS.Shared.Core
if (nummer == null)
return false;
if (nummer.Length < 10)
nummer = nummer.Trim();
if (nummer.Length < 6)
return false;
if (nummer.Length > 12)
return false;
return true;
@@ -107,7 +150,15 @@ namespace BS.Shared.Core
if (status == null)
return false;
if (status.Length != 5 && status.Length != 7)
status = status.Trim();
if (status.Length == 0)
return false;
if (status.Length == 6)
return false;
if (status.Length >= 8)
return false;
return true;
@@ -117,6 +168,8 @@ namespace BS.Shared.Core
if (code == null)
return false;
code = code.Trim();
if (code.Length != 5 && code.Length != 7)
return false;

View File

@@ -58,5 +58,11 @@ namespace BS.Shared.DataContracts
[DataMember]
public string IKLeistungserbringer { get; set; }
[DataMember]
public bool CanEditIKLeistungserbringer { get; set; }
[DataMember]
public string CanEditIKLeistungserbringerTooltip { get; set; }
}
}

View File

@@ -135,7 +135,7 @@
<Compile Include="BeWoEntityEnums.cs" />
<Compile Include="Core\ComplexWohnheimbuchungsRelationHelper.cs" />
<Compile Include="Core\AbstractIDSpecificDefaultClass.cs" />
<Compile Include="Core\DakotaValidator.cs" />
<Compile Include="Core\Validator.cs" />
<Compile Include="Core\DebugUtils.cs" />
<Compile Include="Core\ImageUtils.cs" />
<Compile Include="Core\PersonFilterEnum.cs" />