This commit is contained in:
521
api/app/Services/Ambulatorio/RelatorioJornadaService.php
Normal file
521
api/app/Services/Ambulatorio/RelatorioJornadaService.php
Normal file
@@ -0,0 +1,521 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Ambulatorio;
|
||||
|
||||
use App\Enums\Ambulatorio\AgendamentoStatus;
|
||||
use App\Enums\Ambulatorio\AgendamentoTipo;
|
||||
use App\Services\Service;
|
||||
use App\Utils\DataUtil;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class RelatorioJornadaService extends Service
|
||||
{
|
||||
public static function index()
|
||||
{
|
||||
$totalizadores = (object) [
|
||||
'quantidade_consulta' => (object) ['agendado' => 0, 'total' => 0],
|
||||
'quantidade_retorno' => (object) ['agendado' => 0, 'total' => 0],
|
||||
'quantidade_total' => (object) ['agendado' => 0, 'total' => 0],
|
||||
];
|
||||
|
||||
$periodo = [
|
||||
'start' => Carbon::createFromFormat('d/m/Y', request()->periodo['start'])->startOfDay(),
|
||||
'end' => Carbon::createFromFormat('d/m/Y', request()->periodo['end'])->endOfDay(),
|
||||
];
|
||||
|
||||
$status = DataUtil::isStringBoolean(request()->status)
|
||||
? DataUtil::getBooleanValueFromStringBoolean(request()->status)
|
||||
: null;
|
||||
|
||||
$jornadas = DB::table('ambulatorio_jornada as jornada')
|
||||
->join('cadastro_lotacao as lotacao', 'lotacao.id', 'jornada.lotacao_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'lotacao.infraestrutura_id')
|
||||
->join('cadastro_unidade as unidade', 'unidade.id', 'infraestrutura.unidade_id')
|
||||
->join('sigtap.ocupacao as ocupacao', 'ocupacao.id', 'lotacao.ocupacao_id')
|
||||
->join('cadastro_usuario as usuario', 'usuario.id', 'lotacao.usuario_id')
|
||||
->join('cadastro_cidadao as cidadao', 'cidadao.id', 'usuario.cidadao_id')
|
||||
->join('cadastro_especialidade as especialidade', 'especialidade.id', 'jornada.especialidade_id')
|
||||
->leftJoin('ambulatorio_jornada_situacao as situacao', 'situacao.id', 'jornada.situacao_id')
|
||||
->whereBetween('jornada.data', $periodo)
|
||||
->when(request()->unidade_id, fn ($q, $id) => $q->where('infraestrutura.unidade_id', $id))
|
||||
->when(request()->infraestrutura_id, fn ($q, $id) => $q->where('lotacao.infraestrutura_id', $id))
|
||||
->when($status, fn ($q) => $q->whereNull('jornada.situacao_id'))
|
||||
->when($status === false, fn ($q) => $q->whereNotNull('jornada.situacao_id'))
|
||||
->when(request()->situacao_id, fn ($q, $id) => $q->where('jornada.situacao_id', $id))
|
||||
->when(request()->ocupacao_id, fn ($q, $id) => $q->where('lotacao.ocupacao_id', $id))
|
||||
->when(request()->especialidade_id, fn ($q, $id) => $q->where('jornada.especialidade_id', $id))
|
||||
->when(request()->usuario_id, fn ($q, $id) => $q->where('lotacao.usuario_id', $id))
|
||||
->selectRaw("
|
||||
jornada.data,
|
||||
unidade.nome_fantasia as unidade_nome_fantasia,
|
||||
COALESCE(infraestrutura.nome, unidade.nome_fantasia) as infraestrutura_nome,
|
||||
ocupacao.codigo as ocupacao_codigo,
|
||||
especialidade.nome as especialidade_nome,
|
||||
cidadao.nome as usuario_nome,
|
||||
DATE_FORMAT(jornada.inicio, '%H:%i') as inicio,
|
||||
DATE_FORMAT(jornada.fim, '%H:%i') as fim,
|
||||
IF(jornada.situacao_id IS NULL, 'ATIVO', 'INATIVO') as status,
|
||||
situacao.nome as situacao_nome,
|
||||
COALESCE(jornada.quantidade_consulta, 0) as quantidade_consulta_total,
|
||||
COALESCE(jornada.quantidade_retorno, 0) as quantidade_retorno_total
|
||||
")
|
||||
->addSelect([
|
||||
'quantidade_consulta_agendado' => function ($query) {
|
||||
|
||||
$query->selectRaw('COUNT(*)')
|
||||
->from('ambulatorio_agendamento as agendamento')
|
||||
->whereColumn('agendamento.jornada_id', 'jornada.id')
|
||||
->where('agendamento.tipo_id', AgendamentoTipo::CONSULTA)
|
||||
->whereNotIn('agendamento.status_id', self::getStatusLiberamHorario());
|
||||
},
|
||||
'quantidade_retorno_agendado' => function ($query) {
|
||||
|
||||
$query->selectRaw('COUNT(*)')
|
||||
->from('ambulatorio_agendamento as agendamento')
|
||||
->whereColumn('agendamento.jornada_id', 'jornada.id')
|
||||
->where('agendamento.tipo_id', AgendamentoTipo::RETORNO)
|
||||
->whereNotIn('agendamento.status_id', self::getStatusLiberamHorario());
|
||||
},
|
||||
])
|
||||
->get();
|
||||
|
||||
$jornadas->each(function ($jornada) use ($totalizadores) {
|
||||
|
||||
$jornada->dia_semana = Str::ucfirst((new Carbon($jornada->data))->translatedFormat('l'));
|
||||
|
||||
$jornada->quantidade_total_agendado = $jornada->quantidade_consulta_agendado
|
||||
+ $jornada->quantidade_retorno_agendado;
|
||||
|
||||
$jornada->quantidade_total_total = $jornada->quantidade_consulta_total
|
||||
+ $jornada->quantidade_retorno_total;
|
||||
|
||||
$totalizadores->quantidade_consulta->agendado += $jornada->quantidade_consulta_agendado;
|
||||
$totalizadores->quantidade_consulta->total += $jornada->quantidade_consulta_total;
|
||||
|
||||
$totalizadores->quantidade_retorno->agendado += $jornada->quantidade_retorno_agendado;
|
||||
$totalizadores->quantidade_retorno->total += $jornada->quantidade_retorno_total;
|
||||
|
||||
$totalizadores->quantidade_total->agendado += $jornada->quantidade_total_agendado;
|
||||
$totalizadores->quantidade_total->total += $jornada->quantidade_total_total;
|
||||
});
|
||||
|
||||
return compact('jornadas', 'totalizadores');
|
||||
}
|
||||
|
||||
private static function getStatusLiberamHorario()
|
||||
{
|
||||
return [
|
||||
AgendamentoStatus::REAGENDADO_PELO_PACIENTE,
|
||||
AgendamentoStatus::REAGENDADO_PELO_MEDICO,
|
||||
AgendamentoStatus::CANCELADO_PELO_PACIENTE,
|
||||
AgendamentoStatus::CANCELADO_PELO_MEDICO,
|
||||
];
|
||||
}
|
||||
|
||||
public static function list()
|
||||
{
|
||||
$data = (object) [
|
||||
'additionals' => [],
|
||||
'form' => [],
|
||||
'model' => [],
|
||||
];
|
||||
|
||||
$params = self::getParams();
|
||||
|
||||
$sets = [
|
||||
'periodo' => function () use ($data) {
|
||||
|
||||
$data->model['periodo'] = ['start' => null, 'end' => null];
|
||||
},
|
||||
'unidade' => function () use ($data, $params) {
|
||||
|
||||
$unidadesData = self::getUnidadesData($params);
|
||||
|
||||
$data->form['unidades'] = $unidadesData['form'];
|
||||
$data->model['unidade_id'] = $unidadesData['model'];
|
||||
},
|
||||
'infraestrutura' => function () use ($data, $params) {
|
||||
|
||||
$infraestruturasData = self::getInfraestruturasData($params);
|
||||
|
||||
$data->form['infraestruturas'] = $infraestruturasData['form'];
|
||||
$data->model['infraestrutura_id'] = $infraestruturasData['model'];
|
||||
},
|
||||
'status' => function () use ($data, $params) {
|
||||
|
||||
$statusData = self::getStatusData($params);
|
||||
|
||||
$data->form['status'] = $statusData['form'];
|
||||
$data->model['status'] = $statusData['model'];
|
||||
},
|
||||
'situacao' => function () use ($data, $params) {
|
||||
|
||||
$situacoesData = self::getSituacoesData($params);
|
||||
|
||||
$data->form['situacoes'] = $situacoesData['form'];
|
||||
$data->model['situacao_id'] = $situacoesData['model'];
|
||||
},
|
||||
'ocupacao' => function () use ($data, $params) {
|
||||
|
||||
$ocupacoesData = self::getOcupacoesData($params);
|
||||
|
||||
$data->form['ocupacoes'] = $ocupacoesData['form'];
|
||||
$data->model['ocupacao_id'] = $ocupacoesData['model'];
|
||||
},
|
||||
'especialidade' => function () use ($data, $params) {
|
||||
|
||||
$especialidadesData = self::getEspecialidadesData($params);
|
||||
|
||||
$data->form['especialidades'] = $especialidadesData['form'];
|
||||
$data->model['especialidade_id'] = $especialidadesData['model'];
|
||||
},
|
||||
'usuario' => function () use ($data, $params) {
|
||||
|
||||
$usuariosData = self::getUsuariosData($params);
|
||||
|
||||
$data->form['usuarios'] = $usuariosData['form'];
|
||||
$data->model['usuario_id'] = $usuariosData['model'];
|
||||
},
|
||||
];
|
||||
|
||||
$load = is_null(request()->load_from);
|
||||
|
||||
if ($load) {
|
||||
|
||||
$data->additionals = [];
|
||||
}
|
||||
|
||||
foreach ($sets as $field => $set) {
|
||||
|
||||
if ($load) {
|
||||
|
||||
$set();
|
||||
}
|
||||
else if ($field === request()->load_from) {
|
||||
|
||||
$load = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data as $property => $itens) {
|
||||
|
||||
if (empty($itens)) {
|
||||
|
||||
unset($data->{$property});
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
private static function getParams()
|
||||
{
|
||||
$params = request()->only([
|
||||
'periodo',
|
||||
'unidade_id',
|
||||
'infraestrutura_id',
|
||||
'status',
|
||||
'situacao_id',
|
||||
'ocupacao_id',
|
||||
'especialidade_id',
|
||||
'usuario_id',
|
||||
]);
|
||||
|
||||
if (isset($params['periodo'])
|
||||
&& !is_null($params['periodo']['start'])
|
||||
&& !is_null($params['periodo']['end'])
|
||||
) {
|
||||
|
||||
$start = Carbon::createFromFormat('d/m/Y', $params['periodo']['start'])->startOfDay();
|
||||
$end = Carbon::createFromFormat('d/m/Y', $params['periodo']['end'])->endOfDay();
|
||||
|
||||
$params['periodo']['start'] = $start;
|
||||
$params['periodo']['end'] = $end;
|
||||
}
|
||||
else {
|
||||
|
||||
$params['periodo'] = null;
|
||||
}
|
||||
|
||||
if (isset($params['status']) && DataUtil::isStringBoolean($params['status'])) {
|
||||
|
||||
$params['status'] = DataUtil::getBooleanValueFromStringBoolean($params['status']);
|
||||
}
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
||||
private static function getUnidadesData($params)
|
||||
{
|
||||
$unidades = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params['periodo'])) {
|
||||
|
||||
$unidades = DB::table('cadastro_unidade as unidade')
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('cadastro_infraestrutura as infraestrutura')
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('cadastro_lotacao as lotacao')
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('ambulatorio_jornada as jornada')
|
||||
->whereColumn('jornada.lotacao_id', 'lotacao.id')
|
||||
->whereBetween('jornada.data', $params['periodo'])
|
||||
)
|
||||
->whereColumn('lotacao.infraestrutura_id', 'infraestrutura.id')
|
||||
->whereNull('lotacao.deleted_at')
|
||||
)
|
||||
->whereColumn('infraestrutura.unidade_id', 'unidade.id')
|
||||
->whereNull('infraestrutura.deleted_at')
|
||||
)
|
||||
->whereNull('unidade.deleted_at')
|
||||
->orderBy('unidade.nome_fantasia')
|
||||
->selectRaw("
|
||||
unidade.id,
|
||||
unidade.nome_fantasia
|
||||
")
|
||||
->get();
|
||||
}
|
||||
|
||||
return ['form' => $unidades, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function getInfraestruturasData($params)
|
||||
{
|
||||
$infraestruturas = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params['periodo']) && !is_null($params['unidade_id'])) {
|
||||
|
||||
$infraestruturas = DB::table('cadastro_infraestrutura as infraestrutura')
|
||||
->join('cadastro_unidade as unidade', 'unidade.id', 'infraestrutura.unidade_id')
|
||||
->where('infraestrutura.unidade_id', $params['unidade_id'])
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('cadastro_lotacao as lotacao')
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('ambulatorio_jornada as jornada')
|
||||
->whereColumn('jornada.lotacao_id', 'lotacao.id')
|
||||
->whereBetween('jornada.data', $params['periodo'])
|
||||
)
|
||||
->whereColumn('lotacao.infraestrutura_id', 'infraestrutura.id')
|
||||
->whereNull('lotacao.deleted_at')
|
||||
)
|
||||
->whereNull('infraestrutura.deleted_at')
|
||||
->whereNull('unidade.deleted_at')
|
||||
->orderByRaw("COALESCE(infraestrutura.nome, unidade.nome_fantasia)")
|
||||
->selectRaw("
|
||||
infraestrutura.id,
|
||||
COALESCE(infraestrutura.nome, unidade.nome_fantasia) as nome
|
||||
")
|
||||
->get();
|
||||
}
|
||||
|
||||
return ['form' => $infraestruturas, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function getStatusData($params)
|
||||
{
|
||||
$status = collect();
|
||||
$ativo = null;
|
||||
|
||||
if (!is_null($params['periodo'])) {
|
||||
|
||||
$hasJornada = function ($ativo) use ($params) {
|
||||
|
||||
return DB::table('ambulatorio_jornada as jornada')
|
||||
->join('cadastro_lotacao as lotacao', 'lotacao.id', 'jornada.lotacao_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'lotacao.infraestrutura_id')
|
||||
->whereBetween('jornada.data', $params['periodo'])
|
||||
->when($params['unidade_id'], fn ($q, $id) => $q->where('infraestrutura.unidade_id', $id))
|
||||
->when($params['infraestrutura_id'], fn ($q, $id) => $q->where('lotacao.infraestrutura_id', $id))
|
||||
->when($ativo,
|
||||
fn ($q) => $q->whereNull('jornada.situacao_id'),
|
||||
fn ($q) => $q->whereNotNull('jornada.situacao_id')
|
||||
)
|
||||
->whereNull('lotacao.deleted_at')
|
||||
->whereNull('infraestrutura.deleted_at')
|
||||
->exists();
|
||||
};
|
||||
|
||||
if ($hasJornada(true)) {
|
||||
|
||||
$status->push(self::getStatus(true));
|
||||
}
|
||||
|
||||
if ($hasJornada(false)) {
|
||||
|
||||
$status->push(self::getStatus(false));
|
||||
}
|
||||
}
|
||||
|
||||
return ['form' => $status, 'model' => $ativo];
|
||||
}
|
||||
|
||||
public static function getStatus($ativo)
|
||||
{
|
||||
if ($ativo === null) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
return collect([
|
||||
(object) ['value' => true, 'text' => 'ATIVO'],
|
||||
(object) ['value' => false, 'text' => 'INATIVO'],
|
||||
])->where('value', $ativo)->first();
|
||||
}
|
||||
|
||||
private static function getSituacoesData($params)
|
||||
{
|
||||
$situacoes = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params['periodo']) && $params['status'] === false) {
|
||||
|
||||
$situacoes = DB::table('ambulatorio_jornada_situacao as situacao')
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('ambulatorio_jornada as jornada')
|
||||
->join('cadastro_lotacao as lotacao', 'lotacao.id', 'jornada.lotacao_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'lotacao.infraestrutura_id')
|
||||
->whereColumn('jornada.situacao_id', 'situacao.id')
|
||||
->whereBetween('jornada.data', $params['periodo'])
|
||||
->when($params['unidade_id'], fn ($q, $id) => $q->where('infraestrutura.unidade_id', $id))
|
||||
->when($params['infraestrutura_id'], fn ($q, $id) => $q->where('lotacao.infraestrutura_id', $id))
|
||||
->whereNull('lotacao.deleted_at')
|
||||
->whereNull('infraestrutura.deleted_at')
|
||||
)
|
||||
->orderBy('situacao.nome')
|
||||
->selectRaw("
|
||||
situacao.id,
|
||||
situacao.nome
|
||||
")
|
||||
->get();
|
||||
}
|
||||
|
||||
return ['form' => $situacoes, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function getOcupacoesData($params)
|
||||
{
|
||||
$ocupacoes = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params['periodo'])) {
|
||||
|
||||
$ocupacoes = DB::table('sigtap.ocupacao as ocupacao')
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('cadastro_lotacao as lotacao')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'lotacao.infraestrutura_id')
|
||||
->when($params['unidade_id'], fn ($q, $id) => $q->where('infraestrutura.unidade_id', $id))
|
||||
->when($params['infraestrutura_id'], fn ($q, $id) => $q->where('lotacao.infraestrutura_id', $id))
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('ambulatorio_jornada as jornada')
|
||||
->whereColumn('jornada.lotacao_id', 'lotacao.id')
|
||||
->whereBetween('jornada.data', $params['periodo'])
|
||||
->when($params['status'], fn ($q) => $q->whereNull('jornada.situacao_id'))
|
||||
->when($params['status'] === false, fn ($q) => $q->whereNotNull('jornada.situacao_id'))
|
||||
->when($params['situacao_id'], fn ($q, $id) => $q->where('jornada.situacao_id', $id))
|
||||
)
|
||||
->whereColumn('lotacao.ocupacao_id', 'ocupacao.id')
|
||||
->whereNull('lotacao.deleted_at')
|
||||
->whereNull('infraestrutura.deleted_at')
|
||||
)
|
||||
->orderByRaw("CONCAT(ocupacao.codigo, ' - ', ocupacao.nome)")
|
||||
->selectRaw("
|
||||
ocupacao.id,
|
||||
CONCAT(ocupacao.codigo, ' - ', ocupacao.nome) as descricao
|
||||
")
|
||||
->get();
|
||||
}
|
||||
|
||||
return ['form' => $ocupacoes, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function getEspecialidadesData($params)
|
||||
{
|
||||
$especialidades = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params['periodo']) && !is_null($params['ocupacao_id'])) {
|
||||
|
||||
$especialidades = DB::table('cadastro_especialidade as especialidade')
|
||||
->where('especialidade.ocupacao_id', $params['ocupacao_id'])
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('ambulatorio_jornada as jornada')
|
||||
->join('cadastro_lotacao as lotacao', 'lotacao.id', 'jornada.lotacao_id')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'lotacao.infraestrutura_id')
|
||||
->whereColumn('jornada.especialidade_id', 'especialidade.id')
|
||||
->whereBetween('jornada.data', $params['periodo'])
|
||||
->when($params['unidade_id'], fn ($q, $id) => $q->where('infraestrutura.unidade_id', $id))
|
||||
->when($params['infraestrutura_id'], fn ($q, $id) => $q->where('lotacao.infraestrutura_id', $id))
|
||||
->when($params['status'], fn ($q) => $q->whereNull('jornada.situacao_id'))
|
||||
->when($params['status'] === false, fn ($q) => $q->whereNotNull('jornada.situacao_id'))
|
||||
->when($params['situacao_id'], fn ($q, $id) => $q->where('jornada.situacao_id', $id))
|
||||
->when($params['ocupacao_id'], fn ($q, $id) => $q->where('lotacao.ocupacao_id', $id))
|
||||
->whereNull('lotacao.deleted_at')
|
||||
->whereNull('infraestrutura.deleted_at')
|
||||
)
|
||||
->orderBy('especialidade.nome')
|
||||
->selectRaw("
|
||||
especialidade.id,
|
||||
especialidade.nome
|
||||
")
|
||||
->get();
|
||||
}
|
||||
|
||||
return ['form' => $especialidades, 'model' => $id];
|
||||
}
|
||||
|
||||
private static function getUsuariosData($params)
|
||||
{
|
||||
$usuarios = collect();
|
||||
$id = null;
|
||||
|
||||
if (!is_null($params['periodo'])) {
|
||||
|
||||
$usuarios = DB::table('cadastro_usuario as usuario')
|
||||
->join('cadastro_cidadao as cidadao', 'cidadao.id', 'usuario.cidadao_id')
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('cadastro_lotacao as lotacao')
|
||||
->join('cadastro_infraestrutura as infraestrutura', 'infraestrutura.id', 'lotacao.infraestrutura_id')
|
||||
->when($params['unidade_id'], fn ($q, $id) => $q->where('infraestrutura.unidade_id', $id))
|
||||
->when($params['infraestrutura_id'], fn ($q, $id) => $q->where('lotacao.infraestrutura_id', $id))
|
||||
->when($params['ocupacao_id'], fn ($q, $id) => $q->where('lotacao.ocupacao_id', $id))
|
||||
->whereExists(fn ($q) => $q
|
||||
->selectRaw(1)
|
||||
->from('ambulatorio_jornada as jornada')
|
||||
->whereColumn('jornada.lotacao_id', 'lotacao.id')
|
||||
->whereBetween('jornada.data', $params['periodo'])
|
||||
->when($params['status'], fn ($q) => $q->whereNull('jornada.situacao_id'))
|
||||
->when($params['status'] === false, fn ($q) => $q->whereNotNull('jornada.situacao_id'))
|
||||
->when($params['situacao_id'], fn ($q, $id) => $q->where('jornada.situacao_id', $id))
|
||||
->when($params['especialidade_id'], fn ($q, $id) => $q->where('jornada.especialidade_id', $id))
|
||||
)
|
||||
->whereColumn('lotacao.usuario_id', 'usuario.id')
|
||||
->whereNull('lotacao.deleted_at')
|
||||
->whereNull('infraestrutura.deleted_at')
|
||||
)
|
||||
->whereNull('usuario.deleted_at')
|
||||
->whereNull('cidadao.deleted_at')
|
||||
->orderBy('cidadao.nome')
|
||||
->selectRaw("
|
||||
usuario.id,
|
||||
cidadao.nome
|
||||
")
|
||||
->get();
|
||||
}
|
||||
|
||||
return ['form' => $usuarios, 'model' => $id];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user