Files
BeWoPlaner/ReportImp/Fortis/CustomerDataReport.cs

306 lines
12 KiB
C#

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<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 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<Employee>(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<Employee>(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();
}
}
}