diff options
Diffstat (limited to 'includes/model')
-rw-r--r-- | includes/model/ShiftEntry_model.php | 7 | ||||
-rw-r--r-- | includes/model/User_model.php | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/includes/model/ShiftEntry_model.php b/includes/model/ShiftEntry_model.php index 5dd11421..ea025604 100644 --- a/includes/model/ShiftEntry_model.php +++ b/includes/model/ShiftEntry_model.php @@ -1,5 +1,6 @@ <?php +use Carbon\Carbon; use Engelsystem\Database\DB; use Engelsystem\Models\User\User; @@ -201,10 +202,11 @@ function ShiftEntries_upcoming_for_user($userId) /** * Returns shifts completed by the given user. * - * @param int $userId + * @param int $userId + * @param Carbon|null $sinceTime * @return array */ -function ShiftEntries_finished_by_user($userId) +function ShiftEntries_finished_by_user($userId, Carbon $sinceTime = null) { return DB::select(' SELECT * @@ -214,6 +216,7 @@ function ShiftEntries_finished_by_user($userId) WHERE `ShiftEntry`.`UID` = ? AND `Shifts`.`end` < ? AND `ShiftEntry`.`freeloaded` = 0 + ' . ($sinceTime ? 'AND Shifts.start >= ' . $sinceTime->getTimestamp() : '') . ' ORDER BY `Shifts`.`end` desc ', [ diff --git a/includes/model/User_model.php b/includes/model/User_model.php index 681e70aa..1b1434bb 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -233,7 +233,10 @@ function User_reset_api_key($user, $log = true) function User_get_eligable_voucher_count($user) { $voucher_settings = config('voucher_settings'); - $shifts_done = count(ShiftEntries_finished_by_user($user->id)); + $start = $voucher_settings['voucher_start'] + ? Carbon::createFromFormat('Y-m-d', $voucher_settings['voucher_start'])->setTime(0, 0) + : null; + $shifts_done = count(ShiftEntries_finished_by_user($user->id, $start)); $earned_vouchers = $user->state->got_voucher - $voucher_settings['initial_vouchers']; $eligable_vouchers = $shifts_done / $voucher_settings['shifts_per_voucher'] - $earned_vouchers; |