No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

92 líneas
3.0KB

  1. <?php
  2. namespace App\Controllers;
  3. use App\Models\DepartamentoModel;
  4. use App\Models\EncuestaModel;
  5. use App\Models\EscuelaModel;
  6. use App\Models\HorasModel;
  7. use App\Models\PrestadorModel;
  8. use App\Models\PrestadorSolicitudModel;
  9. use App\Models\UserModel;
  10. use PHPUnit\Framework\MockObject\Stub\ReturnReference;
  11. class Prestador extends BaseController
  12. {
  13. public function index()
  14. {
  15. $horasModel = model(HorasModel::class);
  16. $segundosDiarios = model(HorasModel::class)->getHoras(user()->idprestador);
  17. $segundosMensuales = $horasModel->getSegundosMensuales(user()->idprestador);
  18. $segundosTotal = array_reduce($segundosMensuales, function ($carry, $item) {
  19. return $carry + $item['segundos'];
  20. }, 0);
  21. // Consultar encuestas disponibles
  22. $encuestaModel = model(EncuestaModel::class);
  23. $horasARealizar = model(PrestadorModel::class)->find(user()->idprestador)['horas_servicio'];
  24. $porcentajeRealizado = $segundosTotal / ($horasARealizar * 1000);
  25. $encuestas = $encuestaModel->getPrestadorEncuestas($porcentajeRealizado);
  26. $data = [
  27. 'segundosMensuales' => $segundosMensuales,
  28. 'horasTotales' => $segundosTotal / 3600,
  29. 'segundosDiarios' => $segundosDiarios,
  30. 'encuestas' => $encuestas,
  31. ];
  32. return view('Prestador/index', $data);
  33. }
  34. public function horas()
  35. {
  36. $data = [
  37. 'horas' => model(HorasModel::class)->getHoras(user()->idprestador),
  38. ];
  39. return view('Prestador/table', $data);
  40. }
  41. public function formulario()
  42. {
  43. $prestadorModel = new PrestadorSolicitudModel();
  44. // Guardar/actualizar registro
  45. if ($this->request->getMethod() === 'post') {
  46. $data = $this->request->getPost();
  47. // En caso de que se actualice el registro, se tiene que agregar el id
  48. if (user()->rh_prestador_solicitud_id) {
  49. $data['id'] = user()->rh_prestador_solicitud_id;
  50. }
  51. // Validar datos
  52. if (!$prestadorModel->save($data)) {
  53. return redirect()->back()->withInput()->with('errors', $prestadorModel->errors());
  54. }
  55. // Guardar id de prestador_solicitud en el registro del usuario (solo para nuevos registros, no actualizaciones)
  56. if (!user()->rh_prestador_solicitud_id) {
  57. $userModel = new UserModel();
  58. $userModel->update(user_id(), [
  59. 'rh_prestador_solicitud_id' => $prestadorModel->getInsertID()
  60. ]);
  61. }
  62. return view('Prestador/success');
  63. }
  64. $data = [
  65. 'email' => user()->email,
  66. 'escuelas' => model(EscuelaModel::class)->getEscuelas(),
  67. 'departamentos' => model(DepartamentoModel::class)->getDepartamentos(),
  68. 'datos' => user()->rh_prestador_solicitud_id ? $prestadorModel->find(user()->rh_prestador_solicitud_id) : null,
  69. ];
  70. return view('Prestador/formulario_inicial', $data);
  71. }
  72. }