From b25ffbdc86bf97657cbca486aaa1aa068fb16288 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sat, 2 Mar 2019 17:11:08 +0000 Subject: [PATCH] Some more work on timesheets. --- WEB-INF/lib/ttTimesheetHelper.class.php | 27 +++++++++++++++---------- WEB-INF/templates/footer.tpl | 2 +- WEB-INF/templates/timesheet_view.tpl | 1 + timesheet_view.php | 2 +- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/WEB-INF/lib/ttTimesheetHelper.class.php b/WEB-INF/lib/ttTimesheetHelper.class.php index d03f8010..1fff1955 100644 --- a/WEB-INF/lib/ttTimesheetHelper.class.php +++ b/WEB-INF/lib/ttTimesheetHelper.class.php @@ -240,10 +240,11 @@ class ttTimesheetHelper { // getApprovers obtains a list of users who can approve a timesheet for a given user // and also have an email to receive a notification about it. - static function getApprovers($user_id) { + static function getApprovers() { global $user; $mdb2 = getConnection(); + $user_id = $user->getUser(); $group_id = $user->getGroup(); $org_id = $user->org_id; @@ -263,20 +264,22 @@ class ttTimesheetHelper { return $approvers; } - // submitTimesheet marks a timesheet as submitted and sends an email to an approver. + // submitTimesheet marks a timesheet as submitted and also sends an email + // to a selected approver. static function submitTimesheet($fields) { global $user; $mdb2 = getConnection(); + $user_id = $user->getUser(); $group_id = $user->getGroup(); $org_id = $user->org_id; - // First, mark a timesheet as submitted. + // First, mark timesheet as submitted. // Even if mail part below does not work, this will get us a functioning workflow - // (without email notifications). + // without email notification. $timesheet_id = $fields['timesheet_id']; $sql = "update tt_timesheets set submit_status = 1". - " where id = $timesheet_id and group_id = $group_id and org_id = $org_id"; + " where id = $timesheet_id and user_id = $user_id and group_id = $group_id and org_id = $org_id"; $affected = $mdb2->exec($sql); if (is_a($affected, 'PEAR_Error')) return false; @@ -291,17 +294,18 @@ class ttTimesheetHelper { global $user; $mdb2 = getConnection(); + $user_id = $user->getUser(); $group_id = $user->getGroup(); $org_id = $user->org_id; - // First, mark a timesheet as approved. + // First, mark timesheet as approved. // Even if mail part below does not work, this will get us a functioning workflow - // (without email notifications). + // without email notification. $timesheet_id = $fields['timesheet_id']; $comment = $fields['comment']; $sql = "update tt_timesheets set approve_status = 1, approve_comment = ".$mdb2->quote($comment). - " where id = $timesheet_id and submit_status = 1 and group_id = $group_id and org_id = $org_id"; + " where id = $timesheet_id and submit_status = 1 and user_id = $user_id and group_id = $group_id and org_id = $org_id"; $affected = $mdb2->exec($sql); if (is_a($affected, 'PEAR_Error')) return false; @@ -314,17 +318,18 @@ class ttTimesheetHelper { global $user; $mdb2 = getConnection(); + $user_id = $user->getUser(); $group_id = $user->getGroup(); $org_id = $user->org_id; - // First, mark a timesheet as disapproved. + // First, mark timesheet as disapproved. // Even if mail part below does not work, this will get us a functioning workflow - // (without email notifications). + // without email notification. $timesheet_id = $fields['timesheet_id']; $comment = $fields['comment']; $sql = "update tt_timesheets set approve_status = 0, approve_comment = ".$mdb2->quote($comment). - " where id = $timesheet_id and submit_status = 1 and group_id = $group_id and org_id = $org_id"; + " where id = $timesheet_id and submit_status = 1 and user_id = $user_id and group_id = $group_id and org_id = $org_id"; $affected = $mdb2->exec($sql); if (is_a($affected, 'PEAR_Error')) return false; diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index c9463c88..e32cca99 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
- +
 Anuko Time Tracker 1.18.50.4809 | Copyright © Anuko | +  Anuko Time Tracker 1.18.50.4810 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/WEB-INF/templates/timesheet_view.tpl b/WEB-INF/templates/timesheet_view.tpl index 3bd8ddd2..77cc78bd 100644 --- a/WEB-INF/templates/timesheet_view.tpl +++ b/WEB-INF/templates/timesheet_view.tpl @@ -49,6 +49,7 @@ {$i18n.label.total} {$totals['time']}
 
{$forms.timesheetForm.open} diff --git a/timesheet_view.php b/timesheet_view.php index e6368a39..d0198c78 100644 --- a/timesheet_view.php +++ b/timesheet_view.php @@ -60,7 +60,7 @@ $totals = ttReportHelper::getTotals($options); // Determine which controls to show and obtain date for them. $showSubmit = !$timesheet['submit_status']; if ($showSubmit) { - $approvers = ttTimesheetHelper::getApprovers($timesheet['user_id']); + $approvers = ttTimesheetHelper::getApprovers(); $showApprovers = count($approvers) >= 1; } $canApprove = $user->can('approve_timesheets') || $user->can('approve_own_timesheets'); -- 2.20.1