Zwischenstand: Counter zählt korrekt
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27004.2009
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.33927.289
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client", "Client", "{E7543C39-A44C-40C9-82C9-E7FAA2D9A852}"
|
||||
EndProject
|
||||
@@ -31,6 +31,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatController", "..\Chat\C
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dakota", "Dakota\Dakota.csproj", "{47331732-DD96-4075-869F-83AA9F3F9937}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B6039E62-D43E-477A-BE82-EADB1057A3A2}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.editorconfig = .editorconfig
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|.NET = Debug|.NET
|
||||
|
||||
@@ -44,22 +44,26 @@
|
||||
<Compile Include="DakotaConfig.cs" />
|
||||
<Compile Include="DakotaEnums.cs" />
|
||||
<Compile Include="DakotaFile.cs" />
|
||||
<Compile Include="DakotaFileCreator.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" />
|
||||
<Compile Include="Models\Block\BlockAbrechnungsfall.cs" />
|
||||
<Compile Include="Models\Block\BlockKostenträger.cs" />
|
||||
<Compile Include="Models\Block\BlockKrankenkarteVerordnung.cs" />
|
||||
<Compile Include="Models\Dateneinheit.cs" />
|
||||
<Compile Include="Models\Datenelement.cs" />
|
||||
<Compile Include="Models\DatenelementCounter.cs" />
|
||||
<Compile Include="Models\Datenelementgruppe.cs" />
|
||||
<Compile Include="Models\IRowable.cs" />
|
||||
<Compile Include="Models\Nachricht\Nachricht.cs" />
|
||||
<Compile Include="Models\Nachricht\NachrichtSLGA.cs" />
|
||||
<Compile Include="Models\Nachricht\NachrichtSLGA2.cs" />
|
||||
<Compile Include="Models\Nachricht\NachrichtSLLA2.cs" />
|
||||
<Compile Include="Models\Nachricht\NachrichtSLLA.cs" />
|
||||
<Compile Include="Models\Nachrichten\Nachricht.cs" />
|
||||
<Compile Include="Models\Nachrichten\NachrichtSLGA3.cs" />
|
||||
<Compile Include="Models\Nachrichten\NachrichtSLGA.cs" />
|
||||
<Compile Include="Models\Nachrichten\NachrichtSLGA2.cs" />
|
||||
<Compile Include="Models\Nachrichten\NachrichtSLLA3.cs" />
|
||||
<Compile Include="Models\Nachrichten\NachrichtSLLA2.cs" />
|
||||
<Compile Include="Models\Nachrichten\NachrichtSLLA.cs" />
|
||||
<Compile Include="Models\Schlüssel\Schlüssel.cs" />
|
||||
<Compile Include="Models\Schlüssel\SchlüsselLeistungserbringerSammelgruppenschlussel.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" />
|
||||
@@ -73,7 +77,6 @@
|
||||
<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\SLGA\SegmentSLGAFKT.cs" />
|
||||
@@ -92,9 +95,13 @@
|
||||
<Compile Include="Models\Segmente\SegmentUNT.cs" />
|
||||
<Compile Include="Models\Segmente\SegmentUNZ.cs" />
|
||||
<Compile Include="Models\Segmente\SLGA\SegmentSLGAUST.cs" />
|
||||
<Compile Include="Models\Datei\SozioTherapieDatei.cs" />
|
||||
<Compile Include="Models\Block\BlockNutzdatendatei.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Data\Data.csproj">
|
||||
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
|
||||
<Name>Data</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Shared\Shared.csproj">
|
||||
<Project>{2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4}</Project>
|
||||
<Name>Shared</Name>
|
||||
|
||||
@@ -17,4 +17,15 @@ namespace Dakota
|
||||
Alpha,
|
||||
Numerisch
|
||||
}
|
||||
|
||||
public enum Kassenart
|
||||
{
|
||||
HKK,
|
||||
AOK,
|
||||
BKK,
|
||||
IKK,
|
||||
Knappschaft,
|
||||
SVLFG,
|
||||
VDEK
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
using BS.Shared.DataContracts;
|
||||
using BeWo.Data.Entities;
|
||||
using BS.Shared.DataContracts;
|
||||
using Dakota.Models;
|
||||
using Dakota.Models.Datei;
|
||||
using Dakota.Models.Nachricht;
|
||||
using Dakota.Models.Block;
|
||||
using Dakota.Models.Nachrichten;
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
/// <summary>
|
||||
/// Interne Logik
|
||||
/// Nutzdatendatei mit Logik
|
||||
/// </summary>
|
||||
public class DakotaFile : IRowable
|
||||
internal class DakotaFile : Nachricht
|
||||
{
|
||||
internal SozioTherapieEinzelnachweis SozioTherapieEinzelnachweis { get; set; }
|
||||
internal BlockNutzdatendatei Nutzdatendatei { get; private set; }
|
||||
internal DateTime Created { get; private set; }
|
||||
|
||||
internal int NachrichtenCounter { get; set; }
|
||||
@@ -21,55 +23,120 @@ namespace Dakota
|
||||
internal int SegmentSLGACounter { get; set; }
|
||||
internal int SegmentSLLACounter { get; set; }
|
||||
|
||||
// UNB
|
||||
internal SegmentUNB SegmentUNB => SozioTherapieEinzelnachweis.UNB;
|
||||
// Block
|
||||
internal BlockKrankenkarteVerordnung BlockKrankenkarteVerordnung => SozioTherapieEinzelnachweis.BlockKrankenkarteVerordnung;
|
||||
// SLGA
|
||||
internal SegmentUNH BlockSLGAUNH => BlockKrankenkarteVerordnung.SLGAUNH;
|
||||
internal NachrichtSLGA2 BlockSLGANachricht => BlockKrankenkarteVerordnung.SLGANachricht2;
|
||||
internal SegmentUNT BlockSLGAUNT => BlockKrankenkarteVerordnung.SLGAUNT;
|
||||
// SLLA
|
||||
internal SegmentUNH BlockSLLAUNH => BlockKrankenkarteVerordnung.SLLAUNH;
|
||||
internal NachrichtSLLA2 BlockSLLANachricht => BlockKrankenkarteVerordnung.SLLANachricht2;
|
||||
internal SegmentUNT BlockSLLAUNT => BlockKrankenkarteVerordnung.SLLAUNT;
|
||||
// UNZ
|
||||
internal SegmentUNZ SegmentUNZ => SozioTherapieEinzelnachweis.UNZ;
|
||||
|
||||
public DakotaFile()
|
||||
// Rene26 Comment
|
||||
//// UNB
|
||||
//internal SegmentUNB SegmentUNB => SozioTherapieEinzelnachweis.UNB;
|
||||
//// Block
|
||||
//internal
|
||||
//internal BlockKrankenkarteVerordnung BlockKrankenkarteVerordnung => SozioTherapieEinzelnachweis.BlockKrankenkarteVerordnung;
|
||||
//// SLGA
|
||||
//internal SegmentUNH BlockSLGAUNH => BlockKrankenkarteVerordnung.SLGAUNH;
|
||||
//internal NachrichtSLGA2 BlockSLGANachricht => BlockKrankenkarteVerordnung.SLGANachricht2;
|
||||
//internal SegmentUNT BlockSLGAUNT => BlockKrankenkarteVerordnung.SLGAUNT;
|
||||
//// SLLA
|
||||
//internal SegmentUNH BlockSLLAUNH => BlockKrankenkarteVerordnung.SLLAUNH;
|
||||
//internal NachrichtSLLA2 BlockSLLANachricht => BlockKrankenkarteVerordnung.SLLANachricht2;
|
||||
//internal SegmentUNT BlockSLLAUNT => BlockKrankenkarteVerordnung.SLLAUNT;
|
||||
//// UNZ
|
||||
//internal SegmentUNZ SegmentUNZ => SozioTherapieEinzelnachweis.UNZ;
|
||||
|
||||
internal DakotaFileInfo Info { get; set; }
|
||||
|
||||
internal DakotaFile(DakotaFileInfo info)
|
||||
{
|
||||
SozioTherapieEinzelnachweis = new SozioTherapieEinzelnachweis();
|
||||
Nutzdatendatei = new BlockNutzdatendatei();
|
||||
|
||||
Info = info;
|
||||
|
||||
Created = DateTime.Now;
|
||||
|
||||
NachrichtenCounter = 1;
|
||||
AnzahlUNHCounter = 0;
|
||||
SegmentSLGACounter = 0;
|
||||
SegmentSLLACounter = 0;
|
||||
|
||||
GenerateUNBSegment();
|
||||
}
|
||||
|
||||
public void Generate(DakotaFileInfo info)
|
||||
internal void AddInvoiceItem(InvoiceItem invoice)
|
||||
{
|
||||
GenerateUNB(info);
|
||||
GenerateBlockSLGA(info);
|
||||
GenerateBlockSLLA(info);
|
||||
GenerateUNZ(info);
|
||||
var kostentrager = "123456789";
|
||||
var kostentragerblock = Nutzdatendatei.BlockKostenträger.FirstOrDefault(block => block.IKKostenträger == kostentrager);
|
||||
|
||||
if (kostentragerblock is null)
|
||||
{
|
||||
kostentragerblock = GenerateBlockKostentrager(invoice);
|
||||
|
||||
Nutzdatendatei.BlockKostenträger.Add(kostentragerblock);
|
||||
}
|
||||
|
||||
var krankenversichten = "987654321";
|
||||
var krankenversichtenblock = kostentragerblock.BlockKrankenkarteVerordnung.FirstOrDefault(block => block.IKKrankenkasseKVKarte == krankenversichten);
|
||||
|
||||
AddInvoiceItemIntoBlock(krankenversichtenblock, invoice);
|
||||
|
||||
kostentragerblock.Update();
|
||||
}
|
||||
|
||||
public void GenerateUNB(DakotaFileInfo info)
|
||||
internal void AddInvoiceItemIntoBlock(BlockKrankenkarteVerordnung block, InvoiceItem invoice)
|
||||
{
|
||||
SegmentUNB.SyntaxKennung.SetValue("UNOC");
|
||||
SegmentUNB.SyntaxVersionsnummer.SetValue("3");
|
||||
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(info.Datenaustauschreferenz, 5);
|
||||
SegmentUNB.Leistungsbereich.SetValue("O");
|
||||
SegmentUNB.Anwengundsreferenz.SetValue(info.Anwendungsreferenz);
|
||||
SegmentUNB.Testindikator.SetValue(info.Testindikator.Value);
|
||||
// Wie soll das hier sein
|
||||
|
||||
// SLLA
|
||||
}
|
||||
|
||||
public void GenerateBlockSLGA(DakotaFileInfo info)
|
||||
private BlockKostenträger GenerateBlockKostentrager(InvoiceItem invoice)
|
||||
{
|
||||
var block = new BlockKostenträger();
|
||||
|
||||
var nachrefnum = ++AnzahlUNHCounter;
|
||||
|
||||
block.SegmentUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
block.SegmentUNH.NachrichtenTypKennung.SetValue("SLGA");
|
||||
block.SegmentUNH.Verionsnummer.SetValue("18");
|
||||
block.SegmentUNH.FreigabeNrDesTypes.SetValue("0");
|
||||
block.SegmentUNH.VerwaltendeOrganisation.SetValue("0");
|
||||
|
||||
block.SegmentUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
// ! block.SegmentUNT.AnzahlEinheiten.SetValue("0");
|
||||
}
|
||||
|
||||
private BlockKrankenkarteVerordnung GenerateBlockKrankenkarte(InvoiceItem invoice)
|
||||
{
|
||||
var block = new BlockKrankenkarteVerordnung();
|
||||
|
||||
var nachrefnum = ++AnzahlUNHCounter;
|
||||
|
||||
block.SegmentSLGAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
block.SegmentSLGAUNH.NachrichtenTypKennung.SetValue("SLGA");
|
||||
block.SegmentSLGAUNH.Verionsnummer.SetValue("18");
|
||||
block.SegmentSLGAUNH.FreigabeNrDesTypes.SetValue("0");
|
||||
block.SegmentSLGAUNH.VerwaltendeOrganisation.SetValue("0");
|
||||
|
||||
block.SegmentSLGAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
// ! block.SegmentSLGAUNT.AnzahlEinheiten.SetValue("0");
|
||||
}
|
||||
|
||||
internal void Finish()
|
||||
{
|
||||
GenerateUNZSegment();
|
||||
}
|
||||
|
||||
private void GenerateUNBSegment()
|
||||
{
|
||||
Nutzdatendatei.SegmentUNB.SyntaxKennung.SetValue("UNOC");
|
||||
Nutzdatendatei.SegmentUNB.SyntaxVersionsnummer.SetValue("3");
|
||||
Nutzdatendatei.SegmentUNB.Absenderdatei.SetValue(Info.Absenderbezeichnung);
|
||||
Nutzdatendatei.SegmentUNB.Empfangdatei.SetValue(Info.Empfangerbezeichnung);
|
||||
Nutzdatendatei.SegmentUNB.Datum.SetValue(Created.ToString("yyyyMMdd"));
|
||||
Nutzdatendatei.SegmentUNB.Uhrzeit.SetValue(Created.ToString("HHmm"));
|
||||
Nutzdatendatei.SegmentUNB.Datenaustauschreferenz.SetFilledIntValue(Info.Datenaustauschreferenz, 5);
|
||||
Nutzdatendatei.SegmentUNB.Leistungsbereich.SetValue(Info.Leistungsbereich.Value);
|
||||
Nutzdatendatei.SegmentUNB.Anwengundsreferenz.SetValue(Info.Anwendungsreferenz);
|
||||
Nutzdatendatei.SegmentUNB.Testindikator.SetValue(Info.Testindikator.Value);
|
||||
}
|
||||
|
||||
private void GenerateBlockSLGA(DakotaFileInfo info)
|
||||
{
|
||||
//UNH, UNT, FKT, REC, GES00, GES, NAM
|
||||
SegmentSLGACounter += 7;
|
||||
@@ -122,7 +189,7 @@ namespace Dakota
|
||||
BlockSLGAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
}
|
||||
|
||||
public void GenerateBlockSLLA(DakotaFileInfo info)
|
||||
private void GenerateBlockSLLA(DakotaFileInfo info)
|
||||
{
|
||||
SegmentSLLACounter++;
|
||||
AnzahlUNHCounter++;
|
||||
@@ -221,10 +288,10 @@ namespace Dakota
|
||||
BlockSLLAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5);
|
||||
}
|
||||
|
||||
public void GenerateUNZ(DakotaFileInfo info)
|
||||
private void GenerateUNZSegment()
|
||||
{
|
||||
SegmentUNZ.AnzahlNachrichten.SetFilledIntValue(AnzahlUNHCounter, 6);
|
||||
SegmentUNZ.Datenaustauschreferenz.SetFilledIntValue(info.Datenaustauschreferenz, 5);
|
||||
Nutzdatendatei.SegmentUNZ.AnzahlNachrichten.SetFilledIntValue(AnzahlUNHCounter, 6);
|
||||
Nutzdatendatei.SegmentUNZ.Datenaustauschreferenz.SetFilledIntValue(Info.Datenaustauschreferenz, 5);
|
||||
}
|
||||
|
||||
public void foo(long? invoiceBaseOid)
|
||||
@@ -283,9 +350,9 @@ namespace Dakota
|
||||
|
||||
}
|
||||
|
||||
public string GetRows()
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
return SozioTherapieEinzelnachweis.GetRows();
|
||||
return Nutzdatendatei.GetSegments();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
145
Dakota/DakotaFileCreator.cs
Normal file
145
Dakota/DakotaFileCreator.cs
Normal file
@@ -0,0 +1,145 @@
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
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
|
||||
{
|
||||
internal struct DakotaKeyDictionary
|
||||
{
|
||||
public DateTime DateTime { get; set; }
|
||||
public Kassenart Kassenart { get; set; }
|
||||
public string Kostenträger { get; set; }
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null || GetType() != obj.GetType())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var objectToCompareWith = (DakotaKeyDictionary)obj;
|
||||
|
||||
return objectToCompareWith.DateTime == DateTime && objectToCompareWith.Kassenart == Kassenart &&
|
||||
objectToCompareWith.Kostenträger == Kostenträger;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ein Datei erzeungnis
|
||||
/// </summary>
|
||||
/// <param name="invoiceItems"></param>
|
||||
/// <returns></returns>
|
||||
//public static string generateasciicode(list<invoiceitemdc> invoiceitems)
|
||||
//{
|
||||
// var info = loadinfo(invoiceitems);
|
||||
|
||||
// var file = new dakotafile(info);
|
||||
|
||||
// file.generate();
|
||||
|
||||
// return file.getrows();
|
||||
//}
|
||||
|
||||
public static List<string> GenerateDakotaFilesByMonth(int year, int month)
|
||||
{
|
||||
var dict = GenerateDakotaFiles(year, month);
|
||||
|
||||
return dict.Values.Select(x => x.GetRows()).ToList();
|
||||
}
|
||||
|
||||
internal static Dictionary<DakotaKeyDictionary, DakotaFile> GenerateDakotaFiles(int year, int month)
|
||||
{
|
||||
// Datum, Kassenart, Kostenträger
|
||||
var res = new Dictionary<DakotaKeyDictionary, DakotaFile>();
|
||||
|
||||
var invoiceitems = DAOFactory.GenericDAO.GetAllActive<InvoiceItem>();
|
||||
|
||||
var first = new DateTime(year, month, 1);
|
||||
var last = new DateTime(year, month, 1).AddMonths(1).AddDays(-1);
|
||||
|
||||
var filtered = invoiceitems.Where(x => x.ItemPeriodStart == first && x.ItemPeriodEnd == last);
|
||||
|
||||
foreach (var invoice in filtered)
|
||||
{
|
||||
// Aufteilen
|
||||
// 1. Monat/Jahr - erstmal gleich
|
||||
// 2. Kassenart - aok, bkk, lkk
|
||||
// Kostenträger - kt1, kt2, kt3
|
||||
// Leistungsbereich - immer soziotherapie
|
||||
|
||||
|
||||
DakotaKeyDictionary currentkey = new DakotaKeyDictionary();
|
||||
currentkey.DateTime = first;
|
||||
currentkey.Kassenart = Kassenart.BKK;
|
||||
currentkey.Kostenträger = "";
|
||||
|
||||
var dakota = res.FirstOrDefault(keypair => keypair.Key.Equals(currentkey)).Value;
|
||||
|
||||
if (dakota is null)
|
||||
{
|
||||
var info = LoadInfo(invoice);
|
||||
|
||||
dakota = new DakotaFile(info);
|
||||
|
||||
res.Add(currentkey, dakota);
|
||||
}
|
||||
|
||||
dakota.AddInvoiceItem(invoice);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public static DakotaFileInfo LoadInfo(InvoiceItem invoice)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public static DakotaFileInfo LoadInfos(List<InvoiceItemDC> invoiceItems)
|
||||
{
|
||||
var res = new DakotaFileInfo();
|
||||
|
||||
res.Absenderbezeichnung = "123456789";
|
||||
res.Empfangerbezeichnung = "987654321";
|
||||
res.Datenaustauschreferenz = 1;
|
||||
res.Leistungsbereich = SchlüsselLeistungserbringerSammelgruppenschlussel.SoziotherapeutischerLeistungserbringer;
|
||||
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.InvoiceItems = invoiceItems;
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
using Dakota.Models.Schlüssel;
|
||||
using BS.Shared.DataContracts;
|
||||
using Dakota.Models.Schlüssel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
@@ -50,6 +52,12 @@ namespace Dakota
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Einzutragen ist der Leistungserbringer-Sammelgruppenschlüssel,
|
||||
/// siehe Schlüssel Anlage 3 Abschnitt
|
||||
/// 8.1.14.
|
||||
/// </summary>
|
||||
public SchlüsselLeistungserbringerSammelgruppenschlussel Leistungsbereich { get; set; }
|
||||
/// <summary>
|
||||
/// Genutzt werden die ersten 11 Stellen;
|
||||
/// einzutragen ist der logische Dateiname s.Anhang 1 zur Anlage 1
|
||||
/// zum Kapitel 4.
|
||||
@@ -145,10 +153,6 @@ namespace Dakota
|
||||
/// </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
|
||||
@@ -156,6 +160,10 @@ namespace Dakota
|
||||
/// zugehörigen SLGA-und SLLA-Nachrichten gleich sein.
|
||||
/// </summary>
|
||||
public SchlüsselRechnungsart Rechnungsart { get; set; }
|
||||
/// <summary>
|
||||
/// Name bzw. Firmenbezeichnung des
|
||||
/// Rechnungsstellers(Leistungserbringer oder Abrechnungsstelle
|
||||
/// </summary>
|
||||
public string Name1 { get; set; }
|
||||
/// <summary>
|
||||
/// ggf. Ansprechpartner und Telefonnummer.
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models
|
||||
{
|
||||
internal class Abrechnungsposition
|
||||
{
|
||||
public SegmentSLLAENF SegmentSLLAENF { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment können weitere Informationen, bezogen
|
||||
/// auf die abzurechnende Position übermittelt werden.Hier können u.a.die Uhrzeit und die gefahrenen Kilometer angegeben
|
||||
/// werden. Es kann je abzurechnende Position einmal vorkommen
|
||||
/// </summary>
|
||||
public SegmentSLLASUT SegmentSLLASUT { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment kann zu jeder abzurechnenden Position
|
||||
/// ein Text(z.B.als Begründung) hinterlegt werden.Es kann je
|
||||
/// abzurechnende Position einmal vorkommen.
|
||||
/// </summary>
|
||||
public SegmentSLLATXT SegmentSLLATXT { get; private set; }
|
||||
/// <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; }
|
||||
|
||||
///
|
||||
|
||||
public Abrechnungsposition()
|
||||
{
|
||||
SegmentSLLAENF = new SegmentSLLAENF();
|
||||
SegmentSLLASUT = new SegmentSLLASUT();
|
||||
SegmentSLLATXT = new SegmentSLLATXT();
|
||||
//SegmentSLLAMWS = new SegmentSLLAMWS();
|
||||
}
|
||||
|
||||
public List<Segment> GetSegments()
|
||||
{
|
||||
return new List<Segment>() { SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT,
|
||||
};
|
||||
//SegmentSLLAMWS };
|
||||
121
Dakota/Models/Block/BlockAbrechnungsfall.cs
Normal file
121
Dakota/Models/Block/BlockAbrechnungsfall.cs
Normal file
@@ -0,0 +1,121 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using Dakota.Models.Nachrichten;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Dakota.Models.Segmente.SLLA;
|
||||
|
||||
namespace Dakota.Models.Block
|
||||
{
|
||||
internal class BlockAbrechnungsfall : Nachricht
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist
|
||||
/// mit einer eindeutigen Belegnummer zu kennzeichnen, die der
|
||||
/// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des
|
||||
/// Richtlinientextes) entsprechen muss.
|
||||
/// </summary>
|
||||
public SegmentSLLAINV SegmentSLLAINV { get; private set; }
|
||||
/// <summary>
|
||||
/// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur
|
||||
/// in Abhängigkeit für die Verarbeitungskennzeichen
|
||||
/// '02' Nachforderung,
|
||||
/// ‚03‘ Zuzahlungsforderung und
|
||||
/// ‚04‘ Korrekturrechnung
|
||||
/// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert
|
||||
/// </summary>
|
||||
public SegmentSLLAURI SegmentSLLAURI { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Adressdaten des
|
||||
/// Versicherten.
|
||||
/// </summary>
|
||||
public SegmentSLLANAD SegmentSLLANAD { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Imagenamen bei Übermittlung von
|
||||
/// 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 SegmentSLLAENF SegmentSLLAENF { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment können weitere Informationen, bezogen
|
||||
/// auf die abzurechnende Position übermittelt werden.Hier können u.a.die Uhrzeit und die gefahrenen Kilometer angegeben
|
||||
/// werden. Es kann je abzurechnende Position einmal vorkommen
|
||||
/// </summary>
|
||||
public SegmentSLLASUT SegmentSLLASUT { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment kann zu jeder abzurechnenden Position
|
||||
/// ein Text(z.B.als Begründung) hinterlegt werden.Es kann je
|
||||
/// abzurechnende Position einmal vorkommen.
|
||||
/// </summary>
|
||||
public SegmentSLLATXT SegmentSLLATXT { get; private set; }
|
||||
/// <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>
|
||||
/// 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 SegmentSLLAZUZ SegmentSLLAZUZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält allgemeine Angaben zum Abrechnungsfall (Verordnung) und ist zu übermitteln, wenn eine ärztliche
|
||||
/// Verordnung, ein Reparatur- oder Berechtigungsschein oder
|
||||
/// Unfall/BVG vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLAZUV SegmentSLLAZUV { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment dient zur Angabe der Diagnose und ist so oft
|
||||
/// wiederholbar, wie Diagnosen vorliegen
|
||||
/// </summary>
|
||||
public SegmentSLLADIA SegmentSLLADIA { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über die von der Krankenkasse
|
||||
/// ausgesprochene Kostenzusage/Genehmigung und ist nur zu
|
||||
/// übermitteln, wenn diese vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLASKZ SegmentSLLASKZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung)
|
||||
/// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer)
|
||||
/// </summary>
|
||||
public SegmentSLLABES SegmentSLLABES { get; private set; }
|
||||
|
||||
public BlockAbrechnungsfall()
|
||||
{
|
||||
|
||||
SegmentSLLAINV = new SegmentSLLAINV();
|
||||
SegmentSLLAURI = new SegmentSLLAURI();
|
||||
SegmentSLLANAD = new SegmentSLLANAD();
|
||||
SegmentSLLAIMG = new SegmentSLLAIMG();
|
||||
|
||||
SegmentSLLAENF = new SegmentSLLAENF();
|
||||
SegmentSLLASUT = new SegmentSLLASUT();
|
||||
SegmentSLLATXT = new SegmentSLLATXT();
|
||||
SegmentSLLAMWS = new SegmentSLLAMWS();
|
||||
SegmentSLLAZUZ = new SegmentSLLAZUZ();
|
||||
SegmentSLLAZUV = new SegmentSLLAZUV();
|
||||
SegmentSLLADIA = new SegmentSLLADIA();
|
||||
SegmentSLLASKZ = new SegmentSLLASKZ();
|
||||
SegmentSLLABES = new SegmentSLLABES();
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
return new List<Segment>() {SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG,
|
||||
SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT, SegmentSLLAMWS,
|
||||
SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES};
|
||||
}
|
||||
}
|
||||
}
|
||||
51
Dakota/Models/Block/BlockKostenträger.cs
Normal file
51
Dakota/Models/Block/BlockKostenträger.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using Dakota.Models.Nachrichten;
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Block
|
||||
{
|
||||
/// <summary>
|
||||
/// Wiederhole folgenden Block je IK des Kostenträgers
|
||||
/// </summary>
|
||||
internal class BlockKostenträger : Nachricht
|
||||
{
|
||||
public SegmentUNH SegmentUNH { get; private set; }
|
||||
public NachrichtSLGA NachrichtSLGA { get; private set; }
|
||||
public SegmentUNT SegmentUNT { get; private set; }
|
||||
public List<BlockKrankenkarteVerordnung> BlockKrankenkarteVerordnung { get; private set; }
|
||||
|
||||
public string IKKostenträger
|
||||
{
|
||||
get { return NachrichtSLGA.SegmentFKT.IKKostenträger.GetValue(); }
|
||||
set { NachrichtSLGA.SegmentFKT.IKKostenträger.SetValue(value); }
|
||||
}
|
||||
|
||||
internal BlockKostenträger()
|
||||
{
|
||||
SegmentUNH = new SegmentUNH();
|
||||
NachrichtSLGA = new NachrichtSLGA();
|
||||
SegmentUNT = new SegmentUNT(GetSegmentLength);
|
||||
BlockKrankenkarteVerordnung = new List<BlockKrankenkarteVerordnung>();
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
var list = new List<Segment>();
|
||||
|
||||
list.Add(SegmentUNH);
|
||||
list.AddRange(NachrichtSLGA.GetSegments());
|
||||
list.Add(SegmentUNT);
|
||||
|
||||
foreach (var block in BlockKrankenkarteVerordnung)
|
||||
{
|
||||
list.AddRange(block.GetSegments());
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
55
Dakota/Models/Block/BlockKrankenkarteVerordnung.cs
Normal file
55
Dakota/Models/Block/BlockKrankenkarteVerordnung.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using Dakota.Models.Nachrichten;
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Block
|
||||
{
|
||||
/// <summary>
|
||||
/// Wiederhole folgenden Block je IK der Krankenkarte bzw der Verordnung
|
||||
/// </summary>
|
||||
internal class BlockKrankenkarteVerordnung : Nachricht
|
||||
{
|
||||
public SegmentUNH SegmentSLGAUNH { get; private set; }
|
||||
public NachrichtSLGA2 SLGANachricht2 { get; private set; }
|
||||
public SegmentUNT SegmentSLGAUNT { get; private set; }
|
||||
public SegmentUNH SegmentSLLAUNH { get; private set; }
|
||||
public NachrichtSLLA2 SLLANachricht2 { get; private set; }
|
||||
public SegmentUNT SegmentSLLAUNT { get; private set; }
|
||||
|
||||
public BlockKrankenkarteVerordnung()
|
||||
{
|
||||
SegmentSLGAUNH = new SegmentUNH();
|
||||
SLGANachricht2 = new NachrichtSLGA2();
|
||||
SegmentSLGAUNT = new SegmentUNT(SLGASegmentLength);
|
||||
SegmentSLLAUNH = new SegmentUNH();
|
||||
SLLANachricht2 = new NachrichtSLLA2();
|
||||
SegmentSLLAUNT = new SegmentUNT(SLLASegmentLength);
|
||||
}
|
||||
|
||||
public string IKKrankenkasseKVKarte
|
||||
{
|
||||
get { return SLGANachricht2.SegmentFKT.IKKrankenkasseKVKarte.GetValue(); }
|
||||
set { SLGANachricht2.SegmentFKT.IKKrankenkasseKVKarte.SetValue(value); }
|
||||
}
|
||||
|
||||
public int SLGASegmentLength() => SLGANachricht2.GetSegmentLength() + 2;
|
||||
public int SLLASegmentLength() => SLLANachricht2.GetSegmentLength() + 2;
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
var list = new List<Segment>() { SegmentSLGAUNH };
|
||||
list.AddRange(SLGANachricht2.GetSegments());
|
||||
list.Add(SegmentSLGAUNT);
|
||||
|
||||
list.Add(SegmentSLLAUNH);
|
||||
list.AddRange(SLLANachricht2.GetSegments());
|
||||
list.Add(SegmentSLLAUNT);
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
44
Dakota/Models/Block/BlockNutzdatendatei.cs
Normal file
44
Dakota/Models/Block/BlockNutzdatendatei.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using Dakota.Models.Nachrichten;
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Block
|
||||
{
|
||||
/// <summary>
|
||||
/// Nutzdatendatei ohne Logik
|
||||
/// </summary>
|
||||
internal class BlockNutzdatendatei : Nachricht
|
||||
{
|
||||
public SegmentUNB SegmentUNB { get; private set; }
|
||||
public List<BlockKostenträger> BlockKostenträger { get; private set; }
|
||||
public SegmentUNZ SegmentUNZ { get; private set; }
|
||||
|
||||
internal BlockNutzdatendatei()
|
||||
{
|
||||
SegmentUNB = new SegmentUNB();
|
||||
BlockKostenträger = new List<BlockKostenträger>();
|
||||
SegmentUNZ = new SegmentUNZ();
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
var list = new List<Segment>()
|
||||
{
|
||||
SegmentUNB
|
||||
};
|
||||
|
||||
foreach (var block in BlockKostenträger)
|
||||
{
|
||||
list.AddRange(block.GetSegments());
|
||||
}
|
||||
|
||||
list.Add(SegmentUNZ);
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
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.Models.Datei
|
||||
{
|
||||
/// <summary>
|
||||
/// Wiederhole folgenden Block je IK des Kostenträgers
|
||||
/// </summary>
|
||||
internal class BlockKostenträger : IRowable
|
||||
{
|
||||
public SegmentUNH UNH { get; private set; }
|
||||
public NachrichtSLGA NachrichtSLGA { get; private set; }
|
||||
public SegmentUNT UNT { get; private set; }
|
||||
public List<BlockKrankenkarteVerordnung> BlockKrankenkarteVerordnung { get; set; }
|
||||
|
||||
internal BlockKostenträger()
|
||||
{
|
||||
UNH = new SegmentUNH();
|
||||
NachrichtSLGA = new NachrichtSLGA();
|
||||
UNT = new SegmentUNT();
|
||||
BlockKrankenkarteVerordnung = new List<BlockKrankenkarteVerordnung>();
|
||||
}
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return UNH.GetRows() + NachrichtSLGA.GetRows() + UNT.GetRows() + string.Join("", BlockKrankenkarteVerordnung.Select(x => x.GetRows()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
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.Models.Datei
|
||||
{
|
||||
/// <summary>
|
||||
/// Wiederhole folgenden Block je IK der Krankenkarte bzw der Verordnung
|
||||
/// </summary>
|
||||
internal class BlockKrankenkarteVerordnung : IRowable
|
||||
{
|
||||
public SegmentUNH SLGAUNH { get; private set; }
|
||||
public NachrichtSLGA2 SLGANachricht2 { get; private set; }
|
||||
public SegmentUNT SLGAUNT { get; private set; }
|
||||
public SegmentUNH SLLAUNH { get; private set; }
|
||||
public NachrichtSLLA2 SLLANachricht2 { get; private set; }
|
||||
public SegmentUNT SLLAUNT { get; private set; }
|
||||
|
||||
public BlockKrankenkarteVerordnung()
|
||||
{
|
||||
SLGAUNH = new SegmentUNH();
|
||||
SLGANachricht2 = new NachrichtSLGA2();
|
||||
SLGAUNT = new SegmentUNT();
|
||||
SLLAUNH = new SegmentUNH();
|
||||
SLLANachricht2 = new NachrichtSLLA2();
|
||||
SLLAUNT = new SegmentUNT();
|
||||
}
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return SLGAUNH.GetRows() + SLGANachricht2.GetRows() + SLGAUNT.GetRows() +
|
||||
SLLAUNH.GetRows() + SLLANachricht2.GetRows() + SLLAUNT.GetRows();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Datei
|
||||
{
|
||||
internal class Nutzdatendatei
|
||||
{
|
||||
|
||||
//public List<Nachricht> Nachrichten { get; set; }
|
||||
|
||||
//public Nutzdatendatei()
|
||||
//{
|
||||
// Nachrichten = new List<Nachricht>();
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Datei
|
||||
{
|
||||
internal class SozioTherapieDatei : IRowable
|
||||
{
|
||||
public SegmentUNB UNB { get; set; }
|
||||
public List<BlockKostenträger> BlockKostenträger { get; set; }
|
||||
public SegmentUNZ UNZ { get; set; }
|
||||
|
||||
internal SozioTherapieDatei()
|
||||
{
|
||||
BlockKostenträger = new List<BlockKostenträger>();
|
||||
}
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return UNB.GetRows() + string.Join(string.Empty, BlockKostenträger.Select(x => x.GetRows())) + UNZ.GetRows();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Datei
|
||||
{
|
||||
internal class SozioTherapieEinzelnachweis : IRowable
|
||||
{
|
||||
public SegmentUNB UNB { get; set; }
|
||||
public BlockKrankenkarteVerordnung BlockKrankenkarteVerordnung { get; set; }
|
||||
public SegmentUNZ UNZ { get; set; }
|
||||
|
||||
internal SozioTherapieEinzelnachweis()
|
||||
{
|
||||
UNB = new SegmentUNB();
|
||||
BlockKrankenkarteVerordnung = new BlockKrankenkarteVerordnung();
|
||||
UNZ = new SegmentUNZ();
|
||||
}
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
return UNB.GetRows() + string.Join(string.Empty, BlockKrankenkarteVerordnung.GetRows() + UNZ.GetRows());
|
||||
}
|
||||
}
|
||||
}
|
||||
30
Dakota/Models/DatenelementCounter.cs
Normal file
30
Dakota/Models/DatenelementCounter.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models
|
||||
{
|
||||
internal class DatenelementCounter : Datenelement
|
||||
{
|
||||
public Func<int> Counter { get; private set; }
|
||||
|
||||
public DatenelementCounter(string title, int count, Func<int> counter) : base(title, count, Feldart.Muss)
|
||||
{
|
||||
Counter = counter;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
SetFilledIntValue(Counter(), MinStellen);
|
||||
}
|
||||
|
||||
public override string GetValue()
|
||||
{
|
||||
Update();
|
||||
|
||||
return base.GetValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models
|
||||
{
|
||||
public interface IRowable
|
||||
internal interface IRow
|
||||
{
|
||||
string GetRows();
|
||||
}
|
||||
|
||||
@@ -5,11 +5,16 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachricht
|
||||
namespace Dakota.Models.Nachrichten
|
||||
{
|
||||
internal abstract class Nachricht : IRowable
|
||||
internal abstract class Nachricht : IRow
|
||||
{
|
||||
public abstract List<Segment> GetSegments();
|
||||
|
||||
public int GetSegmentLength()
|
||||
{
|
||||
return GetSegments().Count;
|
||||
}
|
||||
|
||||
public string GetRows()
|
||||
{
|
||||
@@ -1,11 +1,12 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using Dakota.Models.Segmente.SLGA;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachricht
|
||||
namespace Dakota.Models.Nachrichten
|
||||
{
|
||||
/// <summary>
|
||||
/// Gesamtaufstellung der
|
||||
@@ -1,11 +1,12 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using Dakota.Models.Segmente.SLGA;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachricht
|
||||
namespace Dakota.Models.Nachrichten
|
||||
{
|
||||
/// <summary>
|
||||
/// Gesamtaufstellung der
|
||||
60
Dakota/Models/Nachrichten/NachrichtSLGA3.cs
Normal file
60
Dakota/Models/Nachrichten/NachrichtSLGA3.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using Dakota.Models.Segmente.SLGA;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachrichten
|
||||
{
|
||||
/// <summary>
|
||||
/// Gesamtaufstellung der
|
||||
/// Abrechnung(Rechnung)
|
||||
/// </summary>
|
||||
internal class NachrichtSLGA3 : Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen über die zu verarbeitende Rechnung, den Rechnungssteller
|
||||
/// (Leistungserbringer oder Abrechnungsstelle) und das IK der Krankenkasse von
|
||||
/// der Krankenversichertenkarte bzw.von der ärztlichen Verordnung
|
||||
/// </summary>
|
||||
public SegmentSLGAFKT SegmentFKT { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum.
|
||||
/// </summary>
|
||||
public SegmentSLGAREC SegmentREC { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen zur Umsatzsteuer.
|
||||
/// </summary>
|
||||
public SegmentSLGAUST SegmentUST { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen, ob Skonto gewährt wird
|
||||
/// (Skonto in Prozent, Zahlungsziel).
|
||||
/// </summary>
|
||||
public SegmentSLGASKO SegmentSKO { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Rechnungssummen (Bruttobetrag, Zuzahlungsbetrag, Nettobetrag je Status).
|
||||
/// </summary>
|
||||
public SegmentSLGAGES SegmentGES { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers
|
||||
/// </summary>
|
||||
public SegmentSLGANAM SegmentNAM { get; set; }
|
||||
|
||||
public NachrichtSLGA3()
|
||||
{
|
||||
SegmentFKT = new SegmentSLGAFKT();
|
||||
SegmentREC = new SegmentSLGAREC();
|
||||
SegmentUST = new SegmentSLGAUST();
|
||||
SegmentSKO = new SegmentSLGASKO();
|
||||
SegmentGES = new SegmentSLGAGES();
|
||||
SegmentNAM = new SegmentSLGANAM();
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
return new List<Segment>() { SegmentFKT, SegmentREC, SegmentUST, SegmentSKO, SegmentGES, SegmentNAM };
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,127 +1,134 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Leistungserbringer
|
||||
/// </summary>
|
||||
internal class NachrichtSLLA : Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen über den tatsächlichen
|
||||
/// Leistungserbringer und das IK der Krankenkasse von der
|
||||
/// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor.
|
||||
/// </summary>
|
||||
public SegmentSLLAFKT SegmentSLLAFKT { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum
|
||||
/// </summary>
|
||||
public SegmentSLLAREC SegmentSLLAREC { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist
|
||||
/// mit einer eindeutigen Belegnummer zu kennzeichnen, die der
|
||||
/// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des
|
||||
/// Richtlinientextes) entsprechen muss.
|
||||
/// </summary>
|
||||
public SegmentSLLAINV SegmentSLLAINV { get; private set; }
|
||||
/// <summary>
|
||||
/// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur
|
||||
/// in Abhängigkeit für die Verarbeitungskennzeichen
|
||||
/// '02' Nachforderung,
|
||||
/// ‚03‘ Zuzahlungsforderung und
|
||||
/// ‚04‘ Korrekturrechnung
|
||||
/// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert
|
||||
/// </summary>
|
||||
public SegmentSLLAURI SegmentSLLAURI { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Adressdaten des
|
||||
/// Versicherten.
|
||||
/// </summary>
|
||||
public SegmentSLLANAD SegmentSLLANAD { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Imagenamen bei Übermittlung von
|
||||
/// 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 SegmentSLLAENF SegmentSLLAENF { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment können weitere Informationen, bezogen
/// auf die abzurechnende Position übermittelt werden.Hier können u.a.die Uhrzeit und die gefahrenen Kilometer angegeben
|
||||
/// werden. Es kann je abzurechnende Position einmal vorkommen
|
||||
/// </summary>
|
||||
public SegmentSLLASUT SegmentSLLASUT { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment kann zu jeder abzurechnenden Position
|
||||
/// ein Text(z.B.als Begründung) hinterlegt werden.Es kann je
|
||||
/// abzurechnende Position einmal vorkommen.
|
||||
/// </summary>
|
||||
public SegmentSLLATXT SegmentSLLATXT { get; private set; }
|
||||
/// <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>
|
||||
/// 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 SegmentSLLAZUZ SegmentSLLAZUZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält allgemeine Angaben zum Abrechnungsfall (Verordnung) und ist zu übermitteln, wenn eine ärztliche
/// Verordnung, ein Reparatur- oder Berechtigungsschein oder
|
||||
/// Unfall/BVG vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLAZUV SegmentSLLAZUV { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment dient zur Angabe der Diagnose und ist so oft
|
||||
/// wiederholbar, wie Diagnosen vorliegen
|
||||
/// </summary>
|
||||
public SegmentSLLADIA SegmentSLLADIA { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über die von der Krankenkasse
/// ausgesprochene Kostenzusage/Genehmigung und ist nur zu
|
||||
/// übermitteln, wenn diese vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLASKZ SegmentSLLASKZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung)
|
||||
/// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer)
|
||||
/// </summary>
|
||||
public SegmentSLLABES SegmentSLLABES { get; private set; }
|
||||
|
||||
public NachrichtSLLA()
|
||||
{
|
||||
SegmentSLLAFKT = new SegmentSLLAFKT();
|
||||
SegmentSLLAREC = new SegmentSLLAREC();
|
||||
SegmentSLLAINV = new SegmentSLLAINV();
|
||||
SegmentSLLAURI = new SegmentSLLAURI();
|
||||
SegmentSLLANAD = new SegmentSLLANAD();
|
||||
SegmentSLLAIMG = new SegmentSLLAIMG();
|
||||
|
||||
SegmentSLLAENF = new SegmentSLLAENF();
|
||||
SegmentSLLASUT = new SegmentSLLASUT();
|
||||
SegmentSLLATXT = new SegmentSLLATXT();
|
||||
SegmentSLLAMWS = new SegmentSLLAMWS();
|
||||
SegmentSLLAZUZ = new SegmentSLLAZUZ();
|
||||
SegmentSLLAZUV = new SegmentSLLAZUV();
|
||||
SegmentSLLADIA = new SegmentSLLADIA();
|
||||
SegmentSLLASKZ = new SegmentSLLASKZ();
|
||||
SegmentSLLABES = new SegmentSLLABES();
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
return new List<Segment>() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG,
|
||||
SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT, SegmentSLLAMWS,
|
||||
SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
using Dakota.Models.Segmente;
|
||||
using Dakota.Models.Segmente.SLLA;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachrichten
|
||||
{
|
||||
/// <summary>
|
||||
/// Leistungserbringer
|
||||
/// </summary>
|
||||
internal class NachrichtSLLA : Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen über den tatsächlichen
|
||||
/// Leistungserbringer und das IK der Krankenkasse von der
|
||||
/// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor.
|
||||
/// </summary>
|
||||
public SegmentSLLAFKT SegmentSLLAFKT { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum
|
||||
/// </summary>
|
||||
public SegmentSLLAREC SegmentSLLAREC { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist
|
||||
/// mit einer eindeutigen Belegnummer zu kennzeichnen, die der
|
||||
/// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des
|
||||
/// Richtlinientextes) entsprechen muss.
|
||||
/// </summary>
|
||||
public SegmentSLLAINV SegmentSLLAINV { get; private set; }
|
||||
/// <summary>
|
||||
/// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur
|
||||
/// in Abhängigkeit für die Verarbeitungskennzeichen
|
||||
/// '02' Nachforderung,
|
||||
/// ‚03‘ Zuzahlungsforderung und
|
||||
/// ‚04‘ Korrekturrechnung
|
||||
/// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert
|
||||
/// </summary>
|
||||
public SegmentSLLAURI SegmentSLLAURI { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Adressdaten des
|
||||
/// Versicherten.
|
||||
/// </summary>
|
||||
public SegmentSLLANAD SegmentSLLANAD { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Imagenamen bei Übermittlung von
|
||||
/// 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 SegmentSLLAENF SegmentSLLAENF { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment können weitere Informationen, bezogen
|
||||
/// auf die abzurechnende Position übermittelt werden.Hier können u.a.die Uhrzeit und die gefahrenen Kilometer angegeben
|
||||
/// werden. Es kann je abzurechnende Position einmal vorkommen
|
||||
/// </summary>
|
||||
public SegmentSLLASUT SegmentSLLASUT { get; private set; }
|
||||
/// <summary>
|
||||
/// Mit diesem Segment kann zu jeder abzurechnenden Position
|
||||
/// ein Text(z.B.als Begründung) hinterlegt werden.Es kann je
|
||||
/// abzurechnende Position einmal vorkommen.
|
||||
/// </summary>
|
||||
public SegmentSLLATXT SegmentSLLATXT { get; private set; }
|
||||
/// <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>
|
||||
/// 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 SegmentSLLAZUZ SegmentSLLAZUZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält allgemeine Angaben zum Abrechnungsfall (Verordnung) und ist zu übermitteln, wenn eine ärztliche
|
||||
/// Verordnung, ein Reparatur- oder Berechtigungsschein oder
|
||||
/// Unfall/BVG vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLAZUV SegmentSLLAZUV { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment dient zur Angabe der Diagnose und ist so oft
|
||||
/// wiederholbar, wie Diagnosen vorliegen
|
||||
/// </summary>
|
||||
public SegmentSLLADIA SegmentSLLADIA { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über die von der Krankenkasse
|
||||
/// ausgesprochene Kostenzusage/Genehmigung und ist nur zu
|
||||
/// übermitteln, wenn diese vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLASKZ SegmentSLLASKZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung)
|
||||
/// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer)
|
||||
/// </summary>
|
||||
public SegmentSLLABES SegmentSLLABES { get; private set; }
|
||||
|
||||
public NachrichtSLLA()
|
||||
{
|
||||
SegmentSLLAFKT = new SegmentSLLAFKT();
|
||||
SegmentSLLAREC = new SegmentSLLAREC();
|
||||
SegmentSLLAINV = new SegmentSLLAINV();
|
||||
SegmentSLLAURI = new SegmentSLLAURI();
|
||||
SegmentSLLANAD = new SegmentSLLANAD();
|
||||
SegmentSLLAIMG = new SegmentSLLAIMG();
|
||||
|
||||
SegmentSLLAENF = new SegmentSLLAENF();
|
||||
SegmentSLLASUT = new SegmentSLLASUT();
|
||||
SegmentSLLATXT = new SegmentSLLATXT();
|
||||
SegmentSLLAMWS = new SegmentSLLAMWS();
|
||||
SegmentSLLAZUZ = new SegmentSLLAZUZ();
|
||||
SegmentSLLAZUV = new SegmentSLLAZUV();
|
||||
SegmentSLLADIA = new SegmentSLLADIA();
|
||||
SegmentSLLASKZ = new SegmentSLLASKZ();
|
||||
SegmentSLLABES = new SegmentSLLABES();
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
return new List<Segment>() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG,
|
||||
SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT, SegmentSLLAMWS,
|
||||
SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,116 +1,119 @@
|
||||
using Dakota.Models.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Leistungserbringer
|
||||
/// </summary>
|
||||
internal class NachrichtSLLA2 : Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen über den tatsächlichen
|
||||
/// Leistungserbringer und das IK der Krankenkasse von der
|
||||
/// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor.
|
||||
/// </summary>
|
||||
public SegmentSLLAFKT SegmentSLLAFKT { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum
|
||||
/// </summary>
|
||||
public SegmentSLLAREC SegmentSLLAREC { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist
|
||||
/// mit einer eindeutigen Belegnummer zu kennzeichnen, die der
|
||||
/// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des
|
||||
/// Richtlinientextes) entsprechen muss.
|
||||
/// </summary>
|
||||
public SegmentSLLAINV SegmentSLLAINV { get; private set; }
|
||||
/// <summary>
|
||||
/// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur
|
||||
/// in Abhängigkeit für die Verarbeitungskennzeichen
|
||||
/// '02' Nachforderung,
|
||||
/// ‚03‘ Zuzahlungsforderung und
|
||||
/// ‚04‘ Korrekturrechnung
|
||||
/// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert
|
||||
/// </summary>
|
||||
public SegmentSLLAURI SegmentSLLAURI { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Adressdaten des
|
||||
/// Versicherten.
|
||||
/// </summary>
|
||||
public SegmentSLLANAD SegmentSLLANAD { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Imagenamen bei Übermittlung von
|
||||
/// 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; }
|
||||
/// <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; }
|
||||
/// <summary>
|
||||
/// Das Segment dient zur Angabe der Diagnose und ist so oft
|
||||
/// wiederholbar, wie Diagnosen vorliegen
|
||||
/// </summary>
|
||||
public SegmentSLLADIA SegmentSLLADIA { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über die von der Krankenkasse
/// ausgesprochene Kostenzusage/Genehmigung und ist nur zu
|
||||
/// übermitteln, wenn diese vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLASKZ SegmentSLLASKZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung)
|
||||
/// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer)
|
||||
/// </summary>
|
||||
public SegmentSLLABES SegmentSLLABES { get; private set; }
|
||||
|
||||
public NachrichtSLLA2()
|
||||
{
|
||||
SegmentSLLAFKT = new SegmentSLLAFKT();
|
||||
SegmentSLLAREC = new SegmentSLLAREC();
|
||||
SegmentSLLAINV = new SegmentSLLAINV();
|
||||
SegmentSLLAURI = new SegmentSLLAURI();
|
||||
SegmentSLLANAD = new SegmentSLLANAD();
|
||||
SegmentSLLAIMG = new SegmentSLLAIMG();
|
||||
|
||||
Abrechnungspositions = new List<Abrechnungsposition>();
|
||||
|
||||
SegmentSLLAZUV = new SegmentSLLAZUV();
|
||||
SegmentSLLADIA = new SegmentSLLADIA();
|
||||
SegmentSLLASKZ = new SegmentSLLASKZ();
|
||||
SegmentSLLABES = new SegmentSLLABES();
|
||||
}
|
||||
|
||||
public void AddPosition(Abrechnungsposition pos)
|
||||
{
|
||||
Abrechnungspositions.Add(pos);
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
var list = new List<Segment>() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG };
|
||||
var list2 = new List<Segment>() { SegmentSLLABES };
|
||||
//var list2 = new List<Segment>() { SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES };
|
||||
|
||||
foreach (var seg in Abrechnungspositions)
|
||||
{
|
||||
list.AddRange(seg.GetSegments());
|
||||
}
|
||||
|
||||
list.AddRange(list2);
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
using Dakota.Models.Segmente;
|
||||
using Dakota.Models.Segmente.SLLA;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachrichten
|
||||
{
|
||||
/// <summary>
|
||||
/// Leistungserbringer
|
||||
/// </summary>
|
||||
internal class NachrichtSLLA2 : Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen über den tatsächlichen
|
||||
/// Leistungserbringer und das IK der Krankenkasse von der
|
||||
/// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor.
|
||||
/// </summary>
|
||||
public SegmentSLLAFKT SegmentSLLAFKT { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum
|
||||
/// </summary>
|
||||
public SegmentSLLAREC SegmentSLLAREC { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist
|
||||
/// mit einer eindeutigen Belegnummer zu kennzeichnen, die der
|
||||
/// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des
|
||||
/// Richtlinientextes) entsprechen muss.
|
||||
/// </summary>
|
||||
public SegmentSLLAINV SegmentSLLAINV { get; private set; }
|
||||
/// <summary>
|
||||
/// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur
|
||||
/// in Abhängigkeit für die Verarbeitungskennzeichen
|
||||
/// '02' Nachforderung,
|
||||
/// ‚03‘ Zuzahlungsforderung und
|
||||
/// ‚04‘ Korrekturrechnung
|
||||
/// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert
|
||||
/// </summary>
|
||||
public SegmentSLLAURI SegmentSLLAURI { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Adressdaten des
|
||||
/// Versicherten.
|
||||
/// </summary>
|
||||
public SegmentSLLANAD SegmentSLLANAD { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Imagenamen bei Übermittlung von
|
||||
/// 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; }
|
||||
/// <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; }
|
||||
/// <summary>
|
||||
/// Das Segment dient zur Angabe der Diagnose und ist so oft
|
||||
/// wiederholbar, wie Diagnosen vorliegen
|
||||
/// </summary>
|
||||
public SegmentSLLADIA SegmentSLLADIA { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über die von der Krankenkasse
|
||||
/// ausgesprochene Kostenzusage/Genehmigung und ist nur zu
|
||||
/// übermitteln, wenn diese vorliegt.
|
||||
/// </summary>
|
||||
public SegmentSLLASKZ SegmentSLLASKZ { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung)
|
||||
/// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer)
|
||||
/// </summary>
|
||||
public SegmentSLLABES SegmentSLLABES { get; private set; }
|
||||
|
||||
public NachrichtSLLA2()
|
||||
{
|
||||
SegmentSLLAFKT = new SegmentSLLAFKT();
|
||||
SegmentSLLAREC = new SegmentSLLAREC();
|
||||
SegmentSLLAINV = new SegmentSLLAINV();
|
||||
SegmentSLLAURI = new SegmentSLLAURI();
|
||||
SegmentSLLANAD = new SegmentSLLANAD();
|
||||
SegmentSLLAIMG = new SegmentSLLAIMG();
|
||||
|
||||
Abrechnungspositions = new List<Abrechnungsposition>();
|
||||
|
||||
SegmentSLLAZUV = new SegmentSLLAZUV();
|
||||
SegmentSLLADIA = new SegmentSLLADIA();
|
||||
SegmentSLLASKZ = new SegmentSLLASKZ();
|
||||
SegmentSLLABES = new SegmentSLLABES();
|
||||
}
|
||||
|
||||
public void AddPosition(Abrechnungsposition pos)
|
||||
{
|
||||
Abrechnungspositions.Add(pos);
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
var list = new List<Segment>() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG };
|
||||
var list2 = new List<Segment>() { SegmentSLLABES };
|
||||
//var list2 = new List<Segment>() { SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES };
|
||||
|
||||
foreach (var seg in Abrechnungspositions)
|
||||
{
|
||||
list.AddRange(seg.GetSegments());
|
||||
}
|
||||
|
||||
list.AddRange(list2);
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
50
Dakota/Models/Nachrichten/NachrichtSLLA3.cs
Normal file
50
Dakota/Models/Nachrichten/NachrichtSLLA3.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using Dakota.Models.Block;
|
||||
using Dakota.Models.Segmente;
|
||||
using Dakota.Models.Segmente.SLLA;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Nachrichten
|
||||
{
|
||||
/// <summary>
|
||||
/// Leistungserbringer
|
||||
/// </summary>
|
||||
internal class NachrichtSLLA3 : Nachricht
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen über den tatsächlichen
|
||||
/// Leistungserbringer und das IK der Krankenkasse von der
|
||||
/// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor.
|
||||
/// </summary>
|
||||
public SegmentSLLAFKT SegmentSLLAFKT { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum
|
||||
/// </summary>
|
||||
public SegmentSLLAREC SegmentSLLAREC { get; private set; }
|
||||
/// <summary>
|
||||
/// Abrechnungsfälle (INV - BES)
|
||||
/// </summary>
|
||||
public List<BlockAbrechnungsfall> Abrechnungsfalle { get; set; }
|
||||
|
||||
public NachrichtSLLA3()
|
||||
{
|
||||
SegmentSLLAFKT = new SegmentSLLAFKT();
|
||||
SegmentSLLAREC = new SegmentSLLAREC();
|
||||
}
|
||||
|
||||
public override List<Segment> GetSegments()
|
||||
{
|
||||
var list = new List<Segment>() { SegmentSLLAFKT, SegmentSLLAREC };
|
||||
|
||||
foreach (var block in Abrechnungsfalle)
|
||||
{
|
||||
list.AddRange(block.GetSegments());
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Schlüssel
|
||||
{
|
||||
public class SchlüsselLeistungserbringerSammelgruppenschlussel : Schlüssel
|
||||
{
|
||||
public SchlüsselLeistungserbringerSammelgruppenschlussel(string val) : base(val) { }
|
||||
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerVonHilfsmitteln => new SchlüsselLeistungserbringerSammelgruppenschlussel("A");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerVonHeilmitteln => new SchlüsselLeistungserbringerSammelgruppenschlussel("B");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerVonHäuslicherKrankenpflege => new SchlüsselLeistungserbringerSammelgruppenschlussel("C");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerVonHaushaltshilfe => new SchlüsselLeistungserbringerSammelgruppenschlussel("D");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerVonKrankentransportleistungen => new SchlüsselLeistungserbringerSammelgruppenschlussel("E");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel Hebammen => new SchlüsselLeistungserbringerSammelgruppenschlussel("F");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel NichtArztlicheDialyseachleistung => new SchlüsselLeistungserbringerSammelgruppenschlussel("G");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerVonRehabilitationssport => new SchlüsselLeistungserbringerSammelgruppenschlussel("H");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerVonFunktionstraining => new SchlüsselLeistungserbringerSammelgruppenschlussel("I");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel WeitereSonstigeLeistungserbringer => new SchlüsselLeistungserbringerSammelgruppenschlussel("J");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerPräventions => new SchlüsselLeistungserbringerSammelgruppenschlussel("K");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerRehamassnahmen => new SchlüsselLeistungserbringerSammelgruppenschlussel("L");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel SozialpädiatrischeZentren => new SchlüsselLeistungserbringerSammelgruppenschlussel("M");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel SoziotherapeutischerLeistungserbringer => new SchlüsselLeistungserbringerSammelgruppenschlussel("N");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel SAPV => new SchlüsselLeistungserbringerSammelgruppenschlussel("O");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel LeistungserbringerNach132gSGB => new SchlüsselLeistungserbringerSammelgruppenschlussel("P");
|
||||
public static SchlüsselLeistungserbringerSammelgruppenschlussel Kurzzeitpflege => new SchlüsselLeistungserbringerSammelgruppenschlussel("Q");
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace Dakota.Models.Segmente.SLGA
|
||||
/// Angabe identisch mit SLLA.FKT.IK der
|
||||
/// Krankenkasse der zugehörigen SLLANachricht.
|
||||
/// </summary>
|
||||
public Datenelement IKKrankenkasse { get; private set; }
|
||||
public Datenelement IKKrankenkasseKVKarte { get; private set; }
|
||||
/// <summary>
|
||||
/// Einzutragen ist das IK des Absenders der Datei. Diese Angabe ist identisch mit UNB.Absender
|
||||
/// </summary>
|
||||
@@ -56,7 +56,7 @@ namespace Dakota.Models.Segmente.SLGA
|
||||
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);
|
||||
IKKrankenkasseKVKarte = new Datenelement("IKKrankenkasse", 9, Feldart.Kann);
|
||||
IKAbsender = new Datenelement("IKAbsender", 9, Feldart.Muss);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models.Segmente
|
||||
{
|
||||
internal abstract class Segment : IRowable
|
||||
internal abstract class Segment : IRow
|
||||
{
|
||||
//public List<Datenelement> Datenelemente { get; set; }
|
||||
|
||||
|
||||
@@ -15,15 +15,15 @@ namespace Dakota.Models.Segmente
|
||||
/// Anzahl der Segmente in der Nachricht einschließlich der Segmente
|
||||
/// UNH und UNT mit führenden Nullen.
|
||||
/// </summary>
|
||||
public Datenelement AnzahlEinheiten { get; private set; }
|
||||
public DatenelementCounter AnzahlEinheiten { get; private set; }
|
||||
/// <summary>
|
||||
/// wie in UNH
|
||||
/// </summary>
|
||||
public Datenelement Nachrichtenreferenznummer { get; private set; }
|
||||
|
||||
public SegmentUNT()
|
||||
public SegmentUNT(Func<int> counter)
|
||||
{
|
||||
AnzahlEinheiten = new Datenelement("AnzahlEinheiten", 6, Feldart.Muss);
|
||||
AnzahlEinheiten = new DatenelementCounter("AnzahlEinheiten", 6, counter);
|
||||
Nachrichtenreferenznummer = new Datenelement("Nachrichtenreferenznummer", 0, 14, Feldart.Muss);
|
||||
}
|
||||
|
||||
|
||||
@@ -478,7 +478,6 @@
|
||||
<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" />
|
||||
@@ -519,9 +518,13 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="ServiceUtils\API\" />
|
||||
<Folder Include="ServiceUtils\Generell\" />
|
||||
<Folder Include="Utils\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\.editorconfig">
|
||||
<Link>.editorconfig</Link>
|
||||
</None>
|
||||
<None Include="app.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
|
||||
@@ -7705,15 +7705,28 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
try
|
||||
{
|
||||
var baseoid = long.Parse((string)param);
|
||||
// Hier Input Daten Aufbrechen und jeweils den Files zuordnen
|
||||
|
||||
var accounting = new AccountingServiceImp();
|
||||
// Dann jeweils Info erzeugen
|
||||
|
||||
var invoice = accounting.GetServiceInvoiceByInvoiceBaseOid(baseoid);
|
||||
// Und final dann Datei(en)
|
||||
|
||||
var year = 2023;
|
||||
var month = 6;
|
||||
|
||||
var rechnungsnummer = "xyz";
|
||||
|
||||
var code = DakotaFileCreator.GenerateDakotaFilesByMonth(year, month);
|
||||
|
||||
//var baseoid = long.Parse((string)param);
|
||||
|
||||
//var accounting = new AccountingServiceImp();
|
||||
|
||||
//var invoice = accounting.GetServiceInvoiceByInvoiceBaseOid(baseoid);
|
||||
|
||||
var code = DakotaFileCreator.GetAsciiCode(invoice);
|
||||
//var code = DakotaFileCreator.GenerateAsciiCode(invoice);
|
||||
|
||||
return code;
|
||||
return code.FirstOrDefault();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user