PerspektivenEV/CustomReportCreator.cs - Entfernen nicht benötigter Berichte

SupportOID=169021
This commit is contained in:
2026-07-27 11:19:26 +02:00
parent ac9e6a7dde
commit c23f03a4d3

View File

@@ -22,44 +22,14 @@ namespace PerspektivenEV
{ {
public override XtraReport CreateQueryReport(long queryOid, string queryReportId) public override XtraReport CreateQueryReport(long queryOid, string queryReportId)
{ {
if (queryOid == 200 || queryOid == 201) if (queryOid == 207)
{
return CreateLWVRechnung(queryOid, queryReportId);
}
if (queryOid == 205 || queryOid == 206 || queryOid == 207 || queryOid == 208)
{ {
return CreateTestRechnungslauf(queryOid, queryReportId); return CreateTestRechnungslauf(queryOid, queryReportId);
} }
//if (queryOid == 300)
//{
// return CreateLwvSpitzabrechnung(queryOid, queryReportId);
//}
return base.CreateQueryReport(queryOid, queryReportId); return base.CreateQueryReport(queryOid, queryReportId);
} }
private XtraReport CreateLwvSpitzabrechnung(long queryOid, string queryReportId)
{
// Parameter ergänzen
var qro = base.CreateQueryRO(queryOid, queryReportId);
if (qro != null && qro.Rows.Count > 0)
{
long c2sOid = Int64.Parse(qro.Rows[0].Field1.ToString());
long? cat = Int64.Parse(qro.Rows[0].Field2.ToString());
DateTime end = DateTime.Today;
var ro = LwvKASpitzabrechnungRO.Create(c2sOid, end, null, cat);
var report = new LwvKASpitzabrechnung();
report.SetReportDataSource(ro);
report.CreateDocument();
return (XtraReport)report;
}
return new XtraReport();
}
private XtraReport CreateTestRechnungslauf(long queryOid, string queryReportId) private XtraReport CreateTestRechnungslauf(long queryOid, string queryReportId)
{ {
var query = DAOFactory.GenericDAO.LoadByID<Query>(queryOid); var query = DAOFactory.GenericDAO.LoadByID<Query>(queryOid);
@@ -80,129 +50,77 @@ namespace PerspektivenEV
DateTimeSpan span = new DateTimeSpan(); DateTimeSpan span = new DateTimeSpan();
span.StartDate = start.Date; span.StartDate = start.Date;
span.EndDate = end.Date; //.AddDays(1).AddTicks(-1); span.EndDate = end.Date; //.AddDays(1).AddTicks(-1);
# region LWV var costBearers = DAOFactory.GenericDAO.GetAllActive<CostBearer>();
if (queryOid == 205 || queryOid == 206) var cBBthg = costBearers.Where(c => c.Organisation.Function != null && c.Organisation.Function.Value.ToString().ToLower().Contains("bthg") && c.Organisation.Name != "SELBSTZAHLER").ToList();
var anhang = new FinanzauswertungTabBthgIntern();
List<ServiceInvoiceDC> firstInv = new List<ServiceInvoiceDC>();
foreach (var cb in cBBthg)
{ {
var firstInv = GenerateInitialServiceInvoices(198, span); var invs = GenerateInitialServiceInvoices(cb.Oid.Value, span);
var anhang = new SammelrechnungTabBthgIntern(); if (invs != null)
if (firstInv != null)
{ {
var count = 0; if (firstInv.Count == 0)
foreach (var i in firstInv) {
{ var count = 0;
count += 1; foreach (var i in invs)
if (count > 1 && i.ServiceInvoicePeriods != null && i.ServiceInvoicePeriods.Count > 0)
{ {
foreach (var sip in i.ServiceInvoicePeriods) count += 1;
if (count > 1 && i.ServiceInvoicePeriods != null && i.ServiceInvoicePeriods.Count > 0)
{ {
firstInv[0].ServiceInvoicePeriods.Add(sip); foreach (var sip in i.ServiceInvoicePeriods)
{
invs[0].ServiceInvoicePeriods.Add(sip);
}
} }
} }
} ServiceInvoiceRO roSingle = ServiceInvoiceRO.Create(invs[0]);
ServiceInvoiceRO ro = ServiceInvoiceRO.Create(firstInv[0]); if (roSingle.GrossClaim != "0,00 €")
anhang.SetReportDataSource(ro); {
anhang.CreateDocument(); firstInv.Add(invs[0]);
if (queryOid == 205) // die wollen die Rechnungsvorschau nur in Excel sprich Trennung von Sammelrechnung Spitzabrechnungsreports }
{
return (XtraReport)anhang;
} }
else else
{ {
var anhang2 = new LwvKASpitzabrechnung(); var count = 0;
if (ro.ServiceInvoicePeriods != null && ro.ServiceInvoicePeriods.Count > 0) foreach (var i in invs)
{ {
foreach (var sip in ro.ServiceInvoicePeriods) if (i.ServiceInvoicePeriods != null && i.ServiceInvoicePeriods.Count > 0)
{ {
if (sip.ServiceInvoiceItems != null && sip.ServiceInvoiceItems.Count > 1 foreach (var sip in i.ServiceInvoicePeriods)
&& sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Substring(sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Length - 2) == "KA")
{ {
var einzel = new LwvKASpitzabrechnung(); firstInv[0].ServiceInvoicePeriods.Add(sip);
var kaRo = LwvKASpitzabrechnungRO.Create(sip.CostBearer2SupportConcept.Oid.Value, ro.AccountingPeriodEnd, sip.SupportConceptApprovalPeriod.Oid.Value, null);
einzel.SetReportDataSource(kaRo);
einzel.CreateDocument();
anhang2.Pages.AddRange((einzel).Pages);
} }
} }
} }
return (XtraReport)anhang2;
} }
} }
} }
#endregion LWV ServiceInvoiceRO ro = ServiceInvoiceRO.Create(firstInv[0]);
anhang.SetReportDataSource(ro);
anhang.CreateDocument();
if (queryOid == 207) // die wollen die Rechnungsvorschau nur in Excel sprich Trennung von Sammelrechnung Spitzabrechnungsreports
{
return (XtraReport)anhang;
}
else else
{ {
var costBearers = DAOFactory.GenericDAO.GetAllActive<CostBearer>(); var anhang2 = new LwvKASpitzabrechnung();
var cBBthg = costBearers.Where(c => c.Organisation.Function != null && c.Organisation.Function.Value.ToString().ToLower().Contains("bthg") && c.Organisation.Name != "SELBSTZAHLER").ToList(); //if (ro.ServiceInvoicePeriods != null && ro.ServiceInvoicePeriods.Count > 0)
var anhang = new FinanzauswertungTabBthgIntern(); //{
List<ServiceInvoiceDC> firstInv = new List<ServiceInvoiceDC>(); // foreach (var sip in ro.ServiceInvoicePeriods)
foreach (var cb in cBBthg) // {
{ // if (sip.ServiceInvoiceItems != null && sip.ServiceInvoiceItems.Count > 1
var invs = GenerateInitialServiceInvoices(cb.Oid.Value, span); // && sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Substring(sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Length - 2) == "KA")
if (invs != null) // {
{ // var einzel = new LwvKASpitzabrechnung();
if (firstInv.Count == 0) // var kaRo = LwvKASpitzabrechnungRO.Create(sip.CostBearer2SupportConcept.Oid.Value, ro.AccountingPeriodEnd, sip.SupportConceptApprovalPeriod.Oid.Value, null);
{ // einzel.SetReportDataSource(kaRo);
var count = 0; // einzel.CreateDocument();
foreach (var i in invs) // anhang2.Pages.AddRange((einzel).Pages);
{ // }
count += 1; // }
if (count > 1 && i.ServiceInvoicePeriods != null && i.ServiceInvoicePeriods.Count > 0) //}
{ return (XtraReport)anhang2;
foreach (var sip in i.ServiceInvoicePeriods)
{
invs[0].ServiceInvoicePeriods.Add(sip);
}
}
}
ServiceInvoiceRO roSingle = ServiceInvoiceRO.Create(invs[0]);
if (roSingle.GrossClaim != "0,00 €")
{
firstInv.Add(invs[0]);
}
}
else
{
var count = 0;
foreach (var i in invs)
{
if (i.ServiceInvoicePeriods != null && i.ServiceInvoicePeriods.Count > 0)
{
foreach (var sip in i.ServiceInvoicePeriods)
{
firstInv[0].ServiceInvoicePeriods.Add(sip);
}
}
}
}
}
}
ServiceInvoiceRO ro = ServiceInvoiceRO.Create(firstInv[0]);
anhang.SetReportDataSource(ro);
anhang.CreateDocument();
if (queryOid == 207) // die wollen die Rechnungsvorschau nur in Excel sprich Trennung von Sammelrechnung Spitzabrechnungsreports
{
return (XtraReport)anhang;
}
else
{
var anhang2 = new LwvKASpitzabrechnung();
//if (ro.ServiceInvoicePeriods != null && ro.ServiceInvoicePeriods.Count > 0)
//{
// foreach (var sip in ro.ServiceInvoicePeriods)
// {
// if (sip.ServiceInvoiceItems != null && sip.ServiceInvoiceItems.Count > 1
// && sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Substring(sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Length - 2) == "KA")
// {
// var einzel = new LwvKASpitzabrechnung();
// var kaRo = LwvKASpitzabrechnungRO.Create(sip.CostBearer2SupportConcept.Oid.Value, ro.AccountingPeriodEnd, sip.SupportConceptApprovalPeriod.Oid.Value, null);
// einzel.SetReportDataSource(kaRo);
// einzel.CreateDocument();
// anhang2.Pages.AddRange((einzel).Pages);
// }
// }
//}
return (XtraReport)anhang2;
}
} }
} }
return new XtraReport(); return new XtraReport();
@@ -236,98 +154,6 @@ namespace PerspektivenEV
return newInvoices; return newInvoices;
} }
private XtraReport CreateLWVRechnung(long queryOid, string queryReportId)
{
var query = DAOFactory.GenericDAO.LoadByID<Query>(queryOid);
if (query == null)
return new XtraReport();
var path = Path.Combine(TempPath, queryReportId + ".xml");
var table = Utils.XMLDeserialize<DataTable>(path);
var qro = QueryRO.Create(query, table);
if (qro.Rows.Count > 0)
{
DateTime start = DateTime.Parse(qro.Rows[0].Field1.ToString());
DateTime end = start.AddMonths(1).AddDays(-1);
DateTimeSpan span = new DateTimeSpan();
span.StartDate = start;
span.EndDate = end.AddMinutes(-1);
var invoices = DAOFactory.SearchDAO.GetServiceInvoices(null, span);
if (invoices.Count > 0)
{
String ids = "";
ServiceInvoice invoice = null;
if (queryOid == 201)
{
invoice = invoices.Where(i => i.InvoiceBase.RecipientOrganisation == "Landeswohlfahrtsverband Hessen"
&& i.InvoiceBase.InvoiceId == "SammelrechnungBthg").OrderByDescending(b => b.InvoiceBase.Oid).FirstOrDefault();
}
else
{
invoice = invoices.Where(i => i.InvoiceBase.RecipientOrganisation == "Landeswohlfahrtsverband Hessen"
&& i.InvoiceBase.InvoiceId == "SammelrechnungBthg").OrderByDescending(b => b.InvoiceBase.Oid).Skip(1).FirstOrDefault();
}
if (invoice != null)
{
try
{
if (invoice.InvoiceBase.RecipientOrganisation == "Landeswohlfahrtsverband Hessen" && invoice.InvoiceBase.InvoiceId == "SammelrechnungBthg")
{
ids += invoice.Oid;
}
}
catch (Exception e)
{
//Bei gelöschten Costbearer2SupportConcepts kann es zu einem Hibernate Fehler kommen, den ignorieren wir einfach
}
}
if (!String.IsNullOrEmpty(ids))
{
var report = CreateServiceInvoiceReportIntern(ids, null);
return (XtraReport)report;
}
}
}
return new XtraReport();
}
private object CreateServiceInvoiceReportIntern(string dcId, object p)
{
var oid = long.Parse(dcId);
var invoice = DAOFactory.GenericDAO.LoadByID<ServiceInvoice>(oid);
var idc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(invoice);
XtraReport invoiceReport = null;
var anhang = new SammelrechnungTabBthgIntern();
var ro = ServiceInvoiceRO.Create(idc);
anhang.SetReportDataSource(ro);
anhang.CreateDocument();
if (ro.ServiceInvoicePeriods != null && ro.ServiceInvoicePeriods.Count > 0)
{
foreach (var sip in ro.ServiceInvoicePeriods)
{
if (sip.ServiceInvoiceItems != null && sip.ServiceInvoiceItems.Count > 1
&& sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Substring(sip.SupportConceptApprovalPeriod.ServiceCategory.Abbreviation.Length - 2) == "KA")
{
var anhang2 = new LwvKASpitzabrechnung();
var kaRo = LwvKASpitzabrechnungRO.Create(sip.CostBearer2SupportConcept.Oid.Value, ro.AccountingPeriodEnd, sip.SupportConceptApprovalPeriod.Oid.Value, null);
anhang2.SetReportDataSource(kaRo);
anhang2.CreateDocument();
((XtraReport)anhang).Pages.AddRange(((XtraReport)anhang2).Pages);
}
}
}
invoiceReport = anhang as XtraReport;
return invoiceReport;
}
public override XtraReport CreateServiceInvoiceReport(string dcIds, long? invoiceBaseOid) public override XtraReport CreateServiceInvoiceReport(string dcIds, long? invoiceBaseOid)
{ {
if (String.IsNullOrEmpty(dcIds) && invoiceBaseOid.HasValue) if (String.IsNullOrEmpty(dcIds) && invoiceBaseOid.HasValue)