Files
BeWoPlaner/ReportImp/GenderBeWoReports/CustomerDataReport.cs
Christian f4e8bd6a73 cb
2017-07-25 10:52:20 +02:00

175 lines
8.6 KiB
C#

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<CustomerDataRO>
{
public Klientenstammblatt()
{
InitializeComponent();
}
public void SetReportDataSource(CustomerDataRO pRO)
{
var c = DAOFactory.GenericDAO.LoadByID<Customer>(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;
}
}
}