Пример #1
0
 public function crear()
 {
     $encuesta = new encuesta($this->post);
     $tz = 'America/Bogota';
     $encuesta->set('fechaPublicacion', (new DateTime("now", new DateTimeZone($tz)))->format('Y-m-d'));
     if ($encuesta->validarCompletitud()) {
         if (isset($this->post->pregunta)) {
             if ($encuesta->validarFecha()) {
                 if ($encuesta->validarCaracteres()) {
                     if ($this->ValidarPreguntas($this->post->pregunta, $this->post->opcion)) {
                         if ($this->validarCategorias()) {
                             $this->orm->connect();
                             $this->orm->insert_data("normal", $encuesta);
                             $num_preg = 1;
                             $options['encuesta']['lvl2'] = "by_nombre";
                             $cod['encuesta']['nombre'] = $encuesta->get('nombre');
                             $this->orm->connect();
                             $this->orm->read_data(array("encuesta"), $options, $cod);
                             $encuesta = $this->orm->get_objects("encuesta");
                             foreach ($this->post->interes as $key => $value) {
                                 settype($categoria, 'object');
                                 $categoria->tipo = $value;
                                 $categoria->encuesta = $encuesta[0]->get('codigo');
                                 $categoria = new categoria($categoria);
                                 $this->orm->insert_data("normal", $categoria);
                                 unset($categoria);
                             }
                             foreach ($this->post->pregunta as $key => $value) {
                                 settype($pregunta, 'object');
                                 $pregunta->contenido = $value;
                                 $pregunta->numero = $num_preg;
                                 $pregunta->encuesta = $encuesta[0]->get('codigo');
                                 $pregunta = new pregunta($pregunta);
                                 $this->orm->insert_data("normal", $pregunta);
                                 $num_opc = 1;
                                 $options['pregunta']['lvl2'] = "by_encuesta_numero";
                                 $cod['pregunta']['encuesta'] = $pregunta->get('encuesta');
                                 $cod['pregunta']['numero'] = $pregunta->get('numero');
                                 $this->orm->connect();
                                 $this->orm->read_data(array("pregunta"), $options, $cod);
                                 $pregunta = $this->orm->get_objects("pregunta");
                                 for ($i = ($num_preg - 1) * 4; $i <= $num_preg * 4 - 1; $i++) {
                                     settype($opcion, 'object');
                                     $opcion->contenido = $this->post->opcion[$i];
                                     $opcion->numero = $num_opc;
                                     $opcion->pregunta = $pregunta[0]->get('codigo');
                                     $opcion = new opcion($opcion);
                                     $this->orm->insert_data("normal", $opcion);
                                     unset($opcion);
                                     $num_opc = $num_opc + 1;
                                 }
                                 unset($pregunta);
                                 $num_preg = $num_preg + 1;
                             }
                             $this->displayMessage("Registro completado", "Encuesta creada correctamente");
                             $this->orm->close();
                         } else {
                             $this->displayMessage("Datos obligatorios vacíos", "Debe seleccionar al menos una categoría");
                         }
                     } else {
                         $this->displayMessage("Datos obligatorios vacíos", "Debe ingresar las preguntas completas con sus respectivas opciones");
                     }
                 } else {
                     $this->displayMessage("Caracteres no permitidos", "Alguno de los caracteres ingresados para el campo Retribución no son permitidos");
                 }
             } else {
                 $this->displayMessage("Fecha inválida", "Debe ingresar una fecha de finalización posterior a la actual");
             }
         } else {
             $this->displayMessage("Datos obligatorios vacíos", "Debe ingresar al menos una pregunta con sus opciones correspondiente");
         }
     } else {
         $this->displayMessage("Datos obligatorios vacíos", "Debe ingresar todos los campos marcados por (*)");
     }
 }