summaryrefslogtreecommitdiff
path: root/includes/model
diff options
context:
space:
mode:
authormsquare <msquare@notrademark.de>2017-12-27 12:24:55 +0100
committermsquare <msquare@notrademark.de>2017-12-27 12:24:55 +0100
commit1e8f0c484588882e01bc173f7f60e2cf1376f790 (patch)
tree92a039f8449c55109e4e1832deef4fe56177ae4d /includes/model
parentabf4b1da30e7fabebfa5e36cfc5c1fe691320a1e (diff)
fixes #208, fixes #310: T-Shirt Score™ should be shown on the user view page below your shifts
Diffstat (limited to 'includes/model')
-rw-r--r--includes/model/User_model.php24
1 files changed, 24 insertions, 0 deletions
diff --git a/includes/model/User_model.php b/includes/model/User_model.php
index 33fca639..fa24aac1 100644
--- a/includes/model/User_model.php
+++ b/includes/model/User_model.php
@@ -18,6 +18,30 @@ function User_delete($user_id)
}
/**
+ * Returns the tshirt score (number of hours counted for tshirt).
+ * Accounts only ended shifts.
+ *
+ * @param array[] $user
+ */
+function User_tshirt_score($user) {
+ $shift_sum_formula = config('shift_sum_formula');
+
+ $result = DB::selectOne('
+ SELECT ROUND((' . $shift_sum_formula . ') / 3600, 2) AS `tshirt_score`
+ FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID`
+ LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID`
+ WHERE `User`.`UID` = ?
+ AND `Shifts`.`end` < ?
+ GROUP BY `User`.`UID`
+ ',[
+ $user['UID'],
+ time()
+ ]);
+
+ return $result['tshirt_score'];
+}
+
+/**
* Update user.
*
* @param array $user