92 lines
3.0 KiB
PHP

<?php
namespace App\Controllers;
use App\Models\DepartamentoModel;
use App\Models\EncuestaModel;
use App\Models\EscuelaModel;
use App\Models\HorasModel;
use App\Models\PrestadorModel;
use App\Models\PrestadorSolicitudModel;
use App\Models\UserModel;
use PHPUnit\Framework\MockObject\Stub\ReturnReference;
class Prestador extends BaseController
{
public function index()
{
$horasModel = model(HorasModel::class);
$segundosDiarios = model(HorasModel::class)->getHoras(user()->idprestador);
$segundosMensuales = $horasModel->getSegundosMensuales(user()->idprestador);
$segundosTotal = array_reduce($segundosMensuales, function ($carry, $item) {
return $carry + $item['segundos'];
}, 0);
// Consultar encuestas disponibles
$encuestaModel = model(EncuestaModel::class);
$horasARealizar = model(PrestadorModel::class)->find(user()->idprestador)['horas_servicio'];
$porcentajeRealizado = $segundosTotal / ($horasARealizar * 1000);
$encuestas = $encuestaModel->getPrestadorEncuestas($porcentajeRealizado);
$data = [
'segundosMensuales' => $segundosMensuales,
'horasTotales' => $segundosTotal / 3600,
'segundosDiarios' => $segundosDiarios,
'encuestas' => $encuestas,
];
return view('Prestador/index', $data);
}
public function horas()
{
$data = [
'horas' => model(HorasModel::class)->getHoras(user()->idprestador),
];
return view('Prestador/table', $data);
}
public function formulario()
{
$prestadorModel = new PrestadorSolicitudModel();
// Guardar/actualizar registro
if ($this->request->getMethod() === 'post') {
$data = $this->request->getPost();
// En caso de que se actualice el registro, se tiene que agregar el id
if (user()->rh_prestador_solicitud_id) {
$data['id'] = user()->rh_prestador_solicitud_id;
}
// Validar datos
if (!$prestadorModel->save($data)) {
return redirect()->back()->withInput()->with('errors', $prestadorModel->errors());
}
// Guardar id de prestador_solicitud en el registro del usuario (solo para nuevos registros, no actualizaciones)
if (!user()->rh_prestador_solicitud_id) {
$userModel = new UserModel();
$userModel->update(user_id(), [
'rh_prestador_solicitud_id' => $prestadorModel->getInsertID()
]);
}
return view('Prestador/success');
}
$data = [
'email' => user()->email,
'escuelas' => model(EscuelaModel::class)->getEscuelas(),
'departamentos' => model(DepartamentoModel::class)->getDepartamentos(),
'datos' => user()->rh_prestador_solicitud_id ? $prestadorModel->find(user()->rh_prestador_solicitud_id) : null,
];
return view('Prestador/formulario_inicial', $data);
}
}