Zwischenstand:
Schlüssel übersichtlich, Segmente neu sortiert PDFs eingeführt, Beispiel Ansicht eingeführt,
This commit is contained in:
@@ -313,6 +313,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\Accounting\DigitalInvoiceOverview.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\Detail\DebugMessageLogView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -1052,6 +1056,9 @@
|
||||
<Compile Include="View\Controls\ValueListEntryEditControl.xaml.cs">
|
||||
<DependentUpon>ValueListEntryEditControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\Accounting\DigitalInvoiceOverview.xaml.cs">
|
||||
<DependentUpon>DigitalInvoiceOverview.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\Detail\DebugMessageLogView.xaml.cs">
|
||||
<DependentUpon>DebugMessageLogView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
94
BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml
Normal file
94
BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml
Normal file
@@ -0,0 +1,94 @@
|
||||
<localView:BeWoView x:Class="BeWo.View.Detail.Accounting.DigitalInvoiceOverview"
|
||||
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:localView="clr-namespace:BeWo.View"
|
||||
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
|
||||
xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting"
|
||||
xmlns:val="clr-namespace:BeWo.Validation"
|
||||
xmlns:proxy="clr-namespace:BeWo.ServiceProxy"
|
||||
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
|
||||
xmlns:s="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:r="clr-namespace:BeWo.Security"
|
||||
VerticalAlignment="Stretch" Focusable="True"
|
||||
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic">
|
||||
|
||||
<Grid>
|
||||
<GroupBox x:Name="groupbox_editArea" Grid.Row="0" Header="Rechnungsübersicht" Style="{DynamicResource ObjectEditGroupBox}">
|
||||
|
||||
<Grid Grid.IsSharedSizeScope="True">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<localView:YearMonthFilter Margin="3 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Column="0" x:Name="yearMonthFilter" FilterSpanChanged="YearMonthFilter_FilterSpanChanged" />
|
||||
<Button x:Name="button_reload" Grid.Column="1" Content="Aktualisieren" Margin="0,0,0,8" Click="ReloadButton_OnClick" Height="24" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="80" />
|
||||
|
||||
<dxg:GridControl Margin="3" Grid.ColumnSpan="2" Grid.Row="1" DataSource="{Binding VMList}" x:Name="datagrid_invoices" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
|
||||
<dxg:GridControl.Columns>
|
||||
|
||||
<dxg:GridColumn x:Name="ColumnButtons" AllowEditing="False" MinWidth="20" Width="22" FieldName="ReportLink" Header=" ">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Button Margin="1" ToolTip="Codierung erzeugen" x:Name="btn_report" Height="20" Width="20" VerticalAlignment="Center">
|
||||
<TextBlock Padding="0">
|
||||
<Hyperlink TextDecorations="None" TargetName="_NewWindow" NavigateUri="{Binding DisplayText, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" RequestNavigate="Hyperlink_OnRequestNavigate">
|
||||
<TextBlock Padding="0" Text="¥" Foreground="#FFFFFF" FontSize="15" FontFamily="Webdings" Height="17" Width="16" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</ControlTemplate>
|
||||
</dxg:GridColumn.DisplayTemplate>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TypeString" Header="Art der Rechnung" Width="150" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="CustomerName" Header="{markup:Translate Klient/in}" Width="100" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="AccountingPeriodString" Header="Zeitraum" Width="100" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceNumber" Header="Nummer" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="InvoiceDate" Header="Datum" EditSettings="{dxe:DateSettings DisplayFormat=d}" MinWidth="70" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="RecipientString" Header="{markup:Translate EmpfängerSingular}" />
|
||||
<!--<dxg:GridColumn FieldName="AccountingPeriodString" Header="Abrechnungszeitraum" />-->
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="TotalAmount" Header="Betrag" MinWidth="70">
|
||||
<!--<dxg:GridColumn.CellStyle>
|
||||
<Style TargetType="dxg:LightweightCellEditor">
|
||||
<Setter Property="TextBlock.FontWeight" Value="Bold"/>
|
||||
</Style>
|
||||
</dxg:GridColumn.CellStyle>-->
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Notice" Header="Bemerkung" MinWidth="200" >
|
||||
</dxg:GridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView NavigationStyle="Cell" Loaded="gridView_Loaded" x:Name="gridView" BestFitMode="Smart" AllowBestFit="True" ShowGroupPanel="False" ScrollingMode="Smart" SnapsToDevicePixels="True" Margin="3,22,3,3" />
|
||||
</dxg:GridControl.View>
|
||||
</dxg:GridControl>
|
||||
|
||||
<Grid Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,2,5,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<WrapPanel>
|
||||
<Label FontSize="14" Foreground="{StaticResource GridPrintMenuLightBrush}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10 0 0 0" Content="{Binding FilterResultAmountSum, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}Summe aller Rechnungen: {0:c}'}" />
|
||||
<Label FontSize="14" Foreground="{StaticResource GridPrintMenuLightBrush}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0 0 0 0" Content=" | " />
|
||||
<Label FontSize="14" x:Name="lblAmoutNotPaid" Foreground="{StaticResource GridPrintMenuLightBrush}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0 0 0 0" Content="{Binding FilterResultAmountNotPaidSum, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}Summe der noch offenen Rechnungen: {0:c}'}" />
|
||||
</WrapPanel>
|
||||
</Grid>
|
||||
|
||||
<TextBox x:Name="Output" Grid.Row="1" Grid.Column="2" Text="Test123\nn" IsReadOnly="True" AcceptsReturn="True" />
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
|
||||
</localView:BeWoView>
|
||||
138
BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml.cs
Normal file
138
BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml.cs
Normal file
@@ -0,0 +1,138 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Threading;
|
||||
using BeWo.Core;
|
||||
using BeWo.ServiceProxy;
|
||||
using BeWo.ViewModel;
|
||||
using BeWo.ViewModel.ListViewModel;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
using DevExpress.Xpf.Editors;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using Microsoft.Win32;
|
||||
using Shared.Extensions;
|
||||
|
||||
namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
public partial class DigitalInvoiceOverview : BeWoView
|
||||
{
|
||||
private readonly EquityInvoiceItemEditView _EquityInvoiceItemEditView;
|
||||
|
||||
private readonly GeneralInvoiceItemEditView _GeneralInvoiceItemEditView;
|
||||
|
||||
private readonly SettlementInvoiceItemEditView _SettlementInvoiceItemEditView;
|
||||
|
||||
private readonly SettlementInvoiceItemEditView2 _SettlementInvoiceItemEditView2;
|
||||
|
||||
private readonly ServiceInvoiceItemEditView _ServiceInvoiceItemEditView;
|
||||
|
||||
private InvoiceBaseListVM _Viewmodel;
|
||||
|
||||
public DigitalInvoiceOverview()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.ViewModel = new InvoiceBaseListVM(null);
|
||||
|
||||
RefreshInvoiceList();
|
||||
}
|
||||
|
||||
private void RefreshInvoiceList()
|
||||
{
|
||||
DateTime? start = null;
|
||||
DateTime? end = null;
|
||||
if (ViewModel.DateTimeSpanFilter != null)
|
||||
{
|
||||
start = ViewModel.DateTimeSpanFilter.StartDate;
|
||||
end = ViewModel.DateTimeSpanFilter.EndDate;
|
||||
}
|
||||
ServiceFacade.DoAccountingServiceAsync(s => s.GetInvoiceBases(start, end), UpdateInvoiceList);
|
||||
}
|
||||
|
||||
private void UpdateInvoiceList(IList<InvoiceBaseDC> dcList)
|
||||
{
|
||||
this.Dispatcher.BeginInvoke(
|
||||
DispatcherPriority.Normal,
|
||||
(Action)delegate
|
||||
{
|
||||
ViewModel.UpdateList(dcList.Where(DakotaExtensions.IsSozioTherapie).ToList());
|
||||
this.gridView.BestFitColumns();
|
||||
});
|
||||
}
|
||||
|
||||
private InvoiceBaseListVM ViewModel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Viewmodel;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.DataContext = value;
|
||||
this._Viewmodel = value;
|
||||
}
|
||||
}
|
||||
|
||||
private void RefreshItemInList(InvoiceBaseDC cb)
|
||||
{
|
||||
this.Dispatch(
|
||||
delegate
|
||||
{
|
||||
var old = this.ViewModel.VMList.Single(i => i.DataContract.InvoiceBaseOid.Equals(cb.InvoiceBaseOid));
|
||||
var lNew = new InvoiceBaseVM(cb);
|
||||
|
||||
this.ViewModel.VMList.Remove(old);
|
||||
this.ViewModel.VMList.Add(lNew);
|
||||
this.datagrid_invoices.RefreshData();
|
||||
this.gridView.FocusedRow = lNew;
|
||||
});
|
||||
}
|
||||
|
||||
private void gridView_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.gridView.BestFitColumns();
|
||||
}
|
||||
|
||||
private void gridView_ShownEditor(object sender, EditorEventArgs e)
|
||||
{
|
||||
if (e.Editor is CheckEdit)
|
||||
{
|
||||
var ed = (CheckEdit)e.Editor;
|
||||
ed.Tag = e.Row;
|
||||
}
|
||||
}
|
||||
|
||||
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
var uri = ((Hyperlink)sender).NavigateUri;
|
||||
string dcid = HttpUtility.ParseQueryString(uri.Query).Get("ibid");
|
||||
|
||||
var schaarf = ServiceFacade.DoOperationsServiceSync(x => x.GetDakotaFileFormat(dcid));
|
||||
|
||||
Output.Text = schaarf;
|
||||
}
|
||||
|
||||
private void ReloadButton_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
RefreshInvoiceList();
|
||||
}
|
||||
|
||||
private void YearMonthFilter_FilterSpanChanged(object sender, EventArgs<DateTimeSpan> e)
|
||||
{
|
||||
this.ViewModel.DateTimeSpanFilter = e.Data;
|
||||
RefreshInvoiceList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,7 @@
|
||||
Selector.Selected="tabitem_collectiveinvoice_Selected" />
|
||||
<TabItem Header="Allgemeine Rechnungen" Name="tabitem_otherinvoice" Selector.Selected="tabitem_otherinvoice_Selected" />
|
||||
<TabItem Header="Rechnungsübersicht" Name="tabitem_overviewinvoice" Selector.Selected="tabitem_overviewinvoice_Selected" />
|
||||
<TabItem Header="Digitale Abrechnung" Name="tabitem_digitaloverviewinvoice" Selector.Selected="tabitem_digitaloverviewinvoice_Selected" />
|
||||
<TabItem Header="Bargeldverwaltung" Name="tabitem_bargeldverwaltung" Selector.Selected="tabitem_bargeldverwaltung_Selected"/>
|
||||
<TabItem Header="Dokumente" Name="tabitem_documents" Selector.Selected="tabitem_documents_Selected" />
|
||||
</TabControl>
|
||||
|
||||
@@ -233,6 +233,16 @@ namespace BeWo.View.Master
|
||||
}
|
||||
}
|
||||
|
||||
private void tabitem_digitaloverviewinvoice_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!_OpenViews.ContainsKey(tabitem_digitaloverviewinvoice) || _SavePerformed)
|
||||
{
|
||||
AddView(tabitem_digitaloverviewinvoice, new DigitalInvoiceOverview());
|
||||
|
||||
//VMFactory.CreateInvoiceOverviewListVM(cb => this.Dispatch(delegate { this.AddView(this.tabitem_overviewinvoice, new InvoiceOverview(cb)); }));
|
||||
}
|
||||
}
|
||||
|
||||
//Dokument Selection
|
||||
private void tabitem_documents_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
@@ -43,9 +43,10 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="DakotaConfig.cs" />
|
||||
<Compile Include="DakotaEnums.cs" />
|
||||
<Compile Include="DakotaFileGenerator.cs" />
|
||||
<Compile Include="DakotaFile.cs" />
|
||||
<Compile Include="DakotaValidator.cs" />
|
||||
<Compile Include="Models\Abrechnungsposition.cs" />
|
||||
<Compile Include="DakotaFileInfo.cs" />
|
||||
<Compile Include="Models\Datei\BlockKostenträger.cs" />
|
||||
<Compile Include="Models\Datei\BlockKrankenkarteVerordnung.cs" />
|
||||
<Compile Include="Models\Datei\SozioTherapieEinzelnachweis.cs" />
|
||||
@@ -58,36 +59,46 @@
|
||||
<Compile Include="Models\Nachricht\NachrichtSLGA2.cs" />
|
||||
<Compile Include="Models\Nachricht\NachrichtSLLA2.cs" />
|
||||
<Compile Include="Models\Nachricht\NachrichtSLLA.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLABES.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLADIA.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAMWS.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAENF.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLASKZ.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLASUT.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLATXT.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAZUV.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAZUZ.cs" />
|
||||
<Compile Include="Models\Schlüssel\Schlüssel.cs" />
|
||||
<Compile Include="Models\Schlüssel\SchlüsselRechnungsart.cs" />
|
||||
<Compile Include="Models\Schlüssel\SchlüsselSummenstatus.cs" />
|
||||
<Compile Include="Models\Schlüssel\SchlüsselTestindikator.cs" />
|
||||
<Compile Include="Models\Schlüssel\SchlüsselVerarbeitungskennzeichen.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLABES.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLADIA.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAMWS.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAENF.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLASKZ.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLASUT.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLATXT.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAZUV.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAZUZ.cs" />
|
||||
<Compile Include="Models\Datei\Nutzdatendatei.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Models\Segmente\Segment.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLGAFKT.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLGAGES.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLGANAM.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLGAREC.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLGASKO.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAFKT.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAINV.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLANAD.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAREC.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAURI.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLLAIMG.cs" />
|
||||
<Compile Include="Models\Segmente\SLGA\SegmentSLGAFKT.cs" />
|
||||
<Compile Include="Models\Segmente\SLGA\SegmentSLGAGES.cs" />
|
||||
<Compile Include="Models\Segmente\SLGA\SegmentSLGANAM.cs" />
|
||||
<Compile Include="Models\Segmente\SLGA\SegmentSLGAREC.cs" />
|
||||
<Compile Include="Models\Segmente\SLGA\SegmentSLGASKO.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAFKT.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAINV.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLANAD.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAREC.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAURI.cs" />
|
||||
<Compile Include="Models\Segmente\SLLA\SegmentSLLAIMG.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentUNB.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentUNH.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentUNT.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentUNZ.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentSLGAUST.cs" />
|
||||
<Compile Include="Models\Segmente\SLGA\SegmentSLGAUST.cs" />
|
||||
<Compile Include="Models\Datei\SozioTherapieDatei.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Shared\Shared.csproj">
|
||||
<Project>{2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4}</Project>
|
||||
<Name>Shared</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -5,19 +5,18 @@ using Dakota.Models.Nachricht;
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
public class DakotaFileGenerator
|
||||
/// <summary>
|
||||
/// Interne Logik
|
||||
/// </summary>
|
||||
public class DakotaFile : IRowable
|
||||
{
|
||||
internal SozioTherapieEinzelnachweis SozioTherapieEinzelnachweis { get; set; }
|
||||
internal DateTime Created { get; private set; }
|
||||
|
||||
internal int DatenaustauschreferenzCounter { get; private set; }
|
||||
internal int NachrichtenreferenzCounter { get; private set; }
|
||||
internal int NachrichtenCounter { get; set; }
|
||||
internal int AnzahlUNHCounter { get; set; }
|
||||
internal int SegmentSLGACounter { get; set; }
|
||||
internal int SegmentSLLACounter { get; set; }
|
||||
@@ -37,59 +36,48 @@ namespace Dakota
|
||||
// UNZ
|
||||
internal SegmentUNZ SegmentUNZ => SozioTherapieEinzelnachweis.UNZ;
|
||||
|
||||
public string UNBAbsenderbezeichnung => string.Empty;
|
||||
public string UNBEmpfangerbezeichnung => string.Empty;
|
||||
public string UNBAnwendungsreferenz => string.Empty;
|
||||
public string SLGAFKTIKRechnungssteller => string.Empty;
|
||||
public string SLGAFKTIKKostentrager => string.Empty;
|
||||
public string SLGAFKTIKKrankenkasse => string.Empty;
|
||||
|
||||
public DakotaFileGenerator(int counter)
|
||||
public DakotaFile()
|
||||
{
|
||||
SozioTherapieEinzelnachweis = new SozioTherapieEinzelnachweis();
|
||||
Created = DateTime.Now;
|
||||
|
||||
DatenaustauschreferenzCounter = counter;
|
||||
NachrichtenreferenzCounter = 1;
|
||||
NachrichtenCounter = 1;
|
||||
AnzahlUNHCounter = 0;
|
||||
SegmentSLGACounter = 0;
|
||||
SegmentSLLACounter = 0;
|
||||
}
|
||||
|
||||
public void Generate()
|
||||
public void Generate(DakotaFileInfo info)
|
||||
{
|
||||
GenerateUNB();
|
||||
GenerateBlockSLGA();
|
||||
GenerateBlockSLLA();
|
||||
GenerateUNZ();
|
||||
|
||||
IncrementCounter();
|
||||
GenerateUNB(info);
|
||||
GenerateBlockSLGA(info);
|
||||
GenerateBlockSLLA(info);
|
||||
GenerateUNZ(info);
|
||||
}
|
||||
|
||||
public void GenerateUNB()
|
||||
public void GenerateUNB(DakotaFileInfo info)
|
||||
{
|
||||
SegmentUNB.SyntaxKennung.SetValue("UNOC");
|
||||
SegmentUNB.SyntaxVersionsnummer.SetValue("3");
|
||||
SegmentUNB.Absenderdatei.SetValue(UNBAbsenderbezeichnung);
|
||||
SegmentUNB.Empfangdatei.SetValue(UNBEmpfangerbezeichnung);
|
||||
SegmentUNB.Absenderdatei.SetValue(info.Absenderbezeichnung);
|
||||
SegmentUNB.Empfangdatei.SetValue(info.Empfangerbezeichnung);
|
||||
SegmentUNB.Datum.SetValue(Created.ToString("yyyyMMdd"));
|
||||
SegmentUNB.Uhrzeit.SetValue(Created.ToString("HHmm"));
|
||||
SegmentUNB.Datenaustauschreferenz.SetFilledIntValue(DatenaustauschreferenzCounter++, 5);
|
||||
SegmentUNB.Datenaustauschreferenz.SetFilledIntValue(info.Datenaustauschreferenz, 5);
|
||||
SegmentUNB.Leistungsbereich.SetValue("O");
|
||||
SegmentUNB.Anwengundsreferenz.SetValue(UNBAnwendungsreferenz);
|
||||
SegmentUNB.Testindikator.SetValue("0");
|
||||
SegmentUNB.Anwengundsreferenz.SetValue(info.Anwendungsreferenz);
|
||||
SegmentUNB.Testindikator.SetValue(info.Testindikator.Value);
|
||||
}
|
||||
|
||||
public void GenerateBlockSLGA()
|
||||
public void GenerateBlockSLGA(DakotaFileInfo info)
|
||||
{
|
||||
//UNH, UNT, FKT, REC
|
||||
SegmentSLGACounter += 2;
|
||||
AnzahlUNHCounter++;
|
||||
//UNH, UNT, FKT, REC, GES00, GES, NAM
|
||||
SegmentSLGACounter += 7;
|
||||
|
||||
var nachrichtenreferenznummer = NachrichtenreferenzCounter++;
|
||||
var nachrefnum = ++AnzahlUNHCounter;
|
||||
|
||||
// Head
|
||||
BlockSLGAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrichtenreferenznummer, 5);
|
||||
BlockSLGAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
BlockSLGAUNH.NachrichtenTypKennung.SetValue("SLGA");
|
||||
BlockSLGAUNH.Verionsnummer.SetValue("18");
|
||||
BlockSLGAUNH.FreigabeNrDesTypes.SetValue("0");
|
||||
@@ -97,16 +85,16 @@ namespace Dakota
|
||||
|
||||
// Body
|
||||
// FKT
|
||||
BlockSLGANachricht.SegmentFKT.Verarbeitungskennzeichen.SetValue("01");
|
||||
BlockSLGANachricht.SegmentFKT.IKLeistungserbringers.SetValue(SLGAFKTIKRechnungssteller);
|
||||
BlockSLGANachricht.SegmentFKT.IKKostenträger.SetValue(SLGAFKTIKKostentrager);
|
||||
BlockSLGANachricht.SegmentFKT.IKKrankenkasse.SetValue(SLGAFKTIKKrankenkasse);
|
||||
BlockSLGANachricht.SegmentFKT.IKAbsender.SetValue(UNBAbsenderbezeichnung);
|
||||
BlockSLGANachricht.SegmentFKT.Verarbeitungskennzeichen.SetValue(info.Verarbeitungskennzeichen.Value);
|
||||
BlockSLGANachricht.SegmentFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringers);
|
||||
BlockSLGANachricht.SegmentFKT.IKKostenträger.SetValue(info.IKKostenträger);
|
||||
BlockSLGANachricht.SegmentFKT.IKKrankenkasse.SetValue(info.IKKrankenkasse);
|
||||
BlockSLGANachricht.SegmentFKT.IKAbsender.SetValue(info.Absenderbezeichnung);
|
||||
// REC
|
||||
BlockSLGANachricht.SegmentREC.SammelRechnungsnummer.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentREC.EinzelRechnungsnummer.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentREC.Datum.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentREC.Rechnungsart.SetValue("1");
|
||||
BlockSLGANachricht.SegmentREC.SammelRechnungsnummer.SetValue(info.Rechnungsnummer);
|
||||
BlockSLGANachricht.SegmentREC.EinzelRechnungsnummer.SetValue("0");
|
||||
BlockSLGANachricht.SegmentREC.Datum.SetValue(info.Rechnungsdatum.ToString("yyyyMMdd"));
|
||||
BlockSLGANachricht.SegmentREC.Rechnungsart.SetValue(info.Rechnungsart.Value);
|
||||
// UST - wird nicht gebraucht
|
||||
//BlockSLGANachricht.SegmentUST.Steuernummer.SetValue(string.Empty);
|
||||
//BlockSLGANachricht.SegmentUST.Kennung.SetValue(string.Empty);
|
||||
@@ -114,35 +102,35 @@ namespace Dakota
|
||||
//BlockSLGANachricht.SegmentSKO.SkontoProzent.SetValue(string.Empty);
|
||||
//BlockSLGANachricht.SegmentSKO.Zahlungsziel.SetValue(string.Empty);
|
||||
// GES00
|
||||
BlockSLGANachricht.SegmentGES00.Status.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES00.Gesamtrechnungsbetrag.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES00.Gesamtbruttobetrag.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES00.GesamtbetragZuzahlung.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES00.Status.SetValue("00");
|
||||
BlockSLGANachricht.SegmentGES00.Gesamtrechnungsbetrag.SetDecimalValue(info.Gesamtrechnungsbetrag) ;
|
||||
BlockSLGANachricht.SegmentGES00.Gesamtbruttobetrag.SetDecimalValue(info.Gesamtbruttobetrag);
|
||||
BlockSLGANachricht.SegmentGES00.GesamtbetragZuzahlung.SetDecimalValue(info.GesamtbetragZuzahlung);
|
||||
// GES
|
||||
BlockSLGANachricht.SegmentGES.Status.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES.Gesamtrechnungsbetrag.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES.Gesamtbruttobetrag.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES.GesamtbetragZuzahlung.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentGES.Status.SetValue(info.Summenstatus.Value);
|
||||
BlockSLGANachricht.SegmentGES.Gesamtrechnungsbetrag.SetDecimalValue(info.Gesamtrechnungsbetrag);
|
||||
BlockSLGANachricht.SegmentGES.Gesamtbruttobetrag.SetDecimalValue(info.Gesamtbruttobetrag);
|
||||
BlockSLGANachricht.SegmentGES.GesamtbetragZuzahlung.SetDecimalValue(info.GesamtbetragZuzahlung);
|
||||
// NAM
|
||||
BlockSLGANachricht.SegmentNAM.Name1.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentNAM.Name2.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentNAM.Name3.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentNAM.Name4.SetValue(string.Empty);
|
||||
BlockSLGANachricht.SegmentNAM.Name1.SetValue(info.Name1);
|
||||
BlockSLGANachricht.SegmentNAM.Name2.SetValue(info.Name2);
|
||||
BlockSLGANachricht.SegmentNAM.Name3.SetValue(info.Name3);
|
||||
BlockSLGANachricht.SegmentNAM.Name4.SetValue(info.Name4);
|
||||
|
||||
// End
|
||||
BlockSLGAUNT.AnzahlEinheiten.SetFilledIntValue(SegmentSLGACounter, 6);
|
||||
BlockSLGAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrichtenreferenznummer, 5);
|
||||
BlockSLGAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
}
|
||||
|
||||
public void GenerateBlockSLLA()
|
||||
public void GenerateBlockSLLA(DakotaFileInfo info)
|
||||
{
|
||||
SegmentSLLACounter++;
|
||||
AnzahlUNHCounter++;
|
||||
|
||||
var nachrichtenreferenznummer = NachrichtenreferenzCounter++;
|
||||
var nachrefnum = ++AnzahlUNHCounter;
|
||||
|
||||
// Head
|
||||
BlockSLLAUNH.Nachrichtenreferenznummer.SetFilledIntValue(NachrichtenreferenzCounter, 5);
|
||||
BlockSLLAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
BlockSLLAUNH.NachrichtenTypKennung.SetValue("SLLA");
|
||||
BlockSLLAUNH.Verionsnummer.SetValue("18");
|
||||
BlockSLLAUNH.FreigabeNrDesTypes.SetValue("0");
|
||||
@@ -150,22 +138,21 @@ namespace Dakota
|
||||
|
||||
// Body
|
||||
// FKT Funktion
|
||||
BlockSLLANachricht.SegmentSLLAFKT.Verarbeitungskennzeichen.SetValue("01");
|
||||
BlockSLLANachricht.SegmentSLLAFKT.IKLeistungserbringers.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAFKT.IKKostenträgers.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAFKT.IKKrankenkasse.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAFKT.IKRechnungsstellers.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAFKT.Verarbeitungskennzeichen.SetValue(info.Verarbeitungskennzeichen.Value);
|
||||
BlockSLLANachricht.SegmentSLLAFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringers);
|
||||
BlockSLLANachricht.SegmentSLLAFKT.IKKostenträgers.SetValue(info.IKKostenträger);
|
||||
BlockSLLANachricht.SegmentSLLAFKT.IKKrankenkasse.SetValue(info.IKKrankenkasse);
|
||||
//BlockSLLANachricht.SegmentSLLAFKT.IKRechnungsstellers.SetValue(string.Empty);
|
||||
// REC
|
||||
var slgarec = BlockSLGANachricht.SegmentREC;
|
||||
BlockSLLANachricht.SegmentSLLAREC.SammelRechnungsnummer.SetValue(slgarec.SammelRechnungsnummer.GetValue());
|
||||
BlockSLLANachricht.SegmentSLLAREC.EinzelRechnungsnummer.SetValue(slgarec.EinzelRechnungsnummer.GetValue());
|
||||
BlockSLLANachricht.SegmentSLLAREC.Datum.SetValue(slgarec.Datum.GetValue());
|
||||
BlockSLLANachricht.SegmentSLLAREC.Rechnungsart.SetValue(slgarec.Rechnungsart.GetValue());
|
||||
BlockSLLANachricht.SegmentSLLAREC.SammelRechnungsnummer.SetValue(info.Rechnungsnummer);
|
||||
BlockSLLANachricht.SegmentSLLAREC.EinzelRechnungsnummer.SetValue("0");
|
||||
BlockSLLANachricht.SegmentSLLAREC.Datum.SetValue(info.Rechnungsdatum.ToString("yyyyMMdd"));
|
||||
BlockSLLANachricht.SegmentSLLAREC.Rechnungsart.SetValue(info.Rechnungsart.Value);
|
||||
// INV
|
||||
// Information Versicherte
|
||||
BlockSLLANachricht.SegmentSLLAINV.VersichertenNummer.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAINV.Versichertenstatus.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAINV.Beleginformation.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAINV.Beleginformation.SetValue("0");
|
||||
BlockSLLANachricht.SegmentSLLAINV.Belegnummer.SetValue(string.Empty);
|
||||
BlockSLLANachricht.SegmentSLLAINV.KennzeichenBesondereVersorgungsform.SetValue(string.Empty);
|
||||
// URI
|
||||
@@ -207,8 +194,8 @@ namespace Dakota
|
||||
// TXT
|
||||
pos.SegmentSLLATXT.Text.SetValue(string.Empty);
|
||||
// MWS
|
||||
pos.SegmentSLLAMWS.Mehrwertsteuersatz.SetValue(string.Empty);
|
||||
pos.SegmentSLLAMWS.BetragMehrwertsteuer.SetValue(string.Empty);
|
||||
//pos.SegmentSLLAMWS.Mehrwertsteuersatz.SetValue(string.Empty);
|
||||
//pos.SegmentSLLAMWS.BetragMehrwertsteuer.SetValue(string.Empty);
|
||||
|
||||
BlockSLLANachricht.AddPosition(pos);
|
||||
}
|
||||
@@ -231,22 +218,74 @@ namespace Dakota
|
||||
|
||||
// End
|
||||
BlockSLLAUNT.AnzahlEinheiten.SetFilledIntValue(SegmentSLLACounter, 6);
|
||||
BlockSLLAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrichtenreferenznummer, 5);
|
||||
BlockSLLAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
}
|
||||
|
||||
public void GenerateUNZ()
|
||||
public void GenerateUNZ(DakotaFileInfo info)
|
||||
{
|
||||
SegmentUNZ.AnzahlNachrichten.SetFilledIntValue(AnzahlUNHCounter, 6);
|
||||
var datenaustauschreferenz = SegmentUNB.Datenaustauschreferenz.GetValue();
|
||||
SegmentUNZ.Datenaustauschreferenz.SetValue(datenaustauschreferenz);
|
||||
SegmentUNZ.Datenaustauschreferenz.SetFilledIntValue(info.Datenaustauschreferenz, 5);
|
||||
}
|
||||
|
||||
public void IncrementCounter()
|
||||
public void foo(long? invoiceBaseOid)
|
||||
{
|
||||
if (DatenaustauschreferenzCounter == 99999)
|
||||
DatenaustauschreferenzCounter = 0;
|
||||
//var serviceInvoice = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(invoiceBaseOid.Value);
|
||||
|
||||
DatenaustauschreferenzCounter++;
|
||||
//if (!serviceInvoice.Oid.HasValue)
|
||||
// return;
|
||||
|
||||
//if (serviceInvostring.IsNullOrEmpty(serviceInvoiceOid))
|
||||
// return;
|
||||
|
||||
//var serviceInvoiceOid = serviceInvoice.Oid.Value;
|
||||
//var serviceInvoiceOid2CostbearerId = new Dictionary<long, string>();
|
||||
//var dcList = new List<ServiceInvoiceDC>();
|
||||
|
||||
|
||||
// var oid = long.Parse(oidStr);
|
||||
// // Lade ServiceInvoice
|
||||
// var invoice = DAOFactory.GenericDAO.LoadByID<ServiceInvoice>(oid);
|
||||
// var dc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(invoice);
|
||||
// // Füge dcListe hinzu
|
||||
// dcList.Add(dc);
|
||||
|
||||
// // Falls ServiceInvoice Oid bereits in serviceInvoiceOid2CostbearerOid List (S2C List) ist, überspringe
|
||||
// if (serviceInvoiceOid2CostbearerId.ContainsKey(oid))
|
||||
// continue;
|
||||
|
||||
// // ServiceInvoice Oid ist noch nicht in S2C List
|
||||
|
||||
// // Frage, ob InvoiceId existiert
|
||||
// if (!String.IsNullOrEmpty(invoice.InvoiceBase.InvoiceId))
|
||||
// // Falls InvoiceId existiert
|
||||
// serviceInvoiceOid2CostbearerId.Add(oid, invoice.InvoiceBase.InvoiceId);
|
||||
//}
|
||||
|
||||
//IBeWoReport<ServiceInvoiceRO> allReports = null;
|
||||
|
||||
//foreach (var iDC in dcList)
|
||||
//{
|
||||
// String reportId = null;
|
||||
// if (serviceInvoiceOid2CostbearerId.ContainsKey(iDC.ServiceInvoiceOid.Value))
|
||||
// reportId = serviceInvoiceOid2CostbearerId[iDC.ServiceInvoiceOid.Value];
|
||||
|
||||
// IBeWoReport<ServiceInvoiceRO> singleReport = FindReportImp<ServiceInvoiceRO>(reportId);
|
||||
|
||||
// singleReport.SetReportDataSource(ServiceInvoiceRO.Create(iDC));
|
||||
// ((XtraReport)singleReport).CreateDocument();
|
||||
// if (allReports == null)
|
||||
// allReports = singleReport;
|
||||
// else
|
||||
// ((XtraReport)allReports).Pages.AddRange(((XtraReport)singleReport).Pages);
|
||||
//}
|
||||
|
||||
//return allReports as XtraReport;
|
||||
|
||||
}
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return SozioTherapieEinzelnachweis.GetRows();
|
||||
}
|
||||
}
|
||||
}
|
||||
178
Dakota/DakotaFileInfo.cs
Normal file
178
Dakota/DakotaFileInfo.cs
Normal file
@@ -0,0 +1,178 @@
|
||||
using Dakota.Models.Schlüssel;
|
||||
using System;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
/// <summary>
|
||||
/// Klasse zum Erzeugen von Dakota Files
|
||||
/// </summary>
|
||||
public class DakotaFileInfo
|
||||
{
|
||||
private int _Datenaustauschreferenz;
|
||||
|
||||
/// <summary>
|
||||
/// IK des Absenders ( Abrechnungsstelle mit oder ohne Inkassobefugnis oder LE)
|
||||
/// Genutzt werden die ersten 9 Stellen;
|
||||
/// einzutragen ist das IK der absendenden Stelle.
|
||||
/// Diese Angabe muss übereinstimmen mit SLGA.FKT.IK Absender der Datei.
|
||||
/// </summary>
|
||||
public string Absenderbezeichnung { get; set; }
|
||||
/// <summary>
|
||||
/// IK des Empfängers (d.h. Datenannahmestelle mit Entschlüsselungsbefugnis);
|
||||
/// genutzt werden die ersten 9 Stellen;
|
||||
/// einzutragen ist das IK der empfangenden Stelle
|
||||
/// </summary>
|
||||
public string Empfangerbezeichnung { get; set; }
|
||||
/// <summary>
|
||||
/// Ab Version 12 ist die Datenaustauschreferenz zwingend zu füllen.
|
||||
/// Genutzt werden die ersten 5 Stellen;
|
||||
/// einzutragen ist die fortlaufende
|
||||
/// Nummer der Lieferungen zwischen
|
||||
/// Absender und Empfänger mit führenden Nullen.
|
||||
/// Bei Überlauf der Datenaustauschreferenz („99999“) ist wieder
|
||||
/// bei Eins(„00001“) zu beginnen
|
||||
/// </summary>
|
||||
public int Datenaustauschreferenz
|
||||
{
|
||||
get { return _Datenaustauschreferenz; }
|
||||
set
|
||||
{
|
||||
if (value < 1)
|
||||
throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht negativ sein");
|
||||
else if (value == 0)
|
||||
throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht gleich null sein");
|
||||
else if (value > 100000)
|
||||
throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht größer als 99999 sein");
|
||||
else if (value == 100000)
|
||||
value = 1;
|
||||
|
||||
_Datenaustauschreferenz = value;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Genutzt werden die ersten 11 Stellen;
|
||||
/// einzutragen ist der logische Dateiname s.Anhang 1 zur Anlage 1
|
||||
/// zum Kapitel 4.
|
||||
/// </summary>
|
||||
public string Anwendungsreferenz { get; set; }
|
||||
/// <summary>
|
||||
/// Inhalt = 0 wenn Testdatei
|
||||
/// Inhalt = 1 wenn Erprobungsdatei
|
||||
/// Inhalt = 2 wenn Echtdatei
|
||||
/// </summary>
|
||||
public SchlüsselTestindikator Testindikator { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Es ist das IK des Leistungserbringers
|
||||
/// anzugeben – mit folgender Ausnahme:
|
||||
/// Erfolgt die Abrechnung über eine
|
||||
/// Abrechnungsstelle mit Inkassovollmacht, so ist in der Sammelrechnungs-SLGA das IK der Abrechnungsstelle anzugeben.
|
||||
/// </summary>
|
||||
public string IKLeistungserbringers { get; set; }
|
||||
/// <summary>
|
||||
/// Einzutragen ist das IK des Kostenträ-
|
||||
/// gers auf den das IK der KV-Karte in
|
||||
/// der Kostenträgerdatei verweist; diese
|
||||
/// Angabe ist identisch mit dem IK des
|
||||
/// Kostenträgers im FKT-Segment der
|
||||
/// zugehörigen SLLA-Nachricht.
|
||||
/// </summary>
|
||||
public string IKKostenträger { get; set; }
|
||||
/// <summary>
|
||||
/// IK der Krankenkasse von der KVKarte bzw. der ärztlichen Verordnung
|
||||
/// ist zwingend anzugeben, außer es
|
||||
/// handelt sich um eine Sammelrechnung-SLGA.Bei allen SLGA-Nachrichten als Gesamtrechnung ist diese
|
||||
/// Angabe identisch mit SLLA.FKT.IK der
|
||||
/// Krankenkasse der zugehörigen SLLANachricht.
|
||||
/// </summary>
|
||||
public string IKKrankenkasse { get; set; }
|
||||
/// <summary>
|
||||
/// Die Einzel-Rechnungsnummer ist zusätzlich zur Sammel-Rechnungsnummer anzugeben, wenn eine SLGANachricht als Sammelrechnung zusätzlich in der Nutzdatendatei übermittelt
|
||||
/// wird, ansonsten wird lediglich das Datenelement Sammel-Rechnungsnummer gefüllt und die Einzel-Rechnungsnummer auf „0“ gesetzt(zum Beispiel
|
||||
/// 00234567:0
|
||||
/// </summary>
|
||||
public string Rechnungsnummer { get; set; }
|
||||
/// <summary>
|
||||
/// Rechnungsdatum JJJJMMTT
|
||||
/// </summary>
|
||||
public DateTime Rechnungsdatum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Siehe Schlüssel Summenstatus
|
||||
/// Anlage 3 Abschnitt 8.1.6
|
||||
/// </summary>
|
||||
public SchlüsselSummenstatus Summenstatus { get; set; }
|
||||
/// <summary>
|
||||
/// Bei Verarbeitungskennzeichen „01“,
|
||||
/// „02“ und „04“:
|
||||
/// Gesamtrechnungsbetrag(ggf.inklusive Mehrwertsteuer)
|
||||
/// Berechnungsregel:
|
||||
/// GES.Gesamtbruttobetrag minus
|
||||
/// GES.Gesamtbetrag Zuzahlung und/oder Eigenanteil und/oder Pauschale
|
||||
/// Korrekturbetrag.
|
||||
/// Bei Verarbeitungskennzeichen „03“:
|
||||
/// Entspricht dem Wert aus GES.Gesamtbetrag Zuzahlung und/oder Eigenanteil und/oder Pauschale Korrekturbetrag.
|
||||
/// </summary>
|
||||
public decimal Gesamtrechnungsbetrag { get; set; }
|
||||
/// <summary>
|
||||
/// Bei Verarbeitungskennzeichen „01“,
|
||||
/// „02“ und „04“:
|
||||
/// Summe der Gesamtbruttobeträge der
|
||||
/// Abrechnungsfälle(inklusive gesetzlicher Zuzahlungsbeträge oder Eigenanteil und/oder Pauschale Korrekturbetrag sowie ggf.Mehrwertsteuer)
|
||||
/// aus BES.
|
||||
/// Bei Verarbeitungskennzeichen „03“:
|
||||
/// Ist der Gesamtbruttobetrag mit 0,00
|
||||
/// zu übermitteln.
|
||||
/// </summary>
|
||||
public decimal Gesamtbruttobetrag { get; set; }
|
||||
/// <summary>
|
||||
/// Bei Verarbeitungskennzeichen „01“
|
||||
/// und „02“:
|
||||
/// Summe der gesetzlichen Zuzahlungen und/oder der Eigenanteile der
|
||||
/// Abrechnungsfälle aus BES
|
||||
/// Berechnungsregel:
|
||||
/// Summe aller Abrechnungsfälle(BES.Gesambetrag gesetzliche Zuzahlung + BES.Gesamtbetrag Eigenanteil).
|
||||
/// Bei Verarbeitungskennzeichen „03“:
|
||||
/// Summe der gesetzlichen Zuzahlungen und/oder der Eigenanteile der
|
||||
/// Abrechnungsfälle aus GZF
|
||||
/// Berechnungsregel:
|
||||
/// Summe aller Abrechnungsfälle(GZF.Gesambetrag gesetzliche Zuzahlung + GZF.Gesamtbetrag Eigenanteil).
|
||||
/// Bei Verarbeitungskennzeichen „04“:
|
||||
/// Summe der gesetzlichen Zuzahlungen und/oder der Eigenanteile der
|
||||
/// Abrechnungsfälle aus BES
|
||||
/// Berechnungsregel:
|
||||
/// Summe aller Abrechnungsfälle(BES.Gesambetrag gesetzliche Zuzahlung + BES.Gesamtbetrag Eigenanteil + BES.Pauschale Korrekturbetrag).
|
||||
/// </summary>
|
||||
public decimal GesamtbetragZuzahlung { get; set; }
|
||||
/// <summary>
|
||||
/// Name bzw. Firmenbezeichnung des
|
||||
/// Rechnungsstellers(Leistungserbringer oder Abrechnungsstelle
|
||||
/// </summary>
|
||||
/// /// <summary>
|
||||
/// Siehe Schlüssel Rechnungsart
|
||||
/// Anlage 3 Abschnitt 8.1.4.
|
||||
/// Dieser Schlüsselwert muss in der
|
||||
/// Sammelrechnungs-SLGA und allen
|
||||
/// zugehörigen SLGA-und SLLA-Nachrichten gleich sein.
|
||||
/// </summary>
|
||||
public SchlüsselRechnungsart Rechnungsart { get; set; }
|
||||
public string Name1 { get; set; }
|
||||
/// <summary>
|
||||
/// ggf. Ansprechpartner und Telefonnummer.
|
||||
/// </summary>
|
||||
public string Name2 { get; set; }
|
||||
/// <summary>
|
||||
/// ggf. Ansprechpartner und Telefonnummer.
|
||||
/// </summary>
|
||||
public string Name3 { get; set; }
|
||||
/// <summary>
|
||||
/// E-Mail-Adresse;
|
||||
/// zugelassen sind Buchstaben und Ziffern, ausgenommen Umlaute
|
||||
/// </summary>
|
||||
public string Name4 { get; set; }
|
||||
/// <summary>
|
||||
/// Siehe Schlüssel Verarbeitungskennzeichen Anlage 3 Abschnitt 8.1.7.
|
||||
/// </summary>
|
||||
public SchlüsselVerarbeitungskennzeichen Verarbeitungskennzeichen { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -25,11 +25,8 @@ namespace Dakota.Models
|
||||
/// <summary>
|
||||
/// Mit diesem Segment kann zu jeder abzurechnenden Position
|
||||
/// Mehrwertsteuer angegeben werden.Benutzt werden soll das
|
||||
/// Segment nur dann, wenn dem in ENF genannten Einzelbetrag
|
||||
/// die Mehrwertsteuer hinzuzurechnen ist.
|
||||
/// </summary>
|
||||
public SegmentSLLAMWS SegmentSLLAMWS { get; private set; }
|
||||
/// <summary>
|
||||
/// Segment nur dann, wenn dem in ENF genannten Einzelbetrag
|
||||
/// die Mehrwertsteuer hinzuzurechnen ist.
|
||||
/// </summary>
|
||||
///public SegmentSLLAMWS SegmentSLLAMWS { get; private set; }
|
||||
|
||||
@@ -37,12 +34,14 @@ namespace Dakota.Models
|
||||
|
||||
public Abrechnungsposition()
|
||||
{
|
||||
SegmentSLLAENF = new SegmentSLLAENF();
|
||||
SegmentSLLAENF = new SegmentSLLAENF();
|
||||
SegmentSLLASUT = new SegmentSLLASUT();
|
||||
SegmentSLLATXT = new SegmentSLLATXT();
|
||||
//SegmentSLLAMWS = new SegmentSLLAMWS();
|
||||
}
|
||||
|
||||
|
||||
public List<Segment> GetSegments()
|
||||
{
|
||||
return new List<Segment>() { SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT,
|
||||
};
|
||||
//SegmentSLLAMWS };
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace Dakota.Models.Datei
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return UNH.GetValue() + NachrichtSLGA.GetRows() + UNT.GetValue() + string.Join("", BlockKrankenkarteVerordnung.Select(x => x.GetRows()));
|
||||
return UNH.GetRows() + NachrichtSLGA.GetRows() + UNT.GetRows() + string.Join("", BlockKrankenkarteVerordnung.Select(x => x.GetRows()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ namespace Dakota.Models.Datei
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return SLGAUNH.GetValue() + SLGANachricht2.GetRows() + SLGAUNT.GetValue() +
|
||||
SLLAUNH.GetValue() + SLLANachricht2.GetRows() + SLLAUNT.GetValue();
|
||||
return SLGAUNH.GetRows() + SLGANachricht2.GetRows() + SLGAUNT.GetRows() +
|
||||
SLLAUNH.GetRows() + SLLANachricht2.GetRows() + SLLAUNT.GetRows();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Dakota.Models.Datei
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return UNB.GetValue() + string.Join(string.Empty, BlockKostenträger.Select(x => x.GetRows())) + UNZ.GetValue();
|
||||
return UNB.GetRows() + string.Join(string.Empty, BlockKostenträger.Select(x => x.GetRows())) + UNZ.GetRows();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Dakota.Models.Datei
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return UNB.GetValue() + string.Join(string.Empty, BlockKrankenkarteVerordnung.GetRows() + UNZ.GetValue());
|
||||
return UNB.GetRows() + string.Join(string.Empty, BlockKrankenkarteVerordnung.GetRows() + UNZ.GetRows());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,8 @@ namespace Dakota.Models
|
||||
{
|
||||
public abstract string GetValue();
|
||||
|
||||
public string Title { get; set; }
|
||||
|
||||
public bool HasValue()
|
||||
{
|
||||
return GetValue() is string;
|
||||
|
||||
@@ -12,19 +12,21 @@ namespace Dakota.Models
|
||||
|
||||
public Feldart Feldart { get; set; }
|
||||
|
||||
public Datenelement()
|
||||
public Datenelement(string title)
|
||||
{
|
||||
Title = title;
|
||||
|
||||
_IsDecimal = false;
|
||||
}
|
||||
|
||||
public Datenelement(int min, int max, Feldart art) : this()
|
||||
public Datenelement(string title, int min, int max, Feldart art) : this(title)
|
||||
{
|
||||
MinStellen = min;
|
||||
MaxStellen = max;
|
||||
Feldart = art;
|
||||
}
|
||||
|
||||
public Datenelement(int count, Feldart art) : this(count, count, art)
|
||||
public Datenelement(string title, int count, Feldart art) : this(title, count, count, art)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -69,12 +71,12 @@ namespace Dakota.Models
|
||||
{
|
||||
if (value.Length < MinStellen || value.Length > MaxStellen)
|
||||
{
|
||||
throw new NotImplementedException("Error Code: 3483091097894");
|
||||
throw new ArgumentOutOfRangeException(Title, value, $"Wertebereich: min:max = ({MinStellen}:{MaxStellen})");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new NotImplementedException("Error Code: 3483091097893");
|
||||
throw new ArgumentOutOfRangeException(Title, value, "value ist kein string");
|
||||
}
|
||||
|
||||
DakotaValidator.ClearTextString(value);
|
||||
|
||||
@@ -10,11 +10,13 @@ namespace Dakota.Models
|
||||
{
|
||||
public Datenelement[] Datenelemente { get; set; }
|
||||
|
||||
public Datenelementgruppe(int count)
|
||||
public Datenelementgruppe(string title, int count)
|
||||
{
|
||||
if (count < 2)
|
||||
throw new ArgumentOutOfRangeException("#37493218741616891269821");
|
||||
|
||||
Title = title;
|
||||
|
||||
Datenelemente = new Datenelement[count];
|
||||
}
|
||||
|
||||
|
||||
@@ -48,10 +48,15 @@ namespace Dakota.Models.Nachricht
|
||||
/// Imagearchiven durch den Absender.
|
||||
/// </summary>
|
||||
public SegmentSLLAIMG SegmentSLLAIMG { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment dient zur Abrechnung der einzelnen Positionen,
|
||||
/// die für den abzurechnenden Fall angefallen sind.
|
||||
/// Es ist so oft
|
||||
/// wiederholbar, wie Abrechnungspositionen vorkommen.
|
||||
/// </summary>
|
||||
public List<Abrechnungsposition> Abrechnungspositions { get; set; }
|
||||
/// Das Segment enthält allgemeine Angaben zum Abrechnungsfall (Verordnung) und ist zu übermitteln, wenn eine ärztliche
|
||||
/// Verordnung, ein Reparatur- oder Berechtigungsschein oder
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über die Zuzahlung. Das Segment ist bis auf weiteres nicht zu übermitteln. Das Segment ist
|
||||
/// für spätere Ausprägungen reserviert.
|
||||
/// </summary>
|
||||
public SegmentSLLAZUV SegmentSLLAZUV { get; private set; }
|
||||
|
||||
18
Dakota/Models/Schlüssel/Schlüssel.cs
Normal file
18
Dakota/Models/Schlüssel/Schlüssel.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Schlüssel
|
||||
{
|
||||
public abstract class Schlüssel
|
||||
{
|
||||
public string Value { get; set; }
|
||||
|
||||
public Schlüssel(string val)
|
||||
{
|
||||
Value = val;
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Dakota/Models/Schlüssel/SchlüsselRechnungsart.cs
Normal file
18
Dakota/Models/Schlüssel/SchlüsselRechnungsart.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Schlüssel
|
||||
{
|
||||
public class SchlüsselRechnungsart : Schlüssel
|
||||
{
|
||||
public SchlüsselRechnungsart(string val) : base(val) { }
|
||||
|
||||
public static SchlüsselRechnungsart DerzeitNichtBelegt => new SchlüsselRechnungsart("0");
|
||||
public static SchlüsselRechnungsart AbrechnungVonLeistungserbringer => new SchlüsselRechnungsart("1");
|
||||
public static SchlüsselRechnungsart AbrechnungÜberAbrechnungsstelleOhnInkassovollmacht => new SchlüsselRechnungsart("2");
|
||||
public static SchlüsselRechnungsart AbrechnungÜberAbrechnungsstelleMitInkassovollmacht => new SchlüsselRechnungsart("3");
|
||||
}
|
||||
}
|
||||
19
Dakota/Models/Schlüssel/SchlüsselSummenstatus.cs
Normal file
19
Dakota/Models/Schlüssel/SchlüsselSummenstatus.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Schlüssel
|
||||
{
|
||||
public class SchlüsselSummenstatus : Schlüssel
|
||||
{
|
||||
public SchlüsselSummenstatus(string val) : base(val) { }
|
||||
|
||||
public static SchlüsselSummenstatus Gesamtsumme => new SchlüsselSummenstatus("00");
|
||||
public static SchlüsselSummenstatus Mitglieder => new SchlüsselSummenstatus("11");
|
||||
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");
|
||||
}
|
||||
}
|
||||
17
Dakota/Models/Schlüssel/SchlüsselTestindikator.cs
Normal file
17
Dakota/Models/Schlüssel/SchlüsselTestindikator.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Schlüssel
|
||||
{
|
||||
public class SchlüsselTestindikator : Schlüssel
|
||||
{
|
||||
public SchlüsselTestindikator(string val) : base(val) { }
|
||||
|
||||
public static SchlüsselTestindikator Testdatei => new SchlüsselTestindikator("0");
|
||||
public static SchlüsselTestindikator Erprobungsdatei => new SchlüsselTestindikator("1");
|
||||
public static SchlüsselTestindikator Echtdatei => new SchlüsselTestindikator("2");
|
||||
}
|
||||
}
|
||||
18
Dakota/Models/Schlüssel/SchlüsselVerarbeitungskennzeichen.cs
Normal file
18
Dakota/Models/Schlüssel/SchlüsselVerarbeitungskennzeichen.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Schlüssel
|
||||
{
|
||||
public class SchlüsselVerarbeitungskennzeichen : Schlüssel
|
||||
{
|
||||
public SchlüsselVerarbeitungskennzeichen(string val) : base(val) { }
|
||||
|
||||
public static SchlüsselVerarbeitungskennzeichen AbrechnungOhneBesonderheit => new SchlüsselVerarbeitungskennzeichen("01");
|
||||
public static SchlüsselVerarbeitungskennzeichen Nachforderung => new SchlüsselVerarbeitungskennzeichen("02");
|
||||
public static SchlüsselVerarbeitungskennzeichen Zuzahlungsforderung => new SchlüsselVerarbeitungskennzeichen("03");
|
||||
public static SchlüsselVerarbeitungskennzeichen Korrekturrechnung => new SchlüsselVerarbeitungskennzeichen("04");
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLGA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal
|
||||
@@ -52,12 +52,12 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLGAFKT()
|
||||
{
|
||||
Verarbeitungskennzeichen = new Datenelement(2, Feldart.Muss);
|
||||
Sammelrechnung = new Datenelement(1, Feldart.Kann);
|
||||
IKLeistungserbringers = new Datenelement(9, Feldart.Muss);
|
||||
IKKostenträger = new Datenelement(9, Feldart.Muss);
|
||||
IKKrankenkasse = new Datenelement(9, Feldart.Kann);
|
||||
IKAbsender = new Datenelement(9, Feldart.Muss);
|
||||
Verarbeitungskennzeichen = new Datenelement("Verarbeitungskennzeichen", 2, Feldart.Muss);
|
||||
Sammelrechnung = new Datenelement("Sammelrechnung", 1, Feldart.Kann);
|
||||
IKLeistungserbringers = new Datenelement("IKLeistungserbringers", 9, Feldart.Muss);
|
||||
IKKostenträger = new Datenelement("IKKostenträger", 9, Feldart.Muss);
|
||||
IKKrankenkasse = new Datenelement("IKKrankenkasse", 9, Feldart.Kann);
|
||||
IKAbsender = new Datenelement("IKAbsender", 9, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "FKT";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLGA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment muss je Nachricht mindestens zweimal und kann höchstens
|
||||
@@ -69,10 +69,10 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLGAGES()
|
||||
{
|
||||
Status = new Datenelement(2, Feldart.Muss);
|
||||
Gesamtrechnungsbetrag = new Datenelement(3, 13, Feldart.Muss);
|
||||
Gesamtbruttobetrag = new Datenelement(3, 13, Feldart.Muss);
|
||||
GesamtbetragZuzahlung = new Datenelement(3, 13, Feldart.Kann);
|
||||
Status = new Datenelement("Status", 2, Feldart.Muss);
|
||||
Gesamtrechnungsbetrag = new Datenelement("Gesamtrechnungsbetrag", 3, 13, Feldart.Muss);
|
||||
Gesamtbruttobetrag = new Datenelement("Gesamtbruttobetrag", 3, 13, Feldart.Muss);
|
||||
GesamtbetragZuzahlung = new Datenelement("GesamtbetragZuzahlung", 3, 13, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "GES";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLGA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal
|
||||
@@ -33,10 +33,10 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLGANAM()
|
||||
{
|
||||
Name1 = new Datenelement(0, 30, Feldart.Muss);
|
||||
Name2 = new Datenelement(0, 30, Feldart.Kann);
|
||||
Name3 = new Datenelement(0, 30, Feldart.Kann);
|
||||
Name4 = new Datenelement(0, 70, Feldart.Kann);
|
||||
Name1 = new Datenelement("Name1", 0, 30, Feldart.Muss);
|
||||
Name2 = new Datenelement("Name2", 0, 30, Feldart.Kann);
|
||||
Name3 = new Datenelement("Name3", 0, 30, Feldart.Kann);
|
||||
Name4 = new Datenelement("Name4", 0, 70, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "NAM";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLGA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal zu
|
||||
@@ -69,11 +69,11 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLGAREC()
|
||||
{
|
||||
Rechnungsnummer = new Datenelementgruppe(2);
|
||||
SammelRechnungsnummer = Rechnungsnummer.Datenelemente[0] = new Datenelement(0, 14, Feldart.Muss);
|
||||
EinzelRechnungsnummer = Rechnungsnummer.Datenelemente[1] = new Datenelement(0, 6, Feldart.Muss);
|
||||
Datum = new Datenelement(8, Feldart.Muss);
|
||||
Rechnungsart = new Datenelement(1, Feldart.Muss);
|
||||
Rechnungsnummer = new Datenelementgruppe("Rechnungsnummer", 2);
|
||||
SammelRechnungsnummer = Rechnungsnummer.Datenelemente[0] = new Datenelement("SammelRechnungsnummer", 0, 14, Feldart.Muss);
|
||||
EinzelRechnungsnummer = Rechnungsnummer.Datenelemente[1] = new Datenelement("EinzelRechnungsnummer", 0, 6, Feldart.Muss);
|
||||
Datum = new Datenelement("Datum", 8, Feldart.Muss);
|
||||
Rechnungsart = new Datenelement("Rechnungsart", 1, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override List<Dateneinheit> GetBody()
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLGA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment kann je Nachricht
|
||||
@@ -31,8 +31,8 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLGASKO()
|
||||
{
|
||||
SkontoProzent = new Datenelement(3, 5, Feldart.Muss);
|
||||
Zahlungsziel = new Datenelement(0, 3, Feldart.Muss);
|
||||
SkontoProzent = new Datenelement("SkontoProzent", 3, 5, Feldart.Muss);
|
||||
Zahlungsziel = new Datenelement("Zahlungsziel", 0, 3, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "SKO";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLGA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment kann je Nachricht einmal übermittelt werden. Es ist nicht
|
||||
@@ -25,8 +25,8 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLGAUST()
|
||||
{
|
||||
Steuernummer = new Datenelement(0, 20, Feldart.Muss);
|
||||
Kennung = new Datenelement(1, Feldart.Kann);
|
||||
Steuernummer = new Datenelement("Steuernummer", 0, 20, Feldart.Muss);
|
||||
Kennung = new Datenelement("Kennung", 1, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UST";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Abrechnungsfall
|
||||
@@ -46,11 +46,11 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLABES()
|
||||
{
|
||||
GesamtbetragBrutto = new Datenelement(3, 13, Feldart.Muss);
|
||||
GesamtbetragGesetzlicheZuzahlung = new Datenelement(3, 13, Feldart.Kann);
|
||||
GesamtbetragProzentualeZuzahlung = new Datenelement(3, 13, Feldart.Kann);
|
||||
PauschalerZuzahlungsbetrag = new Datenelement(3, 13, Feldart.Kann);
|
||||
GesamtbetragEigenanteil = new Datenelement(3, 13, Feldart.Kann);
|
||||
GesamtbetragBrutto = new Datenelement("GesamtbetragBrutto", 3, 13, Feldart.Muss);
|
||||
GesamtbetragGesetzlicheZuzahlung = new Datenelement("GesamtbetragGesetzlicheZuzahlung", 3, 13, Feldart.Kann);
|
||||
GesamtbetragProzentualeZuzahlung = new Datenelement("GesamtbetragProzentualeZuzahlung", 3, 13, Feldart.Kann);
|
||||
PauschalerZuzahlungsbetrag = new Datenelement("PauschalerZuzahlungsbetrag", 3, 13, Feldart.Kann);
|
||||
GesamtbetragEigenanteil = new Datenelement("GesamtbetragEigenanteil", 3, 13, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "BES";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist 1 mal je Diagnose
|
||||
@@ -25,8 +25,8 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLADIA()
|
||||
{
|
||||
Diagnoseschlüssel = new Datenelement(0, 12, Feldart.Kann);
|
||||
Diagnosetext = new Datenelement(0, 70, Feldart.Kann);
|
||||
Diagnoseschlüssel = new Datenelement("Diagnoseschlüssel", 0, 12, Feldart.Kann);
|
||||
Diagnosetext = new Datenelement("Diagnosetext", 0, 70, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "DIA";
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist für jede Abrechnungsposition, bezogen auf den Tag
/// der Leistungserbringung, einmal zu
/// übermitteln
|
||||
@@ -88,15 +88,15 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAENF()
|
||||
{
|
||||
Identifikationsnummer = new Datenelement(0, 3, Feldart.Kann);
|
||||
Leistungserbringergruppe = new Datenelementgruppe(2);
|
||||
Abrechnungscode = Leistungserbringergruppe.Datenelemente[0] = new Datenelement(2, Feldart.Muss);
|
||||
Tarifkennzeichen = Leistungserbringergruppe.Datenelemente[1] = new Datenelement(5, Feldart.Muss);
|
||||
ArtLeistung = new Datenelement(0, 10, Feldart.Muss);
|
||||
AnzahlMenge = new Datenelement(3, 7, Feldart.Muss);
|
||||
EinzelbetragAbrechnungsposition = new Datenelement(3, 13, Feldart.Muss);
|
||||
DatumLeistungserbringung = new Datenelement(8, Feldart.Muss);
|
||||
BetragZuzahlung = new Datenelement(3, 13, Feldart.Kann);
|
||||
Identifikationsnummer = new Datenelement("Identifikationsnummer", 0, 3, Feldart.Kann);
|
||||
Leistungserbringergruppe = new Datenelementgruppe("Leistungserbringergruppe", 2);
|
||||
Abrechnungscode = Leistungserbringergruppe.Datenelemente[0] = new Datenelement("Abrechnungscode", 2, Feldart.Muss);
|
||||
Tarifkennzeichen = Leistungserbringergruppe.Datenelemente[1] = new Datenelement("Tarifkennzeichen", 5, Feldart.Muss);
|
||||
ArtLeistung = new Datenelement("ArtLeistung", 0, 10, Feldart.Muss);
|
||||
AnzahlMenge = new Datenelement("AnzahlMenge", 3, 7, Feldart.Muss);
|
||||
EinzelbetragAbrechnungsposition = new Datenelement("EinzelbetragAbrechnungsposition", 3, 13, Feldart.Muss);
|
||||
DatumLeistungserbringung = new Datenelement("DatumLeistungserbringung", 8, Feldart.Muss);
|
||||
BetragZuzahlung = new Datenelement("BetragZuzahlung", 3, 13, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "ENF";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal zu übermitteln.
|
||||
@@ -51,12 +51,12 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAFKT()
|
||||
{
|
||||
Verarbeitungskennzeichen = new Datenelement(2, Feldart.Muss);
|
||||
Freifeld = new Datenelement(1, Feldart.Kann);
|
||||
IKLeistungserbringers = new Datenelement(9, Feldart.Muss);
|
||||
IKKostenträgers = new Datenelement(9, Feldart.Muss);
|
||||
IKKrankenkasse = new Datenelement(9, Feldart.Muss);
|
||||
IKRechnungsstellers = new Datenelement(9, Feldart.Kann);
|
||||
Verarbeitungskennzeichen = new Datenelement("Verarbeitungskennzeichen", 2, Feldart.Muss);
|
||||
Freifeld = new Datenelement("Freifeld", 1, Feldart.Kann);
|
||||
IKLeistungserbringers = new Datenelement("IKLeistungserbringers", 9, Feldart.Muss);
|
||||
IKKostenträgers = new Datenelement("IKKostenträgers", 9, Feldart.Muss);
|
||||
IKKrankenkasse = new Datenelement("IKKrankenkasse", 9, Feldart.Muss);
|
||||
IKRechnungsstellers = new Datenelement("IKRechnungsstellers", 9, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "FKT";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment kann für jeden Abrechnungsfall einmal übermittelt
|
||||
@@ -27,9 +27,9 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAIMG()
|
||||
{
|
||||
Abrechnungsjahr = new Datenelement(4, Feldart.Muss);
|
||||
Abrechnungsmonat = new Datenelement(2, Feldart.Muss);
|
||||
Identifikationsmerkmal = new Datenelement(9, Feldart.Muss);
|
||||
Abrechnungsjahr = new Datenelement("Abrechnungsjahr", 4, Feldart.Muss);
|
||||
Abrechnungsmonat = new Datenelement("Abrechnungsmonat", 2, Feldart.Muss);
|
||||
Identifikationsmerkmal = new Datenelement("Identifikationsmerkmal", 9, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "IMG";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Abrechnungsfall
|
||||
@@ -41,11 +41,11 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAINV()
|
||||
{
|
||||
VersichertenNummer = new Datenelement(0, 12, Feldart.Kann);
|
||||
Versichertenstatus = new Datenelement(5, Feldart.Kann);
|
||||
Beleginformation = new Datenelement(1, Feldart.Kann);
|
||||
Belegnummer = new Datenelement(0, 10, Feldart.Muss);
|
||||
KennzeichenBesondereVersorgungsform = new Datenelement(0, 25, Feldart.Kann);
|
||||
VersichertenNummer = new Datenelement("VersichertenNummer", 0, 12, Feldart.Kann);
|
||||
Versichertenstatus = new Datenelement("Versichertenstatus", 5, Feldart.Kann);
|
||||
Beleginformation = new Datenelement("Beleginformation", 1, Feldart.Kann);
|
||||
Belegnummer = new Datenelement("Belegnummer", 0, 10, Feldart.Muss);
|
||||
KennzeichenBesondereVersorgungsform = new Datenelement("KennzeichenBesondereVersorgungsform", 0, 25, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "INV";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist nur dann zu übermitteln, wenn für die abrechnungsfähige Einzelposition (ENF) zusätzlich Mehrwertsteuer vertraglich vereinbart ist.
|
||||
@@ -25,8 +25,8 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAMWS()
|
||||
{
|
||||
Mehrwertsteuersatz = new Datenelement(3, 8, Feldart.Muss);
|
||||
BetragMehrwertsteuer = new Datenelement(3, 13, Feldart.Muss);
|
||||
Mehrwertsteuersatz = new Datenelement("Mehrwertsteuersatz", 3, 8, Feldart.Muss);
|
||||
BetragMehrwertsteuer = new Datenelement("BetragMehrwertsteuer", 3, 13, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "MWS";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Abrechnungsfall
|
||||
@@ -51,13 +51,13 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLANAD()
|
||||
{
|
||||
Nachname = new Datenelement(0, 47, Feldart.Muss);
|
||||
Vorname = new Datenelement(0, 30, Feldart.Muss);
|
||||
Geburtsdatum = new Datenelement(8, Feldart.Muss);
|
||||
StraßeNr = new Datenelement(0, 30, Feldart.Kann);
|
||||
PLZ = new Datenelement(0, 7, Feldart.Kann);
|
||||
Wohnort = new Datenelement(0, 25, Feldart.Kann);
|
||||
Länderkennzeichen = new Datenelement(0, 3, Feldart.Kann);
|
||||
Nachname = new Datenelement("Nachname", 0, 47, Feldart.Muss);
|
||||
Vorname = new Datenelement("Vorname", 0, 30, Feldart.Muss);
|
||||
Geburtsdatum = new Datenelement("Geburtsdatum", 8, Feldart.Muss);
|
||||
StraßeNr = new Datenelement("StraßeNr", 0, 30, Feldart.Kann);
|
||||
PLZ = new Datenelement("PLZ", 0, 7, Feldart.Kann);
|
||||
Wohnort = new Datenelement("Wohnort", 0, 25, Feldart.Kann);
|
||||
Länderkennzeichen = new Datenelement("Länderkennzeichen", 0, 3, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "NAD";
|
||||
@@ -1,10 +1,11 @@
|
||||
using System;
|
||||
using Dakota.Models.Segmente.SLGA;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal zu
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Abrechnungsfall
/// einmal zu übermitteln, wenn eine
|
||||
@@ -24,9 +24,9 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLASKZ()
|
||||
{
|
||||
Genehmigungskennzeichen = new Datenelement(0, 20, Feldart.Muss);
|
||||
DatumGenehmigung = new Datenelement(8, Feldart.Muss);
|
||||
ArtGenehmigung = new Datenelement(2, Feldart.Muss);
|
||||
Genehmigungskennzeichen = new Datenelement("Genehmigungskennzeichen", 0, 20, Feldart.Muss);
|
||||
DatumGenehmigung = new Datenelement("DatumGenehmigung", 8, Feldart.Muss);
|
||||
ArtGenehmigung = new Datenelement("ArtGenehmigung", 2, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "SKZ";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment kann je Abrechnungsposition (ENF) einmal übermittelt
|
||||
@@ -44,12 +44,12 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLASUT()
|
||||
{
|
||||
GefahreneKilometer = new Datenelement(0, 6, Feldart.Kann);
|
||||
Uhrzeit = new Datenelement(4, Feldart.Kann);
|
||||
UhrzeitBis = new Datenelement(4, Feldart.Kann);
|
||||
Dauer = new Datenelement(0, 4, Feldart.Kann);
|
||||
VersorgungszeitraumVon = new Datenelement(8, Feldart.Kann);
|
||||
VersorgungszeitraumBis = new Datenelement(8, Feldart.Kann);
|
||||
GefahreneKilometer = new Datenelement("GefahreneKilometer", 0, 6, Feldart.Kann);
|
||||
Uhrzeit = new Datenelement("Uhrzeit", 4, Feldart.Kann);
|
||||
UhrzeitBis = new Datenelement("UhrzeitBis", 4, Feldart.Kann);
|
||||
Dauer = new Datenelement("Dauer", 0, 4, Feldart.Kann);
|
||||
VersorgungszeitraumVon = new Datenelement("VersorgungszeitraumVon", 8, Feldart.Kann);
|
||||
VersorgungszeitraumBis = new Datenelement("VersorgungszeitraumBis", 8, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "SUT";
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment kann je Abrechnungspositionsnummer einmal übermittelt
|
||||
@@ -16,7 +16,7 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLATXT()
|
||||
{
|
||||
Text = new Datenelement(0, 70, Feldart.Muss);
|
||||
Text = new Datenelement("Text", 0, 70, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "TXT";
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
@@ -44,12 +44,12 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAURI()
|
||||
{
|
||||
UrsprünglichesIKdesLeistungserbringers = new Datenelement(9, Feldart.Muss);
|
||||
UrsprünglicheRechnungsnummer = new Datenelementgruppe(2);
|
||||
UrsprünglicheSammelRechnungsnummer = UrsprünglicheRechnungsnummer.Datenelemente[0] = new Datenelement(0, 14, Feldart.Muss);
|
||||
UrsprünglicheEinzelRechnungsnummer = UrsprünglicheRechnungsnummer.Datenelemente[1] = new Datenelement(0, 6, Feldart.Muss);
|
||||
UrsprünglichesRechnungsdatum = new Datenelement(8, Feldart.Muss);
|
||||
UrsprünglicheBelegnummer = new Datenelement(0, 10, Feldart.Muss);
|
||||
UrsprünglichesIKdesLeistungserbringers = new Datenelement("UrsprünglichesIKdesLeistungserbringers", 9, Feldart.Muss);
|
||||
UrsprünglicheRechnungsnummer = new Datenelementgruppe("UrsprünglicheRechnungsnummer", 2);
|
||||
UrsprünglicheSammelRechnungsnummer = UrsprünglicheRechnungsnummer.Datenelemente[0] = new Datenelement("UrsprünglicheSammelRechnungsnummer", 0, 14, Feldart.Muss);
|
||||
UrsprünglicheEinzelRechnungsnummer = UrsprünglicheRechnungsnummer.Datenelemente[1] = new Datenelement("UrsprünglicheEinzelRechnungsnummer", 0, 6, Feldart.Muss);
|
||||
UrsprünglichesRechnungsdatum = new Datenelement("UrsprünglichesRechnungsdatum", 8, Feldart.Muss);
|
||||
UrsprünglicheBelegnummer = new Datenelement("UrsprünglicheBelegnummer", 0, 10, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "URI";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist/kann je Abrechnungsfall einmal übermittelt werden.
|
||||
@@ -49,13 +49,13 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAZUV()
|
||||
{
|
||||
Betriebsstättennummer = new Datenelement(0, 9, Feldart.Muss);
|
||||
LebenslangeArztnummer = new Datenelement(0, 9, Feldart.Muss);
|
||||
VerordnungsAusstellEinsatzdatum = new Datenelement(8, Feldart.Kann);
|
||||
Zuzahlungskennzeichen = new Datenelement(1, Feldart.Muss);
|
||||
Unfallkennzeichen = new Datenelement(1, Feldart.Kann);
|
||||
KennzeichenBVGSonstiges = new Datenelement(1, Feldart.Kann);
|
||||
KennzeichenVerordnungsbesonderheiten = new Datenelement(1, Feldart.Kann);
|
||||
Betriebsstättennummer = new Datenelement("Betriebsstättennummer", 0, 9, Feldart.Muss);
|
||||
LebenslangeArztnummer = new Datenelement("LebenslangeArztnummer", 0, 9, Feldart.Muss);
|
||||
VerordnungsAusstellEinsatzdatum = new Datenelement("VerordnungsAusstellEinsatzdatum", 8, Feldart.Kann);
|
||||
Zuzahlungskennzeichen = new Datenelement("Zuzahlungskennzeichen", 1, Feldart.Muss);
|
||||
Unfallkennzeichen = new Datenelement("Unfallkennzeichen", 1, Feldart.Kann);
|
||||
KennzeichenBVGSonstiges = new Datenelement("KennzeichenBVGSonstiges", 1, Feldart.Kann);
|
||||
KennzeichenVerordnungsbesonderheiten = new Datenelement("KennzeichenVerordnungsbesonderheiten", 1, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "ZUV";
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
namespace Dakota.Models.Segmente.SLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist bei der Abrechnung
/// des Leistungserbringergruppensammelschlüssels G - N bis auf weiteres
/// nicht zu übermitteln.Das Segment
|
||||
@@ -48,12 +48,12 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentSLLAZUZ()
|
||||
{
|
||||
Identifikationsnummer = new Datenelement(0, 3, Feldart.Muss);
|
||||
Bruttobetrag = new Datenelement(3, 13, Feldart.Muss);
|
||||
Zuzahlungsart = new Datenelement(2, Feldart.Kann);
|
||||
BetragGesetzlicheZuzahlung = new Datenelement(3, 13, Feldart.Kann);
|
||||
BetragEigenanteil = new Datenelement(3, 13, Feldart.Kann);
|
||||
Versorgungszeitraum = new Datenelement(0, 2, Feldart.Kann);
|
||||
Identifikationsnummer = new Datenelement("Identifikationsnummer", 0, 3, Feldart.Muss);
|
||||
Bruttobetrag = new Datenelement("Bruttobetrag", 3, 13, Feldart.Muss);
|
||||
Zuzahlungsart = new Datenelement("Zuzahlungsart", 2, Feldart.Kann);
|
||||
BetragGesetzlicheZuzahlung = new Datenelement("BetragGesetzlicheZuzahlung", 3, 13, Feldart.Kann);
|
||||
BetragEigenanteil = new Datenelement("BetragEigenanteil", 3, 13, Feldart.Kann);
|
||||
Versorgungszeitraum = new Datenelement("Versorgungszeitraum", 0, 2, Feldart.Kann);
|
||||
}
|
||||
|
||||
public override string GetHead() => "ZUZ";
|
||||
@@ -6,14 +6,14 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
{
|
||||
internal abstract class Segment : Dateneinheit
|
||||
internal abstract class Segment : IRowable
|
||||
{
|
||||
//public List<Datenelement> Datenelemente { get; set; }
|
||||
|
||||
public abstract string GetHead();
|
||||
public abstract List<Dateneinheit> GetBody();
|
||||
|
||||
public override string GetValue()
|
||||
public string GetRows()
|
||||
{
|
||||
Dateneinheit lastzero = null;
|
||||
var body = GetBody();
|
||||
|
||||
@@ -79,18 +79,18 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentUNB()
|
||||
{
|
||||
Syntax = new Datenelementgruppe(2);
|
||||
SyntaxKennung = Syntax.Datenelemente[0] = new Datenelement(4, Feldart.Muss);
|
||||
SyntaxVersionsnummer = Syntax.Datenelemente[1] = new Datenelement(1, Feldart.Muss);
|
||||
Absenderdatei = new Datenelement(0, 35, Feldart.Muss);
|
||||
Empfangdatei = new Datenelement(0, 35, Feldart.Muss);
|
||||
DatumUhrzeit = new Datenelementgruppe(2);
|
||||
Datum = DatumUhrzeit.Datenelemente[0] = new Datenelement(8, Feldart.Muss);
|
||||
Uhrzeit = DatumUhrzeit.Datenelemente[1] = new Datenelement(4, Feldart.Muss);
|
||||
Datenaustauschreferenz = new Datenelement(0, 14, Feldart.Muss);
|
||||
Leistungsbereich = new Datenelement(1, Feldart.Muss);
|
||||
Anwengundsreferenz = new Datenelement(0, 14, Feldart.Muss);
|
||||
Testindikator = new Datenelement(1, Feldart.Muss);
|
||||
Syntax = new Datenelementgruppe("Syntax", 2);
|
||||
SyntaxKennung = Syntax.Datenelemente[0] = new Datenelement("SyntaxKennung", 4, Feldart.Muss);
|
||||
SyntaxVersionsnummer = Syntax.Datenelemente[1] = new Datenelement("SyntaxVersionsnummer", 1, Feldart.Muss);
|
||||
Absenderdatei = new Datenelement("Absenderdatei", 0, 35, Feldart.Muss);
|
||||
Empfangdatei = new Datenelement("Empfangdatei", 0, 35, Feldart.Muss);
|
||||
DatumUhrzeit = new Datenelementgruppe("DatumUhrzeit", 2);
|
||||
Datum = DatumUhrzeit.Datenelemente[0] = new Datenelement("Datum", 8, Feldart.Muss);
|
||||
Uhrzeit = DatumUhrzeit.Datenelemente[1] = new Datenelement("Uhrzeit", 4, Feldart.Muss);
|
||||
Datenaustauschreferenz = new Datenelement("Datenaustauschreferenz", 0, 14, Feldart.Muss);
|
||||
Leistungsbereich = new Datenelement("Leistungsbereich", 1, Feldart.Muss);
|
||||
Anwengundsreferenz = new Datenelement("Anwengundsreferenz", 0, 14, Feldart.Muss);
|
||||
Testindikator = new Datenelement("Testindikator", 1, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNB";
|
||||
|
||||
@@ -58,12 +58,12 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentUNH()
|
||||
{
|
||||
Nachrichtenreferenznummer = new Datenelement(0, 14, Feldart.Muss);
|
||||
Nachrichtenerkennung = new Datenelementgruppe(4);
|
||||
NachrichtenTypKennung = Nachrichtenerkennung.Datenelemente[0] = new Datenelement(0, 6, Feldart.Muss);
|
||||
Verionsnummer = Nachrichtenerkennung.Datenelemente[1] = new Datenelement(0, 3, Feldart.Muss);
|
||||
FreigabeNrDesTypes = Nachrichtenerkennung.Datenelemente[2] = new Datenelement(0, 3, Feldart.Muss);
|
||||
VerwaltendeOrganisation = Nachrichtenerkennung.Datenelemente[3] = new Datenelement(0, 2, Feldart.Muss);
|
||||
Nachrichtenreferenznummer = new Datenelement("Nachrichtenreferenznummer", 0, 14, Feldart.Muss);
|
||||
Nachrichtenerkennung = new Datenelementgruppe("Nachrichtenerkennung", 4);
|
||||
NachrichtenTypKennung = Nachrichtenerkennung.Datenelemente[0] = new Datenelement("NachrichtenTypKennung", 0, 6, Feldart.Muss);
|
||||
Verionsnummer = Nachrichtenerkennung.Datenelemente[1] = new Datenelement("Verionsnummer", 0, 3, Feldart.Muss);
|
||||
FreigabeNrDesTypes = Nachrichtenerkennung.Datenelemente[2] = new Datenelement("FreigabeNrDesTypes", 0, 3, Feldart.Muss);
|
||||
VerwaltendeOrganisation = Nachrichtenerkennung.Datenelemente[3] = new Datenelement("VerwaltendeOrganisation", 0, 2, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNH";
|
||||
|
||||
@@ -23,8 +23,8 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentUNT()
|
||||
{
|
||||
AnzahlEinheiten = new Datenelement(6, Feldart.Muss);
|
||||
Nachrichtenreferenznummer = new Datenelement(0, 14, Feldart.Muss);
|
||||
AnzahlEinheiten = new Datenelement("AnzahlEinheiten", 6, Feldart.Muss);
|
||||
Nachrichtenreferenznummer = new Datenelement("Nachrichtenreferenznummer", 0, 14, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNT";
|
||||
|
||||
@@ -23,8 +23,8 @@ namespace Dakota.Models.Segmente
|
||||
|
||||
public SegmentUNZ()
|
||||
{
|
||||
AnzahlNachrichten = new Datenelement(6, Feldart.Muss);
|
||||
Datenaustauschreferenz = new Datenelement(0, 14, Feldart.Muss);
|
||||
AnzahlNachrichten = new Datenelement("AnzahlNachrichten", 6, Feldart.Muss);
|
||||
Datenaustauschreferenz = new Datenelement("Datenaustauschreferenz", 0, 14, Feldart.Muss);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNZ";
|
||||
|
||||
BIN
ProjectInfo/Dakota/Anlage_1_TP5_V18_20220714.pdf
Normal file
BIN
ProjectInfo/Dakota/Anlage_1_TP5_V18_20220714.pdf
Normal file
Binary file not shown.
BIN
ProjectInfo/Dakota/Anlage_3_TP5_V18_20221027.pdf
Normal file
BIN
ProjectInfo/Dakota/Anlage_3_TP5_V18_20221027.pdf
Normal file
Binary file not shown.
@@ -272,14 +272,13 @@ namespace BeWo.Report
|
||||
|
||||
// ServiceInvoice Oid ist noch nicht in S2C List
|
||||
|
||||
// Frage, ob ServiceInvoice - InvoiceBase - InvoiceId nicht leer ist
|
||||
// Frage, ob InvoiceId existiert
|
||||
if (!String.IsNullOrEmpty(invoice.InvoiceBase.InvoiceId))
|
||||
// Falls ServiceInvoice - InvoiceBase - InvoiceId nicht leer ist, füge in S2C Liste ein
|
||||
// Falls InvoiceId existiert
|
||||
serviceInvoiceOid2CostbearerId.Add(oid, invoice.InvoiceBase.InvoiceId);
|
||||
else
|
||||
// Ab wann? Welcher Sinn?
|
||||
{
|
||||
// Falls ServiceInvoice - InvoiceBase - InvoiceId leer ist
|
||||
// Falls InvoiceId nicht existiert
|
||||
// Gehe jede peroide von ServiceInvoice - ServiceInvoicePeriodList durch
|
||||
foreach (var period in invoice.ServiceInvoicePeriodList)
|
||||
{
|
||||
|
||||
@@ -478,6 +478,7 @@
|
||||
<Compile Include="ServiceUtils\DistanceCalculator\GoogleDistanceMatrixAPI.cs" />
|
||||
<Compile Include="ServiceUtils\DistanceCalculator\IDistanceAPI.cs" />
|
||||
<Compile Include="ServiceUtils\DistanceCalculator\OpenrouteServiceAPI.cs" />
|
||||
<Compile Include="ServiceUtils\Generell\DakotaFileCreator.cs" />
|
||||
<Compile Include="UnitOfWork\HibernateSessionEndpointBehavior.cs" />
|
||||
<Compile Include="UnitOfWork\HibernateSessionBehaviorExtension.cs" />
|
||||
<Compile Include="UnitOfWork\HibernateSessionContextInitializer.cs" />
|
||||
@@ -486,6 +487,10 @@
|
||||
<Compile Include="XAMLInformation\InfoViaXAMLManager.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Dakota\Dakota.csproj">
|
||||
<Project>{47331732-dd96-4075-869f-83aa9f3f9937}</Project>
|
||||
<Name>Dakota</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Data\Data.csproj">
|
||||
<Project>{b0d73e3d-4ae7-4024-93a6-db1f46d7ccee}</Project>
|
||||
<Name>Data</Name>
|
||||
@@ -514,7 +519,6 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="ServiceUtils\API\" />
|
||||
<Folder Include="ServiceUtils\Generell\" />
|
||||
<Folder Include="Utils\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1299,5 +1299,9 @@ namespace BeWo.Service.ServiceContracts
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
SchedulerAppointmentDC GetRootAppointment(string recurrenceId);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
string GetDakotaFileFormat(object param);
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ using BeWo.Service.Plugins;
|
||||
using BeWo.Service.SBD;
|
||||
using BeWo.Service.Security;
|
||||
using BeWo.Service.ServiceContracts;
|
||||
using BeWo.Service.ServiceUtils.Generell;
|
||||
using BeWo.Service.Vorlagen;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
@@ -23,6 +24,7 @@ using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.DataContracts.Reports;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Services;
|
||||
using Dakota;
|
||||
using Newtonsoft.Json;
|
||||
using RestSharp;
|
||||
using System;
|
||||
@@ -7698,5 +7700,25 @@ namespace BeWo.Service.ServiceImplementations
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public string GetDakotaFileFormat(object param)
|
||||
{
|
||||
try
|
||||
{
|
||||
var baseoid = long.Parse((string)param);
|
||||
|
||||
var accounting = new AccountingServiceImp();
|
||||
|
||||
var invoice = accounting.GetServiceInvoiceByInvoiceBaseOid(baseoid);
|
||||
|
||||
var code = DakotaFileCreator.GetAsciiCode(invoice);
|
||||
|
||||
return code;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
64
Service/ServiceUtils/Generell/DakotaFileCreator.cs
Normal file
64
Service/ServiceUtils/Generell/DakotaFileCreator.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using BS.Shared.DataContracts;
|
||||
using Dakota;
|
||||
using Dakota.Models.Schlüssel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.ServiceUtils.Generell
|
||||
{
|
||||
public static class DakotaFileCreator
|
||||
{
|
||||
public static string GetAsciiCode(ServiceInvoiceDC dc)
|
||||
{
|
||||
var info = LoadInfo(dc);
|
||||
|
||||
var file = new DakotaFile();
|
||||
|
||||
file.Generate(info);
|
||||
|
||||
return file.GetRows();
|
||||
}
|
||||
|
||||
public static DakotaFileInfo LoadInfo(ServiceInvoiceDC dc)
|
||||
{
|
||||
var res = new DakotaFileInfo();
|
||||
|
||||
res.Absenderbezeichnung = "123456789";
|
||||
res.Empfangerbezeichnung = "987654321";
|
||||
res.Datenaustauschreferenz = 1;
|
||||
res.Anwendungsreferenz = "abovollkra.txt";
|
||||
res.Testindikator = SchlüsselTestindikator.Testdatei;
|
||||
|
||||
res.IKLeistungserbringers = "abovollkrass.txt";
|
||||
res.IKKostenträger = "abovollkrass.txt";
|
||||
res.IKKrankenkasse = "abovollkrass.txt";
|
||||
res.Rechnungsnummer = dc.InvoiceBase.InvoiceNumber;
|
||||
// Einheitlich monatlich
|
||||
res.Rechnungsdatum = dc.InvoiceBase.InvoiceDate.Value;
|
||||
|
||||
res.Summenstatus = SchlüsselSummenstatus.Mitglieder;
|
||||
res.Gesamtrechnungsbetrag = 3.5m;
|
||||
res.Gesamtbruttobetrag = 3.5m;
|
||||
res.GesamtbetragZuzahlung = 3.5m;
|
||||
res.Rechnungsart = SchlüsselRechnungsart.AbrechnungVonLeistungserbringer;
|
||||
res.Name1 = "nam7";
|
||||
res.Name2 = "nam4";
|
||||
res.Name3 = "nam3";
|
||||
res.Name4 = "nam1";
|
||||
|
||||
res.Verarbeitungskennzeichen = SchlüsselVerarbeitungskennzeichen.AbrechnungOhneBesonderheit;
|
||||
|
||||
res.IKKrankenkasse = "abovollkrass.txt";
|
||||
res.IKKrankenkasse = "abovollkrass.txt";
|
||||
res.IKKrankenkasse = "abovollkrass.txt";
|
||||
res.IKKrankenkasse = "abovollkrass.txt";
|
||||
res.IKKrankenkasse = "abovollkrass.txt";
|
||||
res.IKKrankenkasse = "abovollkrass.txt";
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
34
Shared/Extensions/DakotaExtensions.cs
Normal file
34
Shared/Extensions/DakotaExtensions.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using BS.Shared.DataContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Shared.Extensions
|
||||
{
|
||||
public static class DakotaExtensions
|
||||
{
|
||||
public static bool IsSozioTherapie(this ServiceInvoiceDC serviceDC)
|
||||
=> IsSozioTherapie(serviceDC?.InvoiceBase);
|
||||
|
||||
public static bool IsSozioTherapie(this InvoiceBaseDC invoiceBase)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (invoiceBase.InvoiceTitle.ToLower().Contains("soziotherapie"))
|
||||
return true;
|
||||
|
||||
if (invoiceBase.InvoiceId.ToLower().Contains("soziotherapie"))
|
||||
return true;
|
||||
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -292,6 +292,7 @@
|
||||
<Compile Include="DataContracts\Reports\AuslastungAnalysisSupportConceptDC.cs" />
|
||||
<Compile Include="DataContracts\ServiceRecordHistoryDC.cs" />
|
||||
<Compile Include="DataContracts\SupportPinDC.cs" />
|
||||
<Compile Include="Extensions\DakotaExtensions.cs" />
|
||||
<Compile Include="Extensions\EnumExtensions.cs" />
|
||||
<Compile Include="Extensions\GridExtensions.cs" />
|
||||
<Compile Include="Extensions\ICollectionExtensions.cs" />
|
||||
|
||||
Reference in New Issue
Block a user