/** * 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(); }
/** * Crea los recibos de la factura en curso en base a la forma de pago. * Si el n. de vctos de la forma de pago es 0, no se crea ningún vencimiento. */ public function creaVctos() { if ($this->Total == 0) { return; } $factura = new FemitidasCab($this->IDFactura); //SI LA FACTURA ES SIN IVA, EN CASO DE CREAR RECIBOS SE MARCARÁN //CON N. DE ASIENTO 999999 PARA QUE NO SE TRASPASEN A CONTABILIDAD. $tieneiva = $factura->getIva1() + $factura->getIva2() + $factura->getIva3() != 0; if ($tieneiva) { $asiento = 0; } else { $asiento = 999999; } $formaPago = $factura->getIDFP(); $nvctos = $formaPago->getNumeroVctos(); $fecha = new Fecha($factura->getFecha()); $mes = $fecha->getmm(); $dia = $fecha->getdd(); $anio = $fecha->getaaaa(); unset($fecha); if ($factura->getIDCliente()->getDiaDePago() > 0) { //SI TIENE UN DIA DE PAGO ESTABLECIDO, LOS VENCIMIENTOS SE CALCULAN //A PARTIR DE ESE DIA PERO DEL MES SIGUIENTE $mes = $mes + 1; if ($mes > 12) { $mes = 1; $anio = $anio + 1; } $dia = $factura->getIDCliente()->getDiaDePago(); } if ($nvctos > 0) { $importe = ROUND($factura->getTotal() / $nvctos, 2); $diferencia = $factura->getTotal() - $importe * $nvctos; $i = 0; while ($i < $nvctos) { $i = $i + 1; if ($i == 1) { $intervalo = $formaPago->getDiaPrimerVcto(); $importeRecibo = $importe + $diferencia; } else { $intervalo = $intervalo + $formaPago->getDiasIntervalo(); $importeRecibo = $importe; } $numRecibo = str_pad($i, 2, "0", STR_PAD_LEFT) . str_pad($nvctos, 2, "0", STR_PAD_LEFT); $fVcto = date('Y-m-d', mktime(0, 0, 0, $mes, $dia + $intervalo, $anio)); $recibo = new RecibosClientes(); $recibo->setRecibo($numRecibo); $recibo->setIDSucursal($factura->getIDSucursal()->getIDSucursal()); $recibo->setIDFactura($factura->getIDFactura()); $recibo->setIDCliente($factura->getIDCliente()->getIDCliente()); $recibo->setIDComercial($factura->getIDComercial()->getIDAgente()); $recibo->setFecha($factura->getFecha()); $recibo->setVencimiento($fVcto); $recibo->setImporte($importeRecibo); $recibo->setIban($factura->getIDCliente()->getIban()); $recibo->setBic($factura->getIDCliente()->getBic()); $recibo->setMandato($factura->getIDCliente()->getMandato()); $recibo->setFechaMandato($factura->getIDCliente()->getFechaMandato()); $recibo->setConcepto("Cobro Factura"); $recibo->setAsiento($asiento); $recibo->setIDEstado($formaPago->getEstadoRecibo()->getIDTipo()); // Si el recibo se crea cobrado, se pone la fecha de vencimiento en la remesa if ($formaPago->getEstadoRecibo()->getIDTipo() == '6') { $recibo->setIDRemesa(str_replace("-", "", $fVcto)); } else { $recibo->setIDRemesa(''); } $recibo->setRemesar(1); $recibo->setCContable($formaPago->getCContable()); $recibo->create(); unset($recibo); } } unset($factura); unset($formaPago); }