summaryrefslogtreecommitdiff
path: root/includes/model
diff options
context:
space:
mode:
Diffstat (limited to 'includes/model')
-rw-r--r--includes/model/ShiftEntry_model.php7
-rw-r--r--includes/model/User_model.php5
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;