/**
  * Crea un registro nuevo
  *
  * Siempre viene por POST
  * Si viene por POST crea un registro
  *
  * @return array con el template y valores a renderizar
  */
 public function newAction()
 {
     if ($this->values['permisos']['permisosModulo']['IN']) {
         switch ($this->request["METHOD"]) {
             case 'POST':
                 //CREAR NUEVO REGISTRO
                 $entidad = $this->request[$this->entity]['Entity'];
                 $idEntidad = $this->request[$this->entity]['IdEntity'];
                 $tipo = $this->request[$this->entity]['Type'];
                 $variables = new CpanVariables('Mod', 'Env', $entidad);
                 $this->varEnvMod = $variables->getValores();
                 unset($variables);
                 $this->values['varEnvMod'] = $this->varEnvMod;
                 $datos = new CpanDocs();
                 $datos->bind($this->request['CpanDocs']);
                 $datos->setArrayDoc($this->request['FILES']['documento']);
                 $rules = $this->getRules($this->request[$this->entity]['Type']);
                 switch ($this->request[$this->entity]['Type']) {
                     case 'galery':
                         if ($datos->valida($rules)) {
                             $documento = $datos->getArrayDoc();
                             $documento['maxWidth'] = $this->varEnvMod['galery']['maxWidthImage'];
                             $documento['maxHeight'] = $this->varEnvMod['galery']['maxHeightImage'];
                             $documento['modoRecortar'] = $this->request['modoRecortar'];
                             $datos->setArrayDoc($documento);
                             $lastId = $datos->create();
                             if (!$lastId) {
                                 $this->values['errores'] = $datos->getErrores();
                             }
                             // Subir Miniatura
                             if ($lastId and $this->varEnvMod['galery']['generateThumbnail'] == '1') {
                                 $thumb = new CpanDocs();
                                 $thumb->bind($this->request['CpanDocs']);
                                 $thumb->setBelongsTo($lastId);
                                 $documento = $this->request['FILES']['documento'];
                                 $documento['maxWidth'] = $this->varEnvMod['galery']['widthThumbnail'];
                                 $documento['maxHeight'] = $this->varEnvMod['galery']['heightThumbnail'];
                                 $thumb->setArrayDoc($documento);
                                 $thumb->setIsThumbnail(1);
                                 if ($thumb->valida($rules)) {
                                     $lastId = $thumb->create();
                                 }
                                 $this->values['errores'] = $thumb->getErrores();
                             }
                         } else {
                             $this->values['errores'] = $datos->getErrores();
                         }
                         break;
                     case 'tiny':
                         if ($datos->valida($rules)) {
                             $documento = $datos->getArrayDoc();
                             $documento['maxWidth'] = $this->varEnvMod['galery']['maxWidthImage'];
                             $documento['maxHeight'] = $this->varEnvMod['galery']['maxHeightImage'];
                             $documento['modoRecortar'] = $this->request['modoRecortar'];
                             $datos->setArrayDoc($documento);
                             $lastId = $datos->create();
                             if (!$lastId) {
                                 $this->values['errores'] = $datos->getErrores();
                             }
                         } else {
                             $this->values['errores'] = $datos->getErrores();
                         }
                         break;
                     case 'document':
                     case 'video':
                     case 'audio':
                         if ($datos->valida($rules)) {
                             $lastId = $datos->create();
                             if (!$lastId) {
                                 $this->values['errores'] = $datos->getErrores();
                             }
                             $this->values['alertas'] = $datos->getAlertas();
                             //Recargo el objeto para refrescar las propiedas que
                             //hayan podido ser objeto de algun calculo durante el proceso
                             //de guardado.
                             $datos = new CpanDocs($lastId);
                             $this->values['datos'] = $datos;
                         } else {
                             $this->values['datos'] = $datos;
                             $this->values['errores'] = $datos->getErrores();
                         }
                         break;
                 }
                 return $this->listPopupAction($entidad, $idEntidad, $tipo, $this->request['formato']);
                 break;
         }
     } else {
         return array('template' => '_global/forbiden.html.twig');
     }
 }