diff --git a/ReportImp/ChristopherusHaus/Export/SimbaExporter.cs b/ReportImp/ChristopherusHaus/Export/SimbaExporter.cs index 97c62a282..2aaf3b8d9 100644 --- a/ReportImp/ChristopherusHaus/Export/SimbaExporter.cs +++ b/ReportImp/ChristopherusHaus/Export/SimbaExporter.cs @@ -291,12 +291,13 @@ namespace BeWo.ChristopherusHaus.Export try { List liste = new List(); - var pdf = new FileAttachmentDC(); // A) die Spitzabrechnungen werden als PDF an den Buchungssatz gefügt und mit exportiert foreach (DataRow row in dt.Rows) { + var pdf = new FileAttachmentDC(); var invoiceOid = row[10].ToString(); - if (!String.IsNullOrEmpty(invoiceOid)) + var type = row[11].ToString(); + if (!String.IsNullOrEmpty(invoiceOid) && type == "Spitzabrechnung") { var oid = long.Parse(invoiceOid); var invoice = DAOFactory.SearchDAO.GetSettlementInvoiceByInvoiceBaseOid(oid); @@ -317,9 +318,26 @@ namespace BeWo.ChristopherusHaus.Export pdf.BinaryData = ms.ToArray(); } liste.Add(pdf); - //string name = anhang.PrintingSystem.Document.Name; - //string path = @"C:\Temp\FiBuExport\"; - //anhang.ExportToPdf(path + name + ".pdf"); + } + else if (!String.IsNullOrEmpty(invoiceOid) && type == "Rechnung") + { + var oid = long.Parse(invoiceOid); + var invoice = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(oid); + //var invoice = DAOFactory.GenericDAO.LoadByID(oid); + var idc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(invoice); + + var anhang = new ServiceInvoiceReport(); + var ro = ServiceInvoiceRO.Create(idc); + anhang.SetReportDataSource(ro); + anhang.CreateDocument(); + + pdf.FileName = String.Format("Rechnung ABW{0}.pdf", invoice.InvoiceBase.InvoiceNumber); + using (var ms = new MemoryStream()) + { + anhang.ExportToPdf(ms); + pdf.BinaryData = ms.ToArray(); + } + liste.Add(pdf); } } @@ -354,7 +372,7 @@ namespace BeWo.ChristopherusHaus.Export DataRow row = table.NewRow(); DataRow invoice = dt.Rows[i]; row[0] = invoice[7]; - row[1] = string.Format("{0:yyyyMM}", date); + row[1] = invoice[3]; row[2] = invoice[5]; row[3] = invoice[6]; row[4] = string.Format("{0}, {1} {2}", invoice[7], invoice[8], invoice[9]); @@ -400,7 +418,8 @@ namespace BeWo.ChristopherusHaus.Export org.Name, p.FirstName, p.LastName, - ib.Oid + ib.Oid, + 'Spitzabrechnung' from person p inner join customer c on c.personoid = p.oid @@ -412,7 +431,62 @@ namespace BeWo.ChristopherusHaus.Export join settlementinvoice si on si.invoicebaseoid = ib.oid WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1 and org.Name <> 'LVR' and org.Name <> 'LWL' - order by ib.invoicenumber + UNION + SELECT + 'BCH', + sip.Claim, + '8017' as 'Gegenkonto', + ib.invoicenumber, + ib.InvoiceDate, + c.DebitorNumber, + c.CostCenter, + org.Name, + p.FirstName, + p.LastName, + ib.Oid, + 'Rechnung' + from + person p + inner join customer c on c.personoid = p.oid + inner join supportconcept sc on sc.customeroid = c.oid + inner join costbearer2supportconcept c2s on c2s.supportconceptoid = sc.oid + inner join costbearer cb on c2s.costbeareroid = cb.oid + inner join organisation org on org.costbeareroid = cb.oid + inner join invoicebase ib on ib.costbearer2supportconceptoid = c2s.oid + inner join serviceinvoice si on si.invoicebaseoid = ib.oid + inner join serviceinvoiceperiod sip on sip.serviceinvoiceoid = si.oid + WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1 + "; + + return sql; + } + + private static String GetMonatlicheRechnungenSql(DateTime date) + { + String sql = @" + select + 'BCH', + sip.Claim, + '8017' as 'Gegenkonto', + ib.invoicenumber, + ib.InvoiceDate, + c.DebitorNumber, + c.CostCenter, + org.Name, + p.FirstName, + p.LastName, + ib.Oid + from + person p + inner join customer c on c.personoid = p.oid + inner join supportconcept sc on sc.customeroid = c.oid + inner join costbearer2supportconcept c2s on c2s.supportconceptoid = sc.oid + inner join costbearer cb on c2s.costbeareroid = cb.oid + inner join organisation org on org.costbeareroid = cb.oid + inner join invoicebase ib on ib.costbearer2supportconceptoid = c2s.oid + inner join serviceinvoice si on si.invoicebaseoid = ib.oid + inner join serviceinvoiceperiod sip on sip.serviceinvoiceoid = si.oid + WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1 "; return sql;