/** * Crea las lineas de los totales de la factura. En el vector de lineas se agregan las lineas * generadas. * * @param ventaActual Venta a partir de la cual se generaran los totales. * @param lineas Vector de las lineas actuales de la factura. */ private static void crearTotalesFiscal(Apartado apartado, double totalAbonosActivos) { if (logger.isDebugEnabled()) { logger.debug("crearTotalesFiscal(Apartado, double) - start"); } DecimalFormat precio = new DecimalFormat("#,##0.00"); double cargoServicio = 0; if (apartado.getEstadoServicio() == Sesion.APARTADO_ANULADO_CON_CARGO) cargoServicio = apartado.calcularMtoCargoPorServicio(); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha( justificar("SUB MONTO : ", precio.format(apartado.getMontoBase()), 35), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha( justificar("IMPUESTO : ", precio.format(apartado.getMontoImpuesto()), 35), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha("--------------------", columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha( justificar("MONTO APARTADO : ", precio.format(apartado.consultarMontoServ()), 35), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha( justificar("ABONOS REALIZADOS : ", precio.format(totalAbonosActivos), 35), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha( justificar("CARGO POR SERVICIO : ", "(-)" + precio.format(cargoServicio), 35), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha("--------------------", columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( alinearDerecha( justificar( "MONTO ANULACIÓN : ", precio.format(totalAbonosActivos - cargoServicio), 35), columnasImpresoraFiscal), 0); Sesion.crFiscalPrinterOperations.enviarLineaNoFiscal( crearLineaDeDivision(columnasImpresoraFiscal), 0); if (logger.isDebugEnabled()) { logger.debug("crearTotalesFiscal(Apartado, double) - end"); } }
/** * Método imprimirComprobante Realiza la impresion de la factura de Venta indicada como parametro. * * @param apartado * @param totalAbonosActivos */ public static void imprimirComprobante(Apartado apartado, double totalAbonosActivos) { if (logger.isDebugEnabled()) { logger.debug("imprimirComprobante(Apartado, double) - start"); } DecimalFormat df = new DecimalFormat("#,##0.00"); // ******** // Se verifica si la gaveta se abre por impresora o por el visor. Si es por impresora debemos // abrir // primero la gaveta antes de enviar a imprimir porque si no, se queda la gaveta cerrada hasta // que termina la impresion. if (Sesion.aperturaGavetaPorImpresora) { try { CR.me.abrirGaveta(false); } catch (Exception e) { logger.error("imprimirFactura(Venta)", e); } } // ******** if (Sesion.impresoraFiscal) { // Sesion.crFiscalPrinterOperations.activarSlip(); try { // Sesion.crFiscalPrinterOperations.commit(); // MensajesVentanas.aviso("Impresión de Comprobante de Anulación de Apartado\nIntroduzca el // documento en la impresora"); // Cadenas de secciones de la factura Sesion.crFiscalPrinterOperations.abrirDocumentoNoFiscal(); UtilesReportes.crearEncabezadoNoFiscal(); crearEncabezadoFiscal(apartado); crearDetallesFiscal(apartado); crearTotalesFiscal(apartado, totalAbonosActivos); crearPieDePaginaFiscal(); Sesion.crFiscalPrinterOperations.cerrarDocumentoNoFiscal(); Sesion.crFiscalPrinterOperations.cortarPapel(); Sesion.crFiscalPrinterOperations.commit(); } catch (PrinterNotConnectedException e) { logger.error("imprimirComprobante(Apartado, double)", e); } } else { // Esta Implementaccion no maneja Impresora NoFiscal } if (apartado.getEstadoServicio() == Sesion.APARTADO_ANULADO_EXONERADO) { // ****Se muestra el vuelto por visor y por pantalla // Se muestra el monto del vuelto al cliente por el visor double saldo; if (totalAbonosActivos * 100 < 1) saldo = 0; else saldo = totalAbonosActivos; try { CR.crVisor.enviarString("SALDO CLIENTE", 0, df.format(saldo), 2); } catch (Exception e) { logger.error("imprimirComprobante(Apartado, double)", e); } // Se muestra el mensaje del vuelto al cajero PantallaVuelto pantallaVuelto = new PantallaVuelto(saldo, true); MensajesVentanas.centrarVentanaDialogo(pantallaVuelto); // *** } else if (apartado.getEstadoServicio() == Sesion.APARTADO_ANULADO_CON_CARGO) { // ****Se muestra el vuelto por visor y por pantalla // Se muestra el monto del vuelto al cliente por el visor double saldo; if ((totalAbonosActivos - apartado.calcularMtoCargoPorServicio()) * 100 < 1) saldo = 0; else saldo = totalAbonosActivos - apartado.calcularMtoCargoPorServicio(); try { CR.crVisor.enviarString("SALDO CLIENTE", 0, df.format(saldo), 2); } catch (Exception e) { logger.error("imprimirComprobante(Apartado, double)", e); } // Se muestra el mensaje del vuelto al cajero PantallaVuelto pantallaVuelto = new PantallaVuelto(saldo, true); MensajesVentanas.centrarVentanaDialogo(pantallaVuelto); // *** } if (logger.isDebugEnabled()) { logger.debug("imprimirComprobante(Apartado, double) - end"); } }