Search in sources :

Example 21 with RenglonFactura

use of sic.modelo.RenglonFactura in project sic by belluccifranco.

the class FacturaServiceImpl method getReporteFacturaVenta.

@Override
public byte[] getReporteFacturaVenta(Factura factura) {
    ClassLoader classLoader = FacturaServiceImpl.class.getClassLoader();
    InputStream isFileReport = classLoader.getResourceAsStream("sic/vista/reportes/FacturaVenta.jasper");
    Map params = new HashMap();
    ConfiguracionDelSistema cds = configuracionDelSistemaService.getConfiguracionDelSistemaPorEmpresa(factura.getEmpresa());
    params.put("preImpresa", cds.isUsarFacturaVentaPreImpresa());
    String formasDePago = "";
    formasDePago = pagoService.getPagosDeLaFactura(factura.getId_Factura()).stream().map((pago) -> pago.getFormaDePago().getNombre() + " -").reduce(formasDePago, String::concat);
    params.put("formasDePago", formasDePago);
    if (factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_B) || factura.getTipoComprobante().equals(TipoDeComprobante.PRESUPUESTO)) {
        factura.setSubTotal_bruto(factura.getSubTotal());
        factura.setIva_105_neto(0);
        factura.setIva_21_neto(0);
    }
    params.put("facturaVenta", factura);
    if (factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_A) || factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_B) || factura.getTipoComprobante().equals(TipoDeComprobante.FACTURA_C)) {
        if (factura.getNumSerieAfip() != 0 && factura.getNumFacturaAfip() != 0) {
            params.put("nroComprobante", factura.getNumSerieAfip() + " - " + factura.getNumFacturaAfip());
        } else {
            params.put("nroComprobante", "");
        }
    } else {
        params.put("nroComprobante", factura.getNumSerie() + " - " + factura.getNumFactura());
    }
    params.put("logo", Utilidades.convertirByteArrayIntoImage(factura.getEmpresa().getLogo()));
    List<RenglonFactura> renglones = this.getRenglonesDeLaFactura(factura.getId_Factura());
    JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(renglones);
    try {
        return JasperExportManager.exportReportToPdf(JasperFillManager.fillReport(isFileReport, params, ds));
    } catch (JRException ex) {
        throw new ServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_reporte"), ex);
    }
}
Also used : JRException(net.sf.jasperreports.engine.JRException) ServiceException(sic.service.ServiceException) BusinessServiceException(sic.service.BusinessServiceException) HashMap(java.util.HashMap) InputStream(java.io.InputStream) ConfiguracionDelSistema(sic.modelo.ConfiguracionDelSistema) JRBeanCollectionDataSource(net.sf.jasperreports.engine.data.JRBeanCollectionDataSource) RenglonFactura(sic.modelo.RenglonFactura) HashMap(java.util.HashMap) Map(java.util.Map)

Example 22 with RenglonFactura

use of sic.modelo.RenglonFactura in project sic by belluccifranco.

the class DetalleFacturaCompraGUI method recargarRenglonesSegunTipoDeFactura.

private void recargarRenglonesSegunTipoDeFactura() {
    List<RenglonFactura> resguardoRenglones = renglones;
    renglones = new ArrayList<>();
    modeloTablaRenglones = new ModeloTabla();
    this.setColumnas();
    try {
        for (RenglonFactura renglon : resguardoRenglones) {
            Producto producto = RestClient.getRestTemplate().getForObject("/productos/" + renglon.getId_ProductoItem(), Producto.class);
            RenglonFactura nuevoRenglon = RestClient.getRestTemplate().getForObject("/facturas/renglon?" + "idProducto=" + producto.getId_Producto() + "&tipoDeComprobante=" + tipoDeComprobante.name() + "&movimiento=" + Movimiento.COMPRA + "&cantidad=" + renglon.getCantidad() + "&descuentoPorcentaje=" + renglon.getDescuento_porcentaje(), RenglonFactura.class);
            this.agregarRenglon(nuevoRenglon);
        }
    } catch (RestClientResponseException ex) {
        JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    } catch (ResourceAccessException ex) {
        LOGGER.error(ex.getMessage());
        JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
    }
}
Also used : Producto(sic.modelo.Producto) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 23 with RenglonFactura

use of sic.modelo.RenglonFactura in project sic by belluccifranco.

the class PuntoDeVentaGUI method buscarProductoConVentanaAuxiliar.

private void buscarProductoConVentanaAuxiliar() {
    if (cantidadMaximaRenglones > renglones.size()) {
        Movimiento movimiento = this.tipoDeComprobante.equals(TipoDeComprobante.PEDIDO) ? Movimiento.PEDIDO : Movimiento.VENTA;
        // revisar esto, es necesario para el movimiento como String y a su vez el movimiento?
        BuscarProductosGUI GUI_buscarProductos = new BuscarProductosGUI(this, true, renglones, this.tipoDeComprobante, movimiento);
        GUI_buscarProductos.setVisible(true);
        if (GUI_buscarProductos.debeCargarRenglon()) {
            boolean renglonCargado = false;
            for (RenglonFactura renglon : renglones) {
                if (renglon.getId_ProductoItem() == GUI_buscarProductos.getRenglon().getId_ProductoItem()) {
                    renglonCargado = true;
                }
            }
            this.agregarRenglon(GUI_buscarProductos.getRenglon());
            /*Si la tabla no contiene renglones, despues de agregar el renglon
                 a la coleccion, carga el arreglo con los estados con un solo elemento, 
                 cuyo valor es "Desmarcado" para evitar un nulo.*/
            EstadoRenglon[] estadosRenglones = new EstadoRenglon[renglones.size()];
            if (tbl_Resultado.getRowCount() == 0) {
                estadosRenglones[0] = EstadoRenglon.DESMARCADO;
            } else {
                this.cargarEstadoDeLosChkEnTabla(tbl_Resultado, estadosRenglones);
                //Se ejecuta o no segun si el renglon ya existe. Si ya existe, no se ejecuta
                if (!renglonCargado) {
                    estadosRenglones[tbl_Resultado.getRowCount()] = EstadoRenglon.DESMARCADO;
                }
            }
            this.cargarRenglonesAlTable(estadosRenglones);
            this.calcularResultados();
        }
    } else {
        JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_maxima_cantidad_de_renglones"), "Error", JOptionPane.ERROR_MESSAGE);
    }
}
Also used : Movimiento(sic.modelo.Movimiento) RenglonFactura(sic.modelo.RenglonFactura)

Example 24 with RenglonFactura

use of sic.modelo.RenglonFactura in project sic by belluccifranco.

the class PuntoDeVentaGUI method recargarRenglonesSegunTipoDeFactura.

private void recargarRenglonesSegunTipoDeFactura() {
    try {
        //resguardo de renglones
        List<RenglonFactura> resguardoRenglones = renglones;
        renglones = new ArrayList<>();
        for (RenglonFactura renglonFactura : resguardoRenglones) {
            Producto producto = RestClient.getRestTemplate().getForObject("/productos/" + renglonFactura.getId_ProductoItem(), Producto.class);
            RenglonFactura renglon = RestClient.getRestTemplate().getForObject("/facturas/renglon?" + "idProducto=" + producto.getId_Producto() + "&tipoDeComprobante=" + this.tipoDeComprobante.name() + "&movimiento=" + Movimiento.VENTA + "&cantidad=" + renglonFactura.getCantidad() + "&descuentoPorcentaje=" + renglonFactura.getDescuento_porcentaje(), RenglonFactura.class);
            this.agregarRenglon(renglon);
        }
        EstadoRenglon[] estadosRenglones = new EstadoRenglon[renglones.size()];
        if (!renglones.isEmpty()) {
            if (tbl_Resultado.getRowCount() == 0) {
                estadosRenglones[0] = EstadoRenglon.DESMARCADO;
            } else {
                this.cargarEstadoDeLosChkEnTabla(tbl_Resultado, estadosRenglones);
                if (tbl_Resultado.getRowCount() > renglones.size()) {
                    estadosRenglones[tbl_Resultado.getRowCount()] = EstadoRenglon.DESMARCADO;
                }
            }
        }
        this.cargarRenglonesAlTable(estadosRenglones);
        this.calcularResultados();
    } catch (RestClientResponseException ex) {
        JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    } catch (ResourceAccessException ex) {
        LOGGER.error(ex.getMessage());
        JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
    }
}
Also used : Producto(sic.modelo.Producto) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 25 with RenglonFactura

use of sic.modelo.RenglonFactura in project sic by belluccifranco.

the class PuntoDeVentaGUI method construirPedido.

private void construirPedido() {
    try {
        this.pedido = new Pedido();
        this.pedido.setCliente(cliente);
        this.pedido.setEliminado(false);
        this.pedido.setEmpresa(empresa);
        this.pedido.setFacturas(null);
        this.pedido.setFecha(dc_fechaFactura.getDate());
        this.pedido.setFechaVencimiento(dc_fechaVencimiento.getDate());
        this.pedido.setObservaciones(txta_Observaciones.getText());
        this.pedido.setUsuario(UsuarioActivo.getInstance().getUsuario());
        double[] importes = new double[renglones.size()];
        int indice = 0;
        for (RenglonFactura renglon : renglones) {
            importes[indice] = renglon.getImporte();
            indice++;
        }
        this.pedido.setTotalEstimado(RestClient.getRestTemplate().getForObject("/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class));
        this.pedido.setEstado(EstadoPedido.ABIERTO);
        List<RenglonPedido> renglonesPedido = new ArrayList<>();
        renglones.stream().forEach((r) -> {
            renglonesPedido.add(this.convertirRenglonFacturaARenglonPedido(r));
        });
        this.pedido.setRenglones(renglonesPedido);
    } catch (RestClientResponseException ex) {
        JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
    } catch (ResourceAccessException ex) {
        LOGGER.error(ex.getMessage());
        JOptionPane.showMessageDialog(this, ResourceBundle.getBundle("Mensajes").getString("mensaje_error_conexion"), "Error", JOptionPane.ERROR_MESSAGE);
    }
}
Also used : RenglonPedido(sic.modelo.RenglonPedido) RenglonPedido(sic.modelo.RenglonPedido) Pedido(sic.modelo.Pedido) EstadoPedido(sic.modelo.EstadoPedido) ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Aggregations

RenglonFactura (sic.modelo.RenglonFactura)29 ArrayList (java.util.ArrayList)16 ResourceAccessException (org.springframework.web.client.ResourceAccessException)9 RestClientResponseException (org.springframework.web.client.RestClientResponseException)9 Point (java.awt.Point)7 Test (org.junit.Test)7 Producto (sic.modelo.Producto)7 FacturaVenta (sic.modelo.FacturaVenta)6 EstadoPedido (sic.modelo.EstadoPedido)4 Factura (sic.modelo.Factura)4 Pedido (sic.modelo.Pedido)4 RenglonPedido (sic.modelo.RenglonPedido)4 Date (java.util.Date)3 ClienteBuilder (sic.builder.ClienteBuilder)3 EmpresaBuilder (sic.builder.EmpresaBuilder)3 TransportistaBuilder (sic.builder.TransportistaBuilder)3 Medida (sic.modelo.Medida)3 Usuario (sic.modelo.Usuario)3 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)2 CondicionIVABuilder (sic.builder.CondicionIVABuilder)2