diff --git a/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs b/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs index 87cbc549c..d260383b3 100644 --- a/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs +++ b/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs @@ -68,7 +68,7 @@ namespace Akkurat.Export public static String GetAbrechnungenString(DateTime date) { StringBuilder sb = new StringBuilder(); - sb.AppendLine("B;Mandant;Monat;Buchungsdatum;Rechnungsnummer;Buchungstext;Betrag;Konto;Gegenkonto;Debitor;Beleg1"); + sb.AppendLine("B;Mandant;Monat;Buchungsdatum;Rechnungsnummer;Buchungstext;Betrag;Konto;Gegenkonto;Debitor;Beleg1;Kostenstelle"); var s = GetMonatlicheBetraegeString(date, true); if (!String.IsNullOrWhiteSpace(s)) @@ -102,7 +102,7 @@ namespace Akkurat.Export string sql = ""; if (umsaetze) { - sql = GetMonatlicheBetraegeLvrSql(date); + sql = GetMonatlicheBetraegeSql(date); return BuildExportString(date, umsaetze, sql); } else @@ -177,7 +177,16 @@ namespace Akkurat.Export sb.Append(";"); sb.Append(String.Format("{0}", row[1])); //Debitor als Konto sb.Append(";"); - sb.Append("8273"); // String.Format("{0}", row[2])); // Erlöskonto + bool kostenstelle = false; + if (GetKontoUndKostenstelle(row[2].ToString(), out var konto, out var kStelle)) + { + sb.Append(konto); // Erlöskonto + kostenstelle = true; + } + else + { + sb.Append("8273"); // Erlöskonto + } sb.Append(";"); sb.Append(String.Format("{0}", row[1])); //Debitor sb.Append(";"); @@ -190,10 +199,35 @@ namespace Akkurat.Export sb.Append(String.Format("{0}", row[4])); //Hilfeplanbez - Vertragsnr. } sb.Append(";"); + if (kostenstelle) + { + sb.Append(kStelle); // Kostenstelle + } + else + { + sb.Append(""); // Kostenstelle + } + sb.Append(";"); } return sb.ToString(); } + public static bool GetKontoUndKostenstelle(string notice, out string konto, out string kStelle) + { + var teile = notice.Split(','); + if (teile.Length == 2) + { + konto = teile[0].Trim(); + kStelle = teile[1].Trim(); + return true; + } + else + { + konto = kStelle = string.Empty; + return false; + } + } + private static String GetDebitorenSql(DateTime date) { String sql = @" @@ -218,7 +252,7 @@ namespace Akkurat.Export SELECT Round(si.Claim, 2), c.DebitorNumber, - c.CostCenter, + c2s.Notice, CONCAT('Abrechnung ', p.`LastName`, ' ', p.`FirstName`), ib.InvoiceNumber, ib.InvoiceDate, @@ -242,7 +276,7 @@ namespace Akkurat.Export select sip.Claim, c.DebitorNumber, - c.CostCenter, + c2s.Notice, CONCAT('Abrechnung ', p.`LastName`, ' ', p.`FirstName`), ib.invoicenumber, ib.InvoiceDate, @@ -262,13 +296,13 @@ namespace Akkurat.Export return sql; } - private static String GetMonatlicheBetraegeLvrSql(DateTime date) + private static String GetMonatlicheBetraegeSql(DateTime date) { String sql = @" SELECT sum(qry.Betrag) AS Betrag, qry.DebitorNumber, - qry.CostCenter, + qry.Kostenstelle, qry.Verwendung, qry.Auswahlbezeichnung, qry.Oid @@ -278,7 +312,7 @@ namespace Akkurat.Export IF(crpRateFactor.`CostRateValue` is null, ROUND((sr.`GeleisteteFLM` / 60) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND(crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999, 365), crp.`EndDate`) LIMIT 1)), ROUND(ROUND((sr.`GeleisteteFLM` / 60), 2) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND(crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999, 365), crp.`EndDate`) LIMIT 1 ) *((100 + crpRateFactor.`CostRateValue`)/ 100), 2)) AS 'Betrag', c.DebitorNumber, - c.CostCenter, + cb2sc.Notice AS 'Kostenstelle', CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung', cb2sc.Auswahlbezeichnung, cb2sc.Oid @@ -298,12 +332,12 @@ namespace Akkurat.Export INNER JOIN `servicecategory` sc ON sd.`ServiceCategoryOid` = sc.`Oid` WHERE sr2.`StartDate` >= ':Monat_Start' AND sr2.`StartDate` < ':Monat_End' AND sc.`Billable` = 1 and sd.Name <> 'Fehlkontakt' GROUP BY sr2.`CostBearer2SupportConceptOid`) AS sr ON sr.`CostBearer2SupportConceptOid` = cb2sc.`Oid` - WHERE c.`IsActive` = 1 AND sc.`IsActive` = 1 and org.Name = 'LVR' and(sr.`GeleisteteFLM` is not null)) + WHERE c.`IsActive` <> 0 AND sc.`IsActive` <> 0 and(sr.`GeleisteteFLM` is not null)) UNION (SELECT ROUND(0.8 * (sr.`GeleisteteFLM` / 60) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 )) AS 'Betrag', - c.DebitorNumber, - c.CostCenter, + c.DebitorNumber, + cb2sc.Notice AS 'Kostenstelle', CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung', cb2sc.Auswahlbezeichnung, cb2sc.Oid @@ -319,7 +353,7 @@ namespace Akkurat.Export INNER JOIN `servicecategory` sc ON sd.`ServiceCategoryOid` = sc.`Oid` WHERE sr2.`StartDate` >= ':Monat_Start' AND sr2.`StartDate` < ':Monat_End' AND sc.`Billable` = 1 and sd.Name = 'Fehlkontakt' GROUP BY sr2.`CostBearer2SupportConceptOid`) AS sr ON sr.`CostBearer2SupportConceptOid` = cb2sc.`Oid` - WHERE c.`IsActive` <> 0 AND sc.`IsActive` <> 0 and org.Name = 'LVR' and (sr.`GeleisteteFLM` is not null)))qry + WHERE c.`IsActive` <> 0 AND sc.`IsActive` <> 0 and (sr.`GeleisteteFLM` is not null)))qry GROUP BY qry.OID ORDER BY qry.Verwendung "; @@ -330,7 +364,7 @@ namespace Akkurat.Export public static String GetAviseString(DateTime date) { StringBuilder sb = new StringBuilder(); - sb.AppendLine("B;Mandant;Monat;Buchungsdatum;Rechnungsnummer;Buchungstext;Betrag;Konto;Gegenkonto;Debitor;Beleg1"); + sb.AppendLine("B;Mandant;Monat;Buchungsdatum;Rechnungsnummer;Buchungstext;Betrag;Konto;Gegenkonto;Debitor;Beleg1;Kostenstelle"); string export; var sql = GetAbschlagszahlungenSql(date); export = BuildAviseString(date, sql); @@ -375,13 +409,20 @@ namespace Akkurat.Export sb.Append(";"); sb.Append(String.Format("{0}", row[1])); //Debitor als Konto sb.Append(";"); - sb.Append("1409"); // String.Format("{0}", row[2])); // Erlöskonto + sb.Append("1691"); // String.Format("{0}", row[2])); // Gegenkonot sb.Append(";"); sb.Append(String.Format("{0}", row[1])); //Debitor sb.Append(";"); sb.Append(String.Format("{0}", row[6])); //Hilfeplanbez - Vertragsnr. - sb.Append(";"); + if (GetKontoUndKostenstelle(row[2].ToString(), out var konto, out var kStelle)) + { + sb.Append(kStelle); // Kostenstelle + } + else + { + sb.Append(""); // Kostenstelle + } } return sb.ToString(); } @@ -392,7 +433,7 @@ namespace Akkurat.Export SELECT Round(at.Amount, 2) as 'Betrag', c.DebitorNumber, - c.CostCenter, + c2s.Notice AS 'Kostenstelle', CONCAT('Abschlagszahlung ', p.FirstName, ' ', p.LastName) as 'Buchungstext', c.DebitorNumber, at.BookingDate, diff --git a/ReportImp/AkkuratDienstleistungsgesellschaft/Translation/TranslationDictionary.cs b/ReportImp/AkkuratDienstleistungsgesellschaft/Translation/TranslationDictionary.cs index 25805d33e..7fea9f5f0 100644 --- a/ReportImp/AkkuratDienstleistungsgesellschaft/Translation/TranslationDictionary.cs +++ b/ReportImp/AkkuratDienstleistungsgesellschaft/Translation/TranslationDictionary.cs @@ -19,6 +19,7 @@ namespace Akkurat.Translation { var dict = base.GetTranslationDictionary(); AddOrReplaceTranslation(dict, "Bezeichnung", "Vertragsnummer"); + AddOrReplaceTranslation(dict, "HilfeplanNotiz", "Erlöskto,KostenSt."); return dict; } }