X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/a93a92b4959bf35c5c6b41adaea5a666b876bf2d..30bec134aac46efe3cdd5371de46598a68138c46:/report.php diff --git a/report.php b/report.php index 135c8f27..84b18b66 100644 --- a/report.php +++ b/report.php @@ -82,7 +82,8 @@ if ($bean->getAttribute('chpaid') || if ($user->can('manage_invoices')) $showForInvoicesOrPaid = true; } -if ($showForApproved || $showForInvoicesOrPaid) +$use_checkboxes = $showForApproved || $showForInvoicesOrPaid; +if ($use_checkboxes) $smarty->assign('use_checkboxes', true); // Controls for "Mark approved" block. @@ -92,7 +93,7 @@ if ($showForApproved) { 'name'=>'mark_approved_select_options', 'data'=>$mark_approved_select_options, 'value'=>$cl_mark_approved_select_option)); - $mark_approved_action_options = array('1'=>$i18n->get('form.reports.include_approved'),'2'=>$i18n->get('form.reports.include_not_approved')); + $mark_approved_action_options = array('1'=>$i18n->get('dropdown.approved'),'2'=>$i18n->get('dropdown.not_approved')); $form->addInput(array('type'=>'combobox', 'name'=>'mark_approved_action_options', 'data'=>$mark_approved_action_options, @@ -142,7 +143,8 @@ if ($user->can('manage_invoices') && if ($request->isPost()) { // Validate parameters and at the same time build arrays of record ids. - if (($request->getParameter('btn_mark_paid') && 2 == $request->getParameter('mark_paid_select_options')) + if (($request->getParameter('btn_mark_approved') && 2 == $request->getParameter('mark_approved_select_options')) + || ($request->getParameter('btn_mark_paid') && 2 == $request->getParameter('mark_paid_select_options')) || ($request->getParameter('btn_assign') && 2 == $request->getParameter('assign_invoice_select_options'))) { // We act on selected records. Are there any? foreach($_POST as $key => $val) { @@ -164,6 +166,22 @@ if ($request->isPost()) { } if ($err->no()) { + if ($request->getParameter('btn_mark_approved')) { + // User clicked the "Mark approved" button to mark some or all items either approved or not approved. + + // Determine user action. + $mark_approved = $request->getParameter('mark_approved_action_options') == 1 ? true : false; + + // Mark as requested. + if ($time_log_ids || $expense_item_ids) { + ttReportHelper::markApproved($time_log_ids, $expense_item_ids, $mark_approved); + } + + // Re-display this form. + header('Location: report.php'); + exit(); + } + if ($request->getParameter('btn_mark_paid')) { // User clicked the "Mark paid" button to mark some or all items either paid or not paid. @@ -201,7 +219,7 @@ $options = ttReportHelper::getReportOptions($bean); $report_items = ttReportHelper::getItems($options); // Store record ids in session in case user wants to act on records such as marking them all paid. -if ($request->isGet() && $user->isPluginEnabled('ps')) +if ($request->isGet() && $use_checkboxes) ttReportHelper::putInSession($report_items); if (ttReportHelper::grouping($options)) { @@ -210,39 +228,6 @@ if (ttReportHelper::grouping($options)) { } $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; - } - } - // Save user_id in session. - $bean->saveDetachedAttribute('timesheet_user_id', $first_user_id); - - // 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) { $smarty->assign('print_subtotals', true); @@ -259,7 +244,6 @@ $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');