From a7b601e885915db17770998a3ef366f64ccad8c7 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sun, 3 Mar 2019 17:40:36 +0000 Subject: [PATCH] A bit of refactoring in report.php for timesheet assignment. --- WEB-INF/lib/ttTimesheetHelper.class.php | 12 ++++++++- WEB-INF/templates/footer.tpl | 2 +- report.php | 33 +++++++++++++++---------- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/WEB-INF/lib/ttTimesheetHelper.class.php b/WEB-INF/lib/ttTimesheetHelper.class.php index f214963b..22f12927 100644 --- a/WEB-INF/lib/ttTimesheetHelper.class.php +++ b/WEB-INF/lib/ttTimesheetHelper.class.php @@ -414,4 +414,14 @@ class ttTimesheetHelper { } return false; } -} + + // The canAssign function determines if we can show controls on a report page + // for timesheet assignment. + // + // Conditions: + // - Report date range, client_id, and project_id match an existing timesheet + // with approved_status null. + static function canAssign($options) { + return false; + } +} \ No newline at end of file diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 6732e72e..f7a52196 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.52.4816 | Copyright © Anuko | +  Anuko Time Tracker 1.18.52.4817 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/report.php b/report.php index 84b18b66..b31394e2 100644 --- a/report.php +++ b/report.php @@ -73,21 +73,29 @@ if ($request->isPost()) $bean->loadBean(); $client_id = $bean->getAttribute('client'); -// Do we need to show checkboxes? We show them if we allow setting approved or paid status, -// and also when we can assign / deassign records to invoces. +// Do we need to show checkboxes? We show them in the following 4 situations: +// - We can approve items. +// - We can mark items as paid. +// - We can sssign items to invoices. +// - We can assign items to a timesheet. +// Determine these conditions separately. if ($bean->getAttribute('chapproved') && ($user->can('approve_reports') || $user->can('approve_all_eports'))) - $showForApproved = true; -if ($bean->getAttribute('chpaid') || - ($client_id && $bean->getAttribute('chinvoice') && ('no_grouping' == $bean->getAttribute('group_by1')) && !$user->isClient())) { - if ($user->can('manage_invoices')) - $showForInvoicesOrPaid = true; -} -$use_checkboxes = $showForApproved || $showForInvoicesOrPaid; + $useMarkApproved = true; +if ($bean->getAttribute('chpaid') && $user->can('manage_invoices')) + $useMarkPaid = true; +if ($bean->getAttribute('chinvoice') && $client_id && 'no_grouping' == $bean->getAttribute('group_by1') && !$user->isClient() && $user->can('manage_invoices')) + $useAssignToInvoice = true; +//if ($bean->getAttribute('chtimesheet') && ($user->can('track_own_time') || $user->can('track_time'))) +// $useAssignToTimesheet = true; // TODO: add a check for timesheet capability. +//if (ttTimesheetHelper::canAssign($options)) +// $useAssignToTimesheet = true; + +$use_checkboxes = $useMarkApproved || $useMarkPaid || $useAssignToInvoice || $useAssignToTimesheet; if ($use_checkboxes) $smarty->assign('use_checkboxes', true); // Controls for "Mark approved" block. -if ($showForApproved) { +if ($useMarkApproved) { $mark_approved_select_options = array('1'=>$i18n->get('dropdown.all'),'2'=>$i18n->get('dropdown.select')); $form->addInput(array('type'=>'combobox', 'name'=>'mark_approved_select_options', @@ -103,7 +111,7 @@ if ($showForApproved) { } // Controls for "Mark paid" block. -if ($user->can('manage_invoices') && $bean->getAttribute('chpaid')) { +if ($useMarkPaid) { $mark_paid_select_options = array('1'=>$i18n->get('dropdown.all'),'2'=>$i18n->get('dropdown.select')); $form->addInput(array('type'=>'combobox', 'name'=>'mark_paid_select_options', @@ -119,8 +127,7 @@ if ($user->can('manage_invoices') && $bean->getAttribute('chpaid')) { } // Controls for "Assign to invoice" block. -if ($user->can('manage_invoices') && - ($client_id && $bean->getAttribute('chinvoice') && ('no_grouping' == $bean->getAttribute('group_by1')) && !$user->isClient())) { +if ($useAssignToInvoice) { // Client is selected and we are displaying the invoice column. $recent_invoices = ttGroupHelper::getRecentInvoices($client_id); if ($recent_invoices) { -- 2.20.1