AWOMuensterlandRecklinghausen/CustomMitarbeiterstundenkontoBerechnung Korrektur bei vertragswechsel

This commit is contained in:
2023-12-04 12:03:05 +01:00
parent 91c7f00e0a
commit e9470fda0f

View File

@@ -31,6 +31,26 @@ namespace AWOMuensterlandRecklinghausen
{
BerechneFerienTage = false;
var c = empDetail.Employee.GetValidContractForDate(berichtsAnfang);
if (empDetail.Employee.FirstContract != null)
{
var firstC = empDetail.Employee.FirstContract;
if (firstC.EntryDate != null && firstC.EntryDate < new DateTime(2023, 07, 01))
{
firstC.EntryDate = new DateTime(2023, 07, 01); // die haben Original Startdaten eingetragen, geht nur um die "vorherigen Minusstunden"
}
if (firstC.EmploymentType != null && firstC.EmploymentType.Name.StartsWith("MA mit"))
{
if (firstC.WeeklyTotalHours != null)
{
if (firstC.Notice == null || (firstC.Notice != null && firstC.Notice != "Done"))
{
firstC.WeeklyTotalHours += firstC.WeeklyTotalHours.Value * 0.17m;
firstC.Notice = "Done";
}
}
}
}
if (c?.EmploymentType != null)
{
if (c.EmploymentType.Name.StartsWith("MA mit"))
@@ -38,10 +58,7 @@ namespace AWOMuensterlandRecklinghausen
BerechneFerienTage = true;
}
}
if (c.EntryDate < new DateTime(2023,07,01))
{
c.EntryDate = new DateTime(2023, 07, 01); // die haben Original Startdaten eingetragen, geht nur um die "vorherigen Minusstunden"
}
customVacationService.UseDbFeiertage = BerechneFerienTage;
}
@@ -142,6 +159,54 @@ namespace AWOMuensterlandRecklinghausen
return dd;
}
//public override decimal? BerechneSollProMonat(Employee emp, DateTime start, DateTime ende)
//{
// Contract c = GetContractForDate(emp, start, ende);
// if (c != null && c.MonthlyTotalHours.HasValue && c.MonthlyTotalHours.Value > 0)
// {
// return c.MonthlyTotalHours.Value;
// DateTime monatsAnfang = start;
// DateTime monatsEnde = ende;
// if (c.EntryDate.HasValue && c.EntryDate > monatsAnfang)
// {
// monatsAnfang = c.EntryDate.Value;
// }
// if (c.ContractEndDate.HasValue && c.ContractEndDate < monatsEnde)
// {
// monatsEnde = c.ContractEndDate.Value.Date.AddDays(1);
// }
// if (monatsAnfang < monatsEnde)
// {
// //if (monatsAnfang.Day == 1 && monatsEnde.Day == 1)
// //{
// return c.MonthlyTotalHours.Value;
// //}
// }
// }
// else
// {
// if (c != null && c.WeeklyTotalHours.HasValue && c.WeeklyTotalHours > 0)
// {
// stundenSollImVertragsUndBerichtzeitraum =
// empDetail.ArbeitstageImBerichtszeitraum * (weeklyTotalHours / 5);
// }
// else
// {
// stundenSollImVertragsUndBerichtzeitraum =
// empDetail.ArbeitstageImBerichtszeitraum * (weeklyTotalHours / empDetail.ArbeitstageProWoche);
// }
// }
// return null;
//}
public override decimal BerechneSollStundenFuerTag(MitarbeiterstundenkontoRO.EmployeeDetail ed, DateTime date)
{
decimal sollDiesenTag = 0;
@@ -333,6 +398,10 @@ namespace AWOMuensterlandRecklinghausen
var c = base.GetContractForDate(emp, start, ende);
if (c != null)
{
if (c.EntryDate != null && c.EntryDate < new DateTime(2023, 07, 01))
{
c.EntryDate = new DateTime(2023, 07, 01); // die haben Original Startdaten eingetragen, geht nur um die "vorherigen Minusstunden"
}
if (c.EmploymentType != null && c.EmploymentType.Name.StartsWith("MA mit"))
{
if (c.WeeklyTotalHours != null)