<?php

//die;
error_reporting(E_ALL);
ini_set("display_errors", 1);
include_once "../../data/config.php";
//echo "<pre>";print_r(json_decode($_POST['json']));  echo "</pre>";
$datos = json_decode($_POST['json']);
//$libros = LibroQuery::create()->find();
//$usuarios = UsuarioQuery::create()->find();
switch ($datos->accion) {
    case "n":
        //New
        $mensajeObj = new Mensaje();
        $mensajeObj->setId_usuario_destinatario($datos->id_usuario_destinatario);
        $mensajeObj->setId_usuario_remitente($datos->id_usuario_remitente);
        $mensajeObj->setMensaje($datos->mensaje);
        $mensajeObj->setLeido($datos->leido);
        $mensajeObj->save();
        echo json_encode(array('error' => 0, 'msg' => "Mensaje enviado"));
        break;
}
	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());
		}
	}