コード例 #1
0
 public function responder()
 {
     $this->orm->connect();
     $codigo = $this->post->encuesta;
     unset($this->post->encuesta);
     $options['pregunta']['lvl2'] = "by_encuesta";
     $cod['pregunta']['encuesta'] = $codigo;
     $this->orm->read_data(array("pregunta"), $options, $cod);
     $numPreguntas = $this->orm->get_objects("pregunta", $options, $cod);
     $options['encuesta']['lvl2'] = "by_codigo";
     $cod['encuesta']['codigo'] = $codigo;
     $this->orm->read_data(array("encuesta"), $options, $cod);
     $encuesta = $this->orm->get_objects("encuesta", $options, $cod);
     $encuesta = new encuesta($encuesta[0]);
     if (sizeof($numPreguntas) == $this->contarRespuestas($this->post)) {
         foreach ($this->post as $key => $value) {
             $respuesta = new respuesta();
             $respuesta->set('opcion', $value[0]);
             $respuesta->set('usuario', $_SESSION['persona']['cedula']);
             $this->orm->insert_data("normal", $respuesta);
             unset($respuesta);
         }
         $beneficio = new beneficio();
         $beneficio->set('encuesta', $encuesta->get('codigo'));
         $beneficio->set('tarjeta', $_SESSION['persona']['cedula']);
         $beneficio->set('fecha', date("y-m-d"));
         $beneficio->set('retribucion', $encuesta->get('retribucion'));
         $this->orm->insert_data("normal", $beneficio);
         $options['tarjeta']['lvl2'] = "by_persona";
         $cod['tarjeta']['persona'] = $_SESSION['persona']['cedula'];
         $this->orm->read_data(array("tarjeta"), $options, $cod);
         $tarjeta = $this->orm->get_objects("tarjeta", $options, $cod);
         $tarjeta = new tarjeta($tarjeta[0]);
         $tarjeta->set('saldo', $tarjeta->get('saldo') + $encuesta->get('retribucion'));
         $this->orm->update_data("saldo", $tarjeta);
         $this->displayMessage('Encuesta respondida exitosamente', '¡Gracias por participar!');
     } else {
         $this->displayMessage('Preguntas sin responder', 'Por favor seleccione una opción de respuesta para cada una de las preguntas presente en la encuesta');
         $options['encuesta']['lvl2'] = "by_codigo";
         $cod['encuesta']['codigo'] = $encuesta->get('codigo');
         $options['pregunta']['lvl2'] = "by_encuesta";
         $cod['pregunta']['encuesta'] = $encuesta->get('codigo');
         $options['opcion']['lvl2'] = "all";
         $components['encuesta']['pregunta'] = array("e_p");
         $components['pregunta']['opcion'] = array("p_o");
         $this->orm->read_data(array("encuesta", "pregunta", "opcion"), $options, $cod);
         $encuesta = $this->orm->get_objects("encuesta", $components);
         $this->engine->assign('encuesta', $encuesta[0]);
     }
     $this->orm->close();
 }