Commit 9cb48f04 by Tuukka Kivilahti

adding deliverable stuff

1 parent dbdee32e
......@@ -607,7 +607,7 @@ public class ProductBean implements ProductBeanLocal {
e = accounteventfacade.reload(e);
if (e.getDelivered() != null)
{
throw new EJBException("AccountEvent " + e + " already marked paid!");
throw new EJBException("AccountEvent " + e + " already marked delivered!");
}
e.setDelivered(c);
......
......@@ -74,9 +74,6 @@ public class AccountEvent extends GenericEntity {
@Temporal(TemporalType.TIMESTAMP)
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
* to that foodwave.
......@@ -239,14 +236,6 @@ public class AccountEvent extends GenericEntity {
this.description = description;
}
public BigDecimal getDeliveredCount() {
return deliveredCount;
}
public void setDeliveredCount(BigDecimal deliveredCount) {
this.deliveredCount = deliveredCount;
}
public boolean isEventDelivered() {
return (delivered != null);
}
......
......@@ -422,6 +422,10 @@ public class Product extends GenericEntity {
return getProductFlags().contains(ProductFlag.USERSHOP_AUTOPRODUCT);
}
public boolean isDeliverableProduct() {
return !(isUsershopAutoproduct() || getProductFlags().contains(ProductFlag.PREPAID_CREDIT));
}
public Role getShopRequiredRole() {
return shopRequiredRole;
}
......
......@@ -320,6 +320,54 @@
<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">
<p:fieldset legend="#{i18n['incomingflow.cardCodes']}" toggleable="true" collapsed="#{fieldsetView.isCollapsed(component.id)}">
<p:ajax event="toggle" listener="#{fieldsetView.handleToggle}" />
......
......@@ -19,12 +19,7 @@
package fi.codecrew.moya.web.cdiview.shop;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
......@@ -34,6 +29,7 @@ import javax.faces.model.ListDataModel;
import javax.inject.Inject;
import javax.inject.Named;
import fi.codecrew.moya.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -42,14 +38,6 @@ import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.ProductBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
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.reader.ReaderView;
import fi.codecrew.moya.web.cdiview.user.UserView;
......@@ -400,11 +388,15 @@ public class ProductShopView extends GenericCDIView {
for (ProductShopItem shopitem : shoppingcart) {
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;
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;
import javax.inject.Named;
import javax.json.JsonObject;
import java.util.ArrayList;
import java.util.List;
@Named
@ConversationScoped
......@@ -92,6 +93,7 @@ public class IncomingView extends GenericCDIView {
// private String searchBarcode = "";
private ListDataModel<GroupMembership> memberlist = null;
private ListDataModel<AccountEvent> deliverableAccountevents = null;
private ListDataModel<CardCode> cardCodes;
public void initView() {
......@@ -111,6 +113,7 @@ public class IncomingView extends GenericCDIView {
public void initPrintCardView() {
memberlist = null;
deliverableAccountevents = null;
if (!super.requirePermissions(UserPermission.MODIFY)) {
super.navihandler.redirectNavigation("index.jsf");
......@@ -216,6 +219,7 @@ public class IncomingView extends GenericCDIView {
EventUser user = event.getUser();
memberlist = null;
deliverableAccountevents = null;
if (user == null) {
logger.debug("got no user from barcode");
......@@ -282,6 +286,28 @@ public class IncomingView extends GenericCDIView {
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() {
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!