Search in sources :

Example 1 with Producto

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

the class ProductoServiceImpl method eliminarMultiplesProductos.

@Override
@Transactional
public void eliminarMultiplesProductos(long[] idProducto) {
    if (Validator.tieneDuplicados(idProducto)) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_ids_duplicados"));
    }
    List<Producto> productos = new ArrayList<>();
    for (Long i : idProducto) {
        Producto producto = this.getProductoPorId(i);
        if (producto == null) {
            throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_producto_no_existente"));
        }
        producto.setEliminado(true);
        productos.add(producto);
    }
    productoRepository.save(productos);
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) QProducto(sic.modelo.QProducto) Producto(sic.modelo.Producto) ArrayList(java.util.ArrayList) EntityNotFoundException(javax.persistence.EntityNotFoundException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 2 with Producto

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

the class ProductoServiceImpl method modificarMultiplesProductos.

@Override
@Transactional
public List<Producto> modificarMultiplesProductos(long[] idProducto, boolean checkPrecios, Double gananciaNeto, Double gananciaPorcentaje, Double impuestoInternoNeto, Double impuestoInternoPorcentaje, Double IVANeto, Double IVAPorcentaje, Double precioCosto, Double precioLista, Double precioVentaPublico, boolean checkMedida, Medida medida, boolean checkRubro, Rubro rubro, boolean checkProveedor, Proveedor proveedor) {
    if (Validator.tieneDuplicados(idProducto)) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_error_ids_duplicados"));
    }
    List<Producto> productos = new ArrayList<>();
    for (long i : idProducto) {
        productos.add(this.getProductoPorId(i));
    }
    //Requeridos
    if (checkMedida == true && medida == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_producto_vacio_medida"));
    }
    if (checkRubro == true && rubro == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_producto_vacio_rubro"));
    }
    if (checkProveedor == true && proveedor == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_producto_vacio_proveedor"));
    }
    if (checkPrecios == true) {
        productos.forEach((producto) -> {
            producto.setPrecioCosto(precioCosto);
            producto.setGanancia_porcentaje(gananciaPorcentaje);
            producto.setGanancia_neto(gananciaNeto);
            producto.setPrecioVentaPublico(precioVentaPublico);
            producto.setIva_porcentaje(IVAPorcentaje);
            producto.setIva_neto(IVANeto);
            producto.setImpuestoInterno_porcentaje(impuestoInternoPorcentaje);
            producto.setImpuestoInterno_neto(impuestoInternoNeto);
            producto.setPrecioLista(precioLista);
        });
    }
    if (checkMedida == true) {
        productos.stream().forEach((producto) -> {
            producto.setMedida(medida);
        });
    }
    if (checkRubro == true) {
        productos.stream().forEach((producto) -> {
            producto.setRubro(rubro);
        });
    }
    if (checkProveedor == true) {
        productos.stream().forEach((producto) -> {
            producto.setProveedor(proveedor);
        });
    }
    //modifica el campo fecha ultima modificacion
    if (checkPrecios == true || checkMedida == true || checkRubro == true || checkProveedor == true) {
        Calendar fechaHora = new GregorianCalendar();
        Date fechaHoraActual = fechaHora.getTime();
        productos.stream().forEach((producto) -> {
            producto.setFechaUltimaModificacion(fechaHoraActual);
        });
    }
    productoRepository.save(productos);
    return productos;
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) QProducto(sic.modelo.QProducto) Producto(sic.modelo.Producto) Calendar(java.util.Calendar) GregorianCalendar(java.util.GregorianCalendar) ArrayList(java.util.ArrayList) GregorianCalendar(java.util.GregorianCalendar) Date(java.util.Date) Transactional(org.springframework.transaction.annotation.Transactional)

Example 3 with Producto

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

the class FacturaServiceImplTest method shouldCalcularPrecioUnitarioWhenEsUnaCompraConFacturaA.

@Test
public void shouldCalcularPrecioUnitarioWhenEsUnaCompraConFacturaA() {
    Producto producto = new ProductoBuilder().withPrecioCosto(100).withPrecioVentaPublico(121).withImpuestoInterno_neto(0.0).withIva_porcentaje(21).build();
    double resultadoEsperado = 100;
    double resultadoObtenido = facturaService.calcularPrecioUnitario(Movimiento.COMPRA, TipoDeComprobante.FACTURA_A, producto);
    assertEquals(resultadoEsperado, resultadoObtenido, 0);
}
Also used : Producto(sic.modelo.Producto) ProductoBuilder(sic.builder.ProductoBuilder) Test(org.junit.Test)

Example 4 with Producto

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

the class FacturaServiceImplTest method shouldCalcularPrecioUnitarioWhenEsUnaCompraConFacturaC.

@Test
public void shouldCalcularPrecioUnitarioWhenEsUnaCompraConFacturaC() {
    Producto producto = new ProductoBuilder().withPrecioCosto(100).withPrecioVentaPublico(121).withImpuestoInterno_neto(0.0).withIva_porcentaje(21).build();
    double resultadoEsperado = 121;
    double resultadoObtenido = facturaService.calcularPrecioUnitario(Movimiento.COMPRA, TipoDeComprobante.FACTURA_C, producto);
    assertEquals(resultadoEsperado, resultadoObtenido, 0);
}
Also used : Producto(sic.modelo.Producto) ProductoBuilder(sic.builder.ProductoBuilder) Test(org.junit.Test)

Example 5 with Producto

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

the class FacturaServiceImplTest method shouldCalcularPrecioUnitarioWhenEsUnaCompraConFacturaB.

@Test
public void shouldCalcularPrecioUnitarioWhenEsUnaCompraConFacturaB() {
    Producto producto = new ProductoBuilder().withPrecioCosto(100).withPrecioVentaPublico(121).withImpuestoInterno_neto(0.0).withIva_porcentaje(21).build();
    double resultadoEsperado = 121;
    double resultadoObtenido = facturaService.calcularPrecioUnitario(Movimiento.COMPRA, TipoDeComprobante.FACTURA_B, producto);
    assertEquals(resultadoEsperado, resultadoObtenido, 0);
}
Also used : Producto(sic.modelo.Producto) ProductoBuilder(sic.builder.ProductoBuilder) Test(org.junit.Test)

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