diff --git a/ReportImp/InputFamilienhilfe/CustomReportCreator.cs b/ReportImp/InputFamilienhilfe/CustomReportCreator.cs index 74dd1e2e9..0b68950b9 100644 --- a/ReportImp/InputFamilienhilfe/CustomReportCreator.cs +++ b/ReportImp/InputFamilienhilfe/CustomReportCreator.cs @@ -15,39 +15,83 @@ namespace InputFamilienhilfe { class CustomReportCreator : DefaultReportCreator { - public override XtraReport CreateServiceInvoiceReport(String dcIds, long? invoiceBaseOid) + public override XtraReport CreateServiceInvoiceReport(string dcIds, long? invoiceBaseOid) { - ServiceInvoice serviceInvoice = null; - int serviceInvoiceOid = 0; - if (!String.IsNullOrEmpty(dcIds) && Int32.TryParse(dcIds, out serviceInvoiceOid)) + if (String.IsNullOrEmpty(dcIds) && invoiceBaseOid.HasValue) { - serviceInvoice = DAOFactory.GenericDAO.LoadByID(serviceInvoiceOid); - } - else if (invoiceBaseOid.HasValue) - { - serviceInvoice = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(invoiceBaseOid.Value); + var serviceInvoice = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(invoiceBaseOid.Value); + dcIds = String.Format("{0}", serviceInvoice.Oid); } - if (serviceInvoice != null) + if (!string.IsNullOrEmpty(dcIds)) { - var dc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(serviceInvoice); - var ro = ServiceInvoiceRO.Create(dc); - IBeWoReport report = null; - - if (serviceInvoice.InvoiceBase.AccountingPeriodStart.Value >= new DateTime(2022, 12, 1)) + + var dcList = new List(); + var dcidStrs = dcIds.Split(';'); + + foreach (var oidStr in dcidStrs) { - report = new InputFamilienhilfe.Neu.Rechnung(); + var oid = long.Parse(oidStr); + var invoice = DAOFactory.GenericDAO.LoadByID(oid); + var dc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(invoice); + dcList.Add(dc); + } + + return CreateInvoiceReport(dcList); + } + return new XtraReport(); + } + + private XtraReport CreateInvoiceReport(List invoices) + { + XtraReport allReports = null; + foreach (var iDC in invoices) + { + XtraReport invoiceReport = null; + + if (iDC.ServiceInvoicePeriods.Count > 0 && iDC.ServiceInvoicePeriods[0].SupportConceptApprovalPeriod.ServiceCategory != null + && iDC.ServiceInvoicePeriods[0].Customer.CustomerAlias != null && + iDC.ServiceInvoicePeriods[0].Customer.CustomerAlias.ToLower() != "aws" && + iDC.ServiceInvoicePeriods[0].Customer.CustomerAlias.ToLower() != "bjw" && + iDC.ServiceInvoicePeriods[0].Customer.CustomerAlias.ToLower() != "tagesbetreuung" && + iDC.ServiceInvoicePeriods[0].Customer.CustomerAlias.ToLower() != "ion") + { + var seite1 = new InputFamilienhilfe.Neu.Rechnung(); + var ro = ServiceInvoiceRO.Create(iDC); + seite1.SetReportDataSource(ro); + seite1.CreateDocument(); + + int month = iDC.InvoiceBase.AccountingPeriodStart.Value.Month; + int year = iDC.InvoiceBase.AccountingPeriodStart.Value.Year; + long cOid = iDC.InvoiceBase.SupportConceptCostBearerRelDc.SupportConcept.Customer.CustomerOid; + long oOid = iDC.InvoiceBase.RecipientOrganisationOid ?? 0; + var qb = CreateServiceOverviewSingleCustomerReport(cOid, month, year, oOid, 0, null, 1, DateTime.DaysInMonth(year, month)); + qb.CreateDocument(); + + seite1.Pages.AddRange(qb.Pages); + invoiceReport = seite1; + } else { - report = new InputFamilienhilfe.Rechnung(); + IBeWoReport singleReport = FindReportImp(iDC.InvoiceBase.InvoiceId); + var ro = ServiceInvoiceRO.Create(iDC); + singleReport.SetReportDataSource(ro); + ((XtraReport)singleReport).CreateDocument(); + invoiceReport = singleReport as XtraReport; } - report.SetReportDataSource(ro); - ((XtraReport)report).CreateDocument(); - return (XtraReport)report; + if (allReports == null) + { + allReports = invoiceReport; + } + else + { + ((XtraReport)allReports).Pages.AddRange(invoiceReport.Pages); + } } - return base.CreateServiceInvoiceReport(dcIds, invoiceBaseOid); + + return allReports as XtraReport; } public override XtraReport CreateServiceOverviewAllCustomersReport(int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay) diff --git a/ReportImp/InputFamilienhilfe/InputFamilienhilfe.csproj b/ReportImp/InputFamilienhilfe/InputFamilienhilfe.csproj index 05e21ec9b..b494b0901 100644 --- a/ReportImp/InputFamilienhilfe/InputFamilienhilfe.csproj +++ b/ReportImp/InputFamilienhilfe/InputFamilienhilfe.csproj @@ -35,7 +35,6 @@ False - @@ -129,12 +128,6 @@ RechnungspositionenSubReport.cs - - Component - - - Rechnung.cs - @@ -220,9 +213,6 @@ RechnungspositionenSubReport.cs - - Rechnung.cs - SettlementReport.cs