Files
BeWoPlaner/ReportImp/SabGmbH/Export/LohnExporter.cs
2020-11-10 02:25:15 +01:00

108 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace SabGmbH.Export
{
public class LohnExporter
{
public static QueryDC CreateQuery(QueryDC query)
{
DateTime dt = DateTime.Now;
DateTime.TryParse(query.Parameter[0].Value.ToString(), out dt);
query.FileName = String.Format("BDE_{0:yyyyMM}.txt", dt);
query.QueryResult = GetSchnittstellenString(dt);
return query;
}
public static String GetSchnittstellenString(DateTime monat)
{
StringBuilder sb = new StringBuilder();
var ro = MitarbeiterstundenkontoRO.Create(null, null, monat, monat.AddMonths(1), null);
var msb = new MitarbeiterstundenkontoBerechnung();
msb.CreateReport(ro);
var sro = Lohnschnittstellenhelper.CreateSchnittstellendruckRo(monat, ro);
//Beispiele:
//^200^31.08.2009^0200^^^^^4100^^BH^AT-1002^170,00^^^^^^
/*
0^81041^31.01.2019^0345^22.02.2019^^^^^^^^72,00^^^^^^
0^81041^31.01.2019^0331^22.02.2019^^^^^^^^14,00^^^^^^
0^81041^31.01.2019^0347^22.02.2019^^^^^^^^9,00^^^^^^
0^81041^31.01.2019^0343c^22.02.2019^^^^^^^^40,00^^^^^^
*/
foreach (var ed in sro.EmployeeDaten)
{
sb.AppendLine(CreateString(ed, monat));
}
return sb.ToString();
}
private static string CreateString(EmployeeDaten ed, DateTime monat)
{
StringBuilder sb = new StringBuilder();
sb.Append("0"); // Firmanr
sb.Append("^");
sb.Append(ed.Personalnr); // Personalnr
sb.Append("^");
sb.Append(String.Format("{0:dd.MM.yyyy}", monat)); // Abrechnungsperiode
sb.Append("^");
sb.Append(ed.Lohnart);
sb.Append("^");
sb.Append(""); // Datum (nicht verwendet
sb.Append("^");
sb.Append(String.Format("{0:dd.MM.yyyy}", monat)); // Von Datum
sb.Append("^");
sb.Append(String.Format("{0:dd.MM.yyyy}", monat.AddMonths(1).AddDays(-1))); // Bis Datum
sb.Append("^");
sb.Append(""); // Platzhalter
sb.Append("^");
sb.Append(ed.Kostenart);
sb.Append("^");
sb.Append(""); // Platzhalter
sb.Append("^");
sb.Append(ed.Kostenstelle); //
sb.Append("^");
sb.Append(ed.Kostentraeger); //
sb.Append("^");
sb.Append(""); // Parameter 1
sb.Append("^");
sb.Append(""); // Parameter 2
sb.Append("^");
sb.Append(""); // Parameter 3
sb.Append("^");
sb.Append(""); // Parameter 4
sb.Append("^");
sb.Append(""); // Parameter 5
sb.Append("^");
sb.Append(""); // HKZ
sb.Append("^");
return sb.ToString();
}
}
}