public function showReports()
{
$action = Input::get('action');
if (Input::get('report_type')) {
$reportType = Input::get('report_type');
$dateField = Input::get('date_field');
$startDate = date_create(Input::get('start_date'));
$endDate = date_create(Input::get('end_date'));
} else {
$reportType = ENTITY_INVOICE;
$dateField = FILTER_INVOICE_DATE;
$startDate = Utils::today(false)->modify('-3 month');
$endDate = Utils::today(false);
}
$reportTypes = [ENTITY_CLIENT => trans('texts.client'), ENTITY_INVOICE => trans('texts.invoice'), ENTITY_PRODUCT => trans('texts.product'), ENTITY_PAYMENT => trans('texts.payment'), ENTITY_EXPENSE => trans('texts.expense'), ENTITY_TASK => trans('texts.task'), ENTITY_TAX_RATE => trans('texts.tax')];
$params = ['startDate' => $startDate->format('Y-m-d'), 'endDate' => $endDate->format('Y-m-d'), 'reportTypes' => $reportTypes, 'reportType' => $reportType, 'title' => trans('texts.charts_and_reports'), 'account' => Auth::user()->account];
if (Auth::user()->account->hasFeature(FEATURE_REPORTS)) {
$isExport = $action == 'export';
$params = array_merge($params, self::generateReport($reportType, $startDate, $endDate, $dateField, $isExport));
if ($isExport) {
self::export($reportType, $params['displayData'], $params['columns'], $params['reportTotals']);
}
} else {
$params['columns'] = [];
$params['displayData'] = [];
$params['reportTotals'] = [];
}
return View::make('reports.chart_builder', $params);
}