From 0ae87b2b2eeb7710e1d169f63708c6c5dc2e2452 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sun, 17 Feb 2019 14:17:06 +0000 Subject: [PATCH] Added Create timesheet button on report.php. --- WEB-INF/lib/ttReportHelper.class.php | 2 ++ WEB-INF/templates/footer.tpl | 2 +- WEB-INF/templates/report.tpl | 3 +++ report.php | 29 ++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/WEB-INF/lib/ttReportHelper.class.php b/WEB-INF/lib/ttReportHelper.class.php index 1b5fc6f1..c3656ad6 100644 --- a/WEB-INF/lib/ttReportHelper.class.php +++ b/WEB-INF/lib/ttReportHelper.class.php @@ -154,6 +154,7 @@ class ttReportHelper { array_push($fields, 'l.user_id'); array_push($fields, '1 as type'); // Type 1 is for tt_log entries. array_push($fields, 'l.date'); + array_push($fields, 'l.timesheet_id'); if($canViewReports || $isClient) array_push($fields, 'u.name as user'); // Add client name if it is selected. @@ -261,6 +262,7 @@ class ttReportHelper { array_push($fields, 'ei.user_id'); array_push($fields, '2 as type'); // Type 2 is for tt_expense_items entries. array_push($fields, 'ei.date'); + array_push($fields, 'ei.timesheet_id'); if($canViewReports || $isClient) array_push($fields, 'u.name as user'); // Add client name if it is selected. diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 8ef58558..e3d319ac 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
- diff --git a/report.php b/report.php index d094df86..7ecabcc5 100644 --- a/report.php +++ b/report.php @@ -185,6 +185,34 @@ $totals = ttReportHelper::getTotals($options); // TODO: Determine if we can create a timesheet out of this report. // There must be only one user, and nothing assigned to existing timesheets. +$canCreateTimesheet = false; +if ($user->isPluginEnabled('ts') && count($report_items) > 0 && + ($user->can('manage_own_timesheets') || $user->can('manage_timesheets'))) { + + $canCreateTimesheet = true; // Start with true and reset if we can't. + $first_user_id = null; + foreach ($report_items as $report_item) { + // Check user id. + if (!$first_user_id) + $first_user_id = $report_item['user_id']; + else { + if ($report_item['user_id'] != $first_user_id) { + // We have items for multiple users. + $canCreateTimesheet = false; + break; + } + } + // Check timesheet id. + if ($report_item['timesheet_id']) { + // We have an item already assigned to a timesheet. + $canCreateTimesheet = false; + break; + } + } + + // TODO: Improve this for "view_all_reports" situation. + // We may need to add "manage_all_timesheets" right. +} // Assign variables that are used to print subtotals. if ($report_items) { @@ -202,6 +230,7 @@ $smarty->assign('forms', array($form->getName()=>$form->toArray())); $smarty->assign('report_items', $report_items); $smarty->assign('subtotals', $subtotals); $smarty->assign('totals', $totals); +$smarty->assign('can_create_timesheet', $canCreateTimesheet); $smarty->assign('bean', $bean); $smarty->assign('title', $i18n->get('title.report').": ".$totals['start_date']." - ".$totals['end_date']); $smarty->assign('content_page_name', 'report.tpl'); -- 2.20.1
 Anuko Time Tracker 1.18.37.4731 | Copyright © Anuko | +  Anuko Time Tracker 1.18.37.4732 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/WEB-INF/templates/report.tpl b/WEB-INF/templates/report.tpl index 0c98951f..4212431b 100644 --- a/WEB-INF/templates/report.tpl +++ b/WEB-INF/templates/report.tpl @@ -186,6 +186,9 @@ +{if $can_create_timesheet} + +{/if}