A bit of refactoring in report.php for timesheet assignment.
authorNik Okuntseff <support@anuko.com>
Sun, 3 Mar 2019 17:40:36 +0000 (17:40 +0000)
committerNik Okuntseff <support@anuko.com>
Sun, 3 Mar 2019 17:40:36 +0000 (17:40 +0000)
WEB-INF/lib/ttTimesheetHelper.class.php
WEB-INF/templates/footer.tpl
report.php

index f214963..22f1292 100644 (file)
@@ -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
index 6732e72..f7a5219 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.18.52.4816 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.18.52.4817 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
index 84b18b6..b31394e 100644 (file)
@@ -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) {