diff --git a/ReportImp/AsSozialeDienstleistungenEV/CustomReportCreator.cs b/ReportImp/AsSozialeDienstleistungenEV/CustomReportCreator.cs new file mode 100644 index 000000000..7978b6492 --- /dev/null +++ b/ReportImp/AsSozialeDienstleistungenEV/CustomReportCreator.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using BeWo.Data.Access; +using BeWo.Data.Entities; +using BeWo.Report; +using BeWo.Report.ReportObjects; +using BeWo.Service.DCEntityMapper; +using BS.Shared.DataContracts; +using DevExpress.XtraReports.UI; + +namespace AsSozialeDienstleistungenEV +{ + public class CustomReportCreator : DefaultReportCreator + { + + public override XtraReport CreateServiceInvoiceReport(string dcIds, long? invoiceBaseOid) + { + if (String.IsNullOrEmpty(dcIds) && invoiceBaseOid.HasValue) + { + var serviceInvoice = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(invoiceBaseOid.Value); + dcIds = String.Format("{0}", serviceInvoice.Oid); + } + + if (!string.IsNullOrEmpty(dcIds)) + { + + var dcList = new List(); + var dcidStrs = dcIds.Split(';'); + + foreach (var oidStr in dcidStrs) + { + 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) + { + XtraReport masterReport = new XtraReport(); + masterReport.CreateDocument(); + + var seite1 = new ServiceInvoiceReport(); + 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(); + + masterReport.Pages.AddRange(seite1.Pages); + foreach (DevExpress.XtraPrinting.Page item in masterReport.Pages) + { + item.AssignWatermark(seite1.Watermark); + } + masterReport.Pages.AddRange(qb.Pages); + invoiceReport = masterReport; + + } + else + { + IBeWoReport singleReport = FindReportImp(iDC.InvoiceBase.InvoiceId); + var ro = ServiceInvoiceRO.Create(iDC); + singleReport.SetReportDataSource(ro); + ((XtraReport)singleReport).CreateDocument(); + invoiceReport = singleReport as XtraReport; + } + + if (allReports == null) + { + allReports = invoiceReport; + } + else + { + ((XtraReport)allReports).Pages.AddRange(invoiceReport.Pages); + } + } + + return allReports as 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); + var reports = CreateServicesOverviewReportsForRo(ro, serviceCategoryOid); + if (reports.Count == 1) + { + return reports[0]; + } + if (reports.Count > 1) + { + var rootReport = reports[0]; + rootReport.CreateDocument(); + + for (int i = 1; i < reports.Count; i++) + { + var lNext = reports[i]; + lNext.CreateDocument(); + rootReport.Pages.AddRange(lNext.Pages); + } + return rootReport; + } + return new XtraReport(); + } + + private IList CreateServicesOverviewReportsForRo(ServicesOverviewRO ro, long? serviceCategoryOid) + { + IList reports = new List(); + + if (!TemplateOid.HasValue || TemplateOid.HasValue && TemplateOid == 1) + { + IBeWoReport report = new AsSozialeDienstleistungenEV.Taetigkeitsnachweis(); + report.SetReportDataSource(ro); + reports.Add(report as XtraReport); + } + + if (TemplateOid.HasValue && TemplateOid.Value == 2) + { + IBeWoReport report = new AsSozialeDienstleistungenEV.TaetigkeitsnachweisMitUnterschrift(); + report.SetReportDataSource(ro); + reports.Add(report as XtraReport); + } + return reports; + } + } +} + diff --git a/ReportImp/AsSozialeDienstleistungenEV/HeinzeUnterschrift.png b/ReportImp/AsSozialeDienstleistungenEV/HeinzeUnterschrift.png new file mode 100644 index 000000000..1e760c932 Binary files /dev/null and b/ReportImp/AsSozialeDienstleistungenEV/HeinzeUnterschrift.png differ diff --git a/ReportImp/AsSozialeDienstleistungenEV/Properties/Resources.Designer.cs b/ReportImp/AsSozialeDienstleistungenEV/Properties/Resources.Designer.cs new file mode 100644 index 000000000..e5ee230d1 --- /dev/null +++ b/ReportImp/AsSozialeDienstleistungenEV/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace AsSozialeDienstleistungenEV.Properties { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AsSozialeDienstleistungenEV.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/ReportImp/AsSozialeDienstleistungenEV/Properties/Resources.resx b/ReportImp/AsSozialeDienstleistungenEV/Properties/Resources.resx new file mode 100644 index 000000000..1af7de150 --- /dev/null +++ b/ReportImp/AsSozialeDienstleistungenEV/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file