/**
  * Procesar formulario de nuevo encuestado
  *
  * @param $request sfWebRequest
  */
 public function executeProcesarForm(sfWebRequest $request)
 {
     $this->forward404Unless($request->isMethod('post'));
     // Obtener datos base sin bloques "Sancion vigente"
     $manyToMany = array();
     $params = $request->getPostParameters();
     foreach ($params as $param => $value) {
         if (is_array($value)) {
             $manyToMany[$param] = $value;
             unset($params[$param]);
         }
     }
     // Agregar otros parametros
     $params['id_user_responsable_principal'] = $this->getUser()->getGuardUser()->getId();
     $params['created_at'] = $params['updated_at'] = '"NOW()"';
     // Guardar
     $sql = DatabaseUtils::prepareInsertQuery('encuestado', $params);
     $query = $this->pdo->prepare($sql);
     if (!$query->execute($params)) {
         return sfView::ERROR;
     }
     // Obtener id de encuestado recien añadido
     $id = $this->pdo->lastInsertId();
     // Obtener sanciones vigentes como objetos
     $count = count($request->getParameter('select_sistema_atencion'));
     $sancionesVigentes = array();
     for ($i = 0; $i < $count; $i++) {
         foreach ($manyToMany as $key => $value) {
             $sancionesVigentes[$i][$key] = $value[$i];
         }
         $sancionesVigentes[$i]['id_encuestado'] = $id;
     }
     // Guardar las sanciones vigentes; transaccion para mejor rendimiento
     try {
         $this->pdo->beginTransaction();
         foreach ($sancionesVigentes as $sancion) {
             $sql = DatabaseUtils::prepareInsertQuery('encuestado_sanciones', $sancion);
             $query = $this->pdo->prepare($sql);
             $query->execute($sancion);
         }
         $this->pdo->commit();
     } catch (Exception $e) {
         $this->pdo->rollBack();
         return sfView::ERROR;
     }
     $this->username = $this->getUser()->getUsername();
     //sanciones anteriores
     // Obtener sanciones vigentes como objetos
     $id2 = $this->pdo->lastInsertId();
     $count2 = count($request->getParameter('input_ruk_2'));
     $sancionesAnteriores = array();
     for ($j = 0; $j < $count2; $j++) {
         foreach ($manyToMany as $key => $value) {
             $sancionesAnteriores[$j][$key] = $value[$j];
         }
         $sancionesAnteriores[$j]['id_encuestado'] = $id;
     }
     // Guardar las sanciones vigentes; transaccion para mejor rendimiento
     try {
         $this->pdo->beginTransaction();
         foreach ($ssancionesAnteriores as $sancionant) {
             $sql = DatabaseUtils::prepareInsertQuery('encuestado_canteriores', $sancionant);
             $query = $this->pdo->prepare($sql);
             $query->execute($sancionant);
         }
         $this->pdo->commit();
     } catch (Exception $e) {
         $this->pdo->rollBack();
         return sfView::ERROR;
     }
     $this->username = $this->getUser()->getUsername();
     //
 }