Exemplo n.º 1
0
	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());
		}
	}