828 lines
30 KiB
C#
828 lines
30 KiB
C#
using System;
|
|
using BeWo.Report.ReportObjects;
|
|
using BeWo.Report;
|
|
using DevExpress.XtraReports.UI;
|
|
using System.Data;
|
|
using BeWo.Data.Access;
|
|
using KetteReports;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Xml.Schema;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Service.DCEntityMapper;
|
|
using BeWo.Service.Plugins;
|
|
using BeWo.Service.ServiceImplementations;
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared.Services;
|
|
using DevExpress.Xpo.DB;
|
|
|
|
namespace KetteReports
|
|
{
|
|
[IDSpecificClass(Identifier = "SozPsychErfassungBeratung")]
|
|
public partial class SozPsychErfassungBeratung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<QueryRO>
|
|
{
|
|
private long servicecategoryOid = 0;
|
|
private DateTime reportStart = DateTime.MinValue;
|
|
private DateTime reportEnd = DateTime.MaxValue;
|
|
public SozPsychErfassungBeratung()
|
|
{
|
|
InitializeComponent();
|
|
|
|
}
|
|
|
|
public void SetReportDataSource(QueryRO queryRo)
|
|
{
|
|
var dict = CreateStrassenschluesselDict();
|
|
var ro = CreateRo(queryRo, dict);
|
|
|
|
cellDifferenz.Text = string.Format("{0:0.00}",
|
|
ro.GeleisteteFlsGesamtCount - ro.AbrechnungVereinbarteFlsCount);
|
|
|
|
this.bindingSource1.DataSource = ro;
|
|
}
|
|
|
|
private SozPsychErfassungBeratungRO CreateRo(QueryRO queryRo, Dictionary<string, Wohnplatz> dict)
|
|
{
|
|
SozPsychErfassungBeratungRO result = new SozPsychErfassungBeratungRO();
|
|
result.DetailList = new List<SozPsychErfassungBeratungDetailRO>();
|
|
|
|
//decimal flsKlientGesamt = 0;
|
|
//decimal flsKlientGesamt = 0;
|
|
//decimal hilfedauerInMonatenGesamt = 0;
|
|
Dictionary<long, bool> custOidDict = new Dictionary<long, bool>();
|
|
|
|
int idx = 1;
|
|
foreach (var row in queryRo.Rows)
|
|
{
|
|
result.NummerCount++;
|
|
SozPsychErfassungBeratungDetailRO ro = new SozPsychErfassungBeratungDetailRO();
|
|
|
|
if (servicecategoryOid == 0)
|
|
{
|
|
servicecategoryOid = Int64.Parse(row.Field17.ToString());
|
|
}
|
|
long oid = Int64.Parse(row.Field1.ToString());
|
|
bool add = true;
|
|
if (!custOidDict.ContainsKey(oid))
|
|
{
|
|
custOidDict.Add(oid, true);
|
|
}
|
|
else
|
|
{
|
|
add = false;
|
|
}
|
|
Customer c = DAOFactory.GenericDAO.LoadByID<Customer>(oid);
|
|
|
|
ro.Nummer = idx++;
|
|
ro.NummerUndName = String.Format("{0}: {1}, {2}", ro.Nummer, c.Person.LastName, c.Person.FirstName);
|
|
|
|
ro.Ort = String.Format("{0}", row.Field3);
|
|
ro.Strasse = String.Format("{0}", row.Field4);
|
|
|
|
|
|
var wp = GetWohnplatz(dict, ro.Strasse, ro.Ort);
|
|
if (wp != null)
|
|
{
|
|
ro.Wohnplatz = wp.Wohnplatzname;
|
|
ro.Strasse = wp.Strasse;
|
|
ro.Hausnr = wp.HausNummer;
|
|
|
|
result.WohnplatzCount++;
|
|
}
|
|
|
|
bool containsNewAngebot = c.VarFieldValueList.Exists(vv => vv.VarFieldDefOid >= 18 && vv.VarFieldDefOid <= 22);
|
|
|
|
//ro.Strasse = c.Person.FirstNameLastName;
|
|
foreach (var vv in c.VarFieldValueList)
|
|
{
|
|
var varFieldValue = Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
|
|
|
|
SetzeNationalitaet(result, ro, vv, varFieldValue);
|
|
|
|
if (vv.VarFieldDefOid != 2 || !containsNewAngebot)
|
|
{
|
|
SetzeAngebot(result, ro, vv, varFieldValue);
|
|
}
|
|
|
|
SetzeFahrdienst(result, ro, vv, varFieldValue);
|
|
SetzeLebensumfeld(result, ro, vv, varFieldValue);
|
|
SetzeErkrankung(result, ro, vv, varFieldValue);
|
|
SetzeZugang(result, ro, vv, varFieldValue);
|
|
SetzeOhneWohnplatz(result, ro, vv, varFieldValue);
|
|
}
|
|
|
|
int sex = 0;
|
|
|
|
if (row.Field7 != null && Int32.TryParse(row.Field7.ToString(), out sex))
|
|
{
|
|
if ( sex == 1)
|
|
{
|
|
ro.Weiblich = "x";
|
|
result.WeiblichCount++;
|
|
}
|
|
else if (sex == 0)
|
|
{
|
|
ro.Maennlich = "x";
|
|
result.MaennlichCount++;
|
|
}
|
|
}
|
|
DateTime birthday = DateTime.MinValue;
|
|
|
|
if (row.Field12 != null)
|
|
{
|
|
DateTime.TryParse(row.Field12.ToString(), out reportStart);
|
|
//if (reportStart == DateTime.MinValue)
|
|
//{
|
|
// reportStart = DateTime.Now;
|
|
//}
|
|
}
|
|
|
|
if (row.Field13 != null)
|
|
{
|
|
DateTime.TryParse(row.Field13.ToString(), out reportEnd);
|
|
if (reportEnd >= DateTime.MaxValue.AddDays(-1))
|
|
{
|
|
reportEnd = DateTime.Now;
|
|
}
|
|
}
|
|
|
|
if (row.Field8 != null && DateTime.TryParse(row.Field8.ToString(), out birthday))
|
|
{
|
|
|
|
|
|
int alter = reportEnd.Year - birthday.Year;
|
|
birthday = birthday.AddYears(alter);
|
|
if (reportEnd.CompareTo(birthday) < 0)
|
|
{
|
|
alter--;
|
|
}
|
|
|
|
if (servicecategoryOid == 8)
|
|
{
|
|
cellAlter1.Text = "unter 60";
|
|
cellAlter2.Text = "60-70";
|
|
cellAlter3.Text = "71-80";
|
|
cellAlter4.Text = "81+";
|
|
|
|
if (alter < 60)
|
|
{
|
|
ro.AlterBis18 = "x";
|
|
result.AlterBis18Count++;
|
|
}
|
|
else if (alter >= 60 && alter <= 70)
|
|
{
|
|
ro.Alter18_25 = "x";
|
|
result.Alter18_25Count++;
|
|
}
|
|
else if (alter >= 71 && alter <= 80)
|
|
{
|
|
ro.Alter26_65 = "x";
|
|
result.Alter26_65Count++;
|
|
}
|
|
else if (alter >= 81)
|
|
{
|
|
ro.AlterAb65 = "x";
|
|
result.AlterAb65Count++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (alter < 18)
|
|
{
|
|
ro.AlterBis18 = "x";
|
|
result.AlterBis18Count++;
|
|
}
|
|
else if (alter >= 18 && alter <= 25)
|
|
{
|
|
ro.Alter18_25 = "x";
|
|
result.Alter18_25Count++;
|
|
}
|
|
else if (alter >= 26 && alter <= 65)
|
|
{
|
|
ro.Alter26_65 = "x";
|
|
result.Alter26_65Count++;
|
|
}
|
|
else if (alter >= 66)
|
|
{
|
|
ro.AlterAb65 = "x";
|
|
result.AlterAb65Count++;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
ro.PrimaerErkrankung = c.Diagnosis2CustomerList.Select(s => s.ICD10DiagnosisCode).ToSeparatedString(", ");
|
|
|
|
SetzeVermittlung(result, ro, c);
|
|
SetzeBeendigungsgrund(result, ro, c);
|
|
|
|
DateTime beantragtAb = DateTime.MinValue;
|
|
DateTime beantragtBis = DateTime.MinValue;
|
|
DateTime bewilligtAb = DateTime.MinValue;
|
|
DateTime bewilligtBis = DateTime.MinValue;
|
|
|
|
if (row.Field9 != null)
|
|
{
|
|
DateTime.TryParse(row.Field9.ToString(), out bewilligtAb);
|
|
}
|
|
if (row.Field10 != null)
|
|
{
|
|
DateTime.TryParse(row.Field10.ToString(), out bewilligtBis);
|
|
}
|
|
if (row.Field14 != null)
|
|
{
|
|
DateTime.TryParse(row.Field14.ToString(), out beantragtAb);
|
|
}
|
|
if (row.Field15 != null)
|
|
{
|
|
DateTime.TryParse(row.Field15.ToString(), out beantragtBis);
|
|
}
|
|
|
|
if (beantragtAb > DateTime.MinValue)
|
|
{
|
|
ro.AnfrageHilfebeginn = beantragtAb;
|
|
}
|
|
if (bewilligtAb > DateTime.MinValue)
|
|
{
|
|
ro.AnfrageClearingbeginn = bewilligtAb;
|
|
|
|
}
|
|
if (beantragtAb > DateTime.MinValue && bewilligtAb > DateTime.MinValue)
|
|
{
|
|
ro.AnfrageWartezeit = (decimal)bewilligtAb.Subtract(beantragtAb).TotalDays;
|
|
}
|
|
|
|
|
|
if (bewilligtBis > DateTime.MinValue)
|
|
{
|
|
ro.HilfsdauerFallende = bewilligtBis;
|
|
|
|
if (bewilligtAb > DateTime.MinValue)
|
|
{
|
|
ro.HilfsdauerInMonaten = BerechneDauerInMonaten(bewilligtAb, bewilligtBis);
|
|
}
|
|
}
|
|
|
|
long cb2scoid = Int64.Parse(row.Field16.ToString());
|
|
|
|
BerechneFls(result, ro, cb2scoid);
|
|
|
|
if (String.IsNullOrEmpty(ro.FahrdienstJa))
|
|
{
|
|
ro.FahrdienstNein = "x";
|
|
result.FahrdienstNeinCount++;
|
|
}
|
|
|
|
if (add)
|
|
{
|
|
result.DetailList.Add(ro);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
private Wohnplatz GetWohnplatz(Dictionary<string, Wohnplatz> dict, string strasse, string ort)
|
|
{
|
|
if (!String.IsNullOrWhiteSpace(ort))
|
|
{
|
|
if (ort.ToLower() == "berg. gladbach")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower() == "bgl")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower() == "gl")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower() == "b gladbach")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower().Contains("bergisch gladbach"))
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
}
|
|
ort = ort.Replace(" ", "").ToLower().Trim();
|
|
strasse = strasse.Replace(" ", "").ToLower().Trim();
|
|
|
|
String key = String.Format("{0} {1}", strasse, ort).ToLower();
|
|
|
|
if (dict.ContainsKey(key))
|
|
{
|
|
return dict[key];
|
|
}
|
|
key = String.Format("{0} {1}", strasse.ToLower().Replace("str.", "straße"), ort).ToLower();
|
|
if (dict.ContainsKey(key))
|
|
{
|
|
return dict[key];
|
|
}
|
|
key = String.Format("{0} {1}", strasse.ToLower().Replace("strasse", "straße"), ort).ToLower();
|
|
if (dict.ContainsKey(key))
|
|
{
|
|
return dict[key];
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
private void BerechneFls(SozPsychErfassungBeratungRO result, SozPsychErfassungBeratungDetailRO ro, long cb2scoid)
|
|
{
|
|
CostBearer2SupportConcept cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(cb2scoid);
|
|
|
|
var servicerecords = DAOFactory.SearchDAO.FindServiceRecords(null, cb2scoid);
|
|
|
|
var frecords = AnalysisServiceImp.FilterGroupServiceRecords(servicerecords);
|
|
|
|
foreach (var serviceRecord in frecords)
|
|
{
|
|
if (serviceRecord.Start >= reportStart && serviceRecord.End < reportEnd)
|
|
{
|
|
if (serviceRecord.ServiceDescription.ServiceCategory.Oid == servicecategoryOid)
|
|
{
|
|
ro.GeleisteteFlsKlient += serviceRecord.RoundedDuration;
|
|
|
|
ro.GeleisteteFlsGesamt += serviceRecord.RoundedDuration;
|
|
}
|
|
}
|
|
//else
|
|
//{
|
|
// ro.GeleisteteFlsOhneKlient += serviceRecord.RoundedDuration;
|
|
//}
|
|
|
|
}
|
|
|
|
ro.GeleisteteFlsGesamt /= 60;
|
|
ro.GeleisteteFlsKlient /= 60;
|
|
ro.GeleisteteFlsOhneKlient /= 60;
|
|
|
|
result.GeleisteteFlsGesamtCount += ro.GeleisteteFlsGesamt;
|
|
|
|
|
|
var calc = PluginLoader.FindClass<Calculations>();
|
|
|
|
var reldc = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(cb2sc);
|
|
|
|
var genehmigt = calc.GetApprovedHoursTotal(reldc, false);
|
|
|
|
ro.AbrechnungVereinbarteFls = genehmigt ?? 0;
|
|
ro.AbrechnungDifferenz = ro.GeleisteteFlsGesamt - ro.AbrechnungVereinbarteFls;
|
|
|
|
result.AbrechnungVereinbarteFlsCount += ro.AbrechnungVereinbarteFls;
|
|
}
|
|
|
|
private decimal BerechneDauerInMonaten(DateTime bewilligtAb, DateTime bewilligtBis)
|
|
{
|
|
decimal monate = 0;
|
|
|
|
DateTime start = bewilligtAb.Date;
|
|
DateTime ende = bewilligtBis.Date;
|
|
|
|
while (start < ende)
|
|
{
|
|
monate++;
|
|
|
|
start = start.AddMonths(1);
|
|
}
|
|
if (start != ende.AddDays(1))
|
|
{
|
|
var days = start.Subtract(ende).TotalDays + 1;
|
|
|
|
monate += (decimal)(days/DateTime.DaysInMonth(start.Year, start.Month));
|
|
}
|
|
|
|
|
|
return monate;
|
|
}
|
|
|
|
private void SetzeBeendigungsgrund(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, Customer customer)
|
|
{
|
|
|
|
if (customer.TerminationReason != null)
|
|
{
|
|
if (customer.TerminationReason.Value == "stabilisiert")
|
|
{
|
|
ro.BeendigungsgrundZeileErreicht = "x";
|
|
reportRo.BeendigungsgrundZeileErreichtCount++;
|
|
}
|
|
else if (customer.TerminationReason.Value == "stationär vermittelt")
|
|
{
|
|
ro.BeendigungsgrundKkhReha = "x";
|
|
reportRo.BeendigungsgrundKkhRehaCount++;
|
|
}
|
|
else if (customer.TerminationReason.Value == "von sich aus beendet")
|
|
{
|
|
ro.BeendigungsgrundAbbruch = "x";
|
|
reportRo.BeendigungsgrundAbbruchCount++;
|
|
}
|
|
else if (customer.TerminationReason.Value == "verstorben")
|
|
{
|
|
ro.BeendigungsgrundVerstorben = "x";
|
|
reportRo.BeendigungsgrundVerstorbenCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeVermittlung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, Customer customer)
|
|
{
|
|
|
|
|
|
foreach (var placement in customer.PlacementList)
|
|
{
|
|
if (placement.Objective != null)
|
|
{
|
|
if (placement.Objective.Value == "langfristige Betreuung")
|
|
{
|
|
ro.VermittlungLangfristigeBegleitung = "x";
|
|
reportRo.VermittlungLangfristigeBegleitungCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Behandlung / Therapie")
|
|
{
|
|
ro.VermittlungBehandlungTherapie = "x";
|
|
reportRo.VermittlungBehandlungTherapieCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Wohnheime / REHA")
|
|
{
|
|
ro.VermittlungWohnheimReha = "x";
|
|
reportRo.VermittlungWohnheimRehaCount++;
|
|
}
|
|
else if (placement.Objective.Value == "BEWO")
|
|
{
|
|
ro.VermittlungBeWo = "x";
|
|
reportRo.VermittlungBeWoCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Tagesstätte")
|
|
{
|
|
ro.VermittlungTagestaette = "x";
|
|
reportRo.VermittlungTagestaetteCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Kontaktstelle")
|
|
{
|
|
ro.VermittlungKontaktstelle = "x";
|
|
reportRo.VermittlungKontaktstelleCount++;
|
|
}
|
|
else if (placement.Objective.Value == "SPFH" || placement.Objective.Value == "Jugendamt")
|
|
{
|
|
ro.VermittlungJugendamtSpfh = "x";
|
|
reportRo.VermittlungJugendamtSpfhCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Schuldnerberatung")
|
|
{
|
|
ro.VermittlungSchuldnerberatung = "x";
|
|
reportRo.VermittlungSchuldnerberatungCount++;
|
|
}
|
|
else if (placement.Objective.Value == "SpDi")
|
|
{
|
|
ro.VermittlungSpdi = "x";
|
|
reportRo.VermittlungSpdiCount++;
|
|
}
|
|
else if (placement.Objective.Value == "sonstige Dienste")
|
|
{
|
|
ro.VermittlungSonstigeDienste = "x";
|
|
reportRo.VermittlungSonstigeDiensteCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Selbsthilfe")
|
|
{
|
|
ro.VermittlungSelbsthilfe = "x";
|
|
reportRo.VermittlungSelbsthilfeCount++;
|
|
}
|
|
else if (placement.Objective.Value == "keine weiteren Hilfen bekannt")
|
|
{
|
|
ro.VermittlungUnbekannt = "x";
|
|
reportRo.VermittlungUnbekanntCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private void SetzeOhneWohnplatz(SozPsychErfassungBeratungRO result, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 17)
|
|
{
|
|
if (varFieldValue != null)
|
|
{
|
|
String vvStr = varFieldValue as String;
|
|
if (!String.IsNullOrWhiteSpace(vvStr))
|
|
{
|
|
result.OhneFestenWohnsitzCount++;
|
|
|
|
ro.OhneFestenWohnsitz = vvStr;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeZugang(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 16)
|
|
{
|
|
String angebot = varFieldValue as string;
|
|
|
|
if (angebot == "selbst/Familie/soz. Umfeld")
|
|
{
|
|
ro.ZugangUeberSelbst = "x";
|
|
reportRo.ZugangUeberSelbstCount++;
|
|
}
|
|
else if (angebot == "(Fach-)Arzt")
|
|
{
|
|
ro.ZugangUeberArzt = "x";
|
|
reportRo.ZugangUeberArztCount++;
|
|
}
|
|
else if (angebot == "KKH/Reha")
|
|
{
|
|
ro.ZugangUeberKkhReha = "x";
|
|
reportRo.ZugangUeberKkhRehaCount++;
|
|
}
|
|
else if (angebot == "SpDi")
|
|
{
|
|
ro.ZugangUeberSpDi = "x";
|
|
reportRo.ZugangUeberSpDiCount++;
|
|
}
|
|
else if (angebot == "Job Center")
|
|
{
|
|
ro.ZugangUeberJobCenter = "x";
|
|
reportRo.ZugangUeberJobCenterCount++;
|
|
}
|
|
else if (angebot == "Selbsthilfe")
|
|
{
|
|
ro.ZugangUeberSelbsthilfe = "x";
|
|
reportRo.ZugangUeberSelbsthilfeCount++;
|
|
}
|
|
else if (angebot == "Seniorenberatung")
|
|
{
|
|
ro.ZugangUeberSeniorenberatung = "x";
|
|
reportRo.ZugangUeberSeniorenberatungCount++;
|
|
}
|
|
else if (angebot == "Pflegedienst")
|
|
{
|
|
ro.ZugangUeberPflegedienst = "x";
|
|
reportRo.ZugangUeberPflegedienstCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeErkrankung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 15)
|
|
{
|
|
String angebot = varFieldValue as string;
|
|
|
|
if (angebot == "Ja")
|
|
{
|
|
ro.PsychOderSuchterkrankungJa = "x";
|
|
reportRo.PsychOderSuchterkrankungJaCount++;
|
|
}
|
|
else if (angebot == "Nein")
|
|
{
|
|
ro.PsychOderSuchterkrankungNein = "x";
|
|
reportRo.PsychOderSuchterkrankungNeinCount++;
|
|
}
|
|
else if (angebot == "Unbekannt")
|
|
{
|
|
ro.PsychOderSuchterkrankungUnbekannt = "x";
|
|
reportRo.PsychOderSuchterkrankungUnbekanntCount++;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void SetzeLebensumfeld(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 5 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldAlleinLebend = "x";
|
|
reportRo.LebensumfeldAlleinLebendCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 6 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldMitPartnerLebend = "x";
|
|
reportRo.LebensumfeldMitPartnerLebendCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 7 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldKinderImHaushalt = "x";
|
|
reportRo.LebensumfeldKinderImHaushaltCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 8 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldKinderInAnderemHaushalt = "x";
|
|
reportRo.LebensumfeldKinderInAnderemHaushaltCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 9 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldWohnhaftInHerkunftsfamilie = "x";
|
|
reportRo.LebensumfeldWohnhaftInHerkunftsfamilieCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 10 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldInArbeit = "x";
|
|
reportRo.LebensumfeldInArbeitCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 11 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtAlg = "x";
|
|
reportRo.LebensumfeldBeziehtAlgCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 12 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtAlg2 = "x";
|
|
reportRo.LebensumfeldBeziehtAlg2Count++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 13 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtGrundsicherung = "x";
|
|
reportRo.LebensumfeldBeziehtGrundsicherungCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 14 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtRente = "x";
|
|
reportRo.LebensumfeldBeziehtRenteCount++;
|
|
}
|
|
}
|
|
|
|
private void SetzeFahrdienst(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 3)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.FahrdienstJa = "x";
|
|
reportRo.FahrdienstJaCount++;
|
|
}
|
|
else
|
|
{
|
|
//ro.FahrdienstNein = "x";
|
|
//reportRo.FahrdienstNeinCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 4)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.FahrdienstErfolgt = "x";
|
|
reportRo.FahrdienstErfolgtCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeAngebot(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 2)
|
|
{
|
|
String angebot = varFieldValue as string;
|
|
|
|
if (angebot == "Beratung")
|
|
{
|
|
ro.AngebotBeratung = "x";
|
|
reportRo.AngebotBeratungCount++;
|
|
}
|
|
else if (angebot == "Begleitung")
|
|
{
|
|
ro.AngebotBegleitung = "x";
|
|
reportRo.AngebotBegleitungCount++;
|
|
}
|
|
else if (angebot == "Krisenintervention")
|
|
{
|
|
ro.AngebotKrisenIntervention = "x";
|
|
reportRo.AngebotKrisenInterventionCount++;
|
|
}
|
|
else if (angebot == "Beratung Angehöriger")
|
|
{
|
|
ro.AngebotBeratungAngehoeriger = "x";
|
|
reportRo.AngebotBeratungAngehoerigerCount++;
|
|
}
|
|
else if (angebot == "Hausbesuch")
|
|
{
|
|
ro.AngebotHausbesuch = "x";
|
|
reportRo.AngebotHausbesuchCount++;
|
|
}
|
|
|
|
}
|
|
else if (vv.VarFieldDefOid == 18)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotBeratung = "x";
|
|
reportRo.AngebotBeratungCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 19)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotBegleitung = "x";
|
|
reportRo.AngebotBegleitungCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 20)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotKrisenIntervention = "x";
|
|
reportRo.AngebotKrisenInterventionCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 21)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotBeratungAngehoeriger = "x";
|
|
reportRo.AngebotBeratungAngehoerigerCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 22)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotHausbesuch = "x";
|
|
reportRo.AngebotHausbesuchCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeNationalitaet(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 1)
|
|
{
|
|
String staatsang = varFieldValue as string;
|
|
|
|
if (!String.IsNullOrWhiteSpace(staatsang))
|
|
{
|
|
if (staatsang.ToLower().Contains("deutsch"))
|
|
{
|
|
ro.Deutsch = "x";
|
|
reportRo.DeutschCount++;
|
|
}
|
|
else
|
|
{
|
|
ro.Nationalitaet = staatsang;
|
|
reportRo.NationalitaetCount++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private Dictionary<String, Wohnplatz> CreateStrassenschluesselDict()
|
|
{
|
|
var dict = new Dictionary<String, Wohnplatz>();
|
|
|
|
String sql = "Select StrassenName, HausNummer, Gemeinde, Wohnplatzname, Wohnplatznummer from Strassenschluessel";
|
|
var table = DAOFactory.AdoDAO.ExecuteQuery(sql).Tables[0];
|
|
|
|
foreach (DataRow row in table.Rows)
|
|
{
|
|
String strasse = row[0] as string;
|
|
String hausnr = row[1] as string;
|
|
String gemeinde = row[2] as string;
|
|
|
|
strasse = strasse.Replace(" ", "").Trim();
|
|
hausnr = hausnr.Replace(" ", "").Trim();
|
|
gemeinde = gemeinde.Replace(" ", "").Trim();
|
|
|
|
String key = String.Format("{0}{1} {2}", strasse, hausnr, gemeinde).ToLower();
|
|
|
|
if (!dict.ContainsKey(key))
|
|
{
|
|
Wohnplatz wp = new Wohnplatz();
|
|
wp.Strasse = row[0] as string;
|
|
wp.HausNummer = row[1] as string;
|
|
wp.Gemeinde = row[2] as string;
|
|
wp.Wohnplatzname = row[3] as string;
|
|
wp.Wohnplatznummer = row[4] as string;
|
|
|
|
dict.Add(key, wp);
|
|
}
|
|
else
|
|
{
|
|
String e = "ERROR";
|
|
}
|
|
}
|
|
return dict;
|
|
}
|
|
|
|
private class Wohnplatz
|
|
{
|
|
public String Strasse { get; set; }
|
|
|
|
public String HausNummer { get; set; }
|
|
|
|
public String Gemeinde { get; set; }
|
|
|
|
public String Wohnplatzname { get; set; }
|
|
|
|
public String Wohnplatznummer { get; set; }
|
|
}
|
|
}
|
|
}
|