using System; using System.Linq; using System.Windows.Forms; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Report; using BeWo.Report.ReportObjects; using BS.Shared.Core; using BS.Shared.DataContracts; using BS.Shared.Extensions; namespace BeWo.GenderBeWoReports { 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 97: // Versicherungsnummer versicherungsNummernLabel.Text = vValue; break; case 98: // Krankenkassenbefreiung krankenkassenbefreiungsLabel.Text = "ja"; break; case 99: // Schwebi schwebiLabel.Text = string.Format("{0}", (Convert.ToDecimal(varFieldValue) > 0 ? string.Format("ja {0} %", vValue) : "nein")); break; case 100: // WBS wbsLabel.Text = ((DateTime) varFieldValue).ToShortDateString(); break; case 101: // Aufenthaltsstatus aufenthaltsstatusLabel.Text = vValue; break; case 102: // Köln-Pass koelnPassLabel.Text = ((DateTime) varFieldValue).ToShortDateString(); break; case 103: // Schwerbehindertenmerkmale schwebiLabel.Text += string.Format(", {0}", vValue); break; case 104: // Kundennummer Jobcenter jobcenterKundennummerLabel.Text = vValue; break; case 105: // Kundennummer Arbeitsamt arbeitsamtKundennummerLabel.Text = vValue; break; case 106: // Kundennummer Sozialamt sozialamtKundennummerLabel.Text = vValue; break; } } } diagnoseLabel.Text = c.Diagnosis2CustomerList.Select(s => s.ICD10DiagnosisCode).ToSeparatedString(", "); // Psychiater/in foreach (var psych in pRO.EnvironmentPersons.Where(w => w.RelationRole.TypeDescription.Equals("Psychiater"))) { psychiaterLabel.Text += string.Format("{0}{1}", psych.Person.TitleFirstNameLastNameToString(), Environment.NewLine); } // Hausärztliche Versorgung foreach (var psych in pRO.EnvironmentPersons.Where(w => w.RelationRole.TypeDescription.Equals("Hausarzt"))) { hausarztLabel.Text += string.Format("{0}{1}", psych.Person.TitleFirstNameLastNameToString(), Environment.NewLine); } // Weitere Ärzte foreach (var psych in pRO.EnvironmentPersons.Where(w => w.RelationRole.TypeDescription.Equals("Arzt"))) { weitereAerzteLabel.Text += string.Format("{0}, {1}{2}", psych.Person.TitleFirstNameLastNameToString(), psych.Person.Function, Environment.NewLine); } var rechtlicherBetreuuer = pRO.EnvironmentPersons.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Rechtliche Betreuung")); if (rechtlicherBetreuuer != null) { rechtlicheBetreuungNamensLabel.Text = rechtlicherBetreuuer.Person.TitleFirstNameLastNameToString(); rechtlicheBetreuungAnschriftsLabel.Text = rechtlicherBetreuuer.Person.AddressString; rechtlicheBetreuungTelefonLabel.Text = rechtlicherBetreuuer.Person.Communication1; rechtlicheBetreuungFaxLabel.Text = rechtlicherBetreuuer.Person.Communication4; rechtlicheBetreuungMailLabel.Text = rechtlicherBetreuuer.Person.Communication3; } var weitereAnsprechpartner = pRO.EnvironmentPersons.Where(w => w.RelationRole.TypeDescription != "Psychiater" && w.RelationRole.TypeDescription != "Hausarzt" && w.RelationRole.TypeDescription != "Arzt" && w.RelationRole.TypeDescription != "Rechtliche Betreuung"); if (weitereAnsprechpartner != null) { foreach (var ansprechpartner in weitereAnsprechpartner) { weitereAnsprechpartnerLabel.Text += string.Format("{0}{1}", ansprechpartner.Person.TitleFirstNameLastNameToString(), Environment.NewLine); } } var krankenkasse = pRO.EnvironmentOrganisations.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Krankenkasse")); if (krankenkasse != null) { krankenkassenLabel.Text = krankenkasse.Organisation.Name; } var jobcenter = pRO.EnvironmentOrganisations.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Jobcenter")); if (jobcenter != null) { var jobconterRel = c.Customer2OrganisationList.FirstOrDefault(f => f.Organisation.Oid.HasValue && f.Organisation.Oid.Equals(jobcenter.Organisation.OrganisationOid)); if (jobconterRel != null) { var jobcenterAnsprechpartner = jobconterRel.Organisation.Organisation2PersonList.FirstOrDefault(); if (jobcenterAnsprechpartner != null) jobcenterLabel.Text = jobcenterAnsprechpartner.Person.FirstNameLastName; } } var arbeitsamt = pRO.EnvironmentOrganisations.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Arbeitsamt")); if (arbeitsamt != null) { var arbeitsamtsRel = c.Customer2OrganisationList.FirstOrDefault(f => f.Organisation.Oid.HasValue && f.Organisation.Oid.Equals(arbeitsamt.Organisation.OrganisationOid)); if (arbeitsamtsRel != null) { var arbeitsamtsAnsprechpartner = arbeitsamtsRel.Organisation.Organisation2PersonList.FirstOrDefault(); if (arbeitsamtsAnsprechpartner != null) arbeitsamtsLabel.Text = arbeitsamtsAnsprechpartner.Person.FirstNameLastName; } } var sozialamt = pRO.EnvironmentOrganisations.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Sozialamt")); if (sozialamt != null) { var sozialamtsRel = c.Customer2OrganisationList.FirstOrDefault(f => f.Organisation.Oid.HasValue && f.Organisation.Oid.Equals(sozialamt.Organisation.OrganisationOid)); if (sozialamtsRel != null) { var sozialamtsAnsprechpartner = sozialamtsRel.Organisation.Organisation2PersonList.FirstOrDefault(); if (sozialamtsAnsprechpartner != null) sozialamsLabel.Text = sozialamtsAnsprechpartner.Person.FirstNameLastName; } } if (c.SupportConcepts.Count > 0) { var zuletztEndender = c.SupportConcepts.First(); foreach (var hp in c.SupportConcepts.Where(hp => hp.EndDate > zuletztEndender.EndDate)) { zuletztEndender = hp; } var zuletztEndenderBlah = zuletztEndender.CostBearer2SupportConceptList.First(); foreach (var hp in zuletztEndender.CostBearer2SupportConceptList.Where(hp => hp.EndDate > zuletztEndenderBlah.EndDate)) { zuletztEndenderBlah = hp; } xrLabel2.Text = zuletztEndenderBlah.CustomerReferenceNumber; } bindingSource1.DataSource = pRO; } } }