Skip to content

Commit

Permalink
Agenda para profissionais e selecao posto x profissional
Browse files Browse the repository at this point in the history
  • Loading branch information
leonardovilarinho committed Aug 26, 2017
1 parent fc23593 commit d2f9045
Show file tree
Hide file tree
Showing 30 changed files with 304 additions and 134 deletions.
39 changes: 39 additions & 0 deletions src/app/Http/Controllers/CabecalhoController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Model\Usuario;
use App\Model\Cabecalho;
use App\Model\PermissaoPosto;
use App\Http\Requests\CabecalhoRequest;
use Illuminate\Support\Facades\Storage;

Expand Down Expand Up @@ -86,4 +88,41 @@ public function editar(CabecalhoRequest $requisicao, $id)

return redirect('postos/gerenciar/'.$id)->withMsg($posto->nome . ' foi editado!');
}

public function usuarios($id)
{
$posto = Cabecalho::find($id);
$usuarios = Usuario::all();
foreach ($usuarios as $ch => $usuario) {
if(!$usuario->medico and !$usuario->nao_medico)
unset($usuarios[$ch]);
}

$uposto = [];
foreach ($posto->usuarios as $usuario) {
$uposto[] = $usuario->usuario_id;
}

return view('postos.usuarios', compact('posto', 'usuarios', 'uposto'));
}

public function trocarUsuarios(Request $request, $id)
{
$usuarios = PermissaoPosto::where('cabecalho_id', $id)->get();
foreach ($usuarios as $user) {
$user->delete();
}

if($request->has('usuarios')) {
foreach ($request->usuarios as $user) {
PermissaoPosto::create([
'cabecalho_id' => $id,
'usuario_id' => $user
]);
}
}


return redirect('postos/usuarios/'.$id)->withMsg('Usuários salvos!');
}
}
14 changes: 9 additions & 5 deletions src/app/Http/Controllers/CargaHorariaController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,16 @@ class CargaHorariaController extends Controller
{
public function salvar(CargaHorariaRequest $requisicao)
{
if(!auth()->user()->medico->carga_horaria)
auth()->user()->medico->carga_horaria = new CargaHoraria;
$usuario = auth()->user()->nao_medico;
if(auth()->user()->medico)
$usuario = auth()->user()->medico;

if(!$usuario->carga_horaria)
$usuario->carga_horaria = new CargaHoraria;

$usuario->carga_horaria->fill( $requisicao->all() );
$usuario->carga_horaria->save();

auth()->user()->medico->carga_horaria->fill( $requisicao->all() );
auth()->user()->medico->carga_horaria->save();

return redirect('medicos/config')->withMsg('Carga horária foi salva!');
}
}
43 changes: 24 additions & 19 deletions src/app/Http/Controllers/ConsultaController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,28 @@
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Model\{Medico, Paciente, Consulta};
use App\Model\{Medico, Paciente, Consulta, Usuario};
use App\Http\Requests\ConsultaRequest;

class ConsultaController extends Controller
{
public function data($id)
{
$medico = Medico::where('usuario_id', $id)->first();
$medico = Usuario::find($id);

if($medico->ferias)
return redirect('medicos')->withErro($medico->usuario->nome . ' está de férias!');
return redirect('medicos')->withErro($medico->nome . ' está de férias!');

return view('consulta.data', compact('medico'));
}

public function horarios($id)
{
$medico = Medico::where('usuario_id', $id)->first();
$usuario = Usuario::find($id);
$medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico;

if($medico->ferias)
return redirect('medicos')->withErro($medico->usuario->nome . ' está de férias!');
return redirect('medicos')->withErro($usuario->nome . ' está de férias!');

if(!isset($_GET['data']))
return redirect('medicos/'.$id.'/consulta/data')->withErro('Por favor, selecione uma data.');
Expand All @@ -32,7 +33,7 @@ public function horarios($id)
return redirect('medicos/'.$id.'/consulta/data')->withErro('Por favor, selecione uma data posterior ou igual a hoje.');

if(!$medico->carga_horaria)
return redirect('medicos')->withErro($medico->usuario->nome . ' não tem uma carga horária!');
return redirect('medicos')->withErro($usuario->nome . ' não tem uma carga horária!');

$inicio = new \DateTime($_GET['data'] . ' ' . $medico->carga_horaria->inicio);
$fim = new \DateTime($_GET['data'] . ' ' . $medico->carga_horaria->fim);
Expand All @@ -55,10 +56,11 @@ public function horarios($id)

public function marcar($id)
{
$medico = Medico::where('usuario_id', $id)->first();
$usuario = Usuario::find($id);
$medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico;

if($medico->ferias)
return redirect('medicos')->withErro($medico->usuario->nome . ' está de férias!');
if($usuario->ferias)
return redirect('medicos')->withErro($usuario->nome . ' está de férias!');

if(!isset($_GET['horario']))
return redirect('medicos')->withErro('Sua consulta não tinha um horário válido, recomeçe.');
Expand All @@ -80,10 +82,11 @@ public function marcar($id)

public function finalizar($id)
{
$medico = Medico::where('usuario_id', $id)->first();
$usuario = Usuario::find($id);
$medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico;

if($medico->ferias)
return redirect('medicos')->withErro($medico->usuario->nome . ' está de férias!');
return redirect('medicos')->withErro($usuario->nome . ' está de férias!');

if(!isset($_GET['horario']))
return redirect('medicos')->withErro('Sua consulta não tinha um horário válido, recomeçe.');
Expand All @@ -101,15 +104,16 @@ public function finalizar($id)

public function salvar(ConsultaRequest $requisicao, $id)
{
$medico = Medico::where('usuario_id', $id)->first();
$usuario = Usuario::find($id);
$medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico;
$paciente = Paciente::find($requisicao->paciente_id);

if(!$medico)
return redirect('medicos')->withErro('Sua consulta não tinha um médico válido, recomeçe.');

foreach ($medico->consultas as $consulta)
if($consulta->horarios == $requisicao->horario)
return redirect('medicos')->withErro($medico->usuario->nome . ' já tem consulta para esse horário!');
return redirect('medicos')->withErro($usuario->nome . ' já tem consulta para esse horário!');

if(!$paciente)
return redirect('medicos')->withErro('Sua consulta não tinha um paciente válido, recomeçe.');
Expand All @@ -125,24 +129,25 @@ public function salvar(ConsultaRequest $requisicao, $id)
return redirect('medicos')->withErro('Horário da consulta já passou');

if($medico->ferias)
return redirect('medicos')->withErro($medico->usuario->nome . ' está de férias!');
return redirect('medicos')->withErro($usuario->nome . ' está de férias!');

Consulta::create($requisicao->all());

return redirect('medicos/'.$id.'/consultas')->withMsg('Consulta marcada em '.$horario->format('d/m/Y á\s H:i') . ' para '.$medico->usuario->nome);
return redirect('medicos/'.$id.'/consultas')->withMsg('Consulta marcada em '.$horario->format('d/m/Y á\s H:i') . ' para '.$usuario->nome);
}

public function lista($id)
{
$medico = Medico::where('usuario_id', $id)->first();
$usuario = Usuario::find($id);
$medico = ($usuario->medico) ? $usuario->medico : $usuario->nao_medico;

if(!isset($_GET['q'])) {
$consultas = Consulta::where('medico_id', $id)
$consultas = Consulta::where('usuario_id', $id)
->orderBy('horario', 'desc')
->paginate( config('prontuario.paginacao') );
}
else {
$consultas = Consulta::where('medico_id', $id)
$consultas = Consulta::where('usuario_id', $id)
->where('horario', 'like', '%'.$_GET['q'].'%')
->orWhere('status', 'like', '%'.$_GET['q'].'%')
->orWhereHas('paciente', function($query) {
Expand All @@ -161,7 +166,7 @@ public function lista($id)

public function apagar($id, $consulta)
{
$consulta = Consulta::where('id', $consulta)->where('medico_id', $id)->first();
$consulta = Consulta::where('id', $consulta)->where('usuario_id', $id)->first();

if($consulta)
$consulta->delete();
Expand Down
2 changes: 1 addition & 1 deletion src/app/Http/Controllers/LoginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public function entrar()

if(!auth()->guest())
return redirect('painel');

return view('login');
}

Expand Down
54 changes: 38 additions & 16 deletions src/app/Http/Controllers/MedicoController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use Illuminate\Http\Request;
use App\Http\Requests\MedicoRequest;
use App\Model\{Medico, Usuario, Consulta, CargaHoraria, Cabecalho};
use App\Model\{Medico, Usuario, Consulta, CargaHoraria, Cabecalho, PermissaoPosto};

class MedicoController extends Controller
{
Expand Down Expand Up @@ -75,29 +75,45 @@ public function editar(MedicoRequest $requisicao, $id)
public function config()
{
$carga = new CargaHoraria;
$usuario = auth()->user()->nao_medico;
if(auth()->user()->medico)
$usuario = auth()->user()->medico;

if(auth()->user()->medico->carga_horaria)
$carga = auth()->user()->medico->carga_horaria;
if($usuario->carga_horaria)
$carga = $usuario->carga_horaria;

return view('medicos.config', compact('carga'));
return view('medicos.config', compact('carga', 'usuario'));
}

public function salvarFerias(Request $requisicao)
{
auth()->user()->medico->ferias = $requisicao->ferias;
auth()->user()->medico->save();
$usuario = auth()->user()->nao_medico;
if(auth()->user()->medico)
$usuario = auth()->user()->medico;

$usuario->ferias = $requisicao->ferias;
$usuario->save();

return redirect('medicos/config')->withMsg('Férias foram salvas!');
}

public function doDia()
{
if(!auth()->user()->medico->carga_horaria)
$medico = (auth()->user()->medico) ? auth()->user()->medico : auth()->user()->nao_medico;
if(!$medico->carga_horaria)
return redirect('medicos/config')->withMsg('Por favor, configure seus horários');

$postos_ = Cabecalho::where('atendida', 1)->get();
$postos = [];

foreach ($postos_ as $k => $value) {
$verificar = PermissaoPosto::where('cabecalho_id', $value->id)
->where('usuario_id', $medico->usuario_id)
->first();
if(!$verificar)
unset($postos_[$k]);
}

foreach ($postos_ as $value)
$postos[$value->id] = $value->nome .' | ' . $value->local;

Expand All @@ -106,18 +122,18 @@ public function doDia()

$_GET['data'] = $_GET['data'];

$n_atendidas = Consulta::where('medico_id', auth()->user()->id)
$n_atendidas = Consulta::where('usuario_id', auth()->user()->id)
->where('atendida', 0)
->where('horario', 'like', $_GET['data'].'%')
->orderBy('horario', 'asc')
->get();

$atendidas = Consulta::where('medico_id', auth()->user()->id)
$atendidas = Consulta::where('usuario_id', auth()->user()->id)
->where('atendida', 1)
->where('horario', 'like', $_GET['data'].'%')
->get();

return view('medicos.dia', compact('atendidas', 'n_atendidas', 'postos'));
return view('medicos.dia', compact('atendidas', 'n_atendidas', 'postos', 'medico'));
}

public function financas()
Expand All @@ -134,18 +150,24 @@ public function financas()
return redirect('medicos/financas?data='.$_GET['data']);
}

$n_atendidas = Consulta::where('medico_id', auth()->user()->id)
$n_atendidas = Consulta::where('usuario_id', auth()->user()->id)
->where('atendida', 0)
->where('horario', 'like', $_GET['data'].'%')
->orderBy('horario', 'asc')
->get();

$atendidas = Consulta::where('medico_id', auth()->user()->id)
$atendidas = Consulta::where('usuario_id', auth()->user()->id)
->where('atendida', 1)
->where('horario', 'like', $_GET['data'].'%')
->get();

return view('medicos.financas', compact('atendidas', 'n_atendidas', 'postos'));
$preco = 0;
foreach ($n_atendidas as $value)
$preco += $value->valor;
foreach ($atendidas as $value)
$preco += $value->valor;

return view('medicos.financas', compact('atendidas', 'n_atendidas', 'postos', 'preco'));
}

public function lugar(Request $requisicao)
Expand All @@ -155,9 +177,9 @@ public function lugar(Request $requisicao)
if(!$posto)
return redirect('medicos/dia')->withErro('Posto inválido!');


auth()->user()->medico->cabecalho_id = $posto->id;
auth()->user()->medico->save();
$medico = (auth()->user()->medico) ? auth()->user()->medico : auth()->user()->nao_medico;
$medico->cabecalho_id = $posto->id;
$medico->save();

return redirect('medicos/dia')->withMsg('Posto alterado!');
}
Expand Down
5 changes: 1 addition & 4 deletions src/app/Http/Controllers/PainelController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,9 @@ class PainelController extends Controller
public function inicial()
{

if(auth()->user()->medico)
if(auth()->user()->medico or auth()->user()->nao_medico)
return redirect('medicos/dia');

if(auth()->user()->nao_medico)
return redirect('nao-medicos/dia');

$medicos = Medico::count();
$nao_medicos = NaoMedico::count();
$secretarios = Secretario::count();
Expand Down
2 changes: 1 addition & 1 deletion src/app/Http/Requests/ConsultaRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function rules()
return [
'horario' => 'required|date_format:Y-m-d H:i',
'paciente_id' => 'required|numeric',
'medico_id' => 'required|numeric',
'usuario_id' => 'required|numeric',
'status' => 'required',
'obs' => 'nullable',
'valor' => 'nullable|min:0',
Expand Down
5 changes: 5 additions & 0 deletions src/app/Model/Cabecalho.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,9 @@ class Cabecalho extends Model
'local',
'atendida'
];

public function usuarios()
{
return $this->hasMany(PermissaoPosto::class, 'cabecalho_id', 'id');
}
}
6 changes: 3 additions & 3 deletions src/app/Model/Consulta.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ class Consulta extends Model
'horario',
'obs',
'status',
'medico_id',
'usuario_id',
'paciente_id',
'atendida',
'valor'
];

public function medico()
public function usuario()
{
return $this->belongsTo(Usuario::class, 'medico_id', 'id');
return $this->belongsTo(Usuario::class, 'usuario_id', 'id');
}

public function paciente()
Expand Down
2 changes: 1 addition & 1 deletion src/app/Model/Medico.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public function carga_horaria()

public function consultas()
{
return $this->hasMany(Consulta::class, 'medico_id', 'usuario_id');
return $this->hasMany(Consulta::class, 'usuario_id', 'usuario_id');
}

public function cabecalho()
Expand Down
Loading

0 comments on commit d2f9045

Please sign in to comment.