From e9470fda0fc0d2824e6e4949fb5b3ddaa9fe64bf Mon Sep 17 00:00:00 2001 From: Alexandra Date: Mon, 4 Dec 2023 12:03:05 +0100 Subject: [PATCH] AWOMuensterlandRecklinghausen/CustomMitarbeiterstundenkontoBerechnung Korrektur bei vertragswechsel --- ...CustomMitarbeiterstundenkontoBerechnung.cs | 77 ++++++++++++++++++- 1 file changed, 73 insertions(+), 4 deletions(-) diff --git a/ReportImp/AWOMuensterlandRecklinghausen/CustomMitarbeiterstundenkontoBerechnung.cs b/ReportImp/AWOMuensterlandRecklinghausen/CustomMitarbeiterstundenkontoBerechnung.cs index ac996b9fe..f1015a036 100644 --- a/ReportImp/AWOMuensterlandRecklinghausen/CustomMitarbeiterstundenkontoBerechnung.cs +++ b/ReportImp/AWOMuensterlandRecklinghausen/CustomMitarbeiterstundenkontoBerechnung.cs @@ -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)