LebenshilfeBadKreuznachFUD/Export/SageExporter.cs - Export auch für Entlastungsleistungen

This commit is contained in:
2025-07-28 11:47:22 +02:00
parent c607df39ef
commit 5d442c1767

View File

@@ -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)
{