Commit f99c7b26 by Tuomas Riihimäki

Printed card filtering and handling fixes.

 Set all but biggest  cards as disabled
 Get from filter only enabled cards.
1 parent ffaa168e
......@@ -122,16 +122,24 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
List<PrintedCard> myCards = printedcardfacade.getCards(user);
PrintedCard biggestCard = null;
PrintedCard smallestCard = null;
// PrintedCard smallestCard = null;
for (PrintedCard card : myCards) {
logger.info("Checking card {}", card);
// logger.info("Checking card {}", card);
if (card.getEnabled()) {
if (biggestCard == null || biggestCard.getTemplate().getPower() < card.getTemplate().getPower()) {
biggestCard = card;
// The biggest card should be the only one enabled.
if (biggestCard != null) {
biggestCard.setEnabled(false);
}
if (smallestCard == null || smallestCard.getTemplate().getPower() > card.getTemplate().getPower()) {
smallestCard = card;
biggestCard = card;
biggestCard.setEnabled(true);
}
// if (smallestCard == null ||
// smallestCard.getTemplate().getPower() >
// card.getTemplate().getPower()) {
// smallestCard = card;
// }
}
}
......
......@@ -13,7 +13,6 @@ import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.enums.CardState;
......@@ -37,7 +36,6 @@ public class PrintedCardFacade extends IntegerPkGenericFacade<PrintedCard> {
@EJB
private EventBeanLocal eventbean;
public PrintedCard findByCode(String code) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
......@@ -49,7 +47,7 @@ public class PrintedCardFacade extends IntegerPkGenericFacade<PrintedCard> {
CardCode cardcode = getSingleNullableResult(getEm().createQuery(cq));
return (cardcode == null)?null : cardcode.getPrintedCard();
return (cardcode == null) ? null : cardcode.getPrintedCard();
}
public List<PrintedCard> findAllEnabled(LanEvent currentEvent) {
......@@ -71,6 +69,7 @@ public class PrintedCardFacade extends IntegerPkGenericFacade<PrintedCard> {
cq.where(cb.equal(root.get(PrintedCard_.user), user),
cb.equal(root.get(PrintedCard_.event), eventbean.getCurrentEvent()));
cq.orderBy(cb.asc(root.get(PrintedCard_.template).get(CardTemplate_.power)));
return getEm().createQuery(cq).getResultList();
}
......@@ -113,7 +112,7 @@ public class PrintedCardFacade extends IntegerPkGenericFacade<PrintedCard> {
List<PrintedCard> pcl = getEm().createQuery(cq).getResultList();
HashMap<Integer, PrintedCard> pch = new HashMap<>();
for(PrintedCard pc : pcl) {
for (PrintedCard pc : pcl) {
pch.put(pc.getUser().getId(), pc);
}
......
......@@ -38,11 +38,10 @@ public class EventUserCardStateFilter implements FacadeCallback<EventUser> {
logger.debug("Requiring states {}", states);
Path<Integer> rootId = root.get(EventUser_.id);
Subquery<Integer> subq = cq.subquery(Integer.class);
Root<PrintedCard> subroot = subq.from(PrintedCard.class);
subq.select(subroot.join(PrintedCard_.user).get(EventUser_.id));
subq.where(subroot.get(PrintedCard_.cardState).in(states));
subq.where(subroot.get(PrintedCard_.cardState).in(states), cb.isTrue(subroot.get(PrintedCard_.enabled)));
predicates.add(rootId.in(subq));
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!