From 21e6efc5460663ab8ec5e455f50ee4bad6833a1a Mon Sep 17 00:00:00 2001 From: Kojo Date: Tue, 19 May 2026 18:58:55 +0200 Subject: [PATCH] =?UTF-8?q?GKV-Abrechnung:=20Adresse=20f=C3=BCr=20Papieran?= =?UTF-8?q?nahme=20aus=20den=20KT-Dateien=20mit=20ermitteln,=20bei=20der?= =?UTF-8?q?=20Kasse=20speichern=20und=20auf=20Begleitzettel=20anzeigen=20S?= =?UTF-8?q?upportOID=3D157241?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BeWo/View/Detail/OrganisationView.xaml | 8 +- BeWo/ViewModel/OrganisationVM.cs | 48 ++++---- Dakota/Logic/DakotaKTDReader.cs | 106 +++++++++++++++++- Host/GkvAbrechnungServer.aspx.cs | 4 +- .../Invoices/GkvBegleitzettel.Designer.cs | 82 +++++--------- .../Invoices/GkvBegleitzettel.cs | 12 +- Report/ReportObjects/GkvAbrechnungRO.cs | 28 ++--- .../OrganisationDC_Organisation.cs | 8 +- .../GkvAccountingServiceImp.cs | 4 +- .../GkvAbrechnungGetIKResponseDC.cs | 4 +- .../GkvKostentragerdateiSummary.cs | 4 +- .../GkvAbrechnung/GkvServerGetIKResponseDC.cs | 4 +- Shared/DataContracts/OrganisationDC.cs | 6 +- 13 files changed, 191 insertions(+), 127 deletions(-) diff --git a/BeWo/View/Detail/OrganisationView.xaml b/BeWo/View/Detail/OrganisationView.xaml index 2be7cb318..67096defa 100644 --- a/BeWo/View/Detail/OrganisationView.xaml +++ b/BeWo/View/Detail/OrganisationView.xaml @@ -739,8 +739,8 @@ Grid.Row="2" Grid.Column="3" VerticalAlignment="Center" - ToolTip="Postfachanschrift der Datenannahmestelle"> - Postfachanschrift + ToolTip="Postfach- oder Großkundenanschrift der Datenannahmestelle"> + Postfach- / GK-Anschrift - Großkundenanschrift + ToolTip="Papierannahmeanschrift für die Datenannahmestelle"> + Papierannahmeanschrift _PostfachanschriftDatenannahmestelle; + get => _PostfachGKanschriftDatenannahmestelle; set { - _PostfachanschriftDatenannahmestelle = value; - FirePropertyChanged(nameof(PostfachanschriftDatenannahmestelle)); + _PostfachGKanschriftDatenannahmestelle = value; + FirePropertyChanged(nameof(PostfachGKanschriftDatenannahmestelle)); } } - public AddressVM GrosskundenanschriftDatenannahmestelle + public AddressVM PapierannahmeanschriftDatenannahmestelle { - get => _GrosskundenanschriftDatenannahmestelle; + get => _PapierannahmeanschriftDatenannahmestelle; set { - _GrosskundenanschriftDatenannahmestelle = value; - FirePropertyChanged(nameof(GrosskundenanschriftDatenannahmestelle)); + _PapierannahmeanschriftDatenannahmestelle = value; + FirePropertyChanged(nameof(PapierannahmeanschriftDatenannahmestelle)); } } @@ -1002,11 +1002,11 @@ namespace BeWo.ViewModel ? new AddressVM(dc) : new AddressVM(); - PostfachanschriftDatenannahmestelle = pDataContract.PostfachanschriftDatenannahmestelle is AddressDC dc2 + PostfachGKanschriftDatenannahmestelle = pDataContract.PostfachGKanschriftDatenannahmestelle is AddressDC dc2 ? new AddressVM(dc2) : new AddressVM(); - GrosskundenanschriftDatenannahmestelle = pDataContract.GrosskundenanschriftDatenannahmestelle is AddressDC dc3 + PapierannahmeanschriftDatenannahmestelle = pDataContract.PapierannahmeanschriftDatenannahmestelle is AddressDC dc3 ? new AddressVM(dc3) : new AddressVM(); @@ -1105,15 +1105,15 @@ namespace BeWo.ViewModel else pDataContract.HausanschriftDatenannahmestelle = null; - if (PostfachanschriftDatenannahmestelle is object) - pDataContract.PostfachanschriftDatenannahmestelle = PostfachanschriftDatenannahmestelle.CommitToDataContract(); + if (PostfachGKanschriftDatenannahmestelle is object) + pDataContract.PostfachGKanschriftDatenannahmestelle = PostfachGKanschriftDatenannahmestelle.CommitToDataContract(); else - pDataContract.PostfachanschriftDatenannahmestelle = null; + pDataContract.PostfachGKanschriftDatenannahmestelle = null; - if (GrosskundenanschriftDatenannahmestelle is object) - pDataContract.GrosskundenanschriftDatenannahmestelle = GrosskundenanschriftDatenannahmestelle.CommitToDataContract(); + if (PapierannahmeanschriftDatenannahmestelle is object) + pDataContract.PapierannahmeanschriftDatenannahmestelle = PapierannahmeanschriftDatenannahmestelle.CommitToDataContract(); else - pDataContract.GrosskundenanschriftDatenannahmestelle = null; + pDataContract.PapierannahmeanschriftDatenannahmestelle = null; return pDataContract; } @@ -1132,11 +1132,11 @@ namespace BeWo.ViewModel HausanschriftDatenannahmestelle.UpdateByDataContract(response.Hausanschrift); FirePropertyChanged(nameof(HausanschriftDatenannahmestelle)); - PostfachanschriftDatenannahmestelle.UpdateByDataContract(response.Postfachanschrift); - FirePropertyChanged(nameof(PostfachanschriftDatenannahmestelle)); + PostfachGKanschriftDatenannahmestelle.UpdateByDataContract(response.PostfachGKanschrift); + FirePropertyChanged(nameof(PostfachGKanschriftDatenannahmestelle)); - GrosskundenanschriftDatenannahmestelle.UpdateByDataContract(response.Grosskundenanschrift); - FirePropertyChanged(nameof(GrosskundenanschriftDatenannahmestelle)); + PapierannahmeanschriftDatenannahmestelle.UpdateByDataContract(response.Papierannahmeanschrift); + FirePropertyChanged(nameof(PapierannahmeanschriftDatenannahmestelle)); } } } \ No newline at end of file diff --git a/Dakota/Logic/DakotaKTDReader.cs b/Dakota/Logic/DakotaKTDReader.cs index 055926965..09e5fdbeb 100644 --- a/Dakota/Logic/DakotaKTDReader.cs +++ b/Dakota/Logic/DakotaKTDReader.cs @@ -70,17 +70,18 @@ namespace Dakota.Logic IKKrankenkasse = search.Item3 }; + AddressDC grosskundenanschrift = null; foreach (var seg_ans in nachricht.SemgenteANS) { var address = GetAddress(seg_ans); if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Grosskundenanschrift) { - sum.Grosskundenanschrift = address; + grosskundenanschrift = address; } else if(seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Postfachanschrift) { - sum.Postfachanschrift = address; + sum.PostfachGKanschrift = address; } else if(seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Hausanschrift) { @@ -92,6 +93,51 @@ namespace Dakota.Logic } } + if (sum.PostfachGKanschrift == null && grosskundenanschrift != null) + sum.PostfachGKanschrift = grosskundenanschrift; + + AddressDC hausanschriftPapierannahmestelle = null; + AddressDC postfachanschriftPapierannahmestelle = null; + AddressDC grosskundenanschriftPapierannahmestelle = null; + + var papierIK = GetPapierIK(dict, ikkrankenkasse, abrechnungscode, tarifkennzeichen); + if (papierIK is object && dict.ContainsKey(papierIK)) + { + var papierNachricht = dict[papierIK]; + + foreach (var seg_ans in papierNachricht.SemgenteANS) + { + var address = GetAddress(seg_ans); + + if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Grosskundenanschrift) + { + grosskundenanschriftPapierannahmestelle = address; + } + else if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Postfachanschrift) + { + postfachanschriftPapierannahmestelle = address; + } + else if (seg_ans.ArtDerAnschrift == Models.Schlüssels.SchlüsselArtDerAnschrift.Hausanschrift) + { + hausanschriftPapierannahmestelle = address; + } + else + { + throw new NotImplementedException(); + } + } + + if (hausanschriftPapierannahmestelle != null) + sum.Papierannahmeanschrift = hausanschriftPapierannahmestelle; + else if (postfachanschriftPapierannahmestelle != null) + sum.Papierannahmeanschrift = postfachanschriftPapierannahmestelle; + else if (grosskundenanschriftPapierannahmestelle != null) + sum.Papierannahmeanschrift = grosskundenanschriftPapierannahmestelle; + + if (sum.Papierannahmeanschrift != null) + sum.Papierannahmeanschrift.AddressLine1 = clear(papierNachricht.SegmentIDK.Kurzbezeichnung); + } + return sum; } } @@ -167,6 +213,62 @@ namespace Dakota.Logic return new Tuple(vkg.IKVerknüpfungspartners, kostentrager, ikkrankenkasse); } + private string GetPapierIK(Dictionary dict, string ikkrankenkasse, string abrechnungscode, string tarifkennzeichen, string kostentrager = null) + { + if (kostentrager is null) + kostentrager = ikkrankenkasse; + + var search = dict.SingleOrDefault(kv => kv.Key == kostentrager).Value; + + if (search is null) + return null; + + var verweis = search.SegmentVKG.FirstOrDefault(x => x.ArtDerVerknüpfung == Models.Schlüssels.SchlüsselArtDerVerknüpfung.Kostentrager); + + // Hat Verweis auf weiteren Kostenträger gefunden + if (verweis is object && verweis.IKVerknüpfungspartners != kostentrager) + return GetPapierIK(dict, ikkrankenkasse, abrechnungscode, tarifkennzeichen, verweis.IKVerknüpfungspartners); + + var papierannahmestellen = search.SegmentVKG + .Where(x => x.ArtDerVerknüpfung == Models.Schlüssels.SchlüsselArtDerVerknüpfung.PapierAnnahmestelle) + .ToList(); + + if (papierannahmestellen is null || !papierannahmestellen.Any()) + return null; + + if (papierannahmestellen.Count() == 1) + return papierannahmestellen.First().IKVerknüpfungspartners; + + // Abrechnungscode + var filtered = papierannahmestellen + .Where(x => x.Abrechnungscode == abrechnungscode) + .ToList(); + + if (filtered.Count() == 1) + return filtered.First().IKVerknüpfungspartners; + + // Tarifkennzeichen + var filtered_2 = filtered + .Where(x => x.Tarifkennzeichen == tarifkennzeichen) + .ToList(); + + if (filtered_2.Count() == 1) + return filtered_2.First().IKVerknüpfungspartners; + + var filter_list = filtered_2; + + if (!filter_list.Any()) + filter_list = filtered; + + if (!filter_list.Any()) + filter_list = papierannahmestellen; + + if (filter_list.Count() == 1) + return filter_list.First().IKVerknüpfungspartners; + + return null; + } + private AddressDC GetAddress(SegmentKTDANS segment) { var address = new AddressDC(); diff --git a/Host/GkvAbrechnungServer.aspx.cs b/Host/GkvAbrechnungServer.aspx.cs index 5b118ef99..9947f8adc 100644 --- a/Host/GkvAbrechnungServer.aspx.cs +++ b/Host/GkvAbrechnungServer.aspx.cs @@ -212,8 +212,8 @@ namespace Host response.IKKrankenkasse = resolved.IKKrankenkasse; response.BezDatenannahmestelle = resolved.BezDatenannahmestelle; response.Hausanschrift = resolved.Hausanschrift; - response.Postfachanschrift = resolved.Postfachanschrift; - response.Grosskundenanschrift = resolved.Grosskundenanschrift; + response.PostfachGKanschrift = resolved.PostfachGKanschrift; + response.Papierannahmeanschrift = resolved.Papierannahmeanschrift; } SendResponse(response); diff --git a/Report/DefaultReports/Invoices/GkvBegleitzettel.Designer.cs b/Report/DefaultReports/Invoices/GkvBegleitzettel.Designer.cs index fd503e3c9..bb01a3c48 100644 --- a/Report/DefaultReports/Invoices/GkvBegleitzettel.Designer.cs +++ b/Report/DefaultReports/Invoices/GkvBegleitzettel.Designer.cs @@ -117,13 +117,11 @@ namespace BeWo.Report.DefaultReports.Invoices this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand(); this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); this.xrTable1 = new DevExpress.XtraReports.UI.XRTable(); - this.xrTableRowReceiverContactPerson = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableRowReceiverOrganisation = new DevExpress.XtraReports.UI.XRTableRow(); this.xrTableCell72 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableRowReceiverDatenannahmestelle = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell75 = new DevExpress.XtraReports.UI.XRTableCell(); - this.xrTableRowAnnahmestellenInfo = new DevExpress.XtraReports.UI.XRTableRow(); - this.xrTableCell70 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableRowReceiverDivision = new DevExpress.XtraReports.UI.XRTableRow(); + this.xrTableCell75 = new DevExpress.XtraReports.UI.XRTableCell(); + this.xrTableRowReceiverContactPerson = new DevExpress.XtraReports.UI.XRTableRow(); this.xrTableCell78 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableRowReceiverStreet = new DevExpress.XtraReports.UI.XRTableRow(); this.xrTableCell81 = new DevExpress.XtraReports.UI.XRTableCell(); @@ -903,7 +901,7 @@ namespace BeWo.Report.DefaultReports.Invoices // xrLabel2 // this.xrLabel2.Font = new DevExpress.Drawing.DXFont("Arial", 7F, DevExpress.Drawing.DXFontStyle.Underline); - this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 54F); + this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 56F); this.xrLabel2.Multiline = true; this.xrLabel2.Name = "xrLabel2"; this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F); @@ -916,89 +914,65 @@ namespace BeWo.Report.DefaultReports.Invoices // xrTable1 // this.xrTable1.Font = new DevExpress.Drawing.DXFont("Arial", 9F); - this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 72.00005F); + this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 74.00005F); this.xrTable1.Name = "xrTable1"; this.xrTable1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 96F); this.xrTable1.ProcessHiddenCellMode = DevExpress.XtraReports.UI.ProcessHiddenCellMode.ResizeCellsEqually; this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] { - this.xrTableRowReceiverContactPerson, - this.xrTableRowReceiverDatenannahmestelle, - this.xrTableRowAnnahmestellenInfo, + this.xrTableRowReceiverOrganisation, this.xrTableRowReceiverDivision, + this.xrTableRowReceiverContactPerson, this.xrTableRowReceiverStreet, this.xrTableRowReceiverPostCodeTown}); - this.xrTable1.SizeF = new System.Drawing.SizeF(341.7074F, 108F); + this.xrTable1.SizeF = new System.Drawing.SizeF(341.7074F, 90F); this.xrTable1.StylePriority.UseFont = false; // - // xrTableRowReceiverContactPerson + // xrTableRowReceiverOrganisation // - this.xrTableRowReceiverContactPerson.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableRowReceiverOrganisation.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { this.xrTableCell72}); - this.xrTableRowReceiverContactPerson.Name = "xrTableRowReceiverContactPerson"; - this.xrTableRowReceiverContactPerson.Weight = 0.71999956054714331D; + this.xrTableRowReceiverOrganisation.Name = "xrTableRowReceiverOrganisation"; + this.xrTableRowReceiverOrganisation.Weight = 0.71999956054714331D; // // xrTableCell72 // this.xrTableCell72.Multiline = true; this.xrTableCell72.Name = "xrTableCell72"; this.xrTableCell72.StylePriority.UseTextAlignment = false; - this.xrTableCell72.Text = "[ReceiverContactPerson]"; + this.xrTableCell72.Text = "[ReceiverOrganisation]"; this.xrTableCell72.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - this.xrTableCell72.Visible = false; this.xrTableCell72.Weight = 1.3569801834867468D; // - // xrTableRowReceiverDatenannahmestelle + // xrTableRowReceiverDivision // - this.xrTableRowReceiverDatenannahmestelle.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableRowReceiverDivision.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { this.xrTableCell75}); - this.xrTableRowReceiverDatenannahmestelle.Name = "xrTableRowReceiverDatenannahmestelle"; - this.xrTableRowReceiverDatenannahmestelle.Weight = 0.7199995605471432D; + this.xrTableRowReceiverDivision.Name = "xrTableRowReceiverDivision"; + this.xrTableRowReceiverDivision.Weight = 0.7199995605471432D; // // xrTableCell75 // this.xrTableCell75.Multiline = true; this.xrTableCell75.Name = "xrTableCell75"; this.xrTableCell75.StylePriority.UseTextAlignment = false; - this.xrTableCell75.Text = "[ReceiverDatenannahmestelle]"; + this.xrTableCell75.Text = "[ReceiverDivision]"; this.xrTableCell75.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - this.xrTableCell75.Visible = false; this.xrTableCell75.Weight = 1.3569801834867468D; // - // xrTableRowAnnahmestellenInfo + // xrTableRowReceiverContactPerson // - this.xrTableRowAnnahmestellenInfo.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { - this.xrTableCell70}); - this.xrTableRowAnnahmestellenInfo.Name = "xrTableRowAnnahmestellenInfo"; - this.xrTableRowAnnahmestellenInfo.Weight = 0.71999956054714331D; - // - // xrTableCell70 - // - this.xrTableCell70.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] { - new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[KrankenkasseName]")}); - this.xrTableCell70.Multiline = true; - this.xrTableCell70.Name = "xrTableCell70"; - this.xrTableCell70.StylePriority.UseTextAlignment = false; - this.xrTableCell70.Text = "xrTableCell70"; - this.xrTableCell70.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - this.xrTableCell70.TextFormatString = "(Datenannahmestelle {0})"; - this.xrTableCell70.Visible = false; - this.xrTableCell70.Weight = 1.3569801834867468D; - // - // xrTableRowReceiverDivision - // - this.xrTableRowReceiverDivision.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { + this.xrTableRowReceiverContactPerson.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] { this.xrTableCell78}); - this.xrTableRowReceiverDivision.Name = "xrTableRowReceiverDivision"; - this.xrTableRowReceiverDivision.Weight = 0.71999956054714331D; + this.xrTableRowReceiverContactPerson.Name = "xrTableRowReceiverContactPerson"; + this.xrTableRowReceiverContactPerson.Weight = 0.71999956054714331D; // // xrTableCell78 // this.xrTableCell78.Multiline = true; this.xrTableCell78.Name = "xrTableCell78"; this.xrTableCell78.StylePriority.UseTextAlignment = false; - this.xrTableCell78.Text = "[ReceiverDivision]"; + this.xrTableCell78.Text = "[ReceiverContactPerson]"; this.xrTableCell78.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - this.xrTableCell78.Visible = false; this.xrTableCell78.Weight = 1.3569801834867468D; // // xrTableRowReceiverStreet @@ -1015,7 +989,6 @@ namespace BeWo.Report.DefaultReports.Invoices this.xrTableCell81.StylePriority.UseTextAlignment = false; this.xrTableCell81.Text = "[ReceiverStreet]"; this.xrTableCell81.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - this.xrTableCell81.Visible = false; this.xrTableCell81.Weight = 1.3569801834867468D; // // xrTableRowReceiverPostCodeTown @@ -1032,7 +1005,6 @@ namespace BeWo.Report.DefaultReports.Invoices this.xrTableCell84.StylePriority.UseTextAlignment = false; this.xrTableCell84.Text = "[ReceiverPostCodeAndTown]"; this.xrTableCell84.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - this.xrTableCell84.Visible = false; this.xrTableCell84.Weight = 1.3569801834867468D; // // GkvBegleitzettel @@ -1151,13 +1123,11 @@ namespace BeWo.Report.DefaultReports.Invoices private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1; private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader; private DevExpress.XtraReports.UI.XRTable xrTable1; - private DevExpress.XtraReports.UI.XRTableRow xrTableRowReceiverContactPerson; + private DevExpress.XtraReports.UI.XRTableRow xrTableRowReceiverOrganisation; private DevExpress.XtraReports.UI.XRTableCell xrTableCell72; - private DevExpress.XtraReports.UI.XRTableRow xrTableRowReceiverDatenannahmestelle; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell75; - private DevExpress.XtraReports.UI.XRTableRow xrTableRowAnnahmestellenInfo; - private DevExpress.XtraReports.UI.XRTableCell xrTableCell70; private DevExpress.XtraReports.UI.XRTableRow xrTableRowReceiverDivision; + private DevExpress.XtraReports.UI.XRTableCell xrTableCell75; + private DevExpress.XtraReports.UI.XRTableRow xrTableRowReceiverContactPerson; private DevExpress.XtraReports.UI.XRTableCell xrTableCell78; private DevExpress.XtraReports.UI.XRTableRow xrTableRowReceiverStreet; private DevExpress.XtraReports.UI.XRTableCell xrTableCell81; diff --git a/Report/DefaultReports/Invoices/GkvBegleitzettel.cs b/Report/DefaultReports/Invoices/GkvBegleitzettel.cs index ef0e04707..695b17bc0 100644 --- a/Report/DefaultReports/Invoices/GkvBegleitzettel.cs +++ b/Report/DefaultReports/Invoices/GkvBegleitzettel.cs @@ -23,17 +23,15 @@ namespace BeWo.Report.DefaultReports.Invoices if (pRO.SenderWebsite.ToNullIfEmpty() is null) xrTableRowSenderWebsite.Visible = false; - if (pRO.ReceiverContactPerson.ToNullIfEmpty() is null) - xrTableRowReceiverContactPerson.Visible = false; - - /* - if (pRO.ReceiverDatenannahmestelle.ToNullIfEmpty() is null) - xrTableRowReceiverDatenannahmestelle.Visible = false; - */ + if (pRO.ReceiverOrganisation.ToNullIfEmpty() is null) + xrTableRowReceiverOrganisation.Visible = false; if (pRO.ReceiverDivision.ToNullIfEmpty() is null) xrTableRowReceiverDivision.Visible = false; + if (pRO.ReceiverContactPerson.ToNullIfEmpty() is null) + xrTableRowReceiverContactPerson.Visible = false; + /* if (pRO.ReceiverStreet.ToNullIfEmpty() is null) xrTableRowReceiverStreet.Visible = false; diff --git a/Report/ReportObjects/GkvAbrechnungRO.cs b/Report/ReportObjects/GkvAbrechnungRO.cs index 776666baa..d72b0e29a 100644 --- a/Report/ReportObjects/GkvAbrechnungRO.cs +++ b/Report/ReportObjects/GkvAbrechnungRO.cs @@ -30,7 +30,7 @@ namespace BeWo.Report.ReportObjects public string SenderBankIBAN { get; set; } public string SenderBankBIC { get; set; } - public string ReceiverDatenannahmestelle { get; set; } + public string ReceiverOrganisation { get; set; } public string ReceiverContactPerson { get; set; } public string ReceiverDivision { get; set; } public string ReceiverStreet { get; set; } @@ -71,23 +71,15 @@ namespace BeWo.Report.ReportObjects result.SenderFax = addressInformation.Fax; result.SenderMail = addressInformation.Mail; - var receiver_first = invoicebase.RecipientPersonFirstName; - var receiver_last = invoicebase.RecipientPersonLastName; - var receiver_first_last = receiver_first.ToFormatFollows(receiver_last); - - //result.ReceiverDatenannahmestelle = invoicebase.RecipientOrganisation.ToNullIfEmpty(); - result.ReceiverDatenannahmestelle = organisation.BezDatenannahmestelle.ToNullIfEmpty(); - //result.ReceiverContactPerson = receiver_first_last; - - var datenannahmestelle = organisation.GetDatenannahmestelleAddress(); - - var datenannahme_postcode = datenannahmestelle.PostalCode; - var datenannahme_town = datenannahmestelle.Town; - var datenannahme_postcode_town = datenannahme_postcode.ToFormatFollows(datenannahme_town); - - //result.ReceiverDivision = datenannahmestelle.AddressLine1.ToNullIfEmpty(); - result.ReceiverStreet = datenannahmestelle.Street.ToNullIfEmpty(); - result.ReceiverPostCodeAndTown = datenannahme_postcode_town; + var papierannahmeanschrift = organisation.PapierannahmeanschriftDatenannahmestelle; + if (papierannahmeanschrift != null) + { + result.ReceiverOrganisation = papierannahmeanschrift.AddressLine1.ToNullIfEmpty(); + result.ReceiverStreet = papierannahmeanschrift.Street.ToNullIfEmpty(); + var postcode = papierannahmeanschrift.PostalCode; + var town = papierannahmeanschrift.Town; + result.ReceiverPostCodeAndTown = postcode.ToFormatFollows(town); + } result.KrankenkasseIK = organisation.IKKostentrager; result.KrankenkasseName = organisation.Name; diff --git a/Service/DCEntityMapper/OrganisationDC_Organisation.cs b/Service/DCEntityMapper/OrganisationDC_Organisation.cs index 479a0f6ee..46677ff39 100644 --- a/Service/DCEntityMapper/OrganisationDC_Organisation.cs +++ b/Service/DCEntityMapper/OrganisationDC_Organisation.cs @@ -91,8 +91,8 @@ namespace BeWo.Service.DCEntityMapper } pDataContract.HausanschriftDatenannahmestelle = MapperFactory.Address.CreateOrMapToNewDC(pEntity.HausanschriftDatenannahmestelle); - pDataContract.PostfachanschriftDatenannahmestelle = MapperFactory.Address.CreateOrMapToNewDC(pEntity.PostfachanschriftDatenannahmestelle); - pDataContract.GrosskundenanschriftDatenannahmestelle = MapperFactory.Address.CreateOrMapToNewDC(pEntity.GrosskundenanschriftDatenannahmestelle); + pDataContract.PostfachGKanschriftDatenannahmestelle = MapperFactory.Address.CreateOrMapToNewDC(pEntity.PostfachanschriftDatenannahmestelle); + pDataContract.PapierannahmeanschriftDatenannahmestelle = MapperFactory.Address.CreateOrMapToNewDC(pEntity.GrosskundenanschriftDatenannahmestelle); pDataContract.ContactInformations = MapperFactory.ContactDC_Contact.MapToNewDCs(pEntity.Contacts); @@ -239,8 +239,8 @@ namespace BeWo.Service.DCEntityMapper MapperFactory.FeiertagDC_Feiertag.MergeWithEntitys(pDataContract.Feiertage, pEntity.Feiertage); pEntity.HausanschriftDatenannahmestelle = MapperFactory.Address.MergeOrCreateWithEntity(pDataContract.HausanschriftDatenannahmestelle, pEntity.HausanschriftDatenannahmestelle); - pEntity.PostfachanschriftDatenannahmestelle = MapperFactory.Address.MergeOrCreateWithEntity(pDataContract.PostfachanschriftDatenannahmestelle, pEntity.PostfachanschriftDatenannahmestelle); - pEntity.GrosskundenanschriftDatenannahmestelle = MapperFactory.Address.MergeOrCreateWithEntity(pDataContract.GrosskundenanschriftDatenannahmestelle, pEntity.GrosskundenanschriftDatenannahmestelle); + pEntity.PostfachanschriftDatenannahmestelle = MapperFactory.Address.MergeOrCreateWithEntity(pDataContract.PostfachGKanschriftDatenannahmestelle, pEntity.PostfachanschriftDatenannahmestelle); + pEntity.GrosskundenanschriftDatenannahmestelle = MapperFactory.Address.MergeOrCreateWithEntity(pDataContract.PapierannahmeanschriftDatenannahmestelle, pEntity.GrosskundenanschriftDatenannahmestelle); return pEntity; } diff --git a/Service/ServiceImplementations/GkvAccountingServiceImp.cs b/Service/ServiceImplementations/GkvAccountingServiceImp.cs index 63beacec0..09b8c2cfe 100644 --- a/Service/ServiceImplementations/GkvAccountingServiceImp.cs +++ b/Service/ServiceImplementations/GkvAccountingServiceImp.cs @@ -330,8 +330,8 @@ namespace BeWo.Service.ServiceImplementations Message = app8res.Message, Success = app8res.Success, Hausanschrift = app8res.Hausanschrift ?? new AddressDC(), - Postfachanschrift = app8res.Postfachanschrift ?? new AddressDC(), - Grosskundenanschrift = app8res.Grosskundenanschrift ?? new AddressDC() + PostfachGKanschrift = app8res.PostfachGKanschrift ?? new AddressDC(), + Papierannahmeanschrift = app8res.Papierannahmeanschrift ?? new AddressDC(), }; // Schaue, ob IK Krankenkassen bereits bei einer anderen Organisation hinterlegt ist diff --git a/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvAbrechnungGetIKResponseDC.cs b/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvAbrechnungGetIKResponseDC.cs index 50a248ee5..ef8ab52c9 100644 --- a/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvAbrechnungGetIKResponseDC.cs +++ b/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvAbrechnungGetIKResponseDC.cs @@ -25,7 +25,7 @@ namespace BS.Shared.DataContracts.GkvAbrechnung [DataMember] public string IKDatenannahmestelle { get; set; } [DataMember] public string BezDatenannahmestelle { get; set; } [DataMember] public AddressDC Hausanschrift { get; set; } - [DataMember] public AddressDC Postfachanschrift { get; set; } - [DataMember] public AddressDC Grosskundenanschrift { get; set; } + [DataMember] public AddressDC PostfachGKanschrift { get; set; } + [DataMember] public AddressDC Papierannahmeanschrift { get; set; } } } diff --git a/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvKostentragerdateiSummary.cs b/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvKostentragerdateiSummary.cs index a85c07b01..40b18b008 100644 --- a/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvKostentragerdateiSummary.cs +++ b/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvKostentragerdateiSummary.cs @@ -13,7 +13,7 @@ namespace BS.Shared.DataContracts.Invoicing.GkvAbrechnung public string IKKostentrager { get; set; } public string IKKrankenkasse { get; set; } public AddressDC Hausanschrift { get; set; } - public AddressDC Postfachanschrift { get; set; } - public AddressDC Grosskundenanschrift { get; set; } + public AddressDC PostfachGKanschrift { get; set; } + public AddressDC Papierannahmeanschrift { get; set; } } } diff --git a/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvServerGetIKResponseDC.cs b/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvServerGetIKResponseDC.cs index 7d06f5a70..1794564e1 100644 --- a/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvServerGetIKResponseDC.cs +++ b/Shared/DataContracts/Invoicing/GkvAbrechnung/GkvServerGetIKResponseDC.cs @@ -19,7 +19,7 @@ namespace BS.Shared.DataContracts.GkvAbrechnung [DataMember] public string IKDatenannahmestelle { get; set; } [DataMember] public string BezDatenannahmestelle { get; set; } [DataMember] public AddressDC Hausanschrift { get; set; } - [DataMember] public AddressDC Postfachanschrift { get; set; } - [DataMember] public AddressDC Grosskundenanschrift { get; set; } + [DataMember] public AddressDC PostfachGKanschrift { get; set; } + [DataMember] public AddressDC Papierannahmeanschrift { get; set; } } } diff --git a/Shared/DataContracts/OrganisationDC.cs b/Shared/DataContracts/OrganisationDC.cs index 423d00079..0cfe7e500 100644 --- a/Shared/DataContracts/OrganisationDC.cs +++ b/Shared/DataContracts/OrganisationDC.cs @@ -52,6 +52,7 @@ namespace BS.Shared.DataContracts [DataMember] public ValueListEntryDC Function { get; set; } [DataMember] public bool GkvAusblenden { get; set; } [DataMember] public AddressDC GrosskundenanschriftDatenannahmestelle { get; set; } + [DataMember] public AddressDC PapierannahmeanschriftDatenannahmestelle { get; set; } [DataMember] public AddressDC HausanschriftDatenannahmestelle { get; set; } [DataMember] public string IBAN { get; set; } [DataMember] public string IKDatenannahmestelle { get; set; } @@ -73,6 +74,7 @@ namespace BS.Shared.DataContracts [DataMember] public long? OrganisationVersion { get; set; } [DataMember] public string PostalCode { get; set; } [DataMember] public AddressDC PostfachanschriftDatenannahmestelle { get; set; } + [DataMember] public AddressDC PostfachGKanschriftDatenannahmestelle { get; set; } [DataMember] public List RelatedPersons { get; set; } [DataMember] public string Street { get; set; } [DataMember] public string Town { get; set; } @@ -98,8 +100,8 @@ namespace BS.Shared.DataContracts { var lst = new List() { HausanschriftDatenannahmestelle, - PostfachanschriftDatenannahmestelle, - GrosskundenanschriftDatenannahmestelle}; + PostfachGKanschriftDatenannahmestelle, + PapierannahmeanschriftDatenannahmestelle}; foreach (var add in lst) {