Untitled

 avatar
unknown
plain_text
12 days ago
2.2 kB
2
Indexable
public static function get_report_data($id, $search_filters = [])
    {
        $report_data_rows = [];

        if (isset($id['uuid'])) {
            $report = Report::uuid($id['uuid']);
        }

        if (isset($id['slug'])) {
            $report = Report::where('slug', $id['slug'])->first();
        }

        if (!$report) return $report_data_rows;

        // Add dynamic filters
        $filter_class_name = ucwords(Str::camel($report->name) . 'Filters');
        $report_columns = $report->config['columns'];

        // normal input don't have id, but table input does
        $show_columns = [];
        foreach ($report_columns as $index => $report_column) {
            if (!isset($report_columns[$index]['id'])) {
                $report_columns[$index]['id'] = $report_columns[$index]['name'];
            }
        }

        $request = new Request();

        $filters = ReportDataFilterFactory::create("$filter_class_name", $request, $report_columns);
        $filters->request->merge($search_filters);

        $report_data_rows = $report->data()->filter($filters)->get();
        // return $report_data_rows;
        $rows = [];
        if ($report_data_rows) {
            foreach($report_data_rows as $report_data_row) {
                $columns = [];
                foreach ($report_data_row->columns as $report_data_row_column) {
                    //\Debugbar::info($report_data_row_column);
                    if (!isset($report_data_row_column['id'])) {
                        $report_data_row_column['id'] = $report_data_row_column['name'];
                    }

                    if (isset($report_data_row_column['userData'])) {
                        $columns[$report_data_row_column['id']] = $report_data_row_column['userData'];
                    }
                }
                $columns['form_submit_id'] = [0 => $report_data_row->form_submit_id];
                $columns['form_submit_uuid'] = [0 => $report_data_row->application->uuid];
                $rows[] = $columns;

            }
        }
        //\Debugbar::info($rows);

        return $rows;
    }
Editor is loading...
Leave a Comment