Commit 9c64ffe0 by Tuukka Kivilahti

shopFix, vähän purkkaa koska criteriaQuery ei olllu ystävä

1 parent 2b4a8898
......@@ -378,7 +378,7 @@ public class ProductBean implements ProductBeanLocal {
@Override
@RolesAllowed(ShopPermission.S_MANAGE_PRODUCTS)
public List<Product> findForStaffshop() {
return productFacade.findAll();
return productFacade.findProductsWithNoFlag(ProductFlag.HIDE_FROM_INFOSHOP);
}
@RolesAllowed(ShopPermission.S_MANAGE_PRODUCTS)
......
......@@ -19,6 +19,7 @@
package fi.codecrew.moya.facade;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
......@@ -57,6 +58,8 @@ public class ProductFacade extends IntegerPkGenericFacade<Product> {
return getEm().createQuery(cq).getResultList();
}
public Product getCreditProduct() {
throw new RuntimeException();
......@@ -88,6 +91,35 @@ public class ProductFacade extends IntegerPkGenericFacade<Product> {
return getEm().createQuery(cq).getResultList();
}
public List<Product> findProductsWithNoFlag(ProductFlag... productFlags) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Product> cq = cb.createQuery(Product.class);
Root<Product> root = cq.from(Product.class);
cq.where(cb.equal(root.get(Product_.event), eventbean.getCurrentEvent())
// kettu, tehään käsin, katotaan toi joskus, saa korjata criteriabuilderiin.
// ,cb.or(cb.not(root.get(Product_.productFlags).in(Arrays.asList(productFlags))), cb.isEmpty(root.get(Product_.productFlags)))
);
cq.orderBy(cb.asc(root.get(Product_.sort)));
List<Product> retList = new ArrayList<Product>();
productList: for(Product product : getEm().createQuery(cq).getResultList()) {
if(product.getProductFlags() != null && product.getProductFlags().size() != 0) {
for(ProductFlag flag : productFlags ) {
if(product.getProductFlags().contains(flag))
continue productList;
}
}
retList.add(product);
}
return retList;
}
public Product findProductByBarcode(String barcode) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!