108 lines
3.3 KiB
C#
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();
|
|
}
|
|
}
|
|
} |