diff --git a/ReportImp/LebenshilfeBadKreuznachFUD/Export/SageExporter.cs b/ReportImp/LebenshilfeBadKreuznachFUD/Export/SageExporter.cs index ad928120c..d8a0b6621 100644 --- a/ReportImp/LebenshilfeBadKreuznachFUD/Export/SageExporter.cs +++ b/ReportImp/LebenshilfeBadKreuznachFUD/Export/SageExporter.cs @@ -91,39 +91,93 @@ ib.AccountingPeriodEnd, sb.Append(String.Format("{0:dd.MM.yyyy}", row[4])); sb.Append(";"); sb.Append(String.Format("{0}", row[1])); - sb.Append(";"); - String buchungstext = String.Format("AR-SI {0:MM}/{0:yyyy} {1} - {2}", row[11], row[5], row[6]); + sb.Append(";"); + String buchungstext = GetBuchungstext(row, teamname); sb.Append(buchungstext); sb.Append(";"); - sb.Append(String.Format("{0}", row[7])); // Sollkonto - Kundennr. Kostenträger + if (teamname == "Integration") + { + sb.Append(String.Format("{0}", row[7])); // Sollkonto - Kundennr. Kostenträger + } + else if (teamname == "Entlastung") + { + sb.Append(String.Format("{0}", row[2])); // Sollkonto - Debitornr Klient + } sb.Append(";"); - String hbnKto = "S82035"; // Habenkonto für Q1 + Q2 - if (row[8].ToString() != null && (row[8].ToString().ToLower().Contains("q3") || row[8].ToString().ToLower().Contains("q4"))) - { - hbnKto = "S82025"; - } - // Samstagszuschläge gehören immer auf das gleiche Konto wie die andere Buchung - else if (row[8].ToString() != null && (row[8].ToString().ToLower().Contains("zuschlag") || - !row[8].ToString().ToLower().Contains("q1") && !row[8].ToString().ToLower().Contains("q2")) && i > 0) - { - if (dt.Rows[i-1][1].ToString() == row[1].ToString() && LastKonto.IsNotNullOrEmpty()) - { - hbnKto = LastKonto; - } - } + String hbnKto = GetHabenKonto(row, teamname, i, dt, LastKonto); LastKonto = hbnKto; sb.Append(String.Format("{0}", hbnKto)); // Habenkonto sb.Append(";"); sb.Append(String.Format("{0:0.00}", row[3])); sb.Append(";EUR;;;"); - sb.Append("T70400;"); // Kostenstelle (String.Format("{0}", row[9])); - sb.Append("T70400;"); // Kostenstelle Haben (String.Format("{0}", row[9])); + String costCenter = GetKostenstelle(row[9], teamname); + sb.Append(costCenter + ";"); // Kostenstelle (String.Format("{0}", row[9])); + sb.Append(costCenter + ";"); // Kostenstelle Haben (String.Format("{0}", row[9])); sb.Append(";;;12"); // Buchungskreis } return sb.ToString(); } + private static string GetBuchungstext(DataRow row, string teamname) + { + String text = String.Format("{0:MM}/{0:yyyy} {1} - {2}", row[11], row[5], row[6]); + if (teamname == "Integration") + { + text = "AR-SI " + text; + } + else if (teamname == "Entlastung") + { + text = "AR-ENT " + text; + } + return text; + } + + private static string GetHabenKonto(DataRow row, string teamname, int i, DataTable dt, string LastKonto) + { + String kto = ""; + if (teamname == "Integration") + { + kto = "S82035"; // Habenkonto für Q1 + Q2 + if (row[8].ToString() != null && (row[8].ToString().ToLower().Contains("q3") || row[8].ToString().ToLower().Contains("q4"))) + { + kto = "S82025"; + } + // Samstagszuschläge gehören immer auf das gleiche Konto wie die andere Buchung + else if (row[8].ToString() != null && (row[8].ToString().ToLower().Contains("zuschlag") || + !row[8].ToString().ToLower().Contains("q1") && !row[8].ToString().ToLower().Contains("q2")) && i > 0) + { + if (dt.Rows[i - 1][1].ToString() == row[1].ToString() && LastKonto.IsNotNullOrEmpty()) + { + kto = LastKonto; + } + } + } + else if (teamname == "Entlastung") + { + kto = "82028"; + if (row[8].ToString() != null && row[8].ToString().ToLower().Contains("pauschale")) + { + kto = "828029"; + } + } + return kto; + } + + private static string GetKostenstelle(object v, string teamname) + { + String stelle = ""; + if (teamname == "Integration") + { + stelle = "T70400"; + } + else if (teamname == "Entlastung") + { + stelle = String.Format("{0}", v); + } + return stelle; + } + private static String GetMonatlicheRechnungenSql(DateTime date) {