diff options
Diffstat (limited to 'includes')
-rw-r--r-- | includes/controller/user_worklog_controller.php | 42 | ||||
-rw-r--r-- | includes/model/UserWorkLog_model.php | 74 | ||||
-rw-r--r-- | includes/model/User_model.php | 16 | ||||
-rw-r--r-- | includes/view/UserWorkLog_view.php | 30 | ||||
-rw-r--r-- | includes/view/User_view.php | 58 |
5 files changed, 142 insertions, 78 deletions
diff --git a/includes/controller/user_worklog_controller.php b/includes/controller/user_worklog_controller.php index 1c3281ac..a7218071 100644 --- a/includes/controller/user_worklog_controller.php +++ b/includes/controller/user_worklog_controller.php @@ -2,6 +2,8 @@ /** * Delete a work log entry. + * + * @return array */ function user_worklog_delete_controller() { @@ -29,6 +31,8 @@ function user_worklog_delete_controller() /** * Edit work log for user. + * + * @return array */ function user_worklog_edit_controller() { @@ -59,9 +63,10 @@ function user_worklog_edit_controller() } /** + * Handle form * - * @param UserWorkLog $userWorkLog - * @return [bool $valid, UserWorkLog $userWorkLog] + * @param array $userWorkLog + * @return array [bool $valid, UserWorkLog $userWorkLog] */ function user_worklog_from_request($userWorkLog) { @@ -69,14 +74,17 @@ function user_worklog_from_request($userWorkLog) $valid = true; - $userWorkLog['work_timestamp'] = parse_date('Y-m-d H:i', $request->input('work_timestamp') . ' 00:00'); + $userWorkLog['work_timestamp'] = parse_date( + 'Y-m-d H:i', + $request->input('work_timestamp') . ' 00:00' + ); if (is_null($userWorkLog['work_timestamp'])) { $valid = false; error(_('Please enter work date.')); } $userWorkLog['work_hours'] = $request->input('work_hours'); - if (! preg_match("/[0-9]+(\.[0-9]+)?/", $userWorkLog['work_hours'])) { + if (!preg_match("/[0-9]+(\.[0-9]+)?/", $userWorkLog['work_hours'])) { $valid = false; error(_('Please enter work hours in format ##[.##].')); } @@ -95,6 +103,8 @@ function user_worklog_from_request($userWorkLog) /** * Add work log entry to user. + * + * @return array */ function user_worklog_add_controller() { @@ -128,12 +138,14 @@ function user_worklog_add_controller() /** * Link to work log entry add for given user. * - * @param User $user + * @param array $user + * + * @return string */ function user_worklog_add_link($user) { return page_link_to('user_worklog', [ - 'action' => 'add', + 'action' => 'add', 'user_id' => $user['UID'] ]); } @@ -141,12 +153,13 @@ function user_worklog_add_link($user) /** * Link to work log entry edit. * - * @param UserWorkLog $userWorkLog + * @param array $userWorkLog + * @return string */ function user_worklog_edit_link($userWorkLog) { return page_link_to('user_worklog', [ - 'action' => 'edit', + 'action' => 'edit', 'user_worklog_id' => $userWorkLog['id'] ]); } @@ -154,31 +167,34 @@ function user_worklog_edit_link($userWorkLog) /** * Link to work log entry delete. * - * @param UserWorkLog $userWorkLog + * @param array $userWorkLog * @param array[] $parameters + * @return string */ function user_worklog_delete_link($userWorkLog, $parameters = []) { return page_link_to('user_worklog', array_merge([ - 'action' => 'delete', + 'action' => 'delete', 'user_worklog_id' => $userWorkLog['id'] ], $parameters)); } /** * Work log entry actions + * + * @return array */ -function user_worklogs_controller() +function user_worklog_controller() { global $user, $privileges; - if (! in_array('admin_user_worklog', $privileges)) { + if (!in_array('admin_user_worklog', $privileges)) { redirect(user_link($user)); } $request = request(); $action = $request->input('action'); - if (! $request->has('action')) { + if (!$request->has('action')) { redirect(user_link($user)); } diff --git a/includes/model/UserWorkLog_model.php b/includes/model/UserWorkLog_model.php index 36442943..df0ec8f6 100644 --- a/includes/model/UserWorkLog_model.php +++ b/includes/model/UserWorkLog_model.php @@ -1,10 +1,12 @@ <?php + use Engelsystem\Database\Db; /** * Load a single work log entry. - * - * @param int $user_worklog_id + * + * @param int $user_worklog_id + * @return array */ function UserWorkLog($user_worklog_id) { @@ -15,8 +17,9 @@ function UserWorkLog($user_worklog_id) /** * Returns all work log entries for a user. - * - * @param User $user + * + * @param array $user + * @return array[] */ function UserWorkLogsForUser($user) { @@ -27,8 +30,9 @@ function UserWorkLogsForUser($user) /** * Delete a work log entry. - * - * @param UserWorkLog $userWorkLog + * + * @param $userWorkLog + * @return int */ function UserWorkLog_delete($userWorkLog) { @@ -36,21 +40,27 @@ function UserWorkLog_delete($userWorkLog) $result = Db::delete("DELETE FROM `UserWorkLog` WHERE `id`=?", [ $userWorkLog['id'] ]); - - engelsystem_log(sprintf('Delete work log for %s, %s hours, %s', User_Nick_render($user_source), $userWorkLog['work_hours'], $userWorkLog['comment'])); - + + engelsystem_log(sprintf( + 'Delete work log for %s, %s hours, %s', + User_Nick_render($user_source), + $userWorkLog['work_hours'], + $userWorkLog['comment'] + )); + return $result; } /** * Update work log entry (only work hours and comment) - * - * @param UserWorkLog $userWorkLog + * + * @param $userWorkLog + * @return int */ function UserWorkLog_update($userWorkLog) { $user_source = User($userWorkLog['user_id']); - + $result = Db::update("UPDATE `UserWorkLog` SET `work_timestamp`=?, `work_hours`=?, @@ -61,23 +71,29 @@ function UserWorkLog_update($userWorkLog) $userWorkLog['comment'], $userWorkLog['id'] ]); - - engelsystem_log(sprintf('Updated work log for %s, %s hours, %s', User_Nick_render($user_source), $userWorkLog['work_hours'], $userWorkLog['comment'])); - + + engelsystem_log(sprintf( + 'Updated work log for %s, %s hours, %s', + User_Nick_render($user_source), + $userWorkLog['work_hours'], + $userWorkLog['comment']) + ); + return $result; } /** * Create a new work log entry - * - * @param UserWorkLog $userWorkLog + * + * @param $userWorkLog + * @return bool */ function UserWorkLog_create($userWorkLog) { global $user; - + $user_source = User($userWorkLog['user_id']); - + $result = Db::insert("INSERT INTO `UserWorkLog` ( `user_id`, `work_timestamp`, @@ -94,30 +110,30 @@ function UserWorkLog_create($userWorkLog) $user['UID'], time() ]); - - engelsystem_log(sprintf('Added work log entry for %s, %s hours, %s', User_Nick_render($user_source), $userWorkLog['work_hours'], $userWorkLog['comment'])); - + + engelsystem_log(sprintf('Added work log entry for %s, %s hours, %s', User_Nick_render($user_source), + $userWorkLog['work_hours'], $userWorkLog['comment'])); + return $result; } /** * New user work log entry * - * @param array[] $user + * @param array[] $user + * @return array */ function UserWorkLog_new($user) { $work_date = parse_date('Y-m-d H:i', date('Y-m-d 00:00', time())); $event_config = EventConfig(); - if (! empty($event_config['buildup_start_date'])) { + if (!empty($event_config['buildup_start_date'])) { $work_date = parse_date('Y-m-d H:i', date('Y-m-d 00:00', $event_config['buildup_start_date'])); } return [ - 'user_id' => $user['UID'], + 'user_id' => $user['UID'], 'work_timestamp' => $work_date, - 'work_hours' => 0, - 'comment' => '' + 'work_hours' => 0, + 'comment' => '' ]; } - -?>
\ No newline at end of file diff --git a/includes/model/User_model.php b/includes/model/User_model.php index a439b199..70a03736 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -20,12 +20,14 @@ function User_delete($user_id) /** * Returns the tshirt score (number of hours counted for tshirt). * Accounts only ended shifts. - * + * * @param array[] $user + * @return int */ -function User_tshirt_score($user) { +function User_tshirt_score($user) +{ $shift_sum_formula = config('shift_sum_formula'); - + $result_shifts = DB::selectOne(' SELECT ROUND((' . $shift_sum_formula . ') / 3600, 2) AS `tshirt_score` FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` @@ -33,7 +35,7 @@ function User_tshirt_score($user) { WHERE `User`.`UID` = ? AND `Shifts`.`end` < ? GROUP BY `User`.`UID` - ',[ + ', [ $user['UID'], time() ]); @@ -43,11 +45,11 @@ function User_tshirt_score($user) { LEFT JOIN `UserWorkLog` ON `User`.`UID` = `UserWorkLog`.`user_id` WHERE `User`.`UID` = ? AND `UserWorkLog`.`work_timestamp` < ? - ',[ + ', [ $user['UID'], time() ]); - + return $result_shifts['tshirt_score'] + $result_worklog['tshirt_score']; } @@ -385,7 +387,7 @@ function User_validate_planned_departure_date($planned_arrival_date, $planned_de return new ValidationResult(false, $planned_arrival_date); } $event_config = EventConfig(); - if (empty($event_config )) { + if (empty($event_config)) { // Nothing to validate against return new ValidationResult(true, $planned_departure_date); } diff --git a/includes/view/UserWorkLog_view.php b/includes/view/UserWorkLog_view.php index 79c049b3..772d4aee 100644 --- a/includes/view/UserWorkLog_view.php +++ b/includes/view/UserWorkLog_view.php @@ -2,13 +2,18 @@ /** * Delete work log entry. - * @param User $user_source - * @param UserWorkLog $userWorkLog + * + * @param array $user_source + * @param array $userWorkLog + * @return string */ function UserWorkLog_delete_view($user_source, $userWorkLog) { return page_with_title(UserWorkLog_delete_title(), [ - info(sprintf(_('Do you want to delete the worklog entry for %s?'), User_Nick_render($user_source)), true), + info(sprintf( + _('Do you want to delete the worklog entry for %s?'), + User_Nick_render($user_source) + ), true), buttons([ button(user_link($user_source), glyph('remove') . _('cancel')), button(user_worklog_delete_link($userWorkLog, [ @@ -28,9 +33,10 @@ function UserWorkLog_delete_title() /** * Render edit table. - * - * @param User $user_source - * @param UserWorkLog $userWorkLog + * + * @param array $user_source + * @param array $userWorkLog + * @return string */ function UserWorkLog_edit_form($user_source, $userWorkLog) { @@ -46,8 +52,9 @@ function UserWorkLog_edit_form($user_source, $userWorkLog) /** * Form for edit a user work log entry. * - * @param User $user_source - * @param UserWorkLog $userWorkLog + * @param array $user_source + * @param array $userWorkLog + * @return string */ function UserWorkLog_edit_view($user_source, $userWorkLog) { @@ -63,8 +70,9 @@ function UserWorkLog_edit_view($user_source, $userWorkLog) /** * Form for adding a user work log entry. * - * @param User $user_source - * @param UserWorkLog $userWorkLog + * @param array $user_source + * @param array $userWorkLog + * @return string */ function UserWorkLog_add_view($user_source, $userWorkLog) { @@ -92,5 +100,3 @@ function UserWorkLog_add_title() { return _('Add work log entry'); } - -?>
\ No newline at end of file diff --git a/includes/view/User_view.php b/includes/view/User_view.php index cc468bd2..8eee610a 100644 --- a/includes/view/User_view.php +++ b/includes/view/User_view.php @@ -406,10 +406,21 @@ function User_view_myshift($shift, $user_source, $its_me) * @param array[] $shifts * @param array $user_source * @param bool $its_me + * @param int $tshirt_score + * @param bool $tshirt_admin + * @param array[] $user_worklogs + * @param $admin_user_worklog_privilege * @return array */ -function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshirt_admin, $user_worklogs, $admin_user_worklog_privilege) -{ +function User_view_myshifts( + $shifts, + $user_source, + $its_me, + $tshirt_score, + $tshirt_admin, + $user_worklogs, + $admin_user_worklog_privilege +) { $myshifts_table = []; $timesum = 0; foreach ($shifts as $shift) { @@ -420,8 +431,8 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi } } - if($its_me || $admin_user_worklog_privilege) { - foreach($user_worklogs as $worklog) { + if ($its_me || $admin_user_worklog_privilege) { + foreach ($user_worklogs as $worklog) { $myshifts_table[$worklog['work_timestamp']] = User_view_worklog($worklog, $admin_user_worklog_privilege); $timesum += $worklog['work_hours'] * 3600; } @@ -453,12 +464,15 @@ function User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshi /** * Renders table entry for user work log - * @param UserWorkLog $worklog - * @param bool $admin_user_worklog_privilege + * + * @param array $worklog + * @param bool $admin_user_worklog_privilege + * @return array */ -function User_view_worklog($worklog, $admin_user_worklog_privilege) { +function User_view_worklog($worklog, $admin_user_worklog_privilege) +{ $actions = ''; - if($admin_user_worklog_privilege) { + if ($admin_user_worklog_privilege) { $actions = table_buttons([ button( user_worklog_edit_link($worklog), @@ -479,11 +493,11 @@ function User_view_worklog($worklog, $admin_user_worklog_privilege) { 'room' => '', 'shift_info' => _('Work log entry'), 'comment' => $worklog['comment'] . '<br>' - . sprintf( - _('Added by %s at %s'), - User_Nick_render(User($worklog['created_user_id'])), - date('Y-m-d H:i', $worklog['created_timestamp']) - ), + . sprintf( + _('Added by %s at %s'), + User_Nick_render(User($worklog['created_user_id'])), + date('Y-m-d H:i', $worklog['created_timestamp']) + ), 'actions' => $actions ]; } @@ -500,6 +514,8 @@ function User_view_worklog($worklog, $admin_user_worklog_privilege) { * @param bool $its_me * @param int $tshirt_score * @param bool $tshirt_admin + * @param bool $admin_user_worklog_privilege + * @param array[] $user_worklogs * @return string */ function User_view( @@ -517,9 +533,17 @@ function User_view( ) { $user_name = htmlspecialchars($user_source['Vorname']) . ' ' . htmlspecialchars($user_source['Name']); $myshifts_table = ''; - if($its_me || $admin_user_privilege) { - $my_shifts = User_view_myshifts($shifts, $user_source, $its_me, $tshirt_score, $tshirt_admin, $user_worklogs, $admin_user_worklog_privilege); - if(count($my_shifts) > 0) { + if ($its_me || $admin_user_privilege) { + $my_shifts = User_view_myshifts( + $shifts, + $user_source, + $its_me, + $tshirt_score, + $tshirt_admin, + $user_worklogs, + $admin_user_worklog_privilege + ); + if (count($my_shifts) > 0) { $myshifts_table = table([ 'date' => _('Day & time'), 'duration' => _('Duration'), @@ -528,7 +552,7 @@ function User_view( 'comment' => _('Comment'), 'actions' => _('Action') ], $my_shifts); - } elseif($user_source['force_active']) { + } elseif ($user_source['force_active']) { $myshifts_table = success(_('You have done enough to get a t-shirt.'), true); } } |