using System; using System.Collections.Generic; using System.Linq; using System.Text; using BeWo.Data.Access; using BeWo.Data.Entities; using BeWo.Report; using BeWo.Report.DefaultReports; using BeWo.Report.ReportObjects; using BeWo.Service.DCEntityMapper; using BS.Shared.Core; using BS.Shared.DataContracts; using DevExpress.XtraReports.Design; using DevExpress.XtraReports.UI; namespace Biotop { public class CustomReportCreator : DefaultReportCreator { 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); } long? customerOid = null; if (queryRo.Rows[0].Field3.ToString() == "0") { var masterReport = new LwlPruefliste(); //masterReport.CreateDocument(); 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, "9009969", c.Oid, "Landschaftsverband Westfalen-Lippe"); 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) { if (Int64.TryParse(queryRo.Rows[0].Field3.ToString(), out var oidOut)) { customerOid = oidOut; } var ro = LwlPrueflisteRO.Create(start, end, "9009969", customerOid, "Landschaftsverband Westfalen-Lippe"); liste.SetReportDataSource(ro); return liste; } } return liste; } public override XtraReport CreateSettlementReport(string dcId, long? invoiceBaseOid) { long result; Settlement2DC lSettlementDC; string cbName; if (invoiceBaseOid.HasValue && invoiceBaseOid.Value > 0) { long invoiceOid = invoiceBaseOid.Value; var ib = DAOFactory.GenericDAO.LoadByID(invoiceOid); cbName = ib.CostBearer2SupportConcept.CostBearer.Organisation.Name; } else { Int64.TryParse(dcId, out result); lSettlementDC = MapperFactory.SettlementDC_SettlementInvoice.MapToNewDC(DAOFactory.GenericDAO.LoadByID(result)); cbName = lSettlementDC.RecipientOrganisation; } if (cbName.Contains("Landschaftsverband Westfalen-Lippe") || cbName == "LWL") return base.CreateSettlementReport(dcId, invoiceBaseOid, true); return base.CreateSettlementReport(dcId, invoiceBaseOid, false); } } }