model->select($fields); if (!empty($params)) { $query = static::getFilterBuilder($params)->applyFilter($query); } return $query; } public function getOperationSummary($params): Collection|array { $fields = [ DB::raw("TO_CHAR(TO_DATE(dados_te.mes, 'YYMM'), 'MM/YYYY') as mes"), 'dados_te.cod_smart_unidade', 'dados_te.operacao', 'dados_te.tipo', 'dados_te.perfil_contr as contraparte', 'dados_te.montante_nf', 'dados_te.preco_nf', 'dados_te.nf_c_icms' ]; $params = static::filterRow($params); return $this->execute($fields, $params)->get(); } public static function filterRow($params, $field = 'mes'): array { $arr['filters'] = collect($params['filters']) ->map(function ($value, $key) use ($field) { if ($value['field'] === $field) { Arr::set( $value, "field", "TO_CHAR(TO_DATE(dados_te.{$value['field']}, 'YYMM'), 'MM/YYYY')"); $value['row'] = true; } return $value; })->all(); return $arr; } }