GetStatus FailFollowUpLogic
Zusätzliche Exception Handling Test Tenant
This commit is contained in:
BIN
BeWo/Ressources/Icons/ownsoft_logo.png
Normal file
BIN
BeWo/Ressources/Icons/ownsoft_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@@ -1,12 +1,16 @@
|
|||||||
<localView:BeWoView x:Class="BeWo.View.Detail.MandatorView"
|
<localView:BeWoView
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
x:Class="BeWo.View.Detail.MandatorView"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:localView="clr-namespace:BeWo.View"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
xmlns:localView="clr-namespace:BeWo.View"
|
||||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||||
VerticalAlignment="Stretch" Focusable="True">
|
Width="Auto"
|
||||||
|
Height="Auto"
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
VerticalAlignment="Stretch"
|
||||||
|
Focusable="True">
|
||||||
<Grid x:Name="root">
|
<Grid x:Name="root">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
@@ -24,13 +28,40 @@
|
|||||||
<ColumnDefinition Width="*" MaxWidth="420" />
|
<ColumnDefinition Width="*" MaxWidth="420" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Name</Label>
|
<Label
|
||||||
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
|
Grid.Row="0"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3"
|
||||||
|
VerticalAlignment="Center">
|
||||||
|
Name
|
||||||
|
</Label>
|
||||||
|
<TextBox
|
||||||
|
Grid.Row="0"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3"
|
||||||
|
Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
|
||||||
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center">IK Nummer (Leistungserbringer)</Label>
|
<Label
|
||||||
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=IKLeistungserbringer, UpdateSourceTrigger=PropertyChanged}" />
|
Grid.Row="1"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3"
|
||||||
|
VerticalAlignment="Center">
|
||||||
|
IK Nummer (Leistungserbringer)
|
||||||
|
</Label>
|
||||||
|
<TextBox
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3"
|
||||||
|
Text="{Binding Path=IKLeistungserbringer, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
|
||||||
<GroupBox Margin="3 20 3 3" Grid.Row="2" Grid.ColumnSpan="2" Header="Adresse" Style="{StaticResource ObjectEditGroupBox}">
|
<GroupBox
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,20,3,3"
|
||||||
|
Header="Adresse"
|
||||||
|
Style="{StaticResource ObjectEditGroupBox}">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
@@ -42,18 +73,56 @@
|
|||||||
<ColumnDefinition Width="150" />
|
<ColumnDefinition Width="150" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Strasse</Label>
|
<Label
|
||||||
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center">Postleitzahl</Label>
|
Grid.Row="0"
|
||||||
<Label Grid.Column="0" Grid.Row="2" Margin="3" VerticalAlignment="Center">Ort</Label>
|
Grid.Column="0"
|
||||||
|
Margin="3"
|
||||||
|
VerticalAlignment="Center">
|
||||||
|
Strasse
|
||||||
|
</Label>
|
||||||
|
<Label
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3"
|
||||||
|
VerticalAlignment="Center">
|
||||||
|
Postleitzahl
|
||||||
|
</Label>
|
||||||
|
<Label
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3"
|
||||||
|
VerticalAlignment="Center">
|
||||||
|
Ort
|
||||||
|
</Label>
|
||||||
|
|
||||||
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
|
<TextBox
|
||||||
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
|
Grid.Row="0"
|
||||||
<TextBox Grid.Column="1" Grid.Row="2" Margin="3" Height="23" Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3"
|
||||||
|
Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
<TextBox
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3"
|
||||||
|
Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
<TextBox
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3"
|
||||||
|
Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Margin="3 20 3 3" Grid.Row="3" Grid.ColumnSpan="2" Header="Einstellungen" Style="{StaticResource ObjectEditGroupBox}">
|
<GroupBox
|
||||||
|
Grid.Row="3"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,20,3,3"
|
||||||
|
Header="Einstellungen"
|
||||||
|
Style="{StaticResource ObjectEditGroupBox}">
|
||||||
<Grid x:Name="EinstellungenGrid">
|
<Grid x:Name="EinstellungenGrid">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
@@ -72,31 +141,82 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
|
||||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="3" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center">
|
<TextBlock
|
||||||
Zeit in Minuten bis der BeWoPlaner nach Inaktivität gesperrt wird
|
Grid.Row="3"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
TextWrapping="Wrap">
|
||||||
|
Zeit in Minuten bis der BeWoPlaner nach Inaktivität gesperrt wird
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
<dxe:SpinEdit x:Name="LockUITimeSpinEdit" IsFloatValue="False" MinValue="0" MaxValue="999"
|
<dxe:SpinEdit
|
||||||
Grid.Column="1" Grid.Row="3" Margin="3,5,3,5" Height="23"
|
x:Name="LockUITimeSpinEdit"
|
||||||
EditValue="{Binding Path=TimeUntilUILock, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}" />
|
Grid.Row="3"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
EditValue="{Binding Path=TimeUntilUILock, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MaxValue="999"
|
||||||
|
MinValue="0" />
|
||||||
|
|
||||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="4" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center">
|
<TextBlock
|
||||||
|
Grid.Row="4"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
TextWrapping="Wrap">
|
||||||
Zeit in Minuten bis die Session in der Mobilversion abläuft
|
Zeit in Minuten bis die Session in der Mobilversion abläuft
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
<dxe:SpinEdit x:Name="MoKSessionTimeoutSpinEdit" IsFloatValue="False" MinValue="20" MaxValue="60"
|
<dxe:SpinEdit
|
||||||
Grid.Column="1" Grid.Row="4" Margin="3,5,3,5" Height="23"
|
x:Name="MoKSessionTimeoutSpinEdit"
|
||||||
EditValue="{Binding Path=MoKSessionTimeout, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}" />
|
Grid.Row="4"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
EditValue="{Binding Path=MoKSessionTimeout, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MaxValue="60"
|
||||||
|
MinValue="20" />
|
||||||
|
|
||||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="5" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Monate\, ab der eine Warnung für auslaufende Hilfepläne angezeigt wird}"/>
|
<TextBlock
|
||||||
<dxe:SpinEdit x:Name="helpplan" IsFloatValue="False" MinValue="0" MaxValue="999"
|
Grid.Row="5"
|
||||||
Grid.Column="1" Grid.Row="5" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=HilfeplanAuslaufAuswahl, Converter={StaticResource Int2DecimalConverter}}" />
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
Text="{markup:Translate Anzahl Monate\, ab der eine Warnung für auslaufende Hilfepläne angezeigt wird}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
<dxe:SpinEdit
|
||||||
|
x:Name="helpplan"
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
EditValue="{Binding Path=HilfeplanAuslaufAuswahl, Converter={StaticResource Int2DecimalConverter}}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MaxValue="999"
|
||||||
|
MinValue="0" />
|
||||||
|
|
||||||
<CheckBox Margin="3,5,3,5" Content="Passwortsicherheit aktivieren" IsChecked="{Binding Path=IsPasswordSecurityActiv}" Grid.ColumnSpan="2" Grid.Row="7" />
|
<CheckBox
|
||||||
|
Grid.Row="7"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
Content="Passwortsicherheit aktivieren"
|
||||||
|
IsChecked="{Binding Path=IsPasswordSecurityActiv}" />
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Margin="3 20 3 3" Grid.Row="4" Grid.ColumnSpan="2" Header="{markup:Translate Zeiterfassung}" Style="{StaticResource ObjectEditGroupBox}">
|
<GroupBox
|
||||||
|
Grid.Row="4"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,20,3,3"
|
||||||
|
Header="{markup:Translate Zeiterfassung}"
|
||||||
|
Style="{StaticResource ObjectEditGroupBox}">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
@@ -116,40 +236,149 @@
|
|||||||
<ColumnDefinition Width="50" />
|
<ColumnDefinition Width="50" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<CheckBox Grid.Row="0" Margin="3,5,3,5" Content="{markup:Translate Dokumentationstext in der Zeiterfassung Pflichtfeld}" IsChecked="{Binding Path=IsServiceRecordNoticeMandatory}" Grid.ColumnSpan="2"></CheckBox>
|
<CheckBox
|
||||||
|
Grid.Row="0"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
Content="{markup:Translate Dokumentationstext in der Zeiterfassung Pflichtfeld}"
|
||||||
|
IsChecked="{Binding Path=IsServiceRecordNoticeMandatory}" />
|
||||||
|
|
||||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="1" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Tage des Folgemonats\, nach denen die Zeiterfassungseinträge des vergangenen Monats nicht mehr verändert werden oder neue Zeiterfassungseinträge angelegt werden dürfen (0 für unbegrenzt).}"/>
|
<TextBlock
|
||||||
<dxe:SpinEdit IsFloatValue="False" MinValue="0" Grid.Column="1" Grid.Row="1" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=MaxDaysEditServiceRecordsAllowed, Converter={StaticResource Int2DecimalConverter}}" />
|
Grid.Row="1"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
Text="{markup:Translate Anzahl Tage des Folgemonats\, nach denen die Zeiterfassungseinträge des vergangenen Monats nicht mehr verändert werden oder neue Zeiterfassungseinträge angelegt werden dürfen (0 für unbegrenzt).}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
<dxe:SpinEdit
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
EditValue="{Binding Path=MaxDaysEditServiceRecordsAllowed, Converter={StaticResource Int2DecimalConverter}}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MinValue="0" />
|
||||||
|
|
||||||
|
|
||||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="2" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Tage\, in der die Zeiterfassung erfolgen muss (0 für unbegrenzt)}"/>
|
<TextBlock
|
||||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="3" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Schwellwert in %\, ab der das Restbudget in der Zeiterfassung rot markiert wird}"/>
|
Grid.Row="2"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
Text="{markup:Translate Anzahl Tage\, in der die Zeiterfassung erfolgen muss (0 für unbegrenzt)}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
<TextBlock
|
||||||
|
Grid.Row="3"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
Text="{markup:Translate Schwellwert in %\, ab der das Restbudget in der Zeiterfassung rot markiert wird}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
|
||||||
<dxe:SpinEdit x:Name="AnzTageZeiterfassErfolgt" IsFloatValue="False" MinValue="0" MaxValue="999"
|
<dxe:SpinEdit
|
||||||
Grid.Column="1" Grid.Row="2" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=AnzTageZeiterfassErfolgt, Converter={StaticResource Int2DecimalConverter}}" />
|
x:Name="AnzTageZeiterfassErfolgt"
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
EditValue="{Binding Path=AnzTageZeiterfassErfolgt, Converter={StaticResource Int2DecimalConverter}}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MaxValue="999"
|
||||||
|
MinValue="0" />
|
||||||
|
|
||||||
<dxe:SpinEdit x:Name="ZeiterfassungsSchwellwert" IsFloatValue="False" MinValue="0" MaxValue="100" Value="80"
|
<dxe:SpinEdit
|
||||||
Grid.Column="1" Grid.Row="3" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=ZeiterfassungsSchwellwert, Converter={StaticResource Int2DecimalConverter}}" />
|
x:Name="ZeiterfassungsSchwellwert"
|
||||||
|
Grid.Row="3"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
EditValue="{Binding Path=ZeiterfassungsSchwellwert, Converter={StaticResource Int2DecimalConverter}}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MaxValue="100"
|
||||||
|
MinValue="0"
|
||||||
|
Value="80" />
|
||||||
|
|
||||||
|
|
||||||
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="4" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Zeiteinheit der Dauer}"/>
|
<TextBlock
|
||||||
<ComboBox x:Name="ComboZeiteinheit" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="160,5,3,5" Height="23" SelectionChanged="ComboZeiteinheit_SelectionChanged"/>
|
Grid.Row="4"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
Text="{markup:Translate Zeiteinheit der Dauer}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
<ComboBox
|
||||||
|
x:Name="ComboZeiteinheit"
|
||||||
|
Grid.Row="4"
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Height="23"
|
||||||
|
Margin="160,5,3,5"
|
||||||
|
SelectionChanged="ComboZeiteinheit_SelectionChanged" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<CheckBox Margin="3,5,3,5" Content="{markup:Translate Enddatum anzeigen}" IsChecked="{Binding Path=IsEndDateVisible}" Grid.ColumnSpan="2" Grid.Row="6" />
|
<CheckBox
|
||||||
|
Grid.Row="6"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
Content="{markup:Translate Enddatum anzeigen}"
|
||||||
|
IsChecked="{Binding Path=IsEndDateVisible}" />
|
||||||
|
|
||||||
<CheckBox x:Name="EnableArbeitszeiterfassung" Margin="3,20,3,5" Content="{markup:Translate Arbeitszeit mit BeWoPlaner erfassen}" IsChecked="{Binding Path=EnableArbeitszeiterfassung}" Grid.ColumnSpan="2" Grid.Row="7" />
|
<CheckBox
|
||||||
<CheckBox x:Name="EnableAutomaticPauses" Margin="3,5,3,5" Content="{markup:Translate Automatischer Pausenabzug}" IsChecked="{Binding Path=EnableAutomaticPauses}" Grid.ColumnSpan="2" Grid.Row="8" />
|
x:Name="EnableArbeitszeiterfassung"
|
||||||
<CheckBox x:Name="EnableRestTimeWarning" Margin="3,5,3,5" Content="{markup:Translate Warnung bei nicht einhalten der Ruhezeit}" IsChecked="{Binding Path=EnableRestTimeWarning}" Grid.ColumnSpan="2" Grid.Row="9" />
|
Grid.Row="7"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,20,3,5"
|
||||||
|
Content="{markup:Translate Arbeitszeit mit BeWoPlaner erfassen}"
|
||||||
|
IsChecked="{Binding Path=EnableArbeitszeiterfassung}" />
|
||||||
|
<CheckBox
|
||||||
|
x:Name="EnableAutomaticPauses"
|
||||||
|
Grid.Row="8"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
Content="{markup:Translate Automatischer Pausenabzug}"
|
||||||
|
IsChecked="{Binding Path=EnableAutomaticPauses}" />
|
||||||
|
<CheckBox
|
||||||
|
x:Name="EnableRestTimeWarning"
|
||||||
|
Grid.Row="9"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
Content="{markup:Translate Warnung bei nicht einhalten der Ruhezeit}"
|
||||||
|
IsChecked="{Binding Path=EnableRestTimeWarning}" />
|
||||||
|
|
||||||
<TextBlock x:Name="TextBlockShowWarning" Foreground="Black" Grid.Column="0" Grid.Row="10" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anzahl Stunden\, ab der eine Warnung angezeigt wird}"/>
|
<TextBlock
|
||||||
<dxe:SpinEdit x:Name="SpinEditShowWarning" IsFloatValue="False" Value="10" MinValue="0" Grid.Column="1" Grid.Row="10" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=MaxWorkTimeHoursBeforeWarning, Converter={StaticResource Int2DecimalConverter}}" />
|
x:Name="TextBlockShowWarning"
|
||||||
|
Grid.Row="10"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Foreground="Black"
|
||||||
|
Text="{markup:Translate Anzahl Stunden\, ab der eine Warnung angezeigt wird}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
<dxe:SpinEdit
|
||||||
|
x:Name="SpinEditShowWarning"
|
||||||
|
Grid.Row="10"
|
||||||
|
Grid.Column="1"
|
||||||
|
Height="23"
|
||||||
|
Margin="3,5,3,5"
|
||||||
|
EditValue="{Binding Path=MaxWorkTimeHoursBeforeWarning, Converter={StaticResource Int2DecimalConverter}}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MinValue="0"
|
||||||
|
Value="10" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Margin="3 20 3 3" Grid.Row="5" Grid.ColumnSpan="2" Header="Rechnungsnummer" Style="{StaticResource ObjectEditGroupBox}">
|
<GroupBox
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,20,3,3"
|
||||||
|
Header="Rechnungsnummer"
|
||||||
|
Style="{StaticResource ObjectEditGroupBox}">
|
||||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
@@ -162,38 +391,100 @@
|
|||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Content="Automatische Rechnungsnummer verwenden" Margin="3" VerticalAlignment="Center" />
|
<Label
|
||||||
<dxe:CheckEdit Grid.Column="1" Width="200" Margin="3" Height="23" IsChecked="{Binding InvoiceNumber.Use}" />
|
Margin="3"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Content="Automatische Rechnungsnummer verwenden" />
|
||||||
|
<dxe:CheckEdit
|
||||||
|
Grid.Column="1"
|
||||||
|
Width="200"
|
||||||
|
Height="23"
|
||||||
|
Margin="3"
|
||||||
|
IsChecked="{Binding InvoiceNumber.Use}" />
|
||||||
|
|
||||||
<Label x:Name="lblSchema" Content="Schema" Grid.Row="1" Margin="3" VerticalAlignment="Center" />
|
<Label
|
||||||
<TextBox x:Name="txtSchema" Grid.Column="1" Grid.Row="1" Width="200" Margin="3" Height="23" Text="{Binding InvoiceNumber.Pattern}" />
|
x:Name="lblSchema"
|
||||||
|
Grid.Row="1"
|
||||||
|
Margin="3"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Content="Schema" />
|
||||||
|
<TextBox
|
||||||
|
x:Name="txtSchema"
|
||||||
|
Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
Width="200"
|
||||||
|
Height="23"
|
||||||
|
Margin="3"
|
||||||
|
Text="{Binding InvoiceNumber.Pattern}" />
|
||||||
|
|
||||||
<Label x:Name="lblNumber" Content="Aktuelle Nummer" Grid.Row="2" Margin="3" VerticalAlignment="Center" />
|
<Label
|
||||||
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2" IsFloatValue="False" MaxValue="999999999"
|
x:Name="lblNumber"
|
||||||
Height="23" Width="200" EditValue="{Binding Path=InvoiceNumber.CurrentNumber, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}" />
|
Grid.Row="2"
|
||||||
|
Margin="3"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Content="Aktuelle Nummer" />
|
||||||
|
<dxe:SpinEdit
|
||||||
|
Name="spinedit_number"
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.Column="1"
|
||||||
|
Width="200"
|
||||||
|
Height="23"
|
||||||
|
EditValue="{Binding Path=InvoiceNumber.CurrentNumber, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}"
|
||||||
|
IsFloatValue="False"
|
||||||
|
MaxValue="999999999" />
|
||||||
|
|
||||||
<dxg:GridControl x:Name="GridControlInvoiceNumbers" Margin="0,10,0,0" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" ItemsSource="{Binding InvoiceNumberList}">
|
<dxg:GridControl
|
||||||
|
x:Name="GridControlInvoiceNumbers"
|
||||||
|
Grid.Row="3"
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="0,10,0,0"
|
||||||
|
ItemsSource="{Binding InvoiceNumberList}">
|
||||||
<dxg:GridControl.Columns>
|
<dxg:GridControl.Columns>
|
||||||
<dxg:GridColumn FieldName="Name" Header="Name" Width="100" SortOrder="Ascending" SortIndex="0" AllowEditing="False">
|
<dxg:GridColumn
|
||||||
|
Width="100"
|
||||||
</dxg:GridColumn>
|
AllowEditing="False"
|
||||||
<dxg:GridColumn FieldName="Pattern" Header="Schema" Width="100">
|
FieldName="Name"
|
||||||
</dxg:GridColumn>
|
Header="Name"
|
||||||
<dxg:GridColumn FieldName="CurrentNumber" Header="Aktuelle Nummer" Width="100">
|
SortIndex="0"
|
||||||
|
SortOrder="Ascending" />
|
||||||
|
<dxg:GridColumn
|
||||||
|
Width="100"
|
||||||
|
FieldName="Pattern"
|
||||||
|
Header="Schema" />
|
||||||
|
<dxg:GridColumn
|
||||||
|
Width="100"
|
||||||
|
FieldName="CurrentNumber"
|
||||||
|
Header="Aktuelle Nummer">
|
||||||
<dxg:GridColumn.EditSettings>
|
<dxg:GridColumn.EditSettings>
|
||||||
<dxe:TextEditSettings DisplayFormat="0" Mask="########0" MaskType="Numeric"></dxe:TextEditSettings>
|
<dxe:TextEditSettings
|
||||||
|
DisplayFormat="0"
|
||||||
|
Mask="########0"
|
||||||
|
MaskType="Numeric" />
|
||||||
</dxg:GridColumn.EditSettings>
|
</dxg:GridColumn.EditSettings>
|
||||||
</dxg:GridColumn>
|
</dxg:GridColumn>
|
||||||
</dxg:GridControl.Columns>
|
</dxg:GridControl.Columns>
|
||||||
<dxg:GridControl.View>
|
<dxg:GridControl.View>
|
||||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
|
<dxg:TableView
|
||||||
|
AutoWidth="true"
|
||||||
|
NavigationStyle="Cell"
|
||||||
|
ShowGroupPanel="False"
|
||||||
|
ShowGroupedColumns="false"
|
||||||
|
ShowTotalSummary="False" />
|
||||||
</dxg:GridControl.View>
|
</dxg:GridControl.View>
|
||||||
</dxg:GridControl>
|
</dxg:GridControl>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox x:Name="groupBoxSozio" Margin="3 20 3 3" Grid.Row="6" Grid.ColumnSpan="2" Header="Soziotherapie" Style="{StaticResource ObjectEditGroupBox}" Visibility="Collapsed">
|
<GroupBox
|
||||||
<!--Kann frei genutzt werden-->
|
x:Name="groupBoxSozio"
|
||||||
|
Grid.Row="6"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,20,3,3"
|
||||||
|
Header="Soziotherapie"
|
||||||
|
Style="{StaticResource ObjectEditGroupBox}"
|
||||||
|
Visibility="Collapsed">
|
||||||
|
<!-- Kann frei genutzt werden -->
|
||||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
@@ -205,7 +496,13 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Margin="3 20 3 3" x:Name="GroupOwnChatSettings" Grid.Row="7" Grid.ColumnSpan="2" Header="{markup:Translate ownChat Einstellungen}" Style="{StaticResource ObjectEditGroupBox}">
|
<GroupBox
|
||||||
|
x:Name="GroupOwnChatSettings"
|
||||||
|
Grid.Row="7"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Margin="3,20,3,3"
|
||||||
|
Header="{markup:Translate ownChat Einstellungen}"
|
||||||
|
Style="{StaticResource ObjectEditGroupBox}">
|
||||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
@@ -214,10 +511,17 @@
|
|||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<TextBlock VerticalAlignment="Center" Margin="8,10,0,0" FontSize="12" Foreground="{DynamicResource MainGroupBoxForegroundBrush}">
|
<TextBlock
|
||||||
<Hyperlink x:Name="HyperlinkOwnChatSettings" TargetName="_NewWindow" Click="Hyperlink_ShowOwnChatSettings_Click">
|
Margin="8,10,0,0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
FontSize="12"
|
||||||
|
Foreground="{DynamicResource MainGroupBoxForegroundBrush}">
|
||||||
|
<Hyperlink
|
||||||
|
x:Name="HyperlinkOwnChatSettings"
|
||||||
|
Click="Hyperlink_ShowOwnChatSettings_Click"
|
||||||
|
TargetName="_NewWindow">
|
||||||
<Hyperlink.Inlines>
|
<Hyperlink.Inlines>
|
||||||
<Run Text="{markup:Translate ownChat Einstellungen öffnen}"/>
|
<Run Text="{markup:Translate ownChat Einstellungen öffnen}" />
|
||||||
</Hyperlink.Inlines>
|
</Hyperlink.Inlines>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ namespace DakotaSender
|
|||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
static readonly string TEST_TENANT = "5000000000";
|
static readonly string TEST_TENANT = "5000000000";
|
||||||
|
static readonly string TEST_TENANT_2 = "7375324044";
|
||||||
|
|
||||||
static bool time_in_line = false;
|
static bool time_in_line = false;
|
||||||
static bool is_dakota_running = false;
|
static bool is_dakota_running = false;
|
||||||
@@ -49,6 +50,7 @@ namespace DakotaSender
|
|||||||
|
|
||||||
if (is_dakota_running)
|
if (is_dakota_running)
|
||||||
{
|
{
|
||||||
|
PrintSeperator();
|
||||||
PrintLine($"Verarbeitung im Silent Modus fehlgeschlagen. dakota30.exe läuft (bereits).");
|
PrintLine($"Verarbeitung im Silent Modus fehlgeschlagen. dakota30.exe läuft (bereits).");
|
||||||
PrintLine("Ignoriere Verarbeitung aktuell. Versuche im nächsten Programm Aufruf erneut.");
|
PrintLine("Ignoriere Verarbeitung aktuell. Versuche im nächsten Programm Aufruf erneut.");
|
||||||
}
|
}
|
||||||
@@ -118,6 +120,7 @@ namespace DakotaSender
|
|||||||
|
|
||||||
PrintSeperator();
|
PrintSeperator();
|
||||||
}
|
}
|
||||||
|
|
||||||
static Dictionary<string, Dictionary<string, List<DakotaSystemFile>>> ScanQueueFolder()
|
static Dictionary<string, Dictionary<string, List<DakotaSystemFile>>> ScanQueueFolder()
|
||||||
{
|
{
|
||||||
var queue = Config.QueueFolder;
|
var queue = Config.QueueFolder;
|
||||||
@@ -128,46 +131,13 @@ namespace DakotaSender
|
|||||||
var ten2dat2files = new Dictionary<string, Dictionary<string, List<DakotaSystemFile>>>();
|
var ten2dat2files = new Dictionary<string, Dictionary<string, List<DakotaSystemFile>>>();
|
||||||
foreach (var auft in files)
|
foreach (var auft in files)
|
||||||
{
|
{
|
||||||
var nutz_fullname = auft.FullName.Substring(0, auft.FullName.Length - 4);
|
var file = ScanQueueFile(auft);
|
||||||
var nutz = new FileInfo(nutz_fullname);
|
|
||||||
|
|
||||||
if (!nutz.Exists)
|
if (file is null)
|
||||||
{
|
|
||||||
PrintLine($"{auft.FullName} wird ignoriert. {nutz.FullName} nicht vorhanden");
|
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
PrintLine($"- {auft.FullName}");
|
var tenant = file.Tenant;
|
||||||
|
var datenannahmestelle = file.Datenannahmestelle;
|
||||||
var split = nutz.Name.Split('_');
|
|
||||||
var tenant = split[0];
|
|
||||||
var app_oid = long.Parse(split[1]);
|
|
||||||
var p_oid = long.Parse(split[2]);
|
|
||||||
var datenannahmestelle = split[3];
|
|
||||||
var transfername = split[4];
|
|
||||||
|
|
||||||
// Muss nachher nur entfernt werden, um andere zu testen
|
|
||||||
// Ggf Tool einbauen?
|
|
||||||
if (tenant != TEST_TENANT && tenant != "demo")
|
|
||||||
{
|
|
||||||
PrintLine($"{auft.FullName} wird ignoriert. Tenant {tenant} nicht gültig.");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tenant = TEST_TENANT;
|
|
||||||
}
|
|
||||||
|
|
||||||
var file = new DakotaSystemFile()
|
|
||||||
{
|
|
||||||
SourceAuftragsdatei = auft,
|
|
||||||
SourceNutzdatendatei = nutz,
|
|
||||||
Tenant = tenant,
|
|
||||||
ProtokollOid = p_oid,
|
|
||||||
ApplicationUserOid = app_oid,
|
|
||||||
Datenannahmestelle = datenannahmestelle,
|
|
||||||
Transfername = transfername,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!ten2dat2files.ContainsKey(tenant))
|
if (!ten2dat2files.ContainsKey(tenant))
|
||||||
ten2dat2files.Add(tenant, new Dictionary<string, List<DakotaSystemFile>>());
|
ten2dat2files.Add(tenant, new Dictionary<string, List<DakotaSystemFile>>());
|
||||||
@@ -183,7 +153,57 @@ namespace DakotaSender
|
|||||||
if (ten2dat2files.Any())
|
if (ten2dat2files.Any())
|
||||||
return ten2dat2files;
|
return ten2dat2files;
|
||||||
|
|
||||||
PrintLine("Keine Dakota Dateien in Queue gefunden.");
|
PrintLine("Keine gültigen Dakota Dateien in Queue gefunden.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
static DakotaSystemFile ScanQueueFile(FileInfo auft)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var nutz_fullname = auft.FullName.Substring(0, auft.FullName.Length - 4);
|
||||||
|
var nutz = new FileInfo(nutz_fullname);
|
||||||
|
|
||||||
|
if (!nutz.Exists)
|
||||||
|
{
|
||||||
|
PrintLine($"{auft.FullName} wird ignoriert. {nutz.FullName} nicht vorhanden");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
PrintLine($"- {auft.FullName}");
|
||||||
|
|
||||||
|
var split = nutz.Name.Split('_');
|
||||||
|
var tenant = split[0];
|
||||||
|
var app_oid = long.Parse(split[1]);
|
||||||
|
var p_oid = long.Parse(split[2]);
|
||||||
|
var datenannahmestelle = split[3];
|
||||||
|
var transfername = split[4];
|
||||||
|
|
||||||
|
// Muss nachher nur entfernt werden, um andere zu testen
|
||||||
|
// Ggf Tool einbauen?
|
||||||
|
if (tenant != TEST_TENANT && tenant != TEST_TENANT_2)
|
||||||
|
{
|
||||||
|
PrintLine($"{auft.FullName} wird ignoriert. Tenant {tenant} nicht gültig.");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var file = new DakotaSystemFile()
|
||||||
|
{
|
||||||
|
SourceAuftragsdatei = auft,
|
||||||
|
SourceNutzdatendatei = nutz,
|
||||||
|
Tenant = tenant,
|
||||||
|
ProtokollOid = p_oid,
|
||||||
|
ApplicationUserOid = app_oid,
|
||||||
|
Datenannahmestelle = datenannahmestelle,
|
||||||
|
Transfername = transfername,
|
||||||
|
};
|
||||||
|
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
PrintException(e);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -381,11 +401,11 @@ namespace DakotaSender
|
|||||||
else
|
else
|
||||||
PrintLine("Fehler: " + res.Message);
|
PrintLine("Fehler: " + res.Message);
|
||||||
}
|
}
|
||||||
catch(GkvException e)
|
catch (GkvException e)
|
||||||
{
|
{
|
||||||
PrintException(e);
|
PrintException(e);
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
PrintException(e);
|
PrintException(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ namespace DakotaSender
|
|||||||
{
|
{
|
||||||
const int RC_DAKOTA_ALREADY_LOADED = 18;
|
const int RC_DAKOTA_ALREADY_LOADED = 18;
|
||||||
|
|
||||||
static readonly int[] AcceptStatusCodes = new int[] { 0 };
|
static readonly int[] AcceptStatusCodes = new int[] { 0, 1, 100, 101 };
|
||||||
static readonly int[] AcceptSendCodes = new int[] { 0 };
|
static readonly int[] AcceptSendCodes = new int[] { 0, 1 };
|
||||||
|
|
||||||
static readonly Dictionary<int, string> StatusReturncodeToMeaning = new Dictionary<int, string>()
|
static readonly Dictionary<int, string> StatusReturncodeToMeaning = new Dictionary<int, string>()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5956,7 +5956,7 @@ namespace BeWo.Data.Access
|
|||||||
|
|
||||||
var t = criteria.List<int?>().SingleOrDefault();
|
var t = criteria.List<int?>().SingleOrDefault();
|
||||||
|
|
||||||
return t + 1?? 0;
|
return t + 1 ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Bargeldtransaktionshistory> LoadBargeldtransaktionshistoryEntriesByTransaktionsOids(List<long> transaktionsOids)
|
public List<Bargeldtransaktionshistory> LoadBargeldtransaktionshistoryEntriesByTransaktionsOids(List<long> transaktionsOids)
|
||||||
|
|||||||
@@ -75,32 +75,9 @@ namespace Host
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
foreach (var result in req.ResultDCs)
|
var service = new AccountingServiceImp();
|
||||||
{
|
|
||||||
HandleResult(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
var follows = req.ResultDCs.Where(x => x.ResultType == GkvTransferResultType.FailFollowUp);
|
service.HandleGkvServerResults(req.ResultDCs);
|
||||||
|
|
||||||
if (follows.Any())
|
|
||||||
{
|
|
||||||
var service = new AccountingServiceImp();
|
|
||||||
foreach (var follow in follows)
|
|
||||||
{
|
|
||||||
var protokoll_oid = follow.ProtokollOid;
|
|
||||||
var protokoll = DAOFactory.GenericDAO.LoadByID<GkvTransferProtokoll>(protokoll_oid);
|
|
||||||
var abrechnung_oid = protokoll.GkvAbrechnungOid;
|
|
||||||
|
|
||||||
var new_req = new GkvAbrechnungSendRequestDC() {
|
|
||||||
GkvAbrechnungOid = abrechnung_oid
|
|
||||||
};
|
|
||||||
|
|
||||||
var res = service.SendNewGkvAbrechnung(new_req);
|
|
||||||
|
|
||||||
if (!res.Success)
|
|
||||||
throw new GkvException(res.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
response.Success = true;
|
response.Success = true;
|
||||||
}
|
}
|
||||||
@@ -116,34 +93,6 @@ namespace Host
|
|||||||
SendResponse(response);
|
SendResponse(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleResult(GkvServerResultDC result)
|
|
||||||
{
|
|
||||||
var protokoll = DAOFactory.GenericDAO.GetByID<GkvTransferProtokoll>(result.ProtokollOid);
|
|
||||||
|
|
||||||
protokoll.ResultType = result.ResultType;
|
|
||||||
protokoll.Fehlertitel = result.Titel;
|
|
||||||
protokoll.Fehlerdatum = result.Datum;
|
|
||||||
protokoll.Fehlernachricht = result.Nachricht;
|
|
||||||
|
|
||||||
switch (result.ResultType)
|
|
||||||
{
|
|
||||||
case GkvTransferResultType.Success:
|
|
||||||
protokoll.SentDakotaSuccess = true;
|
|
||||||
break;
|
|
||||||
case GkvTransferResultType.FailSoft:
|
|
||||||
protokoll.SentApp8Success = false;
|
|
||||||
break;
|
|
||||||
case GkvTransferResultType.FailFatal:
|
|
||||||
protokoll.SentApp8Success = false;
|
|
||||||
break;
|
|
||||||
case GkvTransferResultType.FailFollowUp:
|
|
||||||
protokoll.SentApp8Success = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
DAOFactory.GenericDAO.Update(protokoll);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Senden
|
#region Senden
|
||||||
private void SendInvalidInputResponse() => SendErrorResponse(INVALID_INPUT);
|
private void SendInvalidInputResponse() => SendErrorResponse(INVALID_INPUT);
|
||||||
private void SendErrorResponse(string message)
|
private void SendErrorResponse(string message)
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ namespace Host
|
|||||||
|
|
||||||
var tuple_count = req.Oids.Length;
|
var tuple_count = req.Oids.Length;
|
||||||
|
|
||||||
response.ResultDC = new GkvServerResultDC[tuple_count];
|
response.Results = new GkvServerResultDC[tuple_count];
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -214,7 +214,7 @@ namespace Host
|
|||||||
|
|
||||||
if (results.TryGetValue(gkv_transfer_oid, out var fehlerDC))
|
if (results.TryGetValue(gkv_transfer_oid, out var fehlerDC))
|
||||||
{
|
{
|
||||||
response.ResultDC[i] = fehlerDC;
|
response.Results[i] = fehlerDC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -241,6 +241,7 @@
|
|||||||
<add key="GkvKostentragerdateiFolderPath" value="C:\GkvAbrechnung\KTDatei\" />
|
<add key="GkvKostentragerdateiFolderPath" value="C:\GkvAbrechnung\KTDatei\" />
|
||||||
<add key="DakotaPath" value="C:\Program Files (x86)\ITSG\dakotale\dakota30.exe" />
|
<add key="DakotaPath" value="C:\Program Files (x86)\ITSG\dakotale\dakota30.exe" />
|
||||||
<add key="GkvSecretKey" value="DfDGNGn72PKfSYxSUsmRdzuBtpR9novewlmYU3gsjiFgSkaZZeylUXlbO42cWNqiKgLdMUFtWUNZT962F1raQDR7HGUzCNYsFeC" />
|
<add key="GkvSecretKey" value="DfDGNGn72PKfSYxSUsmRdzuBtpR9novewlmYU3gsjiFgSkaZZeylUXlbO42cWNqiKgLdMUFtWUNZT962F1raQDR7HGUzCNYsFeC" />
|
||||||
|
<add key="App8IpAddress" value="88.198.50.220" />
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<devExpress>
|
<devExpress>
|
||||||
<themes enableThemesAssembly="true" styleSheetTheme="" theme="" />
|
<themes enableThemesAssembly="true" styleSheetTheme="" theme="" />
|
||||||
|
|||||||
@@ -13,13 +13,10 @@ using System.Text;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
|
|
||||||
|
using BeWo.Data;
|
||||||
using BeWo.Data.Entities;
|
using BeWo.Data.Entities;
|
||||||
using BeWo.Service.ServiceContracts;
|
using BeWo.Service.ServiceContracts;
|
||||||
using BeWo.Data;
|
|
||||||
using BeWo.Data.Access;
|
|
||||||
using BeWo.View.Navigation.Filter;
|
|
||||||
using BS.Shared;
|
using BS.Shared;
|
||||||
using BS.Shared.DataContracts;
|
|
||||||
using BS.Shared.Extensions;
|
using BS.Shared.Extensions;
|
||||||
|
|
||||||
namespace BeWo.Service.Core
|
namespace BeWo.Service.Core
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ namespace BeWo.Service.DCEntityMapper
|
|||||||
break;
|
break;
|
||||||
case BS.Shared.GkvState.ErrorFolgefehler:
|
case BS.Shared.GkvState.ErrorFolgefehler:
|
||||||
isReady = false;
|
isReady = false;
|
||||||
tooltip = "Folge Fehler";
|
tooltip = "Folgefehler";
|
||||||
break;
|
break;
|
||||||
case BS.Shared.GkvState.Paid:
|
case BS.Shared.GkvState.Paid:
|
||||||
isReady = false;
|
isReady = false;
|
||||||
|
|||||||
@@ -1104,7 +1104,7 @@ namespace BeWo.Service.ServiceImplementations
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new ArgumentException("Versucht Datenaustauschref zu laden, invalid state", nameof(state));
|
throw new ArgumentException("Versucht Transfernummer zu laden, invalid state", nameof(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Tuple<int, int>(datenaustauschref, transfernummer);
|
return new Tuple<int, int>(datenaustauschref, transfernummer);
|
||||||
@@ -1178,51 +1178,72 @@ namespace BeWo.Service.ServiceImplementations
|
|||||||
if (!response_app8.Success)
|
if (!response_app8.Success)
|
||||||
throw new GkvException(response_app8.Message);
|
throw new GkvException(response_app8.Message);
|
||||||
|
|
||||||
bool allAreUpToDate = true;
|
var results = response_app8.Results.Where(x => x is object);
|
||||||
for (int id = 0; id < updateables_len; id++)
|
|
||||||
{
|
|
||||||
var gkv_abrechnung = updateables[id];
|
|
||||||
var result = response_app8.ResultDC[id];
|
|
||||||
|
|
||||||
if (result is null)
|
if (!results.Any())
|
||||||
continue;
|
return true;
|
||||||
|
|
||||||
allAreUpToDate = false;
|
HandleGkvServerResults(results);
|
||||||
|
|
||||||
HandleResult(result);
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
return allAreUpToDate;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleResult(GkvServerResultDC result)
|
public void HandleGkvServerResults(IEnumerable<GkvServerResultDC> results)
|
||||||
{
|
{
|
||||||
var protokoll = DAOFactory.GenericDAO.GetByID<GkvTransferProtokoll>(result.ProtokollOid);
|
var protokolls = new List<GkvTransferProtokoll>();
|
||||||
|
foreach (var result in results)
|
||||||
protokoll.ResultType = result.ResultType;
|
|
||||||
protokoll.Fehlertitel = result.Titel;
|
|
||||||
protokoll.Fehlerdatum = result.Datum;
|
|
||||||
protokoll.Fehlernachricht = result.Nachricht;
|
|
||||||
|
|
||||||
switch (result.ResultType)
|
|
||||||
{
|
{
|
||||||
case GkvTransferResultType.Success:
|
var protokoll = DAOFactory.GenericDAO.GetByID<GkvTransferProtokoll>(result.ProtokollOid);
|
||||||
protokoll.SentDakotaSuccess = true;
|
|
||||||
break;
|
protokoll.ResultType = result.ResultType;
|
||||||
case GkvTransferResultType.FailSoft:
|
protokoll.Fehlertitel = result.Titel;
|
||||||
protokoll.SentApp8Success = false;
|
protokoll.Fehlerdatum = result.Datum;
|
||||||
break;
|
protokoll.Fehlernachricht = result.Nachricht;
|
||||||
case GkvTransferResultType.FailFatal:
|
|
||||||
protokoll.SentApp8Success = false;
|
switch (result.ResultType)
|
||||||
break;
|
{
|
||||||
case GkvTransferResultType.FailFollowUp:
|
case GkvTransferResultType.Success:
|
||||||
protokoll.SentApp8Success = false;
|
protokoll.SentDakotaSuccess = true;
|
||||||
break;
|
break;
|
||||||
|
case GkvTransferResultType.FailSoft:
|
||||||
|
protokoll.SentApp8Success = false;
|
||||||
|
break;
|
||||||
|
case GkvTransferResultType.FailFatal:
|
||||||
|
protokoll.SentApp8Success = false;
|
||||||
|
break;
|
||||||
|
case GkvTransferResultType.FailFollowUp:
|
||||||
|
protokoll.SentApp8Success = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
protokolls.Add(protokoll);
|
||||||
}
|
}
|
||||||
|
|
||||||
DAOFactory.GenericDAO.Update(protokoll);
|
if(protokolls.Any())
|
||||||
}
|
DAOFactory.GenericDAO.Update(protokolls);
|
||||||
|
|
||||||
|
var follows = results.Where(x => x.ResultType == GkvTransferResultType.FailFollowUp);
|
||||||
|
|
||||||
|
if (follows.Any())
|
||||||
|
{
|
||||||
|
foreach (var follow in follows)
|
||||||
|
{
|
||||||
|
var protokoll_oid = follow.ProtokollOid;
|
||||||
|
var protokoll = DAOFactory.GenericDAO.LoadByID<GkvTransferProtokoll>(protokoll_oid);
|
||||||
|
var abrechnung_oid = protokoll.GkvAbrechnungOid;
|
||||||
|
|
||||||
|
var new_req = new GkvAbrechnungSendRequestDC()
|
||||||
|
{
|
||||||
|
GkvAbrechnungOid = abrechnung_oid
|
||||||
|
};
|
||||||
|
|
||||||
|
var res = SendNewGkvAbrechnung(new_req);
|
||||||
|
|
||||||
|
if (!res.Success)
|
||||||
|
throw new GkvException(res.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Res SendApp8Request<Req, Res>(Req request) where Req : GkvRequestDC where Res : GkvResponseDC
|
private Res SendApp8Request<Req, Res>(Req request) where Req : GkvRequestDC where Res : GkvResponseDC
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,6 +13,6 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
|
|||||||
public GkvServerGetStatusResponseDC(bool success) : base(success) { }
|
public GkvServerGetStatusResponseDC(bool success) : base(success) { }
|
||||||
public GkvServerGetStatusResponseDC(bool success, string message) : base(success, message) { }
|
public GkvServerGetStatusResponseDC(bool success, string message) : base(success, message) { }
|
||||||
|
|
||||||
[DataMember] public GkvServerResultDC[] ResultDC { get; set; }
|
[DataMember] public GkvServerResultDC[] Results { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user