/**
  * Envia por email la factura en formato PDF
  * @return <type>
  */
 public function enviarAction()
 {
     switch ($this->request['accion']) {
         case 'Enviar':
             $para = $this->request['Para'];
             $de = $this->request['De'];
             $deNombre = $this->request['DeNombre'];
             $conCopia = $this->request['Cc'];
             $conCopiaOculta = $this->request['Cco'];
             $asunto = $this->request['Asunto'];
             $mensaje = $this->request['Mensaje'];
             $adjuntos = array($this->request['Adjunto']);
             $envio = new Mail();
             $ok = $envio->send($para, $de, $deNombre, $conCopia, $conCopiaOculta, $asunto, $mensaje, $adjuntos);
             if ($ok) {
                 $entidad = new $this->entity($this->request['FemitidasCab']['IDFactura']);
                 $entidad->auditaEmail();
                 unset($entidad);
                 $this->values['resultadoEnvio'][] = "Envío con éxito";
             } else {
                 $this->values['resultadoEnvio'] = $envio->getMensaje();
             }
             unset($envio);
             break;
         case 'CambioFormato':
             $datos = new FemitidasCab($this->request['FemitidasCab']['IDFactura']);
             $formatos = DocumentoPdf::getFormatos($this->entity);
             $formato = $this->request['Formato'];
             if ($formato == '') {
                 $formato = 0;
             }
             $this->values['archivo'] = $this->generaPdf($this->entity, array('0' => $datos->getIDFactura()), $formato);
             $this->values['email'] = array('Para' => $this->request['Para'], 'De' => $this->request['De'], 'DeNombre' => $this->request['DeNombre'], 'Cc' => $this->request['Cc'], 'Cco' => $this->request['Cco'], 'Asunto' => $this->request['Asunto'], 'Formatos' => $formatos, 'Formato' => $formato, 'Mensaje' => $this->request['Mensaje'], 'idFactura' => $datos->getIDFactura());
             break;
         case '':
             $datos = new FemitidasCab($this->request['FemitidasCab']['IDFactura']);
             $formatos = DocumentoPdf::getFormatos($this->entity);
             $formato = $this->request['Formato'];
             if ($formato == '') {
                 $formato = 0;
             }
             $this->values['archivo'] = $this->generaPdf($this->entity, array('0' => $datos->getIDFactura()), $formato);
             $this->values['email'] = array('Para' => $datos->getIDCliente()->getEMail(), 'De' => $_SESSION['usuarioPortal']['email'], 'DeNombre' => $datos->getIDComercial()->getNombre(), 'Cco' => $_SESSION['usuarioPortal']['email'], 'Asunto' => 'Factura N. ' . $datos->getNumeroFactura(), 'Formatos' => $formatos, 'Formato' => $formato, 'Mensaje' => 'Le adjunto la factura ' . $datos->getNumeroFactura() . "\n\nUn saludo.", 'idFactura' => $datos->getIDFactura());
             break;
     }
     return parent::enviarAction();
 }
 /**
  * Genera un documento pdf
  *
  * @param string $tipoDocumento El tipo de documento: albaranes, pedidos, etc.
  * @param array $idsDocumento Array con los ids de la entidad a imprimir. Ej. id de albaran, pedido, etc.
  * @param integer $formato El formato del documento (defecto=0)
  * @return string Nombre del archivo pdf generado con la ruta completa
  */
 protected function generaPdf($tipoDocumento, array $idsDocumento, $formato = 0)
 {
     // Cargo en un array el archivo de configuracion
     // del tipo de documento y formato
     $config = DocumentoPdf::getConfigFormato($tipoDocumento, $formato);
     // LLamo al método específico de cada controlador para que obtenga
     // la información necesaria del documento.
     // Le paso el array con los ids de documentos (ej: id de albaran, pedido, factura, etc)
     $datos = $this->getDatosDocumento($idsDocumento);
     // CREAR EL DOCUMENTO----------------------------------------------------
     $fichero = Archivo::getTemporalFileName();
     if ($fichero) {
         $pdf = new DocumentoPdf($config['orientation'], $config['unit'], $config['format']);
         $pdf->generaDocumento($config, $datos['master'], $datos['detail'], $fichero);
     }
     return $fichero;
 }
 /**
  * Devuelve array con los posibles formatos de documentos para
  * el tipo de documento indicado como parámetro o en la posicion 2 del request
  *
  * El controlador que generará el documento viene en la posicion 3 del request
  * El id del objeto a imprimir viene en la posicion 4 del request
  *
  * Los formatos están definidos en  docs/docsXXX/tipoDocumento.yml
  * Se mostrarán solo aquellos que el perfil del usuario tenga acceso.
  *
  * En el nodo <idPerfil> se indican los IDs (separados por comas) de los perfiles que tendrán acceso
  * al documento. Si el nodo está vacio, se entiende que pueden acceder todos.
  *
  * @param string Tipo de Documento
  * @return array Con el template y values
  */
 public function formatosDocumentosAction($controlador = '')
 {
     switch ($this->request["METHOD"]) {
         case 'GET':
             if ($controlador == '') {
                 $controlador = $this->request['2'];
             }
             $idDocumento = $this->request['3'];
             $documento = new DocumentoPdf();
             $formatos = $documento->getFormatos($controlador);
             unset($documento);
             $this->values = array('numeroDeFormatos' => count($formatos), 'tipoDocumento' => $controlador, 'formatos' => $formatos, 'controlador' => $controlador, 'idDocumento' => $idDocumento);
             break;
         case 'POST':
             break;
     }
     return array('template' => '_Emergente/formatosDocumentos.html.twig', 'values' => $this->values);
 }
 /**
  * Envia por email el parte de elaboracion en formato PDF
  * @return <type>
  */
 public function enviarAction()
 {
     if ($this->request['accion'] == 'Enviar') {
         $para = $this->request['Para'];
         $de = $this->request['De'];
         $deNombre = $this->request['DeNombre'];
         $asunto = $this->request['Asunto'];
         $mensaje = $this->request['Mensaje'];
         $adjuntos = array($this->request['Adjunto']);
         $envio = new Mail();
         $this->values['resultadoEnvio'] = $envio->send($para, $de, $deNombre, $asunto, $mensaje, $adjuntos);
         unset($envio);
     } else {
         $usuario = new Agentes($_SESSION['usuarioPortal']['Id']);
         $datos = new ManufacCab($this->request['ManufacCab']['IDManufac']);
         $formatos = DocumentoPdf::getFormatos('parteElaboracion');
         $formato = $this->request['Formato'];
         if ($formato == '') {
             $formato = 0;
         }
         $this->values['archivo'] = $this->generaPdf('parteElaboracion', array('0' => $datos->getIDManufac()), $formato);
         $this->values['email'] = array('Para' => $datos->getIDElaborador()->getEMail(), 'De' => $usuario->getEMail(), 'DeNombre' => $usuario->getNombre(), 'Cc' => '', 'Asunto' => 'Parte de Elaboración n. ' . $datos->getIDManufac(), 'Formatos' => $formatos, 'Formato' => $formato, 'Mensaje' => 'Le adjunto el parte de elaboración ' . $datos->getIDManufac() . "\n\nUn saludo.", 'idManufac' => $datos->getIDManufac());
         unset($usuario);
         unset($datos);
     }
     return parent::enviarAction();
 }
 /**
  * Envia por email el parte de elaboracion en formato PDF
  * @return <type>
  */
 public function enviarAction()
 {
     if ($this->request['accion'] == 'Enviar') {
         $para = $this->request['Para'];
         $de = $this->request['De'];
         $deNombre = $this->request['DeNombre'];
         $asunto = $this->request['Asunto'];
         $mensaje = $this->request['Mensaje'];
         $adjuntos = array($this->request['Adjunto']);
         $envio = new Mail();
         $this->values['resultadoEnvio'] = $envio->send($para, $de, $deNombre, $asunto, $mensaje, $adjuntos);
         unset($envio);
     } else {
         $usuario = new Agentes($_SESSION['usuarioPortal']['Id']);
         $datos = new TraspasosCab($this->request['TraspasosCab']['IDTraspaso']);
         $formatos = DocumentoPdf::getFormatos('ordenTraspaso');
         $formato = $this->request['Formato'];
         if ($formato == '') {
             $formato = 0;
         }
         $this->values['archivo'] = $this->generaPdf('ordenTraspaso', array('0' => $datos->getIDTraspaso()), $formato);
         $this->values['email'] = array('Para' => $datos->getIDAlmacenDestino()->getEMail(), 'De' => $usuario->getEMail(), 'DeNombre' => $usuario->getNombre(), 'Cc' => '', 'Asunto' => 'Orden de traspaso n. ' . $datos->getNumeroTraspaso(), 'Formatos' => $formatos, 'Formato' => $formato, 'Mensaje' => 'Le adjunto el traspaso ' . $datos->getNumeroTraspaso() . "\n\nUn saludo.", 'idTraspaso' => $datos->getIDTraspaso());
         unset($usuario);
         unset($datos);
     }
     return parent::enviarAction();
 }