diff --git a/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs b/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs index c19c0e841..d855acb4f 100644 --- a/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs +++ b/ReportImp/AkkuratDienstleistungsgesellschaft/Export/AddisonExporter.cs @@ -29,7 +29,7 @@ namespace Akkurat.Export else if (query.Title == "Export Abschlagszahlungen") { query.FileName = String.Format("avise {0:yyyyMM}.csv", dt); - query.QueryResult = GetAbrechnungenString(dt); + query.QueryResult = GetAviseString(dt); } else { @@ -327,6 +327,65 @@ namespace Akkurat.Export return sql; } + public static String GetAviseString(DateTime date) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("B;Mandant;Monat;Buchungsdatum;Rechnungsnummer;Buchungstext;Betrag;Konto;Gegenkonto;Debitor;Beleg1"); + string export; + var sql = GetAbschlagszahlungenSql(date); + export = BuildAviseString(date, sql); + if (!String.IsNullOrWhiteSpace(export)) + { + sb.Append(export); + } + + return sb.ToString(); + } + + public static String BuildAviseString(DateTime date, string sql) + { + var dt = ExecuteQuery(sql, date); + + StringBuilder sb = new StringBuilder(); + foreach (DataRow row in dt.Rows) + { + if (sb.Length > 0) + { + sb.AppendLine(); + } + DateTime lastDate = new DateTime(date.Year, date.Month, 1); + lastDate = lastDate.AddMonths(1).AddDays(-1); + if (row[5].ToString().Length > 0) + { + lastDate = (DateTime)row[5]; + } + sb.Append("B;499;"); + sb.Append(String.Format("{0:MM}{0:yyyy}", lastDate)); + sb.Append(";"); + sb.Append(String.Format("{0:dd.MM.yyyy}", lastDate)); + sb.Append(";"); + sb.Append(row[4]); + sb.Append(";"); + sb.Append(String.Format("{0:MM}{0:yy} ABW {1}", lastDate, row[3])); //Buchungstext + sb.Append(";"); + if (row[0] != null && row[0].ToString().Length > 0) + { + sb.Append(String.Format("{0:0.00}", row[0])); + } + 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(";"); + sb.Append(String.Format("{0}", row[1])); //Debitor + sb.Append(";"); + sb.Append(String.Format("{0}", row[6])); //Hilfeplanbez - Vertragsnr. + + sb.Append(";"); + } + return sb.ToString(); + } + private static String GetAbschlagszahlungenSql(DateTime date) { String sql = @" @@ -335,7 +394,9 @@ namespace Akkurat.Export c.DebitorNumber, c.CostCenter, CONCAT('Abschlagszahlung ', p.FirstName, ' ', p.LastName) as 'Buchungstext', - date_format(at.BookingDate, '%d.%m.%Y') + c.DebitorNumber, + at.BookingDate, + c2s.Auswahlbezeichnung from accountingtransaction at join costbearer2supportconcept c2s on c2s.oid = at.costbearer2supportconceptoid join supportconcept sc on sc.oid = c2s.supportconceptoid