This commit is contained in:
537
api/app/Services/Manutencao/RelatorioSolicitacoesService.php
Normal file
537
api/app/Services/Manutencao/RelatorioSolicitacoesService.php
Normal file
@@ -0,0 +1,537 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Manutencao;
|
||||
|
||||
use App\Enums\Manutencao\StatusTipo;
|
||||
use App\Models\Cadastro\ServicoManutencaoCausasProvaveis;
|
||||
use App\Models\Manutencao\Solicitacao;
|
||||
use App\Models\Manutencao\SolicitacaoCausaProvavel;
|
||||
use App\Services\Service;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RelatorioSolicitacoesService extends Service
|
||||
{
|
||||
public static function index()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$solicitacoes = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->leftJoin('cadastro_grupo as grupo', 'grupo.id', 'servico.grupo_id')
|
||||
->leftJoin('cadastro_subgrupo as subgrupo', 'subgrupo.id', 'solicitacao.subgrupo_id')
|
||||
->leftJoin('manutencao_parametrizacao_status as parametrizacao_status', 'parametrizacao_status.id', 'solicitacao.status_id')
|
||||
->leftJoin('manutencao_status_tipo as status', 'status.id', 'parametrizacao_status.tipo_id')
|
||||
->leftJoin('manutencao_prioridade_tipo as prioridade', 'prioridade.id', 'servico.prioridade_id')
|
||||
->leftJoin('cadastro_infraestrutura as infraestrutura_executante', 'infraestrutura_executante.id', 'solicitacao.prestador_id')
|
||||
->leftJoin('cadastro_unidade as unidade_executante', 'unidade_executante.id', 'infraestrutura_executante.unidade_id')
|
||||
->join('cadastro_usuario as usuario', 'usuario.id', 'solicitacao.usuario_solicitante_id')
|
||||
->join('cadastro_cidadao as cidadao', 'cidadao.id', 'usuario.cidadao_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->join('cadastro_unidade as unidade', 'unidade.id', 'infraestrutura.unidade_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->select(
|
||||
DB::raw('COALESCE((
|
||||
SELECT DATE_FORMAT(status_historico_reaberto.created_at, "%d/%m/%Y")
|
||||
FROM manutencao_solicitacao_status_historico as status_historico_reaberto
|
||||
JOIN manutencao_parametrizacao_status as parametrizacao_status_reaberto
|
||||
ON parametrizacao_status_reaberto.id = status_historico_reaberto.status_id
|
||||
JOIN manutencao_status_tipo as status_tipo_reaberto
|
||||
ON status_tipo_reaberto.id = parametrizacao_status_reaberto.tipo_id
|
||||
WHERE status_tipo_reaberto.id = ' . StatusTipo::REABERTO . '
|
||||
AND status_historico_reaberto.solicitacao_id = solicitacao.id
|
||||
LIMIT 1
|
||||
), DATE_FORMAT(solicitacao.created_at, "%d/%m/%Y")) as data_abertura'),
|
||||
DB::raw('COALESCE((
|
||||
SELECT DATE_FORMAT(MAX(status_historico.created_at), "%d/%m/%Y")
|
||||
FROM manutencao_solicitacao_status_historico as status_historico
|
||||
JOIN manutencao_parametrizacao_status as parametrizacao_status
|
||||
ON parametrizacao_status.id = status_historico.status_id
|
||||
JOIN manutencao_status_tipo as status_tipo
|
||||
ON status_tipo.id = parametrizacao_status.tipo_id
|
||||
WHERE status_tipo.id = ' . StatusTipo::FINALIZADO . '
|
||||
AND status_historico.solicitacao_id = solicitacao.id
|
||||
LIMIT 1
|
||||
), "NÃO FINALIZADO") as data_finalizacao'),
|
||||
'prioridade.nome as prioridade',
|
||||
DB::raw('COALESCE((
|
||||
SELECT CONCAT(DATEDIFF(
|
||||
(SELECT MAX(status_historico.created_at)
|
||||
FROM manutencao_solicitacao_status_historico as status_historico
|
||||
JOIN manutencao_parametrizacao_status as parametrizacao_status
|
||||
ON parametrizacao_status.id = status_historico.status_id
|
||||
JOIN manutencao_status_tipo as status_tipo
|
||||
ON status_tipo.id = parametrizacao_status.tipo_id
|
||||
WHERE status_tipo.id = ' . StatusTipo::FINALIZADO . '
|
||||
AND status_historico.solicitacao_id = solicitacao.id
|
||||
),
|
||||
solicitacao.created_at
|
||||
), " DIAS")
|
||||
), CONCAT(DATEDIFF(CURDATE(), solicitacao.created_at), " DIAS")) as dias_abertura'),
|
||||
'parametrizacao_status.nome as status',
|
||||
'cidadao.nome as usuario_solicitante',
|
||||
'unidade.nome_fantasia as unidade',
|
||||
'grupo.nome as grupo',
|
||||
'solicitacao.codigo as codigo',
|
||||
'servico.nome as servico',
|
||||
'solicitacao.id as id',
|
||||
'status.id as status_id',
|
||||
'solicitacao.prestador_id as prestador_id',
|
||||
DB::raw('COALESCE(unidade_executante.nome_fantasia, "-") as unidade_executante'),
|
||||
)
|
||||
->distinct();
|
||||
|
||||
$solicitacoes = self::getQueryParams($solicitacoes);
|
||||
$solicitacoes = $solicitacoes
|
||||
->orderBy('solicitacao.created_at', 'asc')
|
||||
->get();
|
||||
|
||||
$totalGeral = $solicitacoes->count();
|
||||
|
||||
$abertoCount = $solicitacoes
|
||||
->where('status_id', StatusTipo::EM_ABERTO)
|
||||
->count();
|
||||
|
||||
$emAtendimentoCount = $solicitacoes
|
||||
->where('status_id', StatusTipo::EM_ATENDIMENTO)
|
||||
->count();
|
||||
|
||||
$finalizadoCount = $solicitacoes
|
||||
->where('status_id', StatusTipo::FINALIZADO)
|
||||
->count();
|
||||
|
||||
$reabertoCount = $solicitacoes
|
||||
->where('status_id', StatusTipo::REABERTO)
|
||||
->count();
|
||||
|
||||
$canceladoCount = $solicitacoes
|
||||
->where('status_id', StatusTipo::CANCELADO)
|
||||
->count();
|
||||
|
||||
$solicitacoes = collect($solicitacoes)->map(function ($solicitacao) {
|
||||
$causasProvaveisIds = SolicitacaoCausaProvavel::where('solicitacao_id', $solicitacao->id)->get();
|
||||
|
||||
$causasProvaveis = $causasProvaveisIds->map(function ($causaProvavel) {
|
||||
$causa = ServicoManutencaoCausasProvaveis::find($causaProvavel->causa_provavel_id);
|
||||
return $causa ? $causa->nome : null;
|
||||
})->filter();
|
||||
|
||||
$causasProvaveisNomes = $causasProvaveis->isNotEmpty()
|
||||
? $causasProvaveis->implode(', ')
|
||||
: 'NÃO INFORMADO';
|
||||
|
||||
$prestador = DB::table('cadastro_servico_manutencao_prestador_fornecedor')
|
||||
->leftJoin('cadastro_unidade_executante_manutencao as unidade_executante_prestador', 'unidade_executante_prestador.id', 'cadastro_servico_manutencao_prestador_fornecedor.unidade_executante_manutencao_id')
|
||||
->leftJoin('cadastro_infraestrutura', 'cadastro_infraestrutura.id', 'unidade_executante_prestador.infraestrutura_id')
|
||||
->leftJoin('cadastro_unidade', 'cadastro_unidade.id', 'cadastro_infraestrutura.unidade_id')
|
||||
->where('cadastro_servico_manutencao_prestador_fornecedor.id', $solicitacao->prestador_id)
|
||||
->select('cadastro_unidade.nome_fantasia as unidade_executante')
|
||||
->first();
|
||||
|
||||
return [
|
||||
'id' => $solicitacao->id,
|
||||
'codigo' => $solicitacao->codigo,
|
||||
'data_abertura' => $solicitacao->data_abertura,
|
||||
'data_finalizacao' => $solicitacao->data_finalizacao,
|
||||
'dias_abertura' => $solicitacao->dias_abertura,
|
||||
'grupo' => $solicitacao->grupo,
|
||||
'prioridade' => $solicitacao->prioridade,
|
||||
'servico' => $solicitacao->servico,
|
||||
'status' => $solicitacao->status,
|
||||
'unidade' => $solicitacao->unidade,
|
||||
'usuario_solicitante' => $solicitacao->usuario_solicitante,
|
||||
'causas_provaveis' => $causasProvaveisNomes,
|
||||
'unidade_executante' => $prestador ? $prestador->unidade_executante : '-',
|
||||
'custo' => "R$ " . number_format(Solicitacao::find($solicitacao->id)->custo, 2, ',', '.'),
|
||||
];
|
||||
});
|
||||
|
||||
return [
|
||||
'solicitacoes' => $solicitacoes,
|
||||
'total_geral' => $totalGeral,
|
||||
'solicitacoes_status' => [
|
||||
'aberto' => $abertoCount,
|
||||
'em_atendimento' => $emAtendimentoCount,
|
||||
'finalizado' => $finalizadoCount,
|
||||
'reaberto' => $reabertoCount,
|
||||
'cancelado' => $canceladoCount,
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
private static function getCausaProvavel($solicitacaoId)
|
||||
{
|
||||
$causasProvaveisIds = SolicitacaoCausaProvavel::where('solicitacao_id', $solicitacaoId)->get();
|
||||
|
||||
$causasProvaveis = [];
|
||||
|
||||
foreach ($causasProvaveisIds as $causaProvavel) {
|
||||
$causasProvaveis[] = ServicoManutencaoCausasProvaveis::find($causaProvavel->causa_provavel_id);
|
||||
}
|
||||
|
||||
return $causasProvaveis;
|
||||
}
|
||||
|
||||
public static function create()
|
||||
{
|
||||
return [
|
||||
'additionals' => [
|
||||
'data_atual' => Carbon::today()->format('d/m/Y'),
|
||||
],
|
||||
'form' => [
|
||||
'grupos' => self::getGrupos(),
|
||||
'infraestruturas' => self::getInfraestruturas(),
|
||||
'prioridades' => self::getPrioridade(),
|
||||
'servicos' => self::getServicos(),
|
||||
'status' => self::getStatus(),
|
||||
'subgrupos' => self::getSubgrupos(),
|
||||
'unidades' => self::getUnidades(),
|
||||
|
||||
],
|
||||
'model' => [
|
||||
'grupos_id' => null,
|
||||
'infraestruturas_id' => null,
|
||||
'periodo' => ['start' => null, 'end' => null],
|
||||
'prioridades_id' => null,
|
||||
'servicos_id' => null,
|
||||
'status_id' => null,
|
||||
'subgrupos_id' => null,
|
||||
'unidades_id' => null,
|
||||
'usuario_id' => null,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public static function list()
|
||||
{
|
||||
switch (request()->listar) {
|
||||
case 'unidades': {
|
||||
return ['unidades' => self::getUnidades()];
|
||||
}
|
||||
case 'infraestruturas': {
|
||||
return ['infraestruturas' => self::getInfraestruturas()];
|
||||
}
|
||||
case 'grupos': {
|
||||
return ['grupos' => self::getGrupos()];
|
||||
}
|
||||
case 'subgrupos': {
|
||||
return ['subgrupos' => self::getSubgrupos()];
|
||||
}
|
||||
case 'servicos': {
|
||||
return ['servicos' => self::getServicos()];
|
||||
}
|
||||
case 'status': {
|
||||
return ['status' => self::getStatus()];
|
||||
}
|
||||
case 'prioridades': {
|
||||
return ['prioridades' => self::getPrioridade()];
|
||||
}
|
||||
default: {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static function getQueryParams($query)
|
||||
{
|
||||
$params = request()->all();
|
||||
|
||||
if (isset($params['usuario_solicitante_id']) && !empty($params['usuario_solicitante_id'])) {
|
||||
$query->where('solicitacao.usuario_solicitante_id', $params['usuario_solicitante_id'] ?? $params['usuario_solicitante_id']['id']);
|
||||
}
|
||||
|
||||
if (isset($params['servicos_id']) && is_array($params['servicos_id'])) {
|
||||
$query->whereIn('solicitacao.servico_id', $params['servicos_id']);
|
||||
}
|
||||
|
||||
if (isset($params['unidades_solicitantes_id']) && is_array($params['unidades_solicitantes_id'])) {
|
||||
$query->whereIn('infraestrutura.unidade_id', $params['unidades_solicitantes_id']);
|
||||
}
|
||||
|
||||
if (isset($params['infraestruturas_id']) && is_array($params['infraestruturas_id'])) {
|
||||
$query->whereIn('solicitacao.infraestrutura_solicitante_id', $params['infraestruturas_id']);
|
||||
}
|
||||
|
||||
if (isset($params['grupos_id']) && is_array($params['grupos_id'])) {
|
||||
$query->whereIn('servico.grupo_id', $params['grupos_id']);
|
||||
}
|
||||
|
||||
if (isset($params['subgrupos_id']) && is_array($params['subgrupos_id'])) {
|
||||
$query->whereIn('solicitacao.subgrupo_id', $params['subgrupos_id']);
|
||||
}
|
||||
|
||||
if (isset($params['status_id']) && is_array($params['status_id'])) {
|
||||
|
||||
$query->whereIn('solicitacao.status_id', $params['status_id']);
|
||||
}
|
||||
|
||||
if (isset($params['prioridade_id']) && is_array($params['prioridade_id'])) {
|
||||
$query->whereIn('servico.prioridade_id', $params['prioridade_id']);
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
public static function autocompleteUsuarioSolicitante()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$usuarios = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_usuario as usuario', 'usuario.id', 'solicitacao.usuario_solicitante_id')
|
||||
->join('cadastro_cidadao as cidadao', 'cidadao.id', 'usuario.cidadao_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->distinct()
|
||||
->selectRaw('
|
||||
usuario.id as id,
|
||||
cidadao.nome as nome_usuario_solicitante
|
||||
');
|
||||
|
||||
return $usuarios;
|
||||
}
|
||||
|
||||
private static function getPeriodo()
|
||||
{
|
||||
$periodo = request()->get('periodo') ?? null;
|
||||
|
||||
if ($periodo && $periodo['start'] && $periodo['end']) {
|
||||
|
||||
$dataInicial = Carbon::createFromFormat('d/m/Y', $periodo['start'])->startOfDay();
|
||||
$dataFinal = Carbon::createFromFormat('d/m/Y', $periodo['end'])->endOfDay();
|
||||
} else {
|
||||
|
||||
$dataInicial = Carbon::today()->startOfDay();
|
||||
$dataFinal = Carbon::today()->endOfDay();
|
||||
}
|
||||
|
||||
return [
|
||||
'data_inicial' => $dataInicial,
|
||||
'data_final' => $dataFinal,
|
||||
];
|
||||
}
|
||||
|
||||
private static function getUnidades()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$unidades = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->join('cadastro_unidade as unidade', 'unidade.id', 'infraestrutura.unidade_id')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->selectRaw('
|
||||
unidade.id as id,
|
||||
unidade.nome_fantasia as nome_fantasia
|
||||
');
|
||||
|
||||
$unidades = self::getQueryParams($unidades);
|
||||
|
||||
$unidades = $unidades
|
||||
->distinct()
|
||||
->get()
|
||||
->toArray();
|
||||
|
||||
$form = array_map(function ($unidade) {
|
||||
return [
|
||||
'id' => $unidade->id,
|
||||
'nome_fantasia' => $unidade->nome_fantasia,
|
||||
];
|
||||
}, $unidades);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
private static function getInfraestruturas()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$infraestruturas = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->join('cadastro_unidade as unidade', 'unidade.id', 'infraestrutura.unidade_id')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->selectRaw('
|
||||
infraestrutura.id as id,
|
||||
COALESCE(infraestrutura.nome, unidade.nome_fantasia) as nome
|
||||
');
|
||||
|
||||
$infraestruturas = self::getQueryParams($infraestruturas);
|
||||
|
||||
$infraestruturas = $infraestruturas
|
||||
->distinct()
|
||||
->get()
|
||||
->toArray();
|
||||
|
||||
$form = array_map(function ($infraestrutura) {
|
||||
return [
|
||||
'id' => $infraestrutura->id,
|
||||
'nome' => $infraestrutura->nome,
|
||||
];
|
||||
}, $infraestruturas);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
private static function getGrupos()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$grupos = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->join('cadastro_grupo as grupo', 'grupo.id', 'servico.grupo_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->selectRaw('
|
||||
grupo.id as id,
|
||||
grupo.nome as nome
|
||||
');
|
||||
|
||||
$grupos = self::getQueryParams($grupos);
|
||||
|
||||
$grupos = $grupos
|
||||
->distinct()
|
||||
->get()
|
||||
->toArray();
|
||||
|
||||
$form = array_map(function ($grupo) {
|
||||
return [
|
||||
'id' => $grupo->id,
|
||||
'nome' => $grupo->nome,
|
||||
];
|
||||
}, $grupos);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
private static function getSubgrupos()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$subgrupos = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_subgrupo as subgrupo', 'subgrupo.id', 'solicitacao.subgrupo_id')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->selectRaw('
|
||||
subgrupo.id as id,
|
||||
subgrupo.nome as nome
|
||||
');
|
||||
|
||||
$subgrupos = self::getQueryParams($subgrupos);
|
||||
|
||||
$subgrupos = $subgrupos
|
||||
->distinct()
|
||||
->get()
|
||||
->toArray();
|
||||
|
||||
$form = array_map(function ($subgrupo) {
|
||||
return [
|
||||
'id' => $subgrupo->id,
|
||||
'nome' => $subgrupo->nome,
|
||||
];
|
||||
}, $subgrupos);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
private static function getServicos()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$servicos = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->selectRaw('
|
||||
servico.id as id,
|
||||
servico.nome as nome
|
||||
');
|
||||
|
||||
$servicos = self::getQueryParams($servicos);
|
||||
|
||||
$servicos = $servicos
|
||||
->distinct()
|
||||
->get()
|
||||
->toArray();
|
||||
|
||||
$form = array_map(function ($servico) {
|
||||
return [
|
||||
'id' => $servico->id,
|
||||
'nome' => $servico->nome,
|
||||
];
|
||||
}, $servicos);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
private static function getStatus()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$status = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('manutencao_parametrizacao_status', 'manutencao_parametrizacao_status.id', 'solicitacao.status_id')
|
||||
->join('manutencao_status_tipo as status', 'status.id', 'manutencao_parametrizacao_status.tipo_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->selectRaw('
|
||||
manutencao_parametrizacao_status.id as id,
|
||||
manutencao_parametrizacao_status.nome as nome
|
||||
');
|
||||
|
||||
$status = self::getQueryParams($status);
|
||||
|
||||
$status = $status
|
||||
->distinct()
|
||||
->get()
|
||||
->toArray();
|
||||
|
||||
$form = array_map(function ($status) {
|
||||
return [
|
||||
'id' => $status->id,
|
||||
'nome' => $status->nome,
|
||||
];
|
||||
}, $status);
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
private static function getPrioridade()
|
||||
{
|
||||
$periodo = self::getPeriodo();
|
||||
|
||||
$prioridades = DB::table('manutencao_solicitacao as solicitacao')
|
||||
->join('cadastro_servico_manutencao as servico', 'servico.id', 'solicitacao.servico_id')
|
||||
->join('manutencao_prioridade_tipo as prioridade', 'prioridade.id', 'servico.prioridade_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'solicitacao.infraestrutura_solicitante_id')
|
||||
->where('solicitacao.created_at', '>=', $periodo['data_inicial'])
|
||||
->where('solicitacao.created_at', '<=', $periodo['data_final'])
|
||||
->selectRaw('
|
||||
prioridade.id as id,
|
||||
prioridade.nome as nome
|
||||
');
|
||||
|
||||
$prioridades = self::getQueryParams($prioridades);
|
||||
|
||||
$prioridades = $prioridades
|
||||
->distinct()
|
||||
->get()
|
||||
->toArray();
|
||||
|
||||
$form = array_map(function ($prioridade) {
|
||||
return [
|
||||
'id' => $prioridade->id,
|
||||
'nome' => $prioridade->nome,
|
||||
];
|
||||
}, $prioridades);
|
||||
|
||||
return $form;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user