25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.6KB

  1. <?php
  2. namespace App\Models;
  3. use CodeIgniter\Model;
  4. class EncuestaModel extends Model
  5. {
  6. protected $table = 'survey_set';
  7. protected $primaryKey = 'id';
  8. protected $useTimestamps = true;
  9. protected $allowedFields = ['title', 'description', 'user_id', 'perfil', 'fecha', 'status'];
  10. protected $validationRules = [
  11. 'title' => 'required',
  12. 'user_id' => 'required',
  13. 'perfil' => 'required',
  14. 'fecha' => 'required',
  15. 'status' => 'required',
  16. ];
  17. public function getEncuestas($id = null, $verbose = false)
  18. {
  19. if (!$id) {
  20. return $this->findAll();
  21. }
  22. $encuesta = $this->where('id', $id)->first();
  23. if ($verbose && $encuesta) {
  24. $encuesta['perfil_nombre'] = $encuesta['perfil'] == 1 ? 'Personal de CEJ' : 'Prestador';
  25. $encuesta['status_nombre'] = $encuesta['status'] == 0 ? 'No publicada' : 'Publicada';
  26. switch ($encuesta['fecha']) {
  27. case 1:
  28. $encuesta['fecha_nombre'] = 'Inicio de servicio';
  29. break;
  30. case 2:
  31. $encuesta['fecha_nombre'] = '50% de horas o más';
  32. break;
  33. case 3:
  34. $encuesta['fecha_nombre'] = 'Al terminar el servicio';
  35. break;
  36. }
  37. }
  38. return $encuesta;
  39. }
  40. public function getPrestadorEncuestas($porcentajeCompletado)
  41. {
  42. $fecha = 1 + $porcentajeCompletado * 2;
  43. return $this
  44. ->select(['id', 'title'])
  45. ->where('perfil', 2)
  46. ->where('fecha <=', $fecha)
  47. ->findAll();
  48. }
  49. }