From 5d0584792ed9a25ac355abb7a010dd241b94b8c5 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 29 Apr 2026 17:40:50 +0200 Subject: [PATCH] LebenshilfeBadKreuznachWohnstaette/Export/SageExporter.cs - 1. Wurf mit Habenkonten und allg. Rechnung SupportOID=161470 --- .../Export/SageExporter.cs | 86 +++++++++++++------ 1 file changed, 59 insertions(+), 27 deletions(-) diff --git a/ReportImp/LebenshilfeBadKreuznachWohnstaette/Export/SageExporter.cs b/ReportImp/LebenshilfeBadKreuznachWohnstaette/Export/SageExporter.cs index d0ae1bcef..6c4077195 100644 --- a/ReportImp/LebenshilfeBadKreuznachWohnstaette/Export/SageExporter.cs +++ b/ReportImp/LebenshilfeBadKreuznachWohnstaette/Export/SageExporter.cs @@ -84,28 +84,59 @@ ib.AccountingPeriodEnd, sb.Append(";"); sb.Append(String.Format("{0}", row[2])); // Sollkonto - Debitornr. Klient bzw. bei Allgemeiner Rechnung Dummy sb.Append(";"); - String hbnKto = " S82004"; // Habenkonto für TODO " - if (row[8].ToString().Contains("")) - { - hbnKto = " S82010"; - } + String hbnKto = GetHabenKonto(row); sb.Append(String.Format("{0}", hbnKto)); // Habenkonto sb.Append(";"); sb.Append(String.Format("{0:0.00}", row[3])); sb.Append(";EUR;;;"); sb.Append(String.Format("{0}", row[9])); sb.Append(";;;;;"); - String kreis = "4"; // Buchungskreis TODO - if (row[12].ToString().Contains("Inklusionsdienst") || row[12].ToString() == null) - { - kreis = "5"; - } + String kreis = "4"; // Buchungskreis derzeit fest sb.Append(String.Format("{0}", kreis)); } return sb.ToString(); } + private static string GetHabenKonto(DataRow row) + { + // row 8 = ItemDesc und row 5 = Orga + String kto = ""; + if (row[5].ToString().ToLower() == "selbstzahler") + { + kto = "S82019"; + if (row[8].ToString().ToLower().Contains("miete")) + { + kto = "S82039"; + } + else if (row[8].ToString().ToLower().Contains("einzelfall")) + { + kto = "S82005"; + } + else if (row[8].ToString().ToLower().Contains("sachkosten")) //finde ich so nicht im BeWoPlaner + { + kto = "S82040"; + } + } + else + { + if (row[8].ToString().ToLower().Contains("miete")) // ist das richtig? + { + kto = "S82039"; + } + else if (row[8].ToString().ToLower().Contains("einzelfall")) + { + kto = "S82005"; + } + else if (row[8].ToString().ToLower().Contains("tagesstruktur")) + { + kto = "S82010"; + } + } + + return kto; + } + private static String GetMonatlicheRechnungenSql(DateTime date) { @@ -136,26 +167,27 @@ ib.AccountingPeriodEnd, inner join invoiceitem ii on ii.serviceinvoiceperiodoid = sip.oid WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1 UNION - SELECT DISTINCT - '' AS Oid, - ib.invoicenumber, - 'D222222' AS DebitorNumber - (select ii.AmountTotal from invoiceitem ii where ii.invoicebaseoid = ib.oid), - ib.InvoiceDate, - ib.RecipientOrganisation AS 'VerwendungOrg', - CONCAT(ib.'RecipientPersonLastName`, ', ', ib.'RecipientPersonFirstName`) as 'VerwendungPerson', - 'S99999' AS DebitorNumber, - ii.ItemDescription, - 'T60000', - ib.Oid, - ib.AccountingPeriodEnd, - 'Allgemeine Rechnung' AS Team - from invoicebase ib - inner join organisation org on org.costbeareroid = ib.RecipientOrganisationOid + SELECT + '' AS Oid, + ib.invoicenumber, + 'D222222' AS DebitorNumber, + ii.AmountTotal, + ib.InvoiceDate, + ib.RecipientOrganisation AS 'VerwendungOrg', + CONCAT(ib.RecipientPersonLastName, ', ', ib.RecipientPersonFirstName) AS 'VerwendungPerson', + 'S99999' AS DebitorNumber, + ii.ItemDescription, + 'T60000', + ib.Oid, + ib.AccountingPeriodEnd, + 'Allgemeine Rechnung' AS Team + FROM invoicebase ib + INNER JOIN organisation org ON org.costbeareroid = ib.RecipientOrganisationOid + INNER JOIN invoiceitem ii ON ii.invoicebaseoid = ib.Oid WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1 and ib.Type = 2 AND ib.`IsExported` = 0 -- order by ib.invoicenumber -ORDER BY p.`LastName`, p.`FirstName`, cb2sc.`ApprovedStartDate` + -- ORDER BY p.`LastName`, p.`FirstName`, cb2sc.`ApprovedStartDate` "; return sql;