Commit 38dcab89 by Tuomas Riihimäki

Merge branch 'master' of codecrew.fi:bortal

Conflicts:
	code/LanBortalWeb/src/fi/insomnia/bortal/resources/i18n_en.properties
	code/LanBortalWeb/src/fi/insomnia/bortal/resources/i18n_fi.properties
2 parents abb72c29 6fc0abed
...@@ -126,6 +126,14 @@ public class FoodWave extends GenericEntity { ...@@ -126,6 +126,14 @@ public class FoodWave extends GenericEntity {
} }
public boolean isFull() { public boolean isFull() {
if(getMaximumFoods() <= 0) {
return false;
}
if(getReservedCount() >= getMaximumFoods()) {
return true;
}
return false; return false;
} }
...@@ -174,6 +182,12 @@ public class FoodWave extends GenericEntity { ...@@ -174,6 +182,12 @@ public class FoodWave extends GenericEntity {
} }
public Integer getMaximumFoods() { public Integer getMaximumFoods() {
if(maximumFoods == null) {
return 0;
}
return maximumFoods; return maximumFoods;
} }
...@@ -216,6 +230,18 @@ public class FoodWave extends GenericEntity { ...@@ -216,6 +230,18 @@ public class FoodWave extends GenericEntity {
return ret; return ret;
} }
public boolean isDelivered() {
if (getAccountEvents() != null && getReservedCount() != 0) {
for(AccountEvent ae : getAccountEvents()) {
if (ae.isEventDelivered()) {
return true;
}
}
return false;
}
return true;
}
} }
......
...@@ -13,9 +13,94 @@ ...@@ -13,9 +13,94 @@
</ui:define> </ui:define>
<ui:define name="content"> <ui:define name="content">
<h:form> <h:form>
<p:dataTable styleClass="bordertable" value="#{foodWaveView.foodWaves}" sortBy="#{foodwave.time}" sortOrder="ascending" var="foodwave" editable="true" > <p:dataTable styleClass="bordertable" value="#{foodWaveView.foodWaves}" sortBy="#{foodwave.time}" sortOrder="ascending" var="foodwave" editable="true" rowStyleClass="#{not foodwave.isOrderable() ? foodwave.isDelivered() ? 'hidden' : 'closed' : null}">
<p:ajax event="rowEdit" listener="#{foodWaveView.onEditFoodWave}" />
<f:facet name="header">
<h:outputLabel value="#{i18n['foodWave.activeFoodWaves']}" />
</f:facet>
<p:column sortBy="#{foodwave.time}">
<f:facet name="header">
<h:outputText value="${i18n['foodWave.time']}" />
</f:facet>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{foodwave.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</f:facet>
<f:facet name="input">
<p:calendar id="startTime" value="#{foodwave.time}" pattern="#{sessionHandler.datetimeFormat}" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.template.name']}" />
</f:facet>
<h:outputText value="#{foodwave.template.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputLabel id="name" value="${i18n['foodWave.name']}" />
</f:facet>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{foodwave.name}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{foodwave.name}" style="width:100%" required="true" requiredMessage="Name required" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column styleClass="text-center">
<f:facet name="header">
<h:outputText value="${i18n['foodWave.paid']}" />
</f:facet>
<h:outputText value="#{foodwave.orderedCount}" />
</p:column>
<p:column styleClass="text-center">
<f:facet name="header">
<h:outputText value="${i18n['foodWave.unconfirmedOrders']}" />
</f:facet>
<h:outputText value="#{foodwave.unpaidCount}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.totalReserved']}" />
</f:facet>
<h:outputText value="#{foodwave.reservedCount}" /> / <h:outputText value="#{foodwave.maximumFoods}" />
</p:column>
<p:column>
<h:link outcome="/foodmanager/listOrders" value="#{i18n['foodWave.show']}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</p:column>
<p:column>
<p:rowEditor />
</p:column>
<!--
<p:column>
<h:outputText value="#{foodwave.closed.toString()}" />
<p:commandButton rendered="#{foodwave.closed}"
value="#{i18n['foodWave.openNow']}"
action="#{foodwave.toggleClosed}" />
<p:commandButton rendered="#{not foodwave.closed}"
value="#{i18n['foodWave.closeNow']}"
action="#{foodwave.toggleClosed}" />
</p:column> -->
</p:dataTable>
</h:form>
<br/>
<br/>
<h:form>
<p:dataTable styleClass="bordertable" value="#{foodWaveView.foodWaves}" sortBy="#{foodwave.time}" sortOrder="ascending" var="foodwave" editable="true" rowStyleClass="#{not foodwave.isDelivered() ? 'hidden' : 'closed'}">
<!-- rowStyleClass="#{foodWave.closed ? 'old' : null} --> <!-- rowStyleClass="#{foodWave.closed ? 'old' : null} -->
<p:ajax event="rowEdit" listener="#{foodWaveView.onEditFoodWave}"/> <p:ajax event="rowEdit" listener="#{foodWaveView.onEditFoodWave}" />
<f:facet name="header">
<h:outputLabel value="#{i18n['foodWave.deliveredFoodWaves']}" />
</f:facet>
<p:column sortBy="#{foodwave.time}"> <p:column sortBy="#{foodwave.time}">
<f:facet name="header"> <f:facet name="header">
......
...@@ -15,18 +15,20 @@ ...@@ -15,18 +15,20 @@
<!-- <h:outputScript target="head" library="script" name="shopscript.js" /> --> <!-- <h:outputScript target="head" library="script" name="shopscript.js" /> -->
<h:outputScript library="primefaces" name="jquery/jquery.js" /> <h:outputScript library="primefaces" name="jquery/jquery.js" />
<p:dataTable columnClasses="nowrap,numalign,numalign,nowrap,numalign" styleClass="bordertable" value="#{foodWaveView.foodWaves}" var="foodwave"> <p:dataTable columnClasses="nowrap,numalign,numalign,nowrap,numalign" styleClass="bordertable" value="#{foodWaveView.foodWaves}" var="foodwave" sortBy="#{foodwave.time.time}" rowStyleClass="#{foodwave.isFull() ? 'closed' : null}">
<p:column> <p:column sortBy="#{i18n['foodWave.name']}">
<f:facet name="header"> <f:facet name="header">
<h:outputLabel id="name" value="${i18n['foodWave.name']}" /> <h:outputLabel id="name" value="#{i18n['foodWave.name']}" />
</f:facet> </f:facet>
<h:link outcome="#{cc.attrs.outcome}" value="#{foodwave.name}"> <h:link rendered="#{not foodwave.isFull()}" outcome="#{cc.attrs.outcome}" value="#{foodwave.name}">
<f:param name="foodwaveid" value="#{foodwave.id}" /> <f:param name="foodwaveid" value="#{foodwave.id}" />
<f:param name="userid" value="#{userView.user.user.id}" /> <f:param name="userid" value="#{userView.user.user.id}" />
</h:link> </h:link>
<h:outputText rendered="#{foodwave.isFull()}" value="#{foodwave.name}" />
</p:column> </p:column>
<p:column> <p:column sortBy="#{foodwave.template.name}">
<f:facet name="header"> <f:facet name="header">
<h:outputText value="Menu" /> <h:outputText value="Menu" />
</f:facet> </f:facet>
...@@ -34,13 +36,22 @@ ...@@ -34,13 +36,22 @@
<f:param name="foodwaveid" value="#{foodwave.id}" /> <f:param name="foodwaveid" value="#{foodwave.id}" />
</h:outputText> </h:outputText>
</p:column> </p:column>
<p:column> <p:column sortBy="#{foodwave.template.description}">
<f:facet name="header"> <f:facet name="header">
<h:outputText value="${i18n['foodWave.description']}" /> <h:outputText value="${i18n['foodWave.description']}" />
</f:facet> </f:facet>
<h:outputText id="description" value="#{foodwave.template.description}" /> <h:outputText id="description" value="#{foodwave.template.description}" />
</p:column> </p:column>
<p:column>
<p:column sortBy="#{foodwave.reservedCount}">
<f:facet name="header">
<h:outputText value="${i18n['foodWave.totalReserved']}" />
</f:facet>
<h:outputText value="#{foodwave.reservedCount}" /> / <h:outputText value="#{foodwave.maximumFoods}" />
</p:column>
<p:column sortBy="#{foodwave.time.time}">
<f:facet name="header"> <f:facet name="header">
<h:outputText value="${i18n['foodWave.time']}" /> <h:outputText value="${i18n['foodWave.time']}" />
</f:facet> </f:facet>
......
...@@ -20,3 +20,11 @@ display: none; ...@@ -20,3 +20,11 @@ display: none;
.text-center { .text-center {
text-align: center; text-align: center;
} }
.closed {
background-color: #eee;
}
.hidden {
display: none;
}
\ No newline at end of file
...@@ -201,7 +201,9 @@ feedback.thanks = Thanks ...@@ -201,7 +201,9 @@ feedback.thanks = Thanks
food = Food food = Food
foodWave.accountevents = Accountevents foodWave.accountevents = Accountevents
foodWave.activeFoodWaves = Active Foodwaves
foodWave.billLines = Pending Online Payments foodWave.billLines = Pending Online Payments
foodWave.deliveredFoodWaves = Delivered Foodwaves
foodWave.description = Description foodWave.description = Description
foodWave.list = Active Foodwaves foodWave.list = Active Foodwaves
foodWave.name = Foodwave foodWave.name = Foodwave
......
...@@ -199,9 +199,11 @@ feedback.thanks = Kiiiiitooooos! :) ...@@ -199,9 +199,11 @@ feedback.thanks = Kiiiiitooooos! :)
food = Ruoka food = Ruoka
foodWave.accountevents = Maksetut tilaukset foodWave.accountevents = Maksetut tilaukset
foodWave.activeFoodWaves = Aktiiviset Ruokatilaukset
foodWave.billLines = Maksamattomat Verkkomaksut foodWave.billLines = Maksamattomat Verkkomaksut
foodWave.deliveredFoodWaves = Toimitetut Ruokatilaukset
foodWave.description = Kuvaus foodWave.description = Kuvaus
foodWave.list = Aktiviset ruokatilaukset foodWave.list = Ruokatilaukset
foodWave.name = Ruokatilaus foodWave.name = Ruokatilaus
foodWave.orders = Tilausten M\u00E4\u00E4r\u00E4 foodWave.orders = Tilausten M\u00E4\u00E4r\u00E4
foodWave.paid = Maksettuja foodWave.paid = Maksettuja
......
...@@ -144,6 +144,10 @@ public class FoodWaveFoodView extends GenericCDIView { ...@@ -144,6 +144,10 @@ public class FoodWaveFoodView extends GenericCDIView {
billBean.createBill(bill); billBean.createBill(bill);
// TODO: do this right way
eventBean.flushCache();
return bill; return bill;
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!