60 lines
3.1 KiB
PHP
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()
|
|
;
|
|
}
|
|
}
|