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());
}
Aggregations