From dd6ef407c1aff58d03b1b0afa13ee5b50fd1426b Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 7 Feb 2024 13:18:07 +0100 Subject: [PATCH] ChristopherusHausFamilienhilfe/Export/SimbaExporter - mit PDF-Export --- .../Export/SimbaExporter.cs | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/ReportImp/ChristopherusHausFamilienhilfe/Export/SimbaExporter.cs b/ReportImp/ChristopherusHausFamilienhilfe/Export/SimbaExporter.cs index 9e1abea8d..5caac2cb5 100644 --- a/ReportImp/ChristopherusHausFamilienhilfe/Export/SimbaExporter.cs +++ b/ReportImp/ChristopherusHausFamilienhilfe/Export/SimbaExporter.cs @@ -9,39 +9,32 @@ using BeWo.Report.ReportObjects; using BeWo.Service.DCEntityMapper; using BS.Shared.DataContracts; using DevExpress.XtraPrinting; +using DevExpress.XtraReports.UI; namespace ChristopherusHausFamilienhilfe.Export { public class FibuExport { + List liste = new List(); public static QueryDC CreateQuery(QueryDC query) { DateTime dt = DateTime.Now; DateTime.TryParse(query.Parameter[0].Value.ToString(), out dt); + + var table = ExecuteQuery(GetMonatlicheRechnungenSql(dt), dt); + query.FileName = String.Format("BUCH_BO_{0:yyyyMM}.scs", dt); - string folder = String.Format("BUCH_BO_{0:yyyyMM}", dt); - query.QueryResult = GetAbrechnungenString(dt, folder); + query.QueryResult = GetAbrechnungenString(dt, table); + query.Attachments = CreateInvoiceFiles(table); return query; } - //public static string CreateExportString(string[] pHeaderCaption, string[][] pContent) - //{ - // if (pHeaderCaption != null && pHeaderCaption.Length > 1 && pHeaderCaption[0].Contains("Fibu")) - // { - // DateTime dt = DateTime.Now; - // DateTime.TryParse(pHeaderCaption[1], out dt); - // return GetAbrechnungenString(dt); - // } - // return null; - //} - - public static String GetAbrechnungenString(DateTime dt, String folder) + public static String GetAbrechnungenString(DateTime dt, DataTable table) { StringBuilder sb = new StringBuilder(); sb.AppendLine("\"MND\";500"); - sb.AppendLine(String.Format("\"BZR\";{0:MMyyyy}", dt)); - - var s = GetMonatlicheRechnungenString(dt, folder); + sb.AppendLine(String.Format("\"BZR\";{0:MMyyyy}", dt)); + var s = GetMonatlicheRechnungenString(dt, table); if (!String.IsNullOrWhiteSpace(s)) { sb.Append(s); @@ -50,9 +43,8 @@ namespace ChristopherusHausFamilienhilfe.Export return sb.ToString(); } - public static String GetMonatlicheRechnungenString(DateTime date, String folder) + public static String GetMonatlicheRechnungenString(DateTime date, DataTable dt) { - var dt = ExecuteQuery(GetMonatlicheRechnungenSql(date), date); /* 'BCH', sip.Claim, '8106' as 'Gegenkonto', ib.invoicenumber, ib.InvoiceDate, org.DebitorNumber, '3170', org.Name, p.FirstName, p.LastName*/ StringBuilder sb = new StringBuilder(); foreach (DataRow row in dt.Rows) @@ -81,16 +73,18 @@ namespace ChristopherusHausFamilienhilfe.Export sb.Append(";;;;"); sb.Append(String.Format("\"Rechnung ISB{0}.pdf\"", row[3])); } - SaveInvoicesToFolder(dt, folder); return sb.ToString(); } - private static void SaveInvoicesToFolder(DataTable dt, String folder) + private static List CreateInvoiceFiles(DataTable dt) { try { + List liste = new List(); foreach (DataRow row in dt.Rows) { + var pdf = new FileAttachmentDC(); + var invoiceOid = row[10].ToString(); if (!String.IsNullOrEmpty(invoiceOid)) { @@ -103,16 +97,26 @@ namespace ChristopherusHausFamilienhilfe.Export var ro = ServiceInvoiceRO.Create(idc); anhang.SetReportDataSource(ro); anhang.CreateDocument(); - string name = anhang.PrintingSystem.Document.Name; - string path = @"C:\Temp\FiBuExport\"; - anhang.ExportToPdf(path + name + ".pdf"); + + pdf.FileName = anhang.PrintingSystem.Document.Name + ".pdf"; + using (var ms = new MemoryStream()) + { + anhang.ExportToPdf(ms); + pdf.BinaryData = ms.ToArray(); + } + liste.Add(pdf); + //string name = anhang.PrintingSystem.Document.Name; + //string path = @"C:\Temp\FiBuExport\"; + //anhang.ExportToPdf(path + name + ".pdf"); } } + return liste; } catch (Exception) { // continue - auch wenn gar nichts stimmt } + return null; } private static String GetMonatlicheRechnungenSql(DateTime date)