AWOMuensterlandRecklinghausen/CustomMitarbeiterstundenkontoBerechnung Korrektur bei vertragswechsel
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user