ChristopherusHaus/Export/SimbaExporter - auch Einzelrechnungen im Export

This commit is contained in:
2025-08-26 16:41:43 +02:00
parent 6a340c28c1
commit 924075c79d

View File

@@ -291,12 +291,13 @@ namespace BeWo.ChristopherusHaus.Export
try
{
List<FileAttachmentDC> liste = new List<FileAttachmentDC>();
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<ServiceInvoice>(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;