using System; using System.Linq; using System.Text; using System.Windows.Forms; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Data.ICD10; using BeWo.Report; using BeWo.Report.ReportObjects; using BS.Shared.Core; using BS.Shared.DataContracts; using BS.Shared.Extensions; namespace BeWo.Fortis { public partial class Klientenstammblatt : DevExpress.XtraReports.UI.XtraReport, IBeWoReport { public Klientenstammblatt() { InitializeComponent(); } public void SetReportDataSource(CustomerDataRO pRO) { var c = DAOFactory.GenericDAO.LoadByID(pRO.CustomerOid); foreach (var faufau in c.VarFieldValueList) { var varFieldValue = Utils.XMLDeserializeFromString(faufau.SerializedValue, Type.GetType(faufau.TypeName)); if (varFieldValue != null) { var vValue = varFieldValue.ToString(); switch (faufau.VarFieldDefOid) { case 32: geburtsortTableCell.Text = vValue; break; case 33: geburtsnameTableCell.Text = vValue; break; case 34: staatsangehoerigkeitsTableCell.Text = vValue; break; case 35: arbeitsplatzTableCell.Text = vValue; break; case 36: aufnahmedatumTableCell.Text = ((DateTime) varFieldValue).ToShortDateString(); break; case 37: letzterWohnsitzTableCell.Text = vValue; break; case 38: hbgTableCell.Text = vValue; break; case 39: behindertCB.Checked = (bool) varFieldValue; break; case 40: GDBTableCell.Text = vValue + "%"; break; case 41: behindertenAGueltigBisTableCell.Text = vValue; break; case 42: befrZuzhlgBisTableCell.Text = ((DateTime)varFieldValue).ToShortDateString(); break; case 43: rentenTableCell.Text = vValue + " €"; break; case 44: aktualisiertAmTableCell.Text = ((DateTime)varFieldValue).ToShortDateString(); break; case 46: wkGesundheitCB.Checked = (bool) varFieldValue; break; case 47: wkVermoegenCB.Checked = (bool) varFieldValue; break; case 48: wkEinwilligungsvorbehaltCB.Checked = (bool) varFieldValue; break; case 50: wkSonstigeCB.Checked = true; sonstigeWirkungskreiseTableCell.Text = vValue; break; case 51: ansteckendeKrankheitenTableCell.Text = vValue; break; case 52: unvertraeglichkeitenTableCell.Text = vValue; break; case 53: letzterKlinikaufenthaltTableCell.Text = ((DateTime)varFieldValue).ToShortDateString(); break; case 54: suizidVersucheTableCell.Text = vValue; break; case 55: krisenanzeichenTableCell.Text = vValue; break; case 56: krisenabsprachenTableCell.Text = vValue; break; case 57: krisenSonstigesTableCell.Text = vValue; break; case 58: kontoinhaberTableCell.Text = vValue; break; case 59: bankTableCell.Text = vValue; break; case 60: ibanTableCell.Text = vValue; break; case 61: bicTableCell.Text = vValue; break; case 62: einkommensTableCell.Text = vValue + " €"; break; case 63: wkAufenthaltCB.Checked = (bool)varFieldValue; break; case 64: vermoegenTableCell.Text = vValue; break; case 65: cellMerkzeichen.Text = vValue; break; } } } var x = pRO.EnvironmentPersons.OrderByDescending(i => i.Customer2PersonOid).FirstOrDefault(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Hausärzt/in")); var y = pRO.EnvironmentPersons.OrderByDescending(i => i.Customer2PersonOid).Where(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Fachärzt/in")); if (x != null) { cellHausarzt.Text = CreateArztString(x); } if (y != null) { cellFacharzt.Text = ""; foreach (var c2p in y) { if (cellFacharzt.Text.Length > 0) { cellFacharzt.Text += Environment.NewLine + Environment.NewLine; } cellFacharzt.Text += CreateArztString(c2p); } } var b = pRO.EnvironmentPersons.FirstOrDefault(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Rechtliche/r Betreuer/in")); if (b != null) { var bt = !string.IsNullOrEmpty(b.Person.Title) ? b.Person.Title + " " : ""; gesetzBetrTableCell.Text = bt + b.Person.FullName; gesetzBetrAdresseTableCell.Text = b.Person.AddressString; gesetzBetrPhoneTableCell.Text = ""; if (!String.IsNullOrEmpty(b.Person.Communication1)) { gesetzBetrPhoneTableCell.Text = b.Person.Communication1; } if (!String.IsNullOrEmpty(b.Person.Communication2)) { if (gesetzBetrPhoneTableCell.Text.Length > 0) { gesetzBetrPhoneTableCell.Text += ", "; } gesetzBetrPhoneTableCell.Text = b.Person.Communication2; } } var k = pRO.EnvironmentOrganisations.FirstOrDefault(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Krankenkasse")); if (k != null) { //var fod = pRO.CostBearers.FirstOrDefault(f => f.CostBearer.OrganisationOid.Equals(k.Organisation.OrganisationOid)); //var test = fod.ReferenceNumber; kvNRTableCell.Text = k.Customer2OrganisationNotice; krankenkasseTableCell.Text = k.Organisation.Name; } if(c.TerminationDate.HasValue) xrTableCell100.Text = c.TerminationDate.Value.ToShortDateString(); var bp = pRO.RelatedEmployees.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Erste Bezugsperson")); if (bp != null) { var emp = DAOFactory.GenericDAO.LoadByID(bp.Employee.EmployeeOid); bezugspersonTableCell.Text = emp.Person.FirstNameLastName; } bp = pRO.RelatedEmployees.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Zweite Bezugsperson")); if (bp != null) { var emp = DAOFactory.GenericDAO.LoadByID(bp.Employee.EmployeeOid); vertretungTableCell.Text = emp.Person.FirstNameLastName; } StringBuilder dtext = new StringBuilder(); foreach (var d2c in c.Diagnosis2CustomerList) { if (dtext.Length > 0) { dtext.Append(Environment.NewLine); } dtext.Append(d2c.ICD10DiagnosisCode); dtext.Append(" - "); dtext.Append(ICD10DAO.GetDiagnosisForCode(d2c.ICD10DiagnosisCode)); } cellDiagnosenText.Text = dtext.ToString(); aktuelleMedikationTableCell1.Text = c.Medication; var kontaktPersonen = pRO.EnvironmentPersons.Where(w => w.RelationRole.TypeDescription.Equals("Kontaktperson")).ToArray(); kontaktAndereTableCell.Text = ""; for (var i = 0; i < kontaktPersonen.Length; i++) { var t = string.IsNullOrEmpty(kontaktPersonen[i].Person.Title) ? "" : kontaktPersonen[i].Person.Title + " "; var fn = t + kontaktPersonen[i].Person.FullName; var addr = kontaktPersonen[i].Person.AddressString; var tel = kontaktPersonen[i].Person.ContactSummaryInfo.Replace("\n", ", "); StringBuilder sb = new StringBuilder(); sb.Append(fn); if (sb.Length > 0) sb.Append(Environment.NewLine); sb.Append(addr); if (sb.Length > 0) sb.Append(Environment.NewLine); sb.Append(tel); if (i == 0) { kontakt1ATableCell.Text = fn; kontakt1BTableCell.Text = addr; kontakt1CTableCell.Text = tel; } else if (i == 1) { kontakt2ATableCell.Text = fn; kontakt2BTableCell.Text = addr; kontakt2CTableCell.Text = tel; } else { if (kontaktAndereTableCell.Text.Length > 0) kontaktAndereTableCell.Text += Environment.NewLine; kontaktAndereTableCell.Text += sb.ToString(); } } var cb = pRO.CostBearers.FirstOrDefault(); if (cb != null) { leistungstraegerTableCell.Text = cb.CostBearer.Name; aktenzeichenTableCell.Text = cb.ReferenceNumber; } bindingSource1.DataSource = pRO; } private string CreateArztString(CustomerPersonRelationDC x) { StringBuilder sb = new StringBuilder(); sb.Append(!string.IsNullOrEmpty(x.Person.Title) ? x.Person.Title + " " : ""); sb.Append(x.Person.FullName); if (!string.IsNullOrEmpty(x.Person.Function)) { sb.Append(" ("); sb.Append(x.Person.Function); sb.Append(")"); } if (sb.Length > 0) { sb.Append(Environment.NewLine); } sb.Append(x.Person.AddressString); if (sb.Length > 0) { sb.Append(Environment.NewLine); } sb.Append(x.Person.ContactSummaryInfo.Replace("\n", ", ")); return sb.ToString(); } } }