Files
BeWoPlaner/ReportImp/HPHBersenbrueck/CustomReportCreator.cs

127 lines
3.4 KiB
C#

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<ServicesOverviewRO> 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;
}
}
}