Search in sources :

Example 1 with QProducto

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

the class ProductoServiceImpl method buscarProductos.

@Override
public Page<Producto> buscarProductos(BusquedaProductoCriteria criteria) {
    //Empresa
    if (criteria.getEmpresa() == null) {
        throw new EntityNotFoundException(ResourceBundle.getBundle("Mensajes").getString("mensaje_empresa_no_existente"));
    }
    //Rubro
    if (criteria.isBuscarPorRubro() == true && criteria.getRubro() == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_producto_vacio_rubro"));
    }
    //Proveedor
    if (criteria.isBuscarPorProveedor() == true && criteria.getProveedor() == null) {
        throw new BusinessServiceException(ResourceBundle.getBundle("Mensajes").getString("mensaje_producto_vacio_proveedor"));
    }
    QProducto qproducto = QProducto.producto;
    BooleanBuilder builder = new BooleanBuilder();
    builder.and(qproducto.empresa.eq(criteria.getEmpresa()).and(qproducto.eliminado.eq(false)));
    if (criteria.isBuscarPorCodigo() == true && criteria.isBuscarPorDescripcion() == true) {
        builder.and(qproducto.codigo.containsIgnoreCase(criteria.getCodigo()).or(this.buildPredicadoDescripcion(criteria.getDescripcion(), qproducto)));
    } else {
        if (criteria.isBuscarPorCodigo() == true) {
            builder.and(qproducto.codigo.containsIgnoreCase(criteria.getCodigo()));
        }
        if (criteria.isBuscarPorDescripcion() == true) {
            builder.and(this.buildPredicadoDescripcion(criteria.getDescripcion(), qproducto));
        }
    }
    if (criteria.isBuscarPorRubro() == true) {
        builder.and(qproducto.rubro.eq(criteria.getRubro()));
    }
    if (criteria.isBuscarPorProveedor()) {
        builder.and(qproducto.proveedor.eq(criteria.getProveedor()));
    }
    if (criteria.isListarSoloFaltantes() == true) {
        builder.and(qproducto.cantidad.loe(qproducto.cantMinima)).and(qproducto.ilimitado.eq(false));
    }
    return productoRepository.findAll(builder, criteria.getPageable());
}
Also used : BusinessServiceException(sic.service.BusinessServiceException) BooleanBuilder(com.querydsl.core.BooleanBuilder) EntityNotFoundException(javax.persistence.EntityNotFoundException) QProducto(sic.modelo.QProducto)

Aggregations

BooleanBuilder (com.querydsl.core.BooleanBuilder)1 EntityNotFoundException (javax.persistence.EntityNotFoundException)1 QProducto (sic.modelo.QProducto)1 BusinessServiceException (sic.service.BusinessServiceException)1