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.Text; 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 { 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 dict) { SozPsychErfassungBeratungRO result = new SozPsychErfassungBeratungRO(); result.DetailList = new List(); //decimal flsKlientGesamt = 0; //decimal flsKlientGesamt = 0; //decimal hilfedauerInMonatenGesamt = 0; Dictionary custOidDict = new Dictionary(); int idx = 1; foreach (var row in queryRo.Rows) { SozPsychErfassungBeratungDetailRO ro = new SozPsychErfassungBeratungDetailRO(); if (servicecategoryOid == 0) { servicecategoryOid = Int64.Parse(row.Field17.ToString()); } long oid = Int64.Parse(row.Field1.ToString()); bool customerDoppeltVorhanden = false; if (!custOidDict.ContainsKey(oid)) { custOidDict.Add(oid, ro); } else { ro = custOidDict[oid]; customerDoppeltVorhanden = true; } if (!customerDoppeltVorhanden) result.NummerCount++; Customer c = DAOFactory.GenericDAO.LoadByID(oid); if (!customerDoppeltVorhanden) { 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; if (!customerDoppeltVorhanden) { 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, customerDoppeltVorhanden); if (vv.VarFieldDefOid != 2 || !containsNewAngebot) { SetzeAngebot(result, ro, vv, varFieldValue, customerDoppeltVorhanden); } SetzeFahrdienst(result, ro, vv, varFieldValue, customerDoppeltVorhanden); SetzeLebensumfeld(result, ro, vv, varFieldValue, customerDoppeltVorhanden); SetzeErkrankung(result, ro, vv, varFieldValue, customerDoppeltVorhanden); SetzeZugang(result, ro, vv, varFieldValue, customerDoppeltVorhanden); SetzeOhneWohnplatz(result, ro, vv, varFieldValue, customerDoppeltVorhanden); } int sex = 0; if (row.Field7 != null && Int32.TryParse(row.Field7.ToString(), out sex)) { if (sex == 1) { ro.Weiblich = "x"; if (!customerDoppeltVorhanden) result.WeiblichCount++; } else if (sex == 0) { ro.Maennlich = "x"; if (!customerDoppeltVorhanden) 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"; if (!customerDoppeltVorhanden) result.AlterBis18Count++; } else if (alter >= 60 && alter <= 70) { ro.Alter18_25 = "x"; if (!customerDoppeltVorhanden) result.Alter18_25Count++; } else if (alter >= 71 && alter <= 80) { ro.Alter26_65 = "x"; if (!customerDoppeltVorhanden) result.Alter26_65Count++; } else if (alter >= 81) { ro.AlterAb65 = "x"; if (!customerDoppeltVorhanden) result.AlterAb65Count++; } } else { if (alter < 18) { ro.AlterBis18 = "x"; if (!customerDoppeltVorhanden) result.AlterBis18Count++; } else if (alter >= 18 && alter <= 25) { ro.Alter18_25 = "x"; if (!customerDoppeltVorhanden) result.Alter18_25Count++; } else if (alter >= 26 && alter <= 65) { ro.Alter26_65 = "x"; if (!customerDoppeltVorhanden) result.Alter26_65Count++; } else if (alter >= 66) { ro.AlterAb65 = "x"; if (!customerDoppeltVorhanden) result.AlterAb65Count++; } } } //ro.PrimaerErkrankung = c.Diagnosis2CustomerList.Select(s => s.ICD10DiagnosisCode).ToSeparatedString(", "); ro.PrimaerErkrankung = CreateDiagnosisString(c.Diagnosis2CustomerList); SetzeVermittlung(result, ro, c, customerDoppeltVorhanden); SetzeBeendigungsgrund(result, ro, c, customerDoppeltVorhanden); } 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) { if (!ro.AnfrageHilfebeginn.HasValue || beantragtAb < ro.AnfrageHilfebeginn.Value) { ro.AnfrageHilfebeginn = beantragtAb; } } if (bewilligtAb > DateTime.MinValue) { if (!ro.AnfrageClearingbeginn.HasValue || bewilligtAb < ro.AnfrageClearingbeginn.Value) { ro.AnfrageClearingbeginn = bewilligtAb; } } if (beantragtAb > DateTime.MinValue && bewilligtAb > DateTime.MinValue) { if (!ro.AnfrageWartezeit.HasValue) { ro.AnfrageWartezeit = (decimal)bewilligtAb.Subtract(beantragtAb).TotalDays; } } if (bewilligtBis > DateTime.MinValue) { if (!ro.HilfsdauerFallende.HasValue || bewilligtBis > ro.HilfsdauerFallende.Value) { ro.HilfsdauerFallende = bewilligtBis; } if (bewilligtAb > DateTime.MinValue) { ro.HilfsdauerInMonaten = BerechneDauerInMonaten(bewilligtAb, bewilligtBis); } } long cb2scoid = Int64.Parse(row.Field16.ToString()); if (!customerDoppeltVorhanden) { int test = 0; } BerechneFls(result, ro, cb2scoid); if (String.IsNullOrEmpty(ro.FahrdienstJa)) { ro.FahrdienstNein = "x"; if (!customerDoppeltVorhanden) result.FahrdienstNeinCount++; } if (!customerDoppeltVorhanden) { result.DetailList.Add(ro); } } return result; } private string CreateDiagnosisString(IList d2CList) { StringBuilder sb = new StringBuilder(); foreach (var d2c in d2CList) { if (!String.IsNullOrWhiteSpace(d2c.ICD10DiagnosisCode)) { String code = d2c.ICD10DiagnosisCode; if (code.StartsWith("F")) { if (code.StartsWith("F0")) { code = "F00-F09"; } else if (code.StartsWith("F1")) { code = "F10-F19"; } else if (code.StartsWith("F2")) { code = "F20-F29"; } else if (code.StartsWith("F3")) { code = "F30-F39"; } else if (code.StartsWith("F4")) { code = "F40-F49"; } else if (code.StartsWith("F5")) { code = "F50-F59"; } else if (code.StartsWith("F6")) { code = "F60-F69"; } else if (code.StartsWith("F7")) { code = "F70-F79"; } else if (code.StartsWith("F8")) { code = "F80-F89"; } else if (code.StartsWith("F9")) { code = "F90-F99"; } } if (sb.Length > 0) { sb.Append(", "); } sb.Append(code); } } return sb.ToString(); } private Wohnplatz GetWohnplatz(Dictionary 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(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 / 60; ro.GeleisteteFlsGesamt += serviceRecord.RoundedDuration / 60; result.GeleisteteFlsGesamtCount += serviceRecord.RoundedDuration / 60; } } //else //{ // ro.GeleisteteFlsOhneKlient += serviceRecord.RoundedDuration; //} } //ro.GeleisteteFlsOhneKlient /= 60; var calc = PluginLoader.FindClass(); 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, bool customerDoppeltVorhanden) { if (customer.TerminationReason != null) { if (customer.TerminationReason.Value == "stabilisiert") { ro.BeendigungsgrundZeileErreicht = "x"; if (!customerDoppeltVorhanden) reportRo.BeendigungsgrundZeileErreichtCount++; } else if (customer.TerminationReason.Value == "stationär vermittelt") { ro.BeendigungsgrundStationaer = "x"; if (!customerDoppeltVorhanden) reportRo.BeendigungsgrundStationaerCount++; } else if (customer.TerminationReason.Value == "von sich aus beendet") { ro.BeendigungsgrundAbbruch = "x"; if (!customerDoppeltVorhanden) reportRo.BeendigungsgrundAbbruchCount++; } else if (customer.TerminationReason.Value == "verstorben") { ro.BeendigungsgrundVerstorben = "x"; if (!customerDoppeltVorhanden) reportRo.BeendigungsgrundVerstorbenCount++; } else if (customer.TerminationReason.Value.Contains("Reha")) { ro.BeendigungsgrundKkhReha = "x"; if (!customerDoppeltVorhanden) reportRo.BeendigungsgrundKkhRehaCount++; } } } private void SetzeVermittlung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, Customer customer, bool customerDoppeltVorhanden) { foreach (var placement in customer.PlacementList) { if (placement.Objective != null) { if (placement.Objective.Value == "langfristige Betreuung") { ro.VermittlungLangfristigeBegleitung = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungLangfristigeBegleitungCount++; } else if (placement.Objective.Value == "Behandlung / Therapie") { ro.VermittlungBehandlungTherapie = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungBehandlungTherapieCount++; } else if (placement.Objective.Value == "Wohnheime / REHA") { ro.VermittlungWohnheimReha = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungWohnheimRehaCount++; } else if (placement.Objective.Value == "BEWO") { ro.VermittlungBeWo = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungBeWoCount++; } else if (placement.Objective.Value == "Tagesstätte") { ro.VermittlungTagestaette = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungTagestaetteCount++; } else if (placement.Objective.Value == "Kontaktstelle") { ro.VermittlungKontaktstelle = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungKontaktstelleCount++; } else if (placement.Objective.Value == "SPFH" || placement.Objective.Value == "Jugendamt") { ro.VermittlungJugendamtSpfh = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungJugendamtSpfhCount++; } else if (placement.Objective.Value == "Schuldnerberatung") { ro.VermittlungSchuldnerberatung = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungSchuldnerberatungCount++; } else if (placement.Objective.Value == "SpDi") { ro.VermittlungSpdi = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungSpdiCount++; } else if (placement.Objective.Value == "sonstige Dienste") { ro.VermittlungSonstigeDienste = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungSonstigeDiensteCount++; } else if (placement.Objective.Value == "Selbsthilfe") { ro.VermittlungSelbsthilfe = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungSelbsthilfeCount++; } else if (placement.Objective.Value == "keine weiteren Hilfen bekannt") { ro.VermittlungUnbekannt = "x"; if (!customerDoppeltVorhanden) reportRo.VermittlungUnbekanntCount++; } } } } private void SetzeOhneWohnplatz(SozPsychErfassungBeratungRO result, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue, bool customerDoppeltVorhanden) { if (vv.VarFieldDefOid == 17) { if (varFieldValue != null) { String vvStr = varFieldValue as String; if (!String.IsNullOrWhiteSpace(vvStr)) { ro.OhneFestenWohnsitz = vvStr; if (!customerDoppeltVorhanden) result.OhneFestenWohnsitzCount++; } } } } private void SetzeZugang(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue, bool customerDoppeltVorhanden) { if (vv.VarFieldDefOid == 16) { String angebot = varFieldValue as string; if (angebot == "selbst/Familie/soz. Umfeld") { ro.ZugangUeberSelbst = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberSelbstCount++; } else if (angebot == "(Fach-)Arzt") { ro.ZugangUeberArzt = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberArztCount++; } else if (angebot == "KKH/Reha") { ro.ZugangUeberKkhReha = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberKkhRehaCount++; } else if (angebot == "SpDi") { ro.ZugangUeberSpDi = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberSpDiCount++; } else if (angebot == "Job Center") { ro.ZugangUeberJobCenter = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberJobCenterCount++; } else if (angebot == "Selbsthilfe") { ro.ZugangUeberSelbsthilfe = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberSelbsthilfeCount++; } else if (angebot == "Seniorenberatung") { ro.ZugangUeberSeniorenberatung = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberSeniorenberatungCount++; } else if (angebot == "Pflegedienst") { ro.ZugangUeberPflegedienst = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberPflegedienstCount++; } else if (angebot == "Kontaktstelle") { ro.ZugangUeberKontaktstelle = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberKontaktstelleCount++; } else if (angebot == "Andere") { ro.ZugangUeberAndere = "x"; if (!customerDoppeltVorhanden) reportRo.ZugangUeberAndereCount++; } } } private void SetzeErkrankung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue, bool customerDoppeltVorhanden) { if (vv.VarFieldDefOid == 15) { String angebot = varFieldValue as string; if (angebot == "Ja") { ro.PsychOderSuchterkrankungJa = "x"; if (!customerDoppeltVorhanden) reportRo.PsychOderSuchterkrankungJaCount++; } else if (angebot == "Nein") { ro.PsychOderSuchterkrankungNein = "x"; if (!customerDoppeltVorhanden) reportRo.PsychOderSuchterkrankungNeinCount++; } else if (angebot == "Unbekannt") { ro.PsychOderSuchterkrankungUnbekannt = "x"; if (!customerDoppeltVorhanden) reportRo.PsychOderSuchterkrankungUnbekanntCount++; } } } private void SetzeLebensumfeld(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue, bool customerDoppeltVorhanden) { if (vv.VarFieldDefOid == 5 && varFieldValue.ToString() == "True") { ro.LebensumfeldAlleinLebend = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldAlleinLebendCount++; } else if (vv.VarFieldDefOid == 6 && varFieldValue.ToString() == "True") { ro.LebensumfeldMitPartnerLebend = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldMitPartnerLebendCount++; } else if (vv.VarFieldDefOid == 7 && varFieldValue.ToString() == "True") { ro.LebensumfeldKinderImHaushalt = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldKinderImHaushaltCount++; } else if (vv.VarFieldDefOid == 8 && varFieldValue.ToString() == "True") { ro.LebensumfeldKinderInAnderemHaushalt = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldKinderInAnderemHaushaltCount++; } else if (vv.VarFieldDefOid == 9 && varFieldValue.ToString() == "True") { ro.LebensumfeldWohnhaftInHerkunftsfamilie = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldWohnhaftInHerkunftsfamilieCount++; } else if (vv.VarFieldDefOid == 10 && varFieldValue.ToString() == "True") { ro.LebensumfeldInArbeit = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldInArbeitCount++; } else if (vv.VarFieldDefOid == 11 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtAlg = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldBeziehtAlgCount++; } else if (vv.VarFieldDefOid == 12 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtAlg2 = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldBeziehtAlg2Count++; } else if (vv.VarFieldDefOid == 13 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtGrundsicherung = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldBeziehtGrundsicherungCount++; } else if (vv.VarFieldDefOid == 14 && varFieldValue.ToString() == "True") { ro.LebensumfeldBeziehtRente = "x"; if (!customerDoppeltVorhanden) reportRo.LebensumfeldBeziehtRenteCount++; } } private void SetzeFahrdienst(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue, bool customerDoppeltVorhanden) { if (vv.VarFieldDefOid == 3) { if (varFieldValue.ToString() == "True") { ro.FahrdienstJa = "x"; if (!customerDoppeltVorhanden) reportRo.FahrdienstJaCount++; } else { //ro.FahrdienstNein = "x"; //if (!customerDoppeltVorhanden) //reportRo.FahrdienstNeinCount++; } } else if (vv.VarFieldDefOid == 4) { if (varFieldValue.ToString() == "True") { ro.FahrdienstErfolgt = "x"; if (!customerDoppeltVorhanden) reportRo.FahrdienstErfolgtCount++; } } } private void SetzeAngebot(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue, bool customerDoppeltVorhanden) { if (vv.VarFieldDefOid == 2) { String angebot = varFieldValue as string; if (angebot == "Beratung") { ro.AngebotBeratung = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotBeratungCount++; } else if (angebot == "Begleitung") { ro.AngebotBegleitung = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotBegleitungCount++; } else if (angebot == "Krisenintervention") { ro.AngebotKrisenIntervention = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotKrisenInterventionCount++; } else if (angebot == "Beratung Angehöriger") { ro.AngebotBeratungAngehoeriger = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotBeratungAngehoerigerCount++; } else if (angebot == "Hausbesuch") { ro.AngebotHausbesuch = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotHausbesuchCount++; } } else if (vv.VarFieldDefOid == 18) { if (varFieldValue.ToString() == "True") { ro.AngebotBeratung = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotBeratungCount++; } } else if (vv.VarFieldDefOid == 19) { if (varFieldValue.ToString() == "True") { ro.AngebotBegleitung = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotBegleitungCount++; } } else if (vv.VarFieldDefOid == 20) { if (varFieldValue.ToString() == "True") { ro.AngebotKrisenIntervention = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotKrisenInterventionCount++; } } else if (vv.VarFieldDefOid == 21) { if (varFieldValue.ToString() == "True") { ro.AngebotBeratungAngehoeriger = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotBeratungAngehoerigerCount++; } } else if (vv.VarFieldDefOid == 22) { if (varFieldValue.ToString() == "True") { ro.AngebotHausbesuch = "x"; if (!customerDoppeltVorhanden) reportRo.AngebotHausbesuchCount++; } } } private void SetzeNationalitaet(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue, bool customerDoppeltVorhanden) { if (vv.VarFieldDefOid == 1) { String staatsang = varFieldValue as string; if (!String.IsNullOrWhiteSpace(staatsang)) { if (staatsang.ToLower().Contains("deutsch")) { ro.Deutsch = "x"; if (!customerDoppeltVorhanden) reportRo.DeutschCount++; } else { ro.Nationalitaet = staatsang; if (!customerDoppeltVorhanden) reportRo.NationalitaetCount++; } } } } private Dictionary CreateStrassenschluesselDict() { var dict = new Dictionary(); 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; } } } }