Files
BeWoPlaner/Dakota/Models/DakotaFile.cs

95 lines
2.8 KiB
C#

using BS.Shared.DataContracts;
using Dakota.Models;
using Dakota.Models.Auftragsdatei;
using Dakota.Models.Blocke;
using Dakota.Models.Infos;
using Dakota.Models.Nachrichten;
using Dakota.Models.Segmente;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Dakota
{
/// <summary>
/// Nutzdatendatei mit Logik
/// </summary>
public class DakotaFile
{
internal Nutzdatendatei Nutzdatendatei { get; private set; }
internal Auftragsdatei Auftragsdatei { get; private set; }
public DateTime Created { get; set; }
internal string Verfahrenskennung => Auftragsdatei.AuftragssatzPart1.VerfahrenKennung.GetValue();
internal string Transfernummer => Auftragsdatei.AuftragssatzPart1.TransferNummer.GetValue();
internal DakotaFile(DateTime created)
{
Nutzdatendatei = new Nutzdatendatei(this);
Auftragsdatei = new Auftragsdatei(this);
Created = created;
}
public int GetDatenaustauschreferenz()
{
return Nutzdatendatei.SegmentUNB.Datenaustauschreferenz.Value;
}
public string GetTransferName()
{
return Verfahrenskennung + Transfernummer;
}
public string GetNutzdatendatei()
{
return Nutzdatendatei.GetRows();
}
public string GetAuftragsdatei()
{
return Auftragsdatei.GetRows();
}
public override string ToString()
{
return Nutzdatendatei.GetRows();
}
public string GetIKVersichertenKarte()
{
return Nutzdatendatei.BlockKostenträger.First().BlockKrankenkasse.First().NachrichtSLGA.SegmentFKT.IKVersichertenKarte.GetValue();
}
public string GetIKLeistungserbringer()
{
return Nutzdatendatei.BlockKostenträger.First().BlockKrankenkasse.First().NachrichtSLGA.SegmentFKT.IKLeistungserbringers.GetValue();
}
public string GetIKDatenannahmestelle()
{
return Nutzdatendatei.SegmentUNB.Empfangdatei.GetValue();
}
public string GetIKKostenträger()
{
return Nutzdatendatei.BlockKostenträger.First().BlockKrankenkasse.First().NachrichtSLGA.SegmentFKT.IKKostenträger.GetValue();
}
public decimal GetBetrag()
{
return Nutzdatendatei.BlockKostenträger.First().BlockKrankenkasse.Sum(x => x.NachrichtSLGA.SegmentGES00.GesamtrechnungsbetragDecimal);
}
public int GetKostenträgerCount()
{
return Nutzdatendatei.BlockKostenträger.Count;
}
public string GetRechnungsnummer()
{
return Nutzdatendatei.BlockKostenträger.First().BlockKrankenkasse.First().NachrichtSLGA.SegmentREC.Rechnungsnummer.GetValue();
}
}
}