Files
BeWoPlaner/Dakota/Models/Segmente/SegmentUNB.cs
rene d65ac37cc0 Zwischenstand:
Schlüssel übersichtlich,
Segmente neu sortiert
PDFs eingeführt,
Beispiel Ansicht eingeführt,
2023-08-21 14:45:00 +02:00

102 lines
4.7 KiB
C#

using System.Collections.Generic;
namespace Dakota.Models.Segmente
{
/// <summary>
/// Kopf-Segment einer Nutzdatendatei; es dient zur Eröffnung,
/// Identifizierung und Beschreibung der Datei.Eine Nutzdatendatei
/// besteht aus der Folge UNB bis UNZ.Sie beinhaltet die Nachrichten SLGA und SLLA, die mehrfach wiederholbar sind.So ist es
/// möglich, dass ein oder mehrere Leistungserbringer Abrechnungen für ein oder mehrere Kostenträger übermitteln.
/// </summary>
internal class SegmentUNB : Segment
{
/// <summary>
/// UNOC:3
/// </summary>
public Datenelementgruppe Syntax { get; private set; }
/// <summary>
/// Vereinbarte EDIFACT-Syntax;
/// hier: UNOC = Groß- und Kleinbuchstaben, Umlaut
/// </summary>
public Datenelement SyntaxKennung { get; private set; }
/// <summary>
/// Vereinbarte Version der Syntax;
/// hier: Version 3 (derzeit aktuell)
/// </summary>
public Datenelement SyntaxVersionsnummer { get; private set; }
/// <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 Datenelement Absenderdatei { get; private 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 Datenelement Empfangdatei { get; private set; }
/// <summary>
/// JJJJMMTT:HHMM
/// </summary>
public Datenelementgruppe DatumUhrzeit { get; private set; }
/// <summary>
/// Erstelldatum der Datei
/// </summary>
public Datenelement Datum { get; private set; }
/// <summary>
/// Erstelluhrzeit der Datei
/// </summary>
public Datenelement Uhrzeit { get; private 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 Datenelement Datenaustauschreferenz { get; private set; }
/// <summary>
/// Einzutragen ist der Leistungserbringer-Sammelgruppenschlüssel,
/// siehe Schlüssel Anlage 3 Abschnitt 8.1.14
/// </summary>
public Datenelement Leistungsbereich { get; private set; }
/// <summary>
/// Genutzt werden die ersten 11 Stellen;
/// einzutragen ist der logische Dateiname s.Anhang 1 zur Anlage 1
/// zum Kapitel 4.
/// </summary>
public Datenelement Anwengundsreferenz { get; private set; }
/// <summary>
/// Inhalt = 0 wenn Testdatei
/// Inhalt = 1 wenn Erprobungsdatei
/// Inhalt = 2 wenn Echtdatei
/// </summary>
public Datenelement Testindikator { get; private set; }
public SegmentUNB()
{
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";
public override List<Dateneinheit> GetBody()
=> new List<Dateneinheit> { Syntax, Absenderdatei, Empfangdatei, DatumUhrzeit, Datenaustauschreferenz, Leistungsbereich, Anwengundsreferenz, Testindikator };
}
}