Search in sources :

Example 21 with Producto

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

the class FacturaServiceImplTest method shouldCalcularPrecioUnitarioWhenEsUnaVentaConFacturaB.

@Test
public void shouldCalcularPrecioUnitarioWhenEsUnaVentaConFacturaB() {
    Producto producto = new ProductoBuilder().withPrecioCosto(100.00).withGanancia_neto(100).withIva_neto(42).withPrecioVentaPublico(200).withPrecioLista(242).withImpuestoInterno_neto(0.0).withIva_porcentaje(21).build();
    double resultadoEsperado = 242;
    double resultadoObtenido = facturaService.calcularPrecioUnitario(Movimiento.VENTA, TipoDeComprobante.FACTURA_B, producto);
    assertEquals(resultadoEsperado, resultadoObtenido, 0);
}
Also used : Producto(sic.modelo.Producto) ProductoBuilder(sic.builder.ProductoBuilder) Test(org.junit.Test)

Example 22 with Producto

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

the class FacturaServiceImpl method calcularRenglon.

@Override
public RenglonFactura calcularRenglon(TipoDeComprobante tipo, Movimiento movimiento, double cantidad, Long idProducto, double descuento_porcentaje) {
    Producto producto = productoService.getProductoPorId(idProducto);
    RenglonFactura nuevoRenglon = new RenglonFactura();
    nuevoRenglon.setId_ProductoItem(producto.getId_Producto());
    nuevoRenglon.setCodigoItem(producto.getCodigo());
    nuevoRenglon.setDescripcionItem(producto.getDescripcion());
    nuevoRenglon.setMedidaItem(producto.getMedida().getNombre());
    nuevoRenglon.setCantidad(cantidad);
    nuevoRenglon.setPrecioUnitario(this.calcularPrecioUnitario(movimiento, tipo, producto));
    nuevoRenglon.setDescuento_porcentaje(descuento_porcentaje);
    nuevoRenglon.setDescuento_neto(this.calcularDescuentoNeto(nuevoRenglon.getPrecioUnitario(), descuento_porcentaje));
    nuevoRenglon.setIva_porcentaje(producto.getIva_porcentaje());
    if (tipo.equals(TipoDeComprobante.FACTURA_Y)) {
        nuevoRenglon.setIva_porcentaje(producto.getIva_porcentaje() / 2);
    }
    nuevoRenglon.setIva_neto(this.calcularIVANetoRenglon(movimiento, tipo, producto, nuevoRenglon.getDescuento_porcentaje()));
    nuevoRenglon.setImpuesto_porcentaje(producto.getImpuestoInterno_porcentaje());
    nuevoRenglon.setImpuesto_neto(this.calcularImpInternoNeto(movimiento, producto, nuevoRenglon.getDescuento_neto()));
    nuevoRenglon.setGanancia_porcentaje(producto.getGanancia_porcentaje());
    nuevoRenglon.setGanancia_neto(producto.getGanancia_neto());
    nuevoRenglon.setImporte(this.calcularImporte(cantidad, nuevoRenglon.getPrecioUnitario(), nuevoRenglon.getDescuento_neto()));
    return nuevoRenglon;
}
Also used : Producto(sic.modelo.Producto) RenglonFactura(sic.modelo.RenglonFactura)

Example 23 with Producto

use of sic.modelo.Producto 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 24 with Producto

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

the class DetalleProductoGUI method btn_GuardarActionPerformed.

private void btn_GuardarActionPerformed(java.awt.event.ActionEvent evt) {
    //GEN-FIRST:event_btn_GuardarActionPerformed
    try {
        if (operacion == TipoDeOperacion.ALTA) {
            Producto producto = new Producto();
            producto.setCodigo(txt_Codigo.getText());
            producto.setDescripcion(txt_Descripcion.getText().trim());
            producto.setCantidad(Double.parseDouble(txt_Cantidad.getValue().toString()));
            producto.setCantMinima(Double.parseDouble(txt_CantMinima.getValue().toString()));
            producto.setMedida((Medida) cmb_Medida.getSelectedItem());
            producto.setPrecioCosto(Double.parseDouble(txt_PrecioCosto.getValue().toString()));
            producto.setGanancia_porcentaje(Double.parseDouble(txt_Ganancia_Porcentaje.getValue().toString()));
            producto.setGanancia_neto(Double.parseDouble(txt_Ganancia_Neto.getValue().toString()));
            producto.setPrecioVentaPublico(Double.parseDouble(txt_PVP.getValue().toString()));
            producto.setIva_porcentaje(Double.parseDouble(cmb_IVA_Porcentaje.getSelectedItem().toString()));
            producto.setIva_neto(Double.parseDouble(txt_IVA_Neto.getValue().toString()));
            producto.setPrecioLista(Double.parseDouble(txt_PrecioLista.getValue().toString()));
            producto.setRubro((Rubro) cmb_Rubro.getSelectedItem());
            producto.setIlimitado(chk_Ilimitado.isSelected());
            producto.setFechaUltimaModificacion(new Date());
            producto.setEstanteria(txt_Estanteria.getText().trim());
            producto.setEstante(txt_Estante.getText().trim());
            producto.setProveedor((Proveedor) cmb_Proveedor.getSelectedItem());
            producto.setNota(txt_Nota.getText().trim());
            producto.setFechaAlta(new Date());
            producto.setFechaVencimiento(dc_Vencimiento.getDate());
            producto.setEmpresa(EmpresaActiva.getInstance().getEmpresa());
            RestClient.getRestTemplate().postForObject("/productos", producto, Producto.class);
            LOGGER.warn("El producto " + producto + " se guardó correctamente");
            int respuesta = JOptionPane.showConfirmDialog(this, "El producto se guardó correctamente.\n¿Desea dar de alta otro producto?", "Aviso", JOptionPane.YES_NO_OPTION);
            this.limpiarYRecargarComponentes();
            if (respuesta == JOptionPane.NO_OPTION) {
                this.dispose();
            }
        }
        if (operacion == TipoDeOperacion.ACTUALIZACION) {
            productoModificar.setCodigo(txt_Codigo.getText());
            productoModificar.setDescripcion(txt_Descripcion.getText().trim());
            productoModificar.setCantidad(Double.parseDouble(txt_Cantidad.getValue().toString()));
            productoModificar.setCantMinima(Double.parseDouble(txt_CantMinima.getValue().toString()));
            productoModificar.setMedida((Medida) cmb_Medida.getSelectedItem());
            productoModificar.setCantidad(Double.parseDouble(txt_Cantidad.getValue().toString()));
            productoModificar.setCantMinima(Double.parseDouble(txt_CantMinima.getValue().toString()));
            productoModificar.setMedida((Medida) cmb_Medida.getSelectedItem());
            productoModificar.setPrecioCosto(Double.parseDouble(txt_PrecioCosto.getValue().toString()));
            productoModificar.setGanancia_porcentaje(Double.parseDouble(txt_Ganancia_Porcentaje.getValue().toString()));
            productoModificar.setGanancia_neto(Double.parseDouble(txt_Ganancia_Neto.getValue().toString()));
            productoModificar.setPrecioVentaPublico(Double.parseDouble(txt_PVP.getValue().toString()));
            productoModificar.setIva_porcentaje(Double.parseDouble(cmb_IVA_Porcentaje.getSelectedItem().toString()));
            productoModificar.setIva_neto(Double.parseDouble(txt_IVA_Neto.getValue().toString()));
            productoModificar.setPrecioLista(Double.parseDouble(txt_PrecioLista.getValue().toString()));
            productoModificar.setRubro((Rubro) cmb_Rubro.getSelectedItem());
            productoModificar.setIlimitado(chk_Ilimitado.isSelected());
            productoModificar.setFechaUltimaModificacion(new Date());
            productoModificar.setEstanteria(txt_Estanteria.getText().trim());
            productoModificar.setEstante(txt_Estante.getText().trim());
            productoModificar.setProveedor((Proveedor) cmb_Proveedor.getSelectedItem());
            productoModificar.setNota(txt_Nota.getText().trim());
            productoModificar.setFechaVencimiento(dc_Vencimiento.getDate());
            productoModificar.setEmpresa(EmpresaActiva.getInstance().getEmpresa());
            RestClient.getRestTemplate().put("/productos", productoModificar);
            LOGGER.warn("El producto " + productoModificar + " se modificó correctamente");
            JOptionPane.showMessageDialog(this, "El producto se modificó correctamente.", "Aviso", JOptionPane.INFORMATION_MESSAGE);
            this.dispose();
        }
    } 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) RestClientResponseException(org.springframework.web.client.RestClientResponseException) Date(java.util.Date) ResourceAccessException(org.springframework.web.client.ResourceAccessException)

Example 25 with Producto

use of sic.modelo.Producto 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)

Aggregations

Producto (sic.modelo.Producto)26 Test (org.junit.Test)16 ProductoBuilder (sic.builder.ProductoBuilder)16 RenglonFactura (sic.modelo.RenglonFactura)7 ArrayList (java.util.ArrayList)5 Date (java.util.Date)5 ResourceAccessException (org.springframework.web.client.ResourceAccessException)5 RestClientResponseException (org.springframework.web.client.RestClientResponseException)5 Medida (sic.modelo.Medida)4 ClienteBuilder (sic.builder.ClienteBuilder)3 EmpresaBuilder (sic.builder.EmpresaBuilder)3 TransportistaBuilder (sic.builder.TransportistaBuilder)3 Factura (sic.modelo.Factura)3 FacturaVenta (sic.modelo.FacturaVenta)3 Proveedor (sic.modelo.Proveedor)3 Rubro (sic.modelo.Rubro)3 Usuario (sic.modelo.Usuario)3 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)2 Transactional (org.springframework.transaction.annotation.Transactional)2 CondicionIVABuilder (sic.builder.CondicionIVABuilder)2