Search in sources :

Example 6 with RenglonFactura

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

the class PuntoDeVentaGUI method calcularResultados.

private void calcularResultados() {
    double subTotal;
    double descuento_porcentaje;
    double descuento_neto;
    double recargo_porcentaje;
    double recargo_neto;
    double total;
    this.validarComponentesDeResultados();
    //SubTotal  
    double[] importes = new double[renglones.size()];
    double[] cantidades = new double[renglones.size()];
    double[] ivaPorcentajeRenglones = new double[renglones.size()];
    double[] ivaNetoRenglones = new double[renglones.size()];
    int indice = 0;
    for (RenglonFactura renglon : renglones) {
        importes[indice] = renglon.getImporte();
        cantidades[indice] = renglon.getCantidad();
        ivaPorcentajeRenglones[indice] = renglon.getIva_porcentaje();
        ivaNetoRenglones[indice] = renglon.getIva_neto();
        indice++;
    }
    try {
        subTotal = RestClient.getRestTemplate().getForObject("/facturas/subtotal?" + "importe=" + Arrays.toString(importes).substring(1, Arrays.toString(importes).length() - 1), double.class);
        txt_Subtotal.setValue(subTotal);
        //Descuento
        descuento_porcentaje = Double.parseDouble(txt_Decuento_porcentaje.getValue().toString());
        descuento_neto = RestClient.getRestTemplate().getForObject("/facturas/descuento-neto?" + "subTotal=" + subTotal + "&descuentoPorcentaje=" + descuento_porcentaje, double.class);
        txt_Decuento_neto.setValue(descuento_neto);
        //Regargo
        recargo_porcentaje = Double.parseDouble(txt_Recargo_porcentaje.getValue().toString());
        recargo_neto = RestClient.getRestTemplate().getForObject("/facturas/recargo-neto?" + "subTotal=" + subTotal + "&recargoPorcentaje=" + recargo_porcentaje, double.class);
        txt_Recargo_neto.setValue(recargo_neto);
        //iva 10,5% neto - IVA 21% neto
        iva_105_netoFactura = 0;
        iva_21_netoFactura = 0;
        if (tipoDeComprobante == TipoDeComprobante.FACTURA_B || tipoDeComprobante == TipoDeComprobante.FACTURA_A || tipoDeComprobante == TipoDeComprobante.PRESUPUESTO) {
            iva_105_netoFactura = RestClient.getRestTemplate().getForObject("/facturas/iva-neto?" + "tipoDeComprobante=" + this.tipoDeComprobante.name() + "&cantidades=" + Arrays.toString(cantidades).substring(1, Arrays.toString(cantidades).length() - 1) + "&ivaPorcentajeRenglones=" + Arrays.toString(ivaPorcentajeRenglones).substring(1, Arrays.toString(ivaPorcentajeRenglones).length() - 1) + "&ivaNetoRenglones=" + Arrays.toString(ivaNetoRenglones).substring(1, Arrays.toString(ivaNetoRenglones).length() - 1) + "&ivaPorcentaje=10.5" + "&descuentoPorcentaje=" + descuento_porcentaje + "&recargoPorcentaje=" + recargo_porcentaje, double.class);
            iva_21_netoFactura = RestClient.getRestTemplate().getForObject("/facturas/iva-neto?" + "tipoDeComprobante=" + this.tipoDeComprobante.name() + "&cantidades=" + Arrays.toString(cantidades).substring(1, Arrays.toString(cantidades).length() - 1) + "&ivaPorcentajeRenglones=" + Arrays.toString(ivaPorcentajeRenglones).substring(1, Arrays.toString(ivaPorcentajeRenglones).length() - 1) + "&ivaNetoRenglones=" + Arrays.toString(ivaNetoRenglones).substring(1, Arrays.toString(ivaNetoRenglones).length() - 1) + "&ivaPorcentaje=21" + "&descuentoPorcentaje=" + descuento_porcentaje + "&recargoPorcentaje=" + recargo_porcentaje, double.class);
        }
        if (tipoDeComprobante == TipoDeComprobante.FACTURA_B || tipoDeComprobante == TipoDeComprobante.PRESUPUESTO) {
            txt_IVA105_neto.setValue(0);
            txt_IVA21_neto.setValue(0);
        } else {
            txt_IVA105_neto.setValue(iva_105_netoFactura);
            txt_IVA21_neto.setValue(iva_21_netoFactura);
        }
        //subtotal bruto
        subTotalBruto = RestClient.getRestTemplate().getForObject("/facturas/subtotal-bruto?" + "tipoDeComprobante=" + tipoDeComprobante.name() + "&subTotal=" + subTotal + "&recargoNeto= " + recargo_neto + "&descuentoNeto=" + descuento_neto + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
        if (tipoDeComprobante == TipoDeComprobante.FACTURA_B || tipoDeComprobante == TipoDeComprobante.PRESUPUESTO) {
            txt_SubTotalBruto.setValue(subTotal);
        } else {
            txt_SubTotalBruto.setValue(subTotalBruto);
        }
        //total
        total = RestClient.getRestTemplate().getForObject("/facturas/total?" + "subTotalBruto=" + subTotalBruto + "&iva105Neto=" + iva_105_netoFactura + "&iva21Neto=" + iva_21_netoFactura, double.class);
        txt_Total.setValue(total);
        this.totalComprobante = total;
    } 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 : RenglonFactura(sic.modelo.RenglonFactura) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Point(java.awt.Point) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 7 with RenglonFactura

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

the class PuntoDeVentaGUI method btn_QuitarProductoActionPerformed.

//GEN-LAST:event_btn_ContinuarActionPerformed
private void btn_QuitarProductoActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_btn_QuitarProductoActionPerformed
    int[] indicesParaEliminar = Utilidades.getSelectedRowsModelIndices(tbl_Resultado);
    List<RenglonFactura> renglonesParaBorrar = new ArrayList<>();
    for (int i = 0; i < indicesParaEliminar.length; i++) {
        renglonesParaBorrar.add(renglones.get(indicesParaEliminar[i]));
    }
    EstadoRenglon[] estadoDeRenglones = new EstadoRenglon[renglones.size()];
    for (int i = 0; i < tbl_Resultado.getRowCount(); i++) {
        if (((boolean) tbl_Resultado.getValueAt(i, 0)) == true) {
            estadoDeRenglones[i] = EstadoRenglon.MARCADO;
        } else {
            estadoDeRenglones[i] = EstadoRenglon.DESMARCADO;
        }
    }
    for (int i = 0; i < indicesParaEliminar.length; i++) {
        estadoDeRenglones[indicesParaEliminar[i]] = EstadoRenglon.ELIMINADO;
    }
    renglonesParaBorrar.stream().forEach((renglon) -> {
        renglones.remove(renglon);
    });
    this.cargarRenglonesAlTable(estadoDeRenglones);
    this.calcularResultados();
}
Also used : ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura) Point(java.awt.Point)

Example 8 with RenglonFactura

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

the class FacturaServiceImpl method agregarRenglonesAFacturaConIVA.

private FacturaVenta agregarRenglonesAFacturaConIVA(FacturaVenta facturaConIVA, int[] indices, List<RenglonFactura> renglones) {
    List<RenglonFactura> renglonesConIVA = new ArrayList<>();
    double cantidadProductosRenglonFacturaConIVA = 0;
    int renglonMarcado = 0;
    int numeroDeRenglon = 0;
    for (RenglonFactura renglon : renglones) {
        if (numeroDeRenglon == indices[renglonMarcado]) {
            double cantidad = renglon.getCantidad();
            if (cantidad < 1 || cantidad == 1) {
                cantidadProductosRenglonFacturaConIVA = cantidad;
            } else if ((cantidad % 1 != 0) || (renglon.getCantidad() % 2) == 0) {
                cantidadProductosRenglonFacturaConIVA = renglon.getCantidad() / 2;
            } else if ((renglon.getCantidad() % 2) != 0) {
                cantidadProductosRenglonFacturaConIVA = Math.ceil(renglon.getCantidad() / 2);
            }
            RenglonFactura nuevoRenglonConIVA = this.calcularRenglon(facturaConIVA.getTipoComprobante(), Movimiento.VENTA, cantidadProductosRenglonFacturaConIVA, renglon.getId_ProductoItem(), renglon.getDescuento_porcentaje());
            renglonesConIVA.add(nuevoRenglonConIVA);
            renglonMarcado++;
            numeroDeRenglon++;
        } else {
            numeroDeRenglon++;
            RenglonFactura nuevoRenglonConIVA = this.calcularRenglon(facturaConIVA.getTipoComprobante(), Movimiento.VENTA, renglon.getCantidad(), renglon.getId_ProductoItem(), renglon.getDescuento_porcentaje());
            renglonesConIVA.add(nuevoRenglonConIVA);
        }
    }
    facturaConIVA.setRenglones(renglonesConIVA);
    return facturaConIVA;
}
Also used : ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura)

Example 9 with RenglonFactura

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

the class FacturaServiceImpl method agregarRenglonesAFacturaSinIVA.

private FacturaVenta agregarRenglonesAFacturaSinIVA(FacturaVenta facturaSinIVA, int[] indices, List<RenglonFactura> renglones) {
    List<RenglonFactura> renglonesSinIVA = new ArrayList<>();
    double cantidadProductosRenglonFacturaSinIVA = 0;
    int renglonMarcado = 0;
    int numeroDeRenglon = 0;
    for (RenglonFactura renglon : renglones) {
        if (numeroDeRenglon == indices[renglonMarcado]) {
            double cantidad = renglon.getCantidad();
            if (cantidad >= 1) {
                if ((cantidad % 1 != 0) || (cantidad % 2) == 0) {
                    cantidadProductosRenglonFacturaSinIVA = cantidad / 2;
                } else if ((cantidad % 2) != 0) {
                    cantidadProductosRenglonFacturaSinIVA = cantidad - (Math.ceil(cantidad / 2));
                }
            } else {
                cantidadProductosRenglonFacturaSinIVA = 0;
            }
            RenglonFactura nuevoRenglonSinIVA = this.calcularRenglon(TipoDeComprobante.FACTURA_X, Movimiento.VENTA, cantidadProductosRenglonFacturaSinIVA, renglon.getId_ProductoItem(), renglon.getDescuento_porcentaje());
            if (nuevoRenglonSinIVA.getCantidad() != 0) {
                renglonesSinIVA.add(nuevoRenglonSinIVA);
            }
            numeroDeRenglon++;
            renglonMarcado++;
        } else {
            numeroDeRenglon++;
        }
    }
    facturaSinIVA.setRenglones(renglonesSinIVA);
    return facturaSinIVA;
}
Also used : ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura)

Example 10 with RenglonFactura

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

the class FacturaServiceImpl method procesarFacturaConIVA.

private FacturaVenta procesarFacturaConIVA(FacturaVenta facturaADividir, FacturaVenta facturaConIVA) {
    int size = facturaConIVA.getRenglones().size();
    double[] importes = new double[size];
    double[] cantidades = new double[size];
    double[] ivaPorcentajeRenglones = new double[size];
    double[] ivaNetoRenglones = new double[size];
    int indice = 0;
    List<RenglonFactura> listRenglonesConIVA = new ArrayList<>(facturaConIVA.getRenglones());
    facturaConIVA.setFecha(facturaADividir.getFecha());
    facturaConIVA.setTipoComprobante(facturaADividir.getTipoComprobante());
    facturaConIVA.setFechaVencimiento(facturaADividir.getFechaVencimiento());
    facturaConIVA.setTransportista(facturaADividir.getTransportista());
    facturaConIVA.setRenglones(listRenglonesConIVA);
    for (RenglonFactura renglon : facturaConIVA.getRenglones()) {
        importes[indice] = renglon.getImporte();
        cantidades[indice] = renglon.getCantidad();
        ivaPorcentajeRenglones[indice] = renglon.getIva_porcentaje();
        ivaNetoRenglones[indice] = renglon.getIva_neto();
        indice++;
    }
    facturaConIVA.setSubTotal(this.calcularSubTotal(importes));
    facturaConIVA.setDescuento_neto(this.calcularDescuentoNeto(facturaConIVA.getSubTotal(), facturaConIVA.getDescuento_porcentaje()));
    facturaConIVA.setRecargo_neto(this.calcularRecargoNeto(facturaConIVA.getSubTotal(), facturaConIVA.getRecargo_porcentaje()));
    facturaConIVA.setIva_105_neto(this.calcularIvaNetoFactura(facturaConIVA.getTipoComprobante(), cantidades, ivaPorcentajeRenglones, ivaNetoRenglones, 10.5, facturaADividir.getDescuento_porcentaje(), facturaADividir.getRecargo_porcentaje()));
    facturaConIVA.setIva_21_neto(this.calcularIvaNetoFactura(facturaConIVA.getTipoComprobante(), cantidades, ivaPorcentajeRenglones, ivaNetoRenglones, 21, facturaADividir.getDescuento_porcentaje(), facturaADividir.getRecargo_porcentaje()));
    facturaConIVA.setSubTotal_bruto(this.calcularSubTotalBruto(facturaConIVA.getTipoComprobante(), facturaConIVA.getSubTotal(), facturaConIVA.getRecargo_neto(), facturaConIVA.getDescuento_neto(), facturaConIVA.getIva_105_neto(), facturaConIVA.getIva_21_neto()));
    facturaConIVA.setTotal(this.calcularTotal(facturaConIVA.getSubTotal_bruto(), facturaConIVA.getIva_105_neto(), facturaConIVA.getIva_21_neto()));
    facturaConIVA.setObservaciones(facturaADividir.getObservaciones());
    facturaConIVA.setPagada(facturaADividir.isPagada());
    facturaConIVA.setEmpresa(facturaADividir.getEmpresa());
    facturaConIVA.setEliminada(facturaADividir.isEliminada());
    return facturaConIVA;
}
Also used : ArrayList(java.util.ArrayList) RenglonFactura(sic.modelo.RenglonFactura)

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