/** * 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(); }