diff --git a/ReportImp/SehtMuenster/CustomReportCreator.cs b/ReportImp/SehtMuenster/CustomReportCreator.cs index b720498ab..71e7ce4a5 100644 --- a/ReportImp/SehtMuenster/CustomReportCreator.cs +++ b/ReportImp/SehtMuenster/CustomReportCreator.cs @@ -5,6 +5,7 @@ using System.Text; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Report; +using BeWo.Report.DefaultReports; using BeWo.Report.ReportObjects; using DevExpress.XtraReports.Design; using DevExpress.XtraReports.UI; @@ -17,5 +18,74 @@ namespace SehtMuenster { return base.CreateSettlementReport(dcId, invoiceBaseOid, true); } + + public override XtraReport CreateQueryReport(long queryOid, string queryReportId) + { + if (queryOid == 500) + { + return CreateLwlPruefliste(CreateQueryRO(queryOid, queryReportId)); + } + + return base.CreateQueryReport(queryOid, queryReportId); + } + + private LwlPruefliste CreateLwlPruefliste(QueryRO queryRo) + { + var liste = new LwlPruefliste(); + + if (queryRo.Rows.Count > 0) + { + DateTime start = DateTime.MaxValue; + DateTime end = DateTime.MinValue; + if (queryRo.Rows[0].Field1 != null) + { + DateTime.TryParse(queryRo.Rows[0].Field1.ToString(), out start); + } + if (queryRo.Rows[0].Field2 != null) + { + DateTime.TryParse(queryRo.Rows[0].Field2.ToString(), out end); + } + + if (queryRo.Rows[0].Field3.ToString() == "0") + { + var masterReport = new LwlPruefliste(); + var customerList = DAOFactory.GenericDAO.GetAllActive(); + var customerListOrd = customerList.OrderBy(c => c.Person.LastNameFirstName).ToList(); + foreach (var c in customerListOrd) + { + var ro = LwlPrueflisteRO.Create(start, end, "9020680", c.Oid, "%LWL%"); + if (ro.ServiceRecords != null && ro.ServiceRecords.Count > 0) + { + try + { + liste = new LwlPruefliste(); + liste.SetReportDataSource(ro); + liste.CreateDocument(); + masterReport.Pages.AddRange(liste.Pages); + } + catch + { + // ignore - z.B. kein Hilfeplan + } + } + } + return (LwlPruefliste)masterReport; + } + + if (queryRo.Rows[0].Field3 != null) + { + long? customerOid = null; + if (Int64.TryParse(queryRo.Rows[0].Field3.ToString(), out var oidOut)) + { + customerOid = oidOut; + } + var ro = LwlPrueflisteRO.Create(start, end, "9020680", customerOid, "%LWL%"); + liste.SetReportDataSource(ro); + return liste; + } + } + + return liste; + } } }