Commit 9cb48f04 by Tuukka Kivilahti

adding deliverable stuff

1 parent dbdee32e
...@@ -607,7 +607,7 @@ public class ProductBean implements ProductBeanLocal { ...@@ -607,7 +607,7 @@ public class ProductBean implements ProductBeanLocal {
e = accounteventfacade.reload(e); e = accounteventfacade.reload(e);
if (e.getDelivered() != null) if (e.getDelivered() != null)
{ {
throw new EJBException("AccountEvent " + e + " already marked paid!"); throw new EJBException("AccountEvent " + e + " already marked delivered!");
} }
e.setDelivered(c); e.setDelivered(c);
......
...@@ -74,9 +74,6 @@ public class AccountEvent extends GenericEntity { ...@@ -74,9 +74,6 @@ public class AccountEvent extends GenericEntity {
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
private Calendar delivered; private Calendar delivered;
@Column(name = "delivered_count", nullable = false, precision = 24, scale = 4)
private BigDecimal deliveredCount = new BigDecimal(0);
/** /**
* If this AccountEvent is a product in foodwace, this field is a reference * If this AccountEvent is a product in foodwace, this field is a reference
* to that foodwave. * to that foodwave.
...@@ -239,14 +236,6 @@ public class AccountEvent extends GenericEntity { ...@@ -239,14 +236,6 @@ public class AccountEvent extends GenericEntity {
this.description = description; this.description = description;
} }
public BigDecimal getDeliveredCount() {
return deliveredCount;
}
public void setDeliveredCount(BigDecimal deliveredCount) {
this.deliveredCount = deliveredCount;
}
public boolean isEventDelivered() { public boolean isEventDelivered() {
return (delivered != null); return (delivered != null);
} }
......
...@@ -422,6 +422,10 @@ public class Product extends GenericEntity { ...@@ -422,6 +422,10 @@ public class Product extends GenericEntity {
return getProductFlags().contains(ProductFlag.USERSHOP_AUTOPRODUCT); return getProductFlags().contains(ProductFlag.USERSHOP_AUTOPRODUCT);
} }
public boolean isDeliverableProduct() {
return !(isUsershopAutoproduct() || getProductFlags().contains(ProductFlag.PREPAID_CREDIT));
}
public Role getShopRequiredRole() { public Role getShopRequiredRole() {
return shopRequiredRole; return shopRequiredRole;
} }
......
...@@ -320,6 +320,54 @@ ...@@ -320,6 +320,54 @@
<br /> <br />
<br /> <br />
<br /> <br />
<h:outputText rendered="#{empty incomingView.}" value="#{i18n['placegroupview.noMemberships']}" />
<h:form rendered="#{!empty incomingView.groupMemberships}" id="placelistform">
<p:fieldset legend="#{i18n['incomingflow.groupmemberships']}" toggleable="true" collapsed="#{fieldsetView.isCollapsed(component.id)}">
<p:ajax event="toggle" listener="#{fieldsetView.handleToggle}" />
<p:dataTable value="#{incomingView.groupMemberships}" var="member" rowStyleClass="#{member.enteredEvent != null ? 'success':''}">
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.reservationName']}" />
</f:facet>
<h:outputText value="#{member.placeReservation.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.reservationProduct']}" />
</f:facet>
<h:outputText value="#{member.placeReservation.product.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.token']}" />
</f:facet>
<h:outputText rendered="#{empty member.user}" value="#{member.inviteToken}" />
<h:outputText rendered="#{!empty member.user}" value="#{member.user.firstnames} #{member.user.lastname} (#{member.user.nick})" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.groupCreator']}" />
</f:facet>
<h:outputText value="#{member.placeGroup.creator.firstnames} #{member.placeGroup.creator.lastname} (#{member.placeGroup.creator.nick})" />
</p:column>
<p:column>
<p:commandButton update=":placelistform" rendered="#{empty member.enteredEvent}" actionListener="#{incomingView.givePlace}" value="#{i18n['incomingflow.giveplace']}" />
<p:commandButton update=":placelistform" rendered="#{!empty member.enteredEvent}" actionListener="#{incomingView.ungivePlace}" value="#{i18n['incomingflow.ungiveplace']}" />
</p:column>
</p:dataTable>
</p:fieldset>
</h:form>
<br />
<br />
<br />
<h:form id="cardcodeform"> <h:form id="cardcodeform">
<p:fieldset legend="#{i18n['incomingflow.cardCodes']}" toggleable="true" collapsed="#{fieldsetView.isCollapsed(component.id)}"> <p:fieldset legend="#{i18n['incomingflow.cardCodes']}" toggleable="true" collapsed="#{fieldsetView.isCollapsed(component.id)}">
<p:ajax event="toggle" listener="#{fieldsetView.handleToggle}" /> <p:ajax event="toggle" listener="#{fieldsetView.handleToggle}" />
......
...@@ -19,12 +19,7 @@ ...@@ -19,12 +19,7 @@
package fi.codecrew.moya.web.cdiview.shop; package fi.codecrew.moya.web.cdiview.shop;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped; import javax.enterprise.context.ConversationScoped;
...@@ -34,6 +29,7 @@ import javax.faces.model.ListDataModel; ...@@ -34,6 +29,7 @@ import javax.faces.model.ListDataModel;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import fi.codecrew.moya.model.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -42,14 +38,6 @@ import fi.codecrew.moya.beans.EventBeanLocal; ...@@ -42,14 +38,6 @@ import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.ProductBeanLocal; import fi.codecrew.moya.beans.ProductBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal; import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.enums.apps.ShopPermission; import fi.codecrew.moya.enums.apps.ShopPermission;
import fi.codecrew.moya.model.Bill;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.LanEvent;
import fi.codecrew.moya.model.LanEventProperty;
import fi.codecrew.moya.model.LanEventPropertyKey;
import fi.codecrew.moya.model.Product;
import fi.codecrew.moya.model.ProductFlag;
import fi.codecrew.moya.model.ReaderEvent;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.reader.ReaderView; import fi.codecrew.moya.web.cdiview.reader.ReaderView;
import fi.codecrew.moya.web.cdiview.user.UserView; import fi.codecrew.moya.web.cdiview.user.UserView;
...@@ -400,11 +388,15 @@ public class ProductShopView extends GenericCDIView { ...@@ -400,11 +388,15 @@ public class ProductShopView extends GenericCDIView {
for (ProductShopItem shopitem : shoppingcart) { for (ProductShopItem shopitem : shoppingcart) {
if (shopitem.getCount().compareTo(BigDecimal.ZERO) > 0) { if (shopitem.getCount().compareTo(BigDecimal.ZERO) > 0) {
// retuser = productBean.createAccountEvent(shopitem.getProduct(), shopitem.getCount(), shopitem.getOverriddenUnitPrice(), userView.getSelectedUser()).getUser();
BigDecimal overriddenPrice = (shopitem.isOverrideUnitPrice()) ? shopitem.getOverriddenUnitPrice() : null; BigDecimal overriddenPrice = (shopitem.isOverrideUnitPrice()) ? shopitem.getOverriddenUnitPrice() : null;
retuser = productBean.createAccountEvent(shopitem.getProduct(), overriddenPrice, shopitem.getCount(), userView.getSelectedUser()).getUser();
AccountEvent ae = productBean.createAccountEvent(shopitem.getProduct(), overriddenPrice, shopitem.getCount(), userView.getSelectedUser());
// buying from shop means that product is delivered already
ae = productBean.markDelivered(ae, Calendar.getInstance());
retuser = ae.getUser();
} }
} }
......
...@@ -40,6 +40,7 @@ import javax.inject.Inject; ...@@ -40,6 +40,7 @@ import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import javax.json.JsonObject; import javax.json.JsonObject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
@Named @Named
@ConversationScoped @ConversationScoped
...@@ -92,6 +93,7 @@ public class IncomingView extends GenericCDIView { ...@@ -92,6 +93,7 @@ public class IncomingView extends GenericCDIView {
// private String searchBarcode = ""; // private String searchBarcode = "";
private ListDataModel<GroupMembership> memberlist = null; private ListDataModel<GroupMembership> memberlist = null;
private ListDataModel<AccountEvent> deliverableAccountevents = null;
private ListDataModel<CardCode> cardCodes; private ListDataModel<CardCode> cardCodes;
public void initView() { public void initView() {
...@@ -111,6 +113,7 @@ public class IncomingView extends GenericCDIView { ...@@ -111,6 +113,7 @@ public class IncomingView extends GenericCDIView {
public void initPrintCardView() { public void initPrintCardView() {
memberlist = null; memberlist = null;
deliverableAccountevents = null;
if (!super.requirePermissions(UserPermission.MODIFY)) { if (!super.requirePermissions(UserPermission.MODIFY)) {
super.navihandler.redirectNavigation("index.jsf"); super.navihandler.redirectNavigation("index.jsf");
...@@ -216,6 +219,7 @@ public class IncomingView extends GenericCDIView { ...@@ -216,6 +219,7 @@ public class IncomingView extends GenericCDIView {
EventUser user = event.getUser(); EventUser user = event.getUser();
memberlist = null; memberlist = null;
deliverableAccountevents = null;
if (user == null) { if (user == null) {
logger.debug("got no user from barcode"); logger.debug("got no user from barcode");
...@@ -282,6 +286,28 @@ public class IncomingView extends GenericCDIView { ...@@ -282,6 +286,28 @@ public class IncomingView extends GenericCDIView {
return memberlist; return memberlist;
} }
public ListDataModel<AccountEvent> getDeliverableAccountevents() {
List<AccountEvent> accountEvents = new ArrayList<>();
for(AccountEvent ae : userview.getSelectedUser().getAccountEvents()) {
if(!ae.getProduct().isDeliverableProduct()) {
continue;
}
// places are there already, so don't add them second time
if(ae.getProduct().getPlaces() != null && !ae.getProduct().getPlaces().isEmpty()) {
continue;
}
accountEvents.add(ae);
}
deliverableAccountevents = new ListDataModel<AccountEvent>(accountEvents);
return deliverableAccountevents;
}
public ListDataModel<CardCode> getCardCodes() { public ListDataModel<CardCode> getCardCodes() {
if (userview.getPrintedCard() == null) if (userview.getPrintedCard() == null)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!