選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

95 行
3.1KB

  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. // Poner status de revisión (0)
  52. $data['status'] = 0;
  53. // Validar datos
  54. if (!$prestadorModel->save($data)) {
  55. return redirect()->back()->withInput()->with('errors', $prestadorModel->errors());
  56. }
  57. // Guardar id de prestador_solicitud en el registro del usuario (solo para nuevos registros, no actualizaciones)
  58. if (!user()->rh_prestador_solicitud_id) {
  59. $userModel = new UserModel();
  60. $userModel->update(user_id(), [
  61. 'rh_prestador_solicitud_id' => $prestadorModel->getInsertID()
  62. ]);
  63. }
  64. return view('Prestador/success');
  65. }
  66. $data = [
  67. 'email' => user()->email,
  68. 'escuelas' => model(EscuelaModel::class)->getEscuelas(),
  69. 'departamentos' => model(DepartamentoModel::class)->getDepartamentos(),
  70. 'datos' => user()->rh_prestador_solicitud_id ? $prestadorModel->find(user()->rh_prestador_solicitud_id) : null,
  71. ];
  72. return view('Prestador/formulario_inicial', $data);
  73. }
  74. }