using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Runtime.Remoting.Messaging; using System.Text; using System.Windows.Forms; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.HPHBersenbrueck; using BeWo.Report; using BeWo.Report.ReportObjects; using BS.Shared.Core; using DevExpress.XtraReports.UI; namespace HphBersenbrueck { public class CustomReportCreator : DefaultReportCreator { public override XtraReport CreateQueryReport(long queryOid, string queryReportId) { if (queryOid == 4000) { var ro = base.CreateQueryRO(queryOid, queryReportId); DateTime start = DateTime.MaxValue; DateTime end = DateTime.MinValue; if (DateTime.TryParse(ro.Rows[0].Field1.ToString(), out var dt)) { if (dt.Year > 1900) { start = dt; } } if (DateTime.TryParse(ro.Rows[0].Field2.ToString(), out var dt2)) { if (dt2.Year < 9000) { end = dt2.AddDays(-1); } } return CreateServiceRecordChangesReport(start, end); } return base.CreateQueryReport(queryOid, queryReportId); } public override XtraReport CreateServiceOverviewAllCustomersReport(int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay) { List lROs = ServicesOverviewRO.Create(month, year, orgaOid, empOid, startDay, endDay); if (lROs.Count > 0) { var rootReport = CreateServicesOverviewReportForRo(lROs[0]); rootReport.CreateDocument(); for (int i = 1; i < lROs.Count; i++) { var lNext = CreateServicesOverviewReportForRo(lROs[i]); lNext.CreateDocument(); rootReport.Pages.AddRange(lNext.Pages); } return rootReport; } return new XtraReport(); } public override XtraReport CreateServiceOverviewSingleCustomerReport(long customerOid, int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay) { var ro = ServicesOverviewRO.Create(customerOid, month, year, false, orgaOid, empOid, startDay, endDay, serviceCategoryOid); return CreateServicesOverviewReportForRo(ro); } private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro) { bool neuQA = false; bool neuKA = false; ServicesOverviewRO qaRo = ServicesOverviewRO.CopyFromRO(ro); ServicesOverviewRO kaRo = ServicesOverviewRO.CopyFromRO(ro); ServicesOverviewRO sonstigesRo = ServicesOverviewRO.CopyFromRO(ro); if (ro.Services != null) { foreach (ServicesOverviewRO.ServiceDetail s in ro.Services) { if (s.ServiceCategory.ToLower().StartsWith("neu qualifiziert")) { neuQA = true; qaRo.Services.Add(s); } else if (s.ServiceCategory.ToLower().StartsWith("neu kompensatorisch")) { neuKA = true; kaRo.Services.Add(s); } else { sonstigesRo.Services.Add(s); } //} } } XtraReport report = null; report = AddSubServicesOverviewReportToReport(report, new LeistungsnachweisQualifizierteAssistenz(), qaRo); report = AddSubServicesOverviewReportToReport(report, new LeistungsnachweisKompensatorischeAssistenz(), kaRo); report = AddSubServicesOverviewReportToReport(report, new Stundenzettel(), sonstigesRo); if (report == null) report = new XtraReport(); return report; } } }