protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { $version = $form->save(); $permisos = $this->getUser()->inicializarPermisos(); foreach ($permisos as $permiso): if ($request->hasParameter($permiso->getNombre())) { if ($permiso == Estado::CERRADA and $version->getEstado()->getNombre() == Estado::VERIFICADA) { $version->setValidada(true); $svn = new subversion(); foreach ($version->getFicheros() as $fichero) { $this->emptyDir(sfConfig::get('sf_root_dir').'/web/uploads2'); copy(sfConfig::get('sf_root_dir').'/web/uploads/'.$fichero -> getFile(),sfConfig::get('sf_root_dir').'/web/uploads2/'.$fichero -> getFile()); $this->logMessage(sfConfig::get('sf_root_dir').'/web/uploads/'.$fichero -> getFile(),'err'); $this->logMessage(sfConfig::get('sf_root_dir').'/web/uploads2/'.$fichero -> getFile(),'err'); $svn->addFile('proyect', sfConfig::get('sf_root_dir').'/web/uploads2'); $svn->updateFile('proyect', sfConfig::get('sf_root_dir').'/web/uploads2'); copy(sfConfig::get('sf_root_dir').'/web/uploads/'.$fichero -> getFile(),sfConfig::get('sf_root_dir').'/web/uploads3/'.$fichero -> getFile()); } } $version->setEstado($permiso); $version->save(); $this->getUser()->setFlash('notice', sprintf('Has tramitado con exito a peticion con estado '.$permiso)); $usuarios = $version->getUsers(); if (!empty($usuarios)) { foreach ($usuarios as $user) { $mensaje = new Mensaje(); $mensaje -> setNombre('Tramitacion'); $mensaje -> setLeido(false); $mensaje -> setSfGuardUser($user); $mensaje -> setDescripcion('Se ha tramitado una solicitud de cambio del artefacto '.$version->getArtefacto().' a estado '.$permiso); $mensaje -> save(); sfContext::getInstance()->getUser()->setAttribute('mensajes',Doctrine_Core::getTable('Mensaje')-> mensajesActivos()-> count()); } } } endforeach; // $this->getUser()->setFlash('notice', sprintf('Has tramitado con exito el cambio')); foreach ($version -> getFicheros() as $fichero) { // require_once 'class.subversion.php'; // Class examples if ($fichero -> getDeleted()) { $fichero -> delete(); } } $this->redirect('version/show?id='.$version->getId().'&artefactoId='.$version->getArtefactoId()); } }