DiakonischesWerkRegensburg/Export/EGeckoExporter.cs - Encoding und Minibugfix
SupportOID=167411
This commit is contained in:
@@ -37,10 +37,24 @@ namespace DiakonischesWerkRegensburg.Export
|
||||
var dt = ExecuteQuery(GetMonatlicheRechnungenSql(date), date);
|
||||
var doc = CreateXML(dt);
|
||||
|
||||
using (var sw = new StringWriter())
|
||||
// Der Client schreibt QueryResult als Windows-1252 auf Platte (BeWoUtils.WriteFile).
|
||||
// Damit die Datei trotzdem gültiges UTF-8 mit passender Deklaration ist, werden alle
|
||||
// Nicht-ASCII-Zeichen (Umlaute etc.) als numerische Zeichenreferenzen kodiert.
|
||||
var settings = new XmlWriterSettings
|
||||
{
|
||||
doc.Save(sw);
|
||||
return sw.ToString();
|
||||
Encoding = Encoding.ASCII,
|
||||
Indent = true,
|
||||
OmitXmlDeclaration = true
|
||||
};
|
||||
|
||||
using (var ms = new MemoryStream())
|
||||
{
|
||||
using (var writer = XmlWriter.Create(ms, settings))
|
||||
{
|
||||
doc.Save(writer);
|
||||
}
|
||||
|
||||
return "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + Environment.NewLine + Encoding.ASCII.GetString(ms.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +177,7 @@ namespace DiakonischesWerkRegensburg.Export
|
||||
INNER JOIN person p ON c.personoid = p.oid
|
||||
WHERE ib.AccountingPeriodEnd >= ':Monat_Start' AND ib.AccountingPeriodEnd < ':Monat_End' AND ib.IsActive = 1 AND ib.InvoiceId = 'Sammelrechnung' AND ib.IsExported = 0
|
||||
GROUP BY ib.Oid, ib.InvoiceNumber, ib.InvoiceDate, ib.AccountingPeriodEnd, c.Oid, c.DebitorNumber, p.LastName, p.FirstName
|
||||
UNION SELECT DISTINCT
|
||||
UNION SELECT
|
||||
ib.InvoiceDate AS InvoiceDate,
|
||||
c.DebitorNumber AS CustomerDebitor,
|
||||
'1660' AS CustomerCostCenter,
|
||||
@@ -171,7 +185,7 @@ namespace DiakonischesWerkRegensburg.Export
|
||||
CONCAT(p.LastName, ', ', p.FirstName) AS Verwendungszweck,
|
||||
ib.invoicenumber AS InvoiceNumber ,
|
||||
(SELECT t.name FROM team t INNER JOIN team2customer t2c ON t2c.teamoid = t.oid WHERE t2c.customeroid = c.Oid limit 1) AS TeamName,
|
||||
CASE WHEN ib.RecipientOrganisation LIKE '%Selbstzahler%' THEN 049030 ELSE 049020 END AS Erloeskonto,
|
||||
CASE WHEN ib.RecipientOrganisation LIKE '%Selbstzahler%' THEN '049030' ELSE '049020' END AS Erloeskonto,
|
||||
ib.AccountingPeriodEnd AS Periode,
|
||||
ib.Oid AS InvoiceOid
|
||||
FROM
|
||||
@@ -182,7 +196,8 @@ namespace DiakonischesWerkRegensburg.Export
|
||||
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 AND ib.InvoiceId IS NULL AND ib.IsExported = 0
|
||||
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' AND ib.IsActive = 1 AND ib.InvoiceId IS NULL AND ib.IsExported = 0
|
||||
GROUP BY ib.Oid, ib.InvoiceNumber, ib.InvoiceDate, ib.AccountingPeriodEnd, ib.RecipientOrganisation, c.Oid, c.DebitorNumber, p.LastName, p.FirstName
|
||||
) t
|
||||
WHERE t.InvoiceOid IS NOT NULL
|
||||
ORDER BY t.invoicenumber
|
||||
|
||||
Reference in New Issue
Block a user