Files
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

60 lines
3.1 KiB
PHP

<?php
namespace App\Services\TransportePaciente\Agendar;
use App\Models\TransportePaciente\Agendar\Historico;
use App\Services\Service;
use Illuminate\Support\Facades\DB;
class HistoricoService extends Service
{
public static function create($transporte, $status, $ultimaLotacao){
return Historico::create([
'transporte_paciente_agendar_transporte_id' => $transporte->id,
'data_saida' => $transporte->data_saida,
'horario_saida' => $transporte->horario_saida,
'destino_id' => $transporte->destino_id,
'veiculo_id' => $transporte->veiculo_id,
'acompanhante' => $transporte->acompanhante,
'motivo_id' => $transporte->motivo_id,
'status_id' => $status,
'lotacao_anterior_id' => $ultimaLotacao,
]);
}
public static function show($id)
{
return DB::table('transporte_paciente_agendar_transporte_historico as historico')
->select(
'historico.id',
'cidadaoCadastro.nome as usuario_cadastro',
'cidadaoEdicao.nome as usuario_edicao',
'transporte_paciente_destino.descricao_destino as destino',
'historico.acompanhante as acompanhantes',
'transporte_paciente_motivo_viagem_procedimento.descricao as motivo',
'transporte_paciente_status.descricao as status',
DB::raw('CONCAT(DATE_FORMAT(historico.created_at, "%d/%m/%Y %H:%i")) as data_hora_modificacao'),
DB::raw('CONCAT(transporte_paciente_veiculo.descricao_modelo, " / ", transporte_paciente_veiculo.numero_placa) as veiculo'),
DB::raw('CONCAT(DATE_FORMAT(historico.data_saida, "%d/%m/%Y"), " ", DATE_FORMAT(historico.horario_saida, "%H:%i")) as dataHoraSaida'),
)
->where('transporte_paciente_agendar_transporte_id', $id)
->join('cadastro_lotacao as lotacaoUsuarioCadastro', 'lotacaoUsuarioCadastro.id', 'historico.lotacao_anterior_id')
->join('cadastro_usuario as usuarioCadastro', 'usuarioCadastro.id', 'lotacaoUsuarioCadastro.usuario_id')
->join('cadastro_cidadao as cidadaoCadastro', 'cidadaoCadastro.id', 'usuarioCadastro.cidadao_id')
->join('cadastro_lotacao as lotacaoUsuarioEdicao', 'lotacaoUsuarioEdicao.id', 'historico.updated_lotacao_id')
->join('cadastro_usuario as usuarioEdicao', 'usuarioEdicao.id', 'lotacaoUsuarioEdicao.usuario_id')
->join('cadastro_cidadao as cidadaoEdicao', 'cidadaoEdicao.id', 'usuarioEdicao.cidadao_id')
->leftJoin('transporte_paciente_destino', 'transporte_paciente_destino.id', 'historico.destino_id')
->leftJoin('transporte_paciente_veiculo', 'transporte_paciente_veiculo.id', 'historico.veiculo_id')
->join('transporte_paciente_motivo_viagem_procedimento', 'transporte_paciente_motivo_viagem_procedimento.id', 'historico.motivo_id')
->join('transporte_paciente_status', 'transporte_paciente_status.id', 'historico.status_id')
->latest('historico.created_at')
->get()
;
}
}