92 lines
3.0 KiB
PHP
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);
|
|
}
|
|
}
|