protected function saveDocumento($documento)
 {
     //Ana: 03-11-09 Por defecto se añaden al documento los usuarios que pertenecen al proyecto que tiene asignado el documento.
     if ($documento->isNew()) {
         $nuevo = 1;
     }
     $documento->save();
     if (isset($_FILES["resume_degraded"]) && is_uploaded_file($_FILES["resume_degraded"]["tmp_name"]) && $_FILES["resume_degraded"]["error"] == 0) {
         $fileName = $_FILES["resume_degraded"]["name"];
         $used_degraded = true;
     }
     if (isset($_REQUEST["hidFileID"]) && $_REQUEST["hidFileID"] != "") {
         $fileName = $_REQUEST["hidFileID"];
     }
     if ($used_degraded) {
         $fileSize = $this->getRequest()->getFileSize($fileName);
         $fileType = $this->getRequest()->getFileType($fileName);
     } else {
         $filePath = sfConfig::get('sf_web_dir') . "/temp/" . $fileName;
         $fileSize = filesize($filePath);
         $fileType = mime_content_type($filePath);
     }
     //if ($_FILES['fichero']['error'] == 0)
     //{
     $usuario = Usuario::getUsuarioActual();
     $historico = new HistoricoDocumento();
     $historico->setIdEmpresa(sfContext::getInstance()->getUser()->getAttribute('idempresa'));
     $historico->setIdDocumento($documento->getIdDocumento());
     $historico->setVersion(HistoricoDocumentoPeer::getUltimaVersion($this->documento->getPrimaryKey()));
     $historico->setFecha(date('Y-m-d H:i:s'));
     $historico->setTamano($fileSize);
     $historico->setNombreFich($fileName);
     $historico->setMime($fileType);
     $historico->setIdUsuario($usuario ? $usuario->getPrimaryKey() : null);
     //Rober 28-dic-2009
     $nombre_base_nuevo = $this->renombrarDocumento($historico, $documento->getIdProyecto(), $documento->getIdFase());
     $historico->setNombreFich($nombre_base_nuevo);
     $historico->save();
     $cookie_cliente = sfContext::getInstance()->getUser()->getAttribute('empresa', '', 'usuarios');
     if ($cookie_cliente != 0 && $cookie_cliente != '') {
         $cliente = ClientePeer::retrieveByPk($cookie_cliente);
         //if ($cliente->getEmail() != '' && $cliente->getQuieremail())
         //{
         // Rober 23-oct-2009: la funcion de envío no está definida...
         //DocumentoPeer::mandarEmail($historico, $cliente->getEmail(), $cliente->getNombre());
         //}
     }
     //}
     if ($nuevo) {
         // Ana: 03-11-09 Por defecto se añaden al documento los usuarios que
         // pertenecen al proyecto que tiene asignado el documento.
         // Rober 26-abr-2010: código comentado.
         $fase = $documento->getFase();
         $trabajadores = $fase instanceof Fase ? $fase->getListaTrabajadores() : array();
         if (sizeof($trabajadores) == 0) {
             $c = new Criteria();
             $c->add(RelProyectoTrabajadorPeer::ID_PROYECTO, $documento->getIdProyecto());
             $trabajadores = RelProyectoTrabajadorPeer::doSelect($c);
         }
         //Rober 26-abr-2010
         foreach ($trabajadores as $trabajador) {
             $c = new Criteria();
             $new_rpt = new RelDocumentoTrabajador();
             $new_rpt->setIdTrabajador($trabajador->getIdTrabajador());
             $documento->addRelDocumentoTrabajador($new_rpt);
         }
         $documento->save();
     }
     //BORRAMOS EL FICHERO TEMPORAL SI EXISTE
     if (isset($filePath) && file_exists($filePath)) {
         @unlink($filePath);
     }
 }
 protected function getHistoricoDocumentoOrCreate($iddocumento = 'id_documento', $version = 'version')
 {
     if (!$this->getRequestParameter($iddocumento) || !$this->getRequestParameter($version)) {
         $historico_documento = new HistoricoDocumento();
         $historico_documento->setIdEmpresa(sfContext::getInstance()->getUser()->getAttribute('idempresa'));
     } else {
         $c = new Criteria();
         $c->add(HistoricoDocumentoPeer::ID_DOCUMENTO, $this->getRequestParameter('id_documento'));
         $c->add(HistoricoDocumentoPeer::VERSION, $this->getRequestParameter('version'), Criteria::LIKE);
         $historico_documento = HistoricoDocumentoPeer::doSelectOne($c);
         $this->forward404Unless($historico_documento);
     }
     return $historico_documento;
 }