Commit 53605981 by Riku Silvola

Merge branch 'master' of codecrew.fi:bortal

2 parents 3a6fd459 19c1ff88
......@@ -75,5 +75,10 @@ public class FoodWaveBean implements FoodWaveBeanLocal {
public FoodWaveTemplate findTemplate(Integer templateId) {
return fwtFacade.find(templateId);
}
@Override
public List<FoodWave> getEventFoodWaves() {
return foodWaveFacade.getEventFoodWaves();
}
}
......@@ -21,24 +21,28 @@ import fi.insomnia.bortal.model.OrgRole_;
public class FoodWaveFacade extends IntegerPkGenericFacade<FoodWave> {
@EJB
EventBeanLocal eventBean;
public FoodWaveFacade() {
super(FoodWave.class);
}
public List<FoodWave> getEventFoodWaves() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<FoodWave> cq = cb.createQuery(FoodWave.class);
Root<FoodWave> root = cq.from(FoodWave.class);
cq.where( cb.equal(root.get(FoodWave_.template).get(FoodWaveTemplate_.event), eventBean.getCurrentEvent()));
return getEm().createQuery(cq).getResultList();
}
public List<FoodWave> getOpenFoodWaves() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<FoodWave> cq = cb.createQuery(FoodWave.class);
Root<FoodWave> root = cq.from(FoodWave.class);
cq.where(cb.greaterThan(root.get(FoodWave_.time), Calendar.getInstance()),
cb.isFalse(root.get(FoodWave_.closed)),
cb.equal(root.get(FoodWave_.template).get(FoodWaveTemplate_.event), eventBean.getCurrentEvent())
);
cq.where(cb.greaterThan(root.get(FoodWave_.time), Calendar.getInstance()), cb.isFalse(root.get(FoodWave_.closed)), cb.equal(root.get(FoodWave_.template).get(FoodWaveTemplate_.event), eventBean.getCurrentEvent()));
return getEm().createQuery(cq).getResultList();
}
......
......@@ -25,4 +25,6 @@ public interface FoodWaveBeanLocal {
public FoodWave findFoodwave(Integer foodwaveId);
public FoodWave merge(FoodWave foodWave);
public List<FoodWave> getEventFoodWaves();
}
......@@ -50,6 +50,9 @@ public class FoodWave extends GenericEntity {
@OneToMany(mappedBy = "foodWave")
private List<AccountEvent> accountEvents;
@OneToMany(mappedBy = "foodwave")
private List<BillLine> billLines;
@ManyToOne
@JoinColumn(name = "template_id", referencedColumnName = "id", nullable = false)
private FoodWaveTemplate template;
......@@ -144,10 +147,30 @@ public class FoodWave extends GenericEntity {
return true;
}
public List<BillLine> getBillLines() {
return billLines;
}
public Integer getMaximumFoods() {
return maximumFoods;
}
public void setBillLines(List<BillLine> billLines) {
this.billLines = billLines;
}
public int getReservedCount() {
int retval = 0;
if (getAccountEvents() != null) {
retval += getAccountEvents().size();
}
if (getBillLines() != null) {
retval += getBillLines().size();
}
return retval;
}
public void setMaximumFoods(Integer maximumFoods) {
this.maximumFoods = maximumFoods;
}
......
......@@ -9,8 +9,8 @@
</session-config>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
<!--<param-value>Development</param-value>-->
<!-- <param-value>Production</param-value> -->
<param-value>Development</param-value>
</context-param>
<context-param>
......
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:foodwave="http://java.sun.com/jsf/composite/cditools/foodwave" xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<f:event type="preRenderView" listener="#{foodWaveView.initFoodwaveManagerList}" />
</f:metadata>
<ui:define name="title">
<h1>fixme</h1>
</ui:define>
<ui:define name="content">
<h:dataTable columnClasses="nowrap,numalign,numalign,nowrap,numalign" styleClass="bordertable" value="#{foodWaveView.foodWaves}" var="foodwave">
<h:column >
<f:facet name="header">
<h:outputLabel id="name" value="${i18n['foodWave.name']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodwave.name}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.template.name']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodwave.template.name}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.orders']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodwave.accountEvents.size()}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.unconfirmedOrders']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodwave.billLines.size()}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.totalReserved']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodwave.reservedCount}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.time']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders"
value="#{foodwave.time.time}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
</h:dataTable>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:foodwave="http://java.sun.com/jsf/composite/cditools/foodwave" xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<f:event type="preRenderView" listener="#{foodWaveView.initFoodwaveBillLineList}" />
<f:event type="preRenderView" listener="#{foodWaveView.initFoodwaveAccountEventList}" />
</f:metadata>
<ui:define name="title">
<h1>fixme</h1>
</ui:define>
<ui:define name="content">
<h1><h:outputLabel id="name" value="${i18n['foodWave.billLines']}" /></h1>
<h:dataTable columnClasses="nowrap,numalign,numalign,nowrap,numalign" styleClass="bordertable" value="#{foodWaveView.billLines}" var="billLine">
<h:column >
<f:facet name="header">
<h:outputLabel id="name" value="${i18n['billLine.name']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{billLine.name}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['billLine.quantiny']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders"
value="#{foodwave.template.name}">
<f:param name="foodwaveid" value="#{billLine.quantiny}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['billLine.unitprice']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{billLine.unitprice}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.unconfirmedOrders']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodwave.billLines.size()}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.totalReserved']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodwave.reservedCount}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.time']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders"
value="#{foodwave.time.time}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column>
</h:dataTable>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
......@@ -45,8 +45,7 @@ public class FoodWaveView extends GenericCDIView {
public void initTemplateList() {
if (super.requirePermissions(ShopPermission.LIST_USERPRODUCTS)) {
setTemplates(new ListDataModel<FoodWaveTemplate>(
foodWaveBean.getTemplates()));
setTemplates(new ListDataModel<FoodWaveTemplate>(foodWaveBean.getTemplates()));
super.beginConversation();
}
......@@ -99,8 +98,11 @@ public class FoodWaveView extends GenericCDIView {
}
public void initUserFoodWaveList() {
this.foodWaves = new ListDataModel<FoodWave>(
foodWaveBean.getOpenFoodWaves());
this.foodWaves = new ListDataModel<FoodWave>(foodWaveBean.getOpenFoodWaves());
}
public void initFoodwaveManagerList() {
this.foodWaves = new ListDataModel<FoodWave>(foodWaveBean.getEventFoodWaves());
}
public String editTemplate() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!