Mandator um das Feld "Leistungserbringergruppe" erweitert

-> Changes_2024_06_21 Mandator Leistungserbringergruppe.txt

Zusätzliches GroupBox Feld bei Einstellungen
- Ohne AllowGkvAbrechnung Flag -> Visibility Collapsed
This commit is contained in:
2024-06-21 14:31:10 +02:00
parent 0263c6683b
commit 96c6c2b81c
12 changed files with 222 additions and 149 deletions

View File

@@ -7,73 +7,75 @@
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
<Grid x:Name="root">
<Grid.RowDefinitions>
<Grid x:Name="root">
<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" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="g1" />
<ColumnDefinition Width="*" MaxWidth="420" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Name</Label>
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="g1" />
<ColumnDefinition Width="*" MaxWidth="420" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Name</Label>
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center">IK Nummer (Leistungserbringer)</Label>
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=IKLeistungserbringer, UpdateSourceTrigger=PropertyChanged}" />
<GroupBox Margin="3 20 3 3" Grid.Row="2" Grid.ColumnSpan="2" Header="Adresse" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="g1" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="g1" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center">Strasse</Label>
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center">Postleitzahl</Label>
<Label Grid.Column="0" Grid.Row="2" Margin="3" VerticalAlignment="Center">Ort</Label>
<Label Grid.Column="0" Grid.Row="1" Margin="3" VerticalAlignment="Center">Postleitzahl</Label>
<Label Grid.Column="0" Grid.Row="2" Margin="3" VerticalAlignment="Center">Ort</Label>
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Grid.Column="1" Grid.Row="2" Margin="3" Height="23" Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Text="{Binding Path=Street, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Path=PostalCode, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Grid.Column="1" Grid.Row="2" Margin="3" Height="23" Text="{Binding Path=Town, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Margin="3 20 3 3" Grid.Row="3" Grid.ColumnSpan="2" Header="Einstellungen" Style="{StaticResource ObjectEditGroupBox}">
<Grid x:Name="EinstellungenGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<GroupBox Margin="3 20 3 3" Grid.Row="3" Grid.ColumnSpan="2" Header="Einstellungen" Style="{StaticResource ObjectEditGroupBox}">
<Grid x:Name="EinstellungenGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="430" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<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="430" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="3" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center">
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="3" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center">
Zeit in Minuten bis der BeWoPlaner nach Inaktivität gesperrt wird
</TextBlock>
<dxe:SpinEdit x:Name="LockUITimeSpinEdit" IsFloatValue="False" MinValue="0" MaxValue="999"
</TextBlock>
<dxe:SpinEdit x:Name="LockUITimeSpinEdit" IsFloatValue="False" MinValue="0" MaxValue="999"
Grid.Column="1" Grid.Row="3" Margin="3,5,3,5" Height="23"
EditValue="{Binding Path=TimeUntilUILock, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}" />
@@ -84,55 +86,55 @@
Grid.Column="1" Grid.Row="4" Margin="3,5,3,5" Height="23"
EditValue="{Binding Path=MoKSessionTimeout, Converter={StaticResource Int2DecimalConverter}, Mode=TwoWay}" />
<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}"/>
<dxe:SpinEdit x:Name="helpplan" IsFloatValue="False" MinValue="0" MaxValue="999"
<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}"/>
<dxe:SpinEdit x:Name="helpplan" IsFloatValue="False" MinValue="0" MaxValue="999"
Grid.Column="1" Grid.Row="5" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=HilfeplanAuslaufAuswahl, Converter={StaticResource Int2DecimalConverter}}" />
<CheckBox Margin="3,5,3,5" Content="Passwortsicherheit aktivieren" IsChecked="{Binding Path=IsPasswordSecurityActiv}" Grid.ColumnSpan="2" Grid.Row="7" />
</Grid>
</GroupBox>
</GroupBox>
<GroupBox Margin="3 20 3 3" Grid.Row="4" Grid.ColumnSpan="2" Header="{markup:Translate Zeiterfassung}" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<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" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="430" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
<Grid>
<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" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="430" />
<ColumnDefinition Width="50" />
</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>
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="1" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anz Tage des Folgemonats\, nach denen die Dokumentationen des vergangenen Monats nicht mehr verändert werden dürfen (0 für unbegrenzt)}"/>
<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}}" />
<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>
<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 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}"/>
<dxe:SpinEdit x:Name="AnzTageZeiterfassErfolgt" IsFloatValue="False" MinValue="0" MaxValue="999"
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="1" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Anz Tage des Folgemonats\, nach denen die Dokumentationen des vergangenen Monats nicht mehr verändert werden dürfen (0 für unbegrenzt)}"/>
<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}}" />
<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 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}"/>
<dxe:SpinEdit x:Name="AnzTageZeiterfassErfolgt" IsFloatValue="False" MinValue="0" MaxValue="999"
Grid.Column="1" Grid.Row="2" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=AnzTageZeiterfassErfolgt, Converter={StaticResource Int2DecimalConverter}}" />
<dxe:SpinEdit x:Name="ZeiterfassungsSchwellwert" IsFloatValue="False" MinValue="0" MaxValue="100" Value="80"
<dxe:SpinEdit x:Name="ZeiterfassungsSchwellwert" IsFloatValue="False" MinValue="0" MaxValue="100" Value="80"
Grid.Column="1" Grid.Row="3" Margin="3,5,3,5" Height="23" EditValue="{Binding Path=ZeiterfassungsSchwellwert, Converter={StaticResource Int2DecimalConverter}}" />
<TextBlock Foreground="Black" Grid.Column="0" Grid.Row="4" Margin="3,5,3,5" TextWrapping="Wrap" VerticalAlignment="Center" Text="{markup:Translate Zeiteinheit der Dauer}"/>
<ComboBox x:Name="ComboZeiteinheit" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="160,5,3,5" Height="23" SelectionChanged="ComboZeiteinheit_SelectionChanged"/>
<CheckBox Margin="3,5,3,5" Content="{markup:Translate Enddatum anzeigen}" IsChecked="{Binding Path=IsEndDateVisible}" Grid.ColumnSpan="2" Grid.Row="6" />
@@ -148,49 +150,64 @@
</GroupBox>
<GroupBox Margin="3 20 3 3" Grid.Row="5" Grid.ColumnSpan="2" Header="Rechnungsnummer" Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Content="Automatische Rechnungsnummer verwenden" Margin="3" VerticalAlignment="Center" />
<dxe:CheckEdit Grid.Column="1" Width="200" Margin="3" Height="23" IsChecked="{Binding InvoiceNumber.Use}" />
<Label Content="Automatische Rechnungsnummer verwenden" Margin="3" VerticalAlignment="Center" />
<dxe:CheckEdit Grid.Column="1" Width="200" Margin="3" Height="23" IsChecked="{Binding InvoiceNumber.Use}" />
<Label x:Name="lblSchema" Content="Schema" Grid.Row="1" Margin="3" VerticalAlignment="Center" />
<TextBox x:Name="txtSchema" Grid.Column="1" Grid.Row="1" Width="200" Margin="3" Height="23" Text="{Binding InvoiceNumber.Pattern}" />
<Label x:Name="lblSchema" Content="Schema" Grid.Row="1" Margin="3" VerticalAlignment="Center" />
<TextBox x:Name="txtSchema" Grid.Column="1" Grid.Row="1" Width="200" Margin="3" Height="23" Text="{Binding InvoiceNumber.Pattern}" />
<Label x:Name="lblNumber" Content="Aktuelle Nummer" Grid.Row="2" Margin="3" VerticalAlignment="Center" />
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2" IsFloatValue="False" MaxValue="999999999"
<Label x:Name="lblNumber" Content="Aktuelle Nummer" Grid.Row="2" Margin="3" VerticalAlignment="Center" />
<dxe:SpinEdit Name="spinedit_number" Grid.Column="1" Grid.Row="2" IsFloatValue="False" MaxValue="999999999"
Height="23" Width="200" EditValue="{Binding Path=InvoiceNumber.CurrentNumber, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}" />
<dxg:GridControl x:Name="GridControlInvoiceNumbers" Margin="0,10,0,0" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" ItemsSource="{Binding InvoiceNumberList}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Name" Header="Name" Width="100" SortOrder="Ascending" SortIndex="0" AllowEditing="False">
<dxg:GridControl x:Name="GridControlInvoiceNumbers" Margin="0,10,0,0" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" ItemsSource="{Binding InvoiceNumberList}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Name" Header="Name" Width="100" SortOrder="Ascending" SortIndex="0" AllowEditing="False">
</dxg:GridColumn>
<dxg:GridColumn FieldName="Pattern" Header="Schema" Width="100">
</dxg:GridColumn>
<dxg:GridColumn FieldName="CurrentNumber" Header="Aktuelle Nummer" Width="100">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="0" Mask="########0" MaskType="Numeric"></dxe:TextEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</GroupBox>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Pattern" Header="Schema" Width="100">
</dxg:GridColumn>
<dxg:GridColumn FieldName="CurrentNumber" Header="Aktuelle Nummer" Width="100">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="0" Mask="########0" MaskType="Numeric"></dxe:TextEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</GroupBox>
<GroupBox Margin="3 20 3 3" x:Name="GroupOwnChatSettings" Grid.Row="6" Grid.ColumnSpan="2" Header="{markup:Translate ownChat Einstellungen}" Style="{StaticResource ObjectEditGroupBox}">
<GroupBox x:Name="groupBoxSozio" Margin="3 20 3 3" Grid.Row="6" Grid.ColumnSpan="2" Header="Soziotherapie" Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label x:Name="lblLeistungserbringergruppe" Content="Leistungserbringergruppe" Grid.Row="0" Margin="3,4,3,3" VerticalAlignment="Center" Height="22" ToolTip="Abrechnungscode + Tarifkennzeichen. Zum Beispiel: 6901000" />
<TextBox x:Name="txtLeistungserbringergruppe" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Text="{Binding Leistungserbringergruppe}" />
</Grid>
</GroupBox>
<GroupBox Margin="3 20 3 3" x:Name="GroupOwnChatSettings" Grid.Row="7" Grid.ColumnSpan="2" Header="{markup:Translate ownChat Einstellungen}" Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -206,9 +223,9 @@
</Hyperlink.Inlines>
</Hyperlink>
</TextBlock>
</Grid>
</GroupBox>
</Grid>
</Grid>
</localView:BeWoView>

View File

@@ -39,6 +39,11 @@ namespace BeWo.View.Detail
SpinEditShowWarning.Visibility = Visibility.Collapsed;
}
if (!BeWoApp.AppSettings.AllowGkvAbrechnung)
{
groupBoxSozio.Visibility = Visibility.Collapsed;
}
ComboZeiteinheit.ItemsSource = new List<String> { "Minuten", "Stunden", "Stunden und Minuten" };
if (viewModel.EinheitZeiterfassung.Equals("1"))

View File

@@ -75,6 +75,8 @@ namespace BeWo.ViewModel
private string _IKLeistungserbringer;
private string _Leistungserbringergruppe;
public MandatorVM(IList<InvoiceNumberVM> invoiceNumberList, MandatorDC pDC) : base(pDC, true)
{
_InvoiceNumberList = new BindingList<InvoiceNumberVM>(invoiceNumberList);
@@ -526,6 +528,21 @@ namespace BeWo.ViewModel
}
}
public string Leistungserbringergruppe
{
get { return this._Leistungserbringergruppe; }
set
{
if (this.AreDifferent(this._Leistungserbringergruppe, value))
{
this._Leistungserbringergruppe = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Leistungserbringergruppe, value), nameof(Leistungserbringergruppe));
this.FirePropertyChanged(nameof(Leistungserbringergruppe));
}
}
}
protected override void InitByDataContract(MandatorDC pDataContract)
{
this._Name = pDataContract.Name;
@@ -539,6 +556,7 @@ namespace BeWo.ViewModel
this._Settings = pDataContract.Settings;
this._Apikey = pDataContract.Apikey;
this._IKLeistungserbringer = pDataContract.IKLeistungserbringer;
_Leistungserbringergruppe = pDataContract.Leistungserbringergruppe;
if (_Settings == null)
{
@@ -593,6 +611,7 @@ namespace BeWo.ViewModel
pDataContract.Settings = this._Settings;
pDataContract.Apikey = this._Apikey;
pDataContract.IKLeistungserbringer = this._IKLeistungserbringer;
pDataContract.Leistungserbringergruppe = _Leistungserbringergruppe;
return pDataContract;
}

View File

@@ -22,15 +22,5 @@ namespace Dakota
public static string Absenderklassifikation => "SL";
public static string Dateiidentifizierer => "S";
public static string GetLogischerDateiname(int _month) => $"{Absenderklassifikation}{IKAbsender.Substring(2, 6)}{Dateiidentifizierer}{_month:00}";
public static SchlüsselAbrechnungscodes Abrechnungscode => SchlüsselAbrechnungscodes.SoziotherapeutischerLeistungserbringer;
public static SchlüsselTarifkennzeichenBereich TarifkennzeichenBereich => SchlüsselTarifkennzeichenBereich.Bundeseinheitlich;
public static SchlüsselTarifkennzeichenSondertarif TarifkennzeichenSondertarif => SchlüsselTarifkennzeichenSondertarif.OhneBesonderheiten;
public static SchlüsselPosArtDerEinrichtung AbrechnungspositionArtDerEinrichtung => SchlüsselPosArtDerEinrichtung.SoziotherapeutischerLeistungserbringer;
public static SchlüsselPosBehandlungsart AbrechnungspositionBehandlungsart => SchlüsselPosBehandlungsart.Einzelbehandlung;
public static SchlüsselPosVergütungsart AbrechnungspositionVergütungsart => SchlüsselPosVergütungsart.Pauschale1;
}
}

View File

@@ -28,7 +28,10 @@ namespace Dakota
throw new DakotaException("Mandator ist null");
if (!ValidateIKNumber(mandatordc.IKLeistungserbringer))
throw new DakotaException("Die IK Nummer des Leistungserbringers ist ungültig.");
throw new DakotaException($"Die IK Nummer des Leistungserbringers \"{mandatordc.IKLeistungserbringer}\" ist ungültig.");
if (!ValidateLeistungserbringergruppe(mandatordc.Leistungserbringergruppe))
throw new DakotaException($"Die Leistungserbringergruppe \"{mandatordc.Leistungserbringergruppe}\" ist ungültig. Erwarten werden 5 Stellen für das Tarifkennzeichen alleine oder 7 Stellen für den Abrechnungscode und für das Tarifkennzeichen zusammen.");
}
/// <summary>
@@ -76,5 +79,16 @@ namespace Dakota
return true;
}
private static bool ValidateLeistungserbringergruppe(string code)
{
if (code == null)
return false;
if (code.Length != 5 && code.Length != 7)
return false;
return true;
}
}
}

View File

@@ -250,19 +250,24 @@ namespace Dakota.Logic
{
var info = new InfoAbrechnungsposition();
// info.Identifikationsnummer = para.SozioInvoiceItem.Identifikationsnummer;
info.Abrechnungscode = DakotaConfig.Abrechnungscode;
info.TarifkennzeichenBereich = DakotaConfig.TarifkennzeichenBereich;
info.TarifkennzeichenSondertarif = DakotaConfig.TarifkennzeichenSondertarif;
var lesitungserbringergruppe = infoParameter.Mandator.Leistungserbringergruppe;
if(lesitungserbringergruppe.Length == 5)
{
info.Abrechnungscode = "69";
info.Tarifkennzeichen = lesitungserbringergruppe;
}
else if (lesitungserbringergruppe.Length == 7)
{
info.Abrechnungscode = lesitungserbringergruppe.Substring(0, 2);
info.Tarifkennzeichen = lesitungserbringergruppe.Substring(2, 5);
}
else
{
throw new ArgumentOutOfRangeException(nameof(infoParameter.Mandator.Leistungserbringergruppe), infoParameter.Mandator.Leistungserbringergruppe.Length, "Leistungserbringergruppe 7 Stellen oder 5 Stelle ohne Abrechnungscode");
}
info.AbrechnungspositionString = infoParameter.InvoiceItem.UnitDescription.Substring(6);
//info.AbrechnungspositionArtDerEinrichtung = DakotaConfig.AbrechnungspositionArtDerEinrichtung;
//info.AbrechnungspositionBehandlungsart = DakotaConfig.AbrechnungspositionBehandlungsart;
//info.AbrechnungspositionVergütungsart = DakotaConfig.AbrechnungspositionVergütungsart;
info.AnzahlMenge = infoParameter.InvoiceItem.UnitCount.Value;
info.EinzelbetragAbrechnungsposition = infoParameter.InvoiceItem.AmountPerUnit.Value;
info.DatumDerLeistungserbringung = infoParameter.InvoiceItem.ItemPeriodStart.Value;

View File

@@ -9,12 +9,8 @@ namespace Dakota.Models.Infos
{
internal class InfoAbrechnungsposition
{
// public string Identifikationsnummer { get; set; }
public SchlüsselAbrechnungscodes Abrechnungscode { get; set; }
public SchlüsselTarifkennzeichen Tarifkennzeichen => new SchlüsselTarifkennzeichen(TarifkennzeichenBereich, TarifkennzeichenSondertarif);
public SchlüsselTarifkennzeichenBereich TarifkennzeichenBereich { get; set; }
public SchlüsselTarifkennzeichenSondertarif TarifkennzeichenSondertarif { get; set; }
public string Abrechnungscode { get; set; }
public string Tarifkennzeichen { get; set; }
public string AbrechnungspositionString { get; set; }

View File

@@ -48,6 +48,8 @@ namespace BeWo.Data.Entities
public static string Setting_IKLeistungserbringer = "IKLeistungserbringer";
public static string Setting_Leistungserbringergruppe = nameof(Leistungserbringergruppe);
private long _BeWoClientType;
private string _ClientId;
@@ -72,6 +74,8 @@ namespace BeWo.Data.Entities
private string _IKLeistungserbringer;
private string _Leistungserbringergruppe;
public Mandator()
{
@@ -453,5 +457,20 @@ namespace BeWo.Data.Entities
}
}
public virtual string Leistungserbringergruppe
{
get
{
return this._Leistungserbringergruppe;
}
set
{
if (this.AreDifferent(this._Leistungserbringergruppe, value))
{
this._Leistungserbringergruppe = value;
}
}
}
}
}

View File

@@ -28,5 +28,6 @@
<property name="LastModules" />
<property column="ApiKey" type="String" name="Apikey" length="256" />
<property column="IKLeistungserbringer" type="String" name="IKLeistungserbringer" length="16" />
<property column="Leistungserbringergruppe" type="String" name="Leistungserbringergruppe" length="7" />
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,2 @@
ALTER TABLE `mandator`
ADD COLUMN `Leistungserbringergruppe` VARCHAR(16) NULL DEFAULT NULL AFTER `IKLeistungserbringer`;

View File

@@ -30,6 +30,7 @@ namespace BeWo.Service.DCEntityMapper
#endif
pDataContract.Apikey = pEntity.Apikey;
pDataContract.IKLeistungserbringer = pEntity.IKLeistungserbringer;
pDataContract.Leistungserbringergruppe = pEntity.Leistungserbringergruppe;
return pDataContract;
}
@@ -52,6 +53,7 @@ namespace BeWo.Service.DCEntityMapper
pEntity.IsMedicationAllowed = pDataContract.IsMedicationAllowed;
pEntity.Apikey = pDataContract.Apikey;
pEntity.IKLeistungserbringer = pDataContract.IKLeistungserbringer;
pEntity.Leistungserbringergruppe = pDataContract.Leistungserbringergruppe;
return pEntity;
}

View File

@@ -58,5 +58,8 @@ namespace BS.Shared.DataContracts
[DataMember]
public string IKLeistungserbringer { get; set; }
[DataMember]
public string Leistungserbringergruppe { get; set; }
}
}