public ImpresorRemito(Venta venta) { this.venta = venta; detalles = new LinkedList<DetalleVentaDecorator>(); // Carga los detalles apropiadamente. for (DetalleVenta detalle : venta.getDetalles()) { DetalleVentaDecorator dvd = new DetalleVentaDecorator(); dvd.setCantidad(detalle.getCantidad()); dvd.setCodigo(detalle.getProducto().getCodigo()); String marcaDesc = detalle.getProducto().getDescripcion() + " - " + detalle.getCalidad().getCalidad().getNombre(); dvd.setDescripcion(marcaDesc); dvd.setUm(detalle.getProducto().getProductoUM().getNombre()); dvd.setUnitario(detalle.getImporteUnitario()); detalles.add(dvd); } }
/** * Imprime un reporte en un visor de Jasper Reports a partir del cual se puede exportar o enviar a * la impresora. Recibe como parámetro un valor booleano que indica si se realizara impresion * económica o no. * * @param ImpresionEconomica true: imprimir en blanco y negro false. imprimir en color. * @throws java.lang.Exception Si sucede algún error de impresión. */ public void imprimirInforme(boolean impresionEconomica) throws Exception { Map params = new HashMap(); params.put("FECHA", venta.getFecha()); params.put( "CLIENTE", (venta.getCliente() != null ? venta.getCliente().getIdentidad() : "Consumidor Final")); if (venta.getImporteRecargoDescuento() == null || venta.getImporteRecargoDescuento() == 0) { params.put("REC_DESC", null); params.put("VALOR_REC_DESC", null); } else { if (venta.getImporteRecargoDescuento() > 0) { params.put("REC_DESC", "Recargo:"); params.put("VALOR_REC_DESC", venta.getImporteRecargoDescuento()); } else { params.put("REC_DESC", "Descuento:"); params.put("VALOR_REC_DESC", (-1) * venta.getImporteRecargoDescuento()); } } params.put("FORMA_PAGO", venta.getFormaCobro().getNombre()); params.put("SUBTOTAL", venta.getImporteTotal() - venta.getImporteRecargoDescuento()); params.put("TOTAL", venta.getImporteTotal()); // Imprime el informe. Impresor impresor = new Impresor(params, "RemitoVenta", detalles); impresor.imprimirInforme(impresionEconomica); }