public function executeRegister_user(sfWebRequest $request)
 {
     $email = $request->getParameter('txtEmail');
     $firt_name = $request->getParameter('txtNombre');
     $last_name = $request->getParameter('txtApellidos');
     $password = $request->getParameter('txtPassword');
     $password_repeat = $request->getParameter('txt-password-repeat');
     //validaciones respectivas
     $vEmail = new sfValidatorEmail(array('required' => true));
     $vString = new sfValidatorString(array('required' => true));
     try {
         $vEmail->clean(strtolower(trim($email)));
     } catch (sfValidatorError $exc) {
         return sfView::ERROR;
     }
     try {
         $vString->clean(strtolower(trim($firt_name)));
     } catch (sfValidatorError $exc) {
         return sfView::ERROR;
     }
     try {
         $vString->clean(strtolower(trim($last_name)));
     } catch (sfValidatorError $exc) {
         return sfView::ERROR;
     }
     if ($password != $password_repeat) {
         return sfView::ERROR;
     }
     /*convierto los espacios en blanco en + para que no suceda
      * algun error al usar el web-service   */
     $email = str_replace(' ', '+', $email);
     $firt_name = str_replace(' ', '+', $firt_name);
     $last_name = str_replace(' ', '+', $last_name);
     try {
         $conection = Propel::getConnection();
         $conection->beginTransaction();
         $new_user = new UserSc();
         $new_user->setEmail($email);
         $new_user->setPassword($password);
         $new_user->setFlag('1');
         $new_user->save();
         //procedo a registrar al usuario en practil
         $lib = new practil_lib();
         $url = $lib->url_practil_registrar_user($firt_name, $last_name, md5($password), $email, '1');
         //si la url se forma correctamente
         if ($url != null) {
             $respuesta_registrar = file_get_contents($url);
             $decode = json_decode($respuesta_registrar);
             $codigo_respuesta = $decode->{'success'};
             //si el registro en practil es correcto
             if ($codigo_respuesta) {
                 $new_user->setProfile($decode->{'accountpk'});
                 $new_user->save();
                 $conection->commit();
                 $this->send_mail_scoredcard($decode->{'stoken'}, $new_user->getEmail());
                 return sfView::SUCCESS;
             } else {
                 if ($decode->{'code'} == "p-10003") {
                     $respt = array('firtname' => $firt_name, 'lastname' => $last_name, 'email' => $email, 'password' => $password, 'message' => 'el e-mail ya se encuentra registrado!');
                     $message_sign_in = $this->getUser()->setAttribute('message_sign_in', $respt);
                     $conection->rollBack();
                     $this->redirect('@homepage');
                 } else {
                     if ($decode->{'code'} == "p-20009") {
                         $respt = array('firtname' => $firt_name, 'lastname' => $last_name, 'email' => $email, 'password' => $password, 'message' => 'el e-mail ya se encuentra asociado a una cuenta!');
                         $message_sign_in = $this->getUser()->setAttribute('message_sign_in', $respt);
                         $conection->rollBack();
                         $this->redirect('@homepage');
                     } else {
                         $this->message = 'error en practil--' . $url . '--';
                         $conection->rollBack();
                         return sfView::ERROR;
                     }
                 }
             }
         } else {
             $conection->rollBack();
             $this->message = 'error en url';
             return sfView::ERROR;
         }
     } catch (Exception $e) {
         $conection->rollBack();
         $this->message = 'error en try';
         return sfView::ERROR;
     }
 }