diff options
-rw-r--r-- | includes/model/UserWorkLog_model.php | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/includes/model/UserWorkLog_model.php b/includes/model/UserWorkLog_model.php index c450d901..cc7686cf 100644 --- a/includes/model/UserWorkLog_model.php +++ b/includes/model/UserWorkLog_model.php @@ -127,6 +127,7 @@ function UserWorkLog_create($userWorkLog) function UserWorkLog_from_shift($shift) { $shift = is_array($shift) ? $shift : Shift($shift); + $nightShifts = config('night_shifts'); if ($shift['start'] > time()) { return; @@ -137,12 +138,26 @@ function UserWorkLog_from_shift($shift) if ($entry['freeloaded']) { continue; } + $type = AngelType($entry['TID']); + $nightShiftMultiplier = 1; + $shiftStart = Carbon::createFromTimestamp($shift['start']); + $shiftEnd = Carbon::createFromTimestamp($shift['end']); + if ( + $nightShifts['enabled'] + && ( + $shiftStart->hour >= $nightShifts['start'] && $shiftStart->hour < $nightShifts['end'] + || $shiftEnd->hour >= $nightShifts['start'] && $shiftEnd->hour < $nightShifts['end'] + ) + ) { + $nightShiftMultiplier = $nightShifts['multiplier']; + } + UserWorkLog_create([ 'user_id' => $entry['UID'], 'work_timestamp' => $shift['start'], - 'work_hours' => ($shift['end'] - $shift['start']) / 60 / 60, + 'work_hours' => (($shift['end'] - $shift['start']) / 60 / 60) * $nightShiftMultiplier, 'comment' => sprintf( '%s (%s as %s) in %s, %s-%s', $shift['name'], |