コード例 #1
0
 /**
  * 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();
 }
コード例 #2
0
 /**
  * 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');
     }
 }