From 1647c2dbe4244fa273ec515b55b42a0a933cce61 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Thu, 25 Jan 2018 18:49:48 +0000 Subject: [PATCH] Added record selector to assign to invoice feature. --- WEB-INF/templates/footer.tpl | 2 +- WEB-INF/templates/report.tpl | 2 +- report.php | 38 +++++++++++++++++++++++++++--------- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 1f11602a..e03bbccb 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 f1bca310..7bf0e2ac 100644 --- a/report.php +++ b/report.php @@ -44,6 +44,10 @@ if ($user->isPluginEnabled('ps')) { $cl_mark_paid_action_option = $request->getParameter('mark_paid_action_options', ($request->isPost() ? null : @$_SESSION['mark_paid_action_option'])); $_SESSION['mark_paid_action_option'] = $cl_mark_paid_action_option; } +if ($user->isPluginEnabled('iv')) { + $cl_assign_invoice_select_option = $request->getParameter('assign_invoice_select_options', ($request->isPost() ? null : @$_SESSION['assign_invoice_select_option'])); + $_SESSION['assign_invoice_select_option'] = $cl_assign_invoice_select_option; +} // Use custom fields plugin if it is enabled. if ($user->isPluginEnabled('cf')) { @@ -85,6 +89,11 @@ if ($client_id && $bean->getAttribute('chinvoice') && ('no_grouping' == $bean->g // Client is selected and we are displaying the invoice column. $recent_invoices = ttTeamHelper::getRecentInvoices($user->team_id, $client_id); if ($recent_invoices) { + $assign_invoice_select_options = array('1'=>$i18n->getKey('dropdown.all'),'2'=>$i18n->getKey('dropdown.select')); + $form->addInput(array('type'=>'combobox', + 'name'=>'assign_invoice_select_options', + 'data'=>$assign_invoice_select_options, + 'value'=>$cl_assign_invoice_select_option)); $form->addInput(array('type'=>'combobox', 'name'=>'recent_invoice', 'data'=>$recent_invoices, @@ -128,17 +137,28 @@ if ($request->isPost()) { } if ($request->getParameter('btn_assign')) { - // User clicked the Submit button to assign some items to a recent invoice. - foreach($_POST as $key => $val) { - if ('log_id_' == substr($key, 0, 7)) - $time_log_ids[] = substr($key, 7); - if ('item_id_' == substr($key, 0, 8)) - $expense_item_ids[] = substr($key, 8); - if ('recent_invoice' == $key) - $invoice_id = $val; + // User clicked the Submit button to assign all or some items to a recent invoice. + + // Determine invoice id. + $invoice_id = $request->getParameter('recent_invoice'); + + // Obtain 2 arrays or record ids, one for log, another for expense items. + if (1 == $request->getParameter('assign_invoice_select_options')) { + // We are assigning all report items. Get the arrays from session. + $item_ids = ttReportHelper::getFromSession(); + $time_log_ids = $item_ids['report_item_ids']; + $expense_item_ids = $item_ids['report_item_expense_ids']; + } else if (2 == $request->getParameter('assign_invoice_select_options')) { + // We are marking only selected items. Get the arrays from $_POST. + foreach($_POST as $key => $val) { + if ('log_id_' == substr($key, 0, 7)) + $time_log_ids[] = substr($key, 7); + if ('item_id_' == substr($key, 0, 8)) + $expense_item_ids[] = substr($key, 8); + } } + // Assign as requested. if ($time_log_ids || $expense_item_ids) { - // Some records are checked for invoice editing. Adjust their invoice accordingly. ttReportHelper::assignToInvoice($invoice_id, $time_log_ids, $expense_item_ids); } // Re-display this form. -- 2.20.1
 Anuko Time Tracker 1.17.4.3783 | Copyright © Anuko | +  Anuko Time Tracker 1.17.4.3784 | 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 e98e14ce..4eac6076 100644 --- a/WEB-INF/templates/report.tpl +++ b/WEB-INF/templates/report.tpl @@ -156,7 +156,7 @@
- +
{$i18n.form.report.assign_to_invoice}: {$forms.reportForm.recent_invoice.control} {$forms.reportForm.btn_assign.control}
{$i18n.form.report.assign_to_invoice}: {$forms.reportForm.assign_invoice_select_options.control} {$forms.reportForm.recent_invoice.control} {$forms.reportForm.btn_assign.control}