/** * 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(); }
/** * Guarda todos los recibos que le vienen en el request y * comprueba el cuadre entre el importe total de todos los * recibos de cada factura y el importe total de la factura * * @return array */ public function guardarAction() { if ($this->values['permisos']['permisosModulo']['UP']) { $arrayFacturas = array(); foreach ($this->request['RecibosClientes'] as $recibo) { $objeto = new RecibosClientes($recibo['IDRecibo']); $objeto->setVencimiento($recibo['Vencimiento']); $objeto->setImporte($recibo['Importe']); $objeto->setIban($recibo['Iban']); $objeto->setConcepto($recibo['Concepto']); $objeto->setIDRemesa($recibo['IDRemesa']); $objeto->setIDEstado($recibo['IDEstado']); $objeto->save(); // Guardo temporalmente todas las facturas afectadas $arrayFacturas[] = $objeto->getIDFactura()->getIDFactura(); } unset($objeto); // Comprobar cuadre recibos-factura $arrayFacturas = array_unique($arrayFacturas); foreach ($arrayFacturas as $idFactura) { $factura = new FemitidasCab($idFactura); $totalFactura = $factura->getTotal(); $sumaRecibos = $factura->getSumaRecibos(); if ($totalFactura != $sumaRecibos) { $diferencia = $totalFactura - $sumaRecibos; $this->values['errores'][] = "Descuadre en factura {$factura->getNumeroFactura()} -> Total Factura: {$totalFactura} Suma Recibos {$sumaRecibos}. Diferencia {$diferencia}"; } } unset($factura); return $this->listAction(); } else { return array('template' => '_global/forbiden.html.twig'); } }