using BeWo.Data.Entities; 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 { /// /// Nutzdatendatei mit Logik /// 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(); } } }