Commit 21932402 by Tuomas Riihimäki

Reserving place through api does not create accountevents anymore

1 parent ce30d58f
......@@ -113,9 +113,12 @@ public class PlaceBean implements PlaceBeanLocal {
}
/**
* Calculate the price of reserved places for the user Optional parameter newPlace can be given when the place is added to the price calculations;
* Calculate the price of reserved places for the user Optional parameter
* newPlace can be given when the place is added to the price calculations;
*
* User parameter can be used to select another user than the currently logged in user, but if user does not have enough rights an exception will be thrown
* User parameter can be used to select another user than the currently
* logged in user, but if user does not have enough rights an exception will
* be thrown
*
*/
......@@ -182,7 +185,8 @@ public class PlaceBean implements PlaceBeanLocal {
}
/**
* Reserve the place for user. This reservation will timeout after a while buy() method should be called after this when buying place;
* Reserve the place for user. This reservation will timeout after a while
* buy() method should be called after this when buying place;
*
* @param place
* place to be reserved
......@@ -236,11 +240,23 @@ public class PlaceBean implements PlaceBeanLocal {
// }
// logger.debug("timeouting places");
// placeFacade.releasePlaces(permbean.getCurrentUser());
// }
// }
@Override
@RolesAllowed({ MapPermission.S_BUY_PLACES, MapPermission.S_MANAGE_OTHERS })
public PlaceGroup buySelectedPlaces(EventUser user) throws BortalCatchableException {
return buyOrReserveSelectedPlaces(user, true);
}
@Override
@RolesAllowed({ MapPermission.S_MANAGE_OTHERS })
public PlaceGroup reserveSelectedPlaces(EventUser eventuser) throws BortalCatchableException {
return buyOrReserveSelectedPlaces(eventuser, false);
}
/**
* Reserves places and creates accountevents for the places.
*/
public PlaceGroup buyOrReserveSelectedPlaces(EventUser user, boolean createAccountevents) throws BortalCatchableException {
if (user == null) {
user = permbean.getCurrentUser();
} else {
......@@ -258,18 +274,19 @@ public class PlaceBean implements PlaceBeanLocal {
}
// PlaceGroup pg = pgbean.createPlaceGroup(user);
if (!createAccountevents)
{
BigDecimal totalprice = addAndCalcPrice(user, null);
BigDecimal balance = user.getAccountBalance();
if (balance.compareTo(totalprice) < 0 && !permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
logger.info("User {} Could not buy things because account balance {} is too low for purchase {}", new Object[] { user, balance, totalprice });
return null;
}
BigDecimal totalprice = addAndCalcPrice(user, null);
BigDecimal balance = user.getAccountBalance();
if (balance.compareTo(totalprice) < 0 && !permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
logger.info("User {} Could not buy things because account balance {} is too low for purchase {}", new Object[] { user, balance, totalprice });
return null;
}
for (Entry<Product, Integer> line : getPlaceProductcount(places).entrySet()) {
productPBean.createAccountEvent(line.getKey(), new BigDecimal(line.getValue()), user, Calendar.getInstance());
for (Entry<Product, Integer> line : getPlaceProductcount(places).entrySet()) {
productPBean.createAccountEvent(line.getKey(), new BigDecimal(line.getValue()), user, Calendar.getInstance());
}
}
PlaceGroup pg = new PlaceGroup(event, Calendar.getInstance(), Calendar.getInstance(), true);
pg.setCreator(user);
pgfacade.create(pg);
......@@ -586,4 +603,5 @@ public class PlaceBean implements PlaceBeanLocal {
throw new RuntimeException(e);
}
}
}
......@@ -63,10 +63,13 @@ public interface PlaceBeanLocal {
*/
byte[] generatePlacesPdf(float width, float height, double font1, double font2);
// public byte[] generatePlacesPdf(double width, double height, double font1, double font2);
List<GroupMembership> matchGroupMembershipsByInviteToken(String token);
GroupMembership findGroupMembershipsByToken(String token);
PlaceGroup reserveSelectedPlaces(EventUser eventuser) throws BortalCatchableException;
}
......@@ -22,6 +22,14 @@ public class UserSearchQuery extends SearchQuery {
private BigDecimal accountSaldo;
private DatabaseValueCompare accountSaldoCompare = DatabaseValueCompare.NONE;
public UserSearchQuery() {
super();
}
public UserSearchQuery(int page, int pagesize, String sort, String search, QuerySortOrder direction) {
super(page, pagesize, sort, search, direction);
}
public DatabaseValueCompare[] getAccountCompareValues()
{
return DatabaseValueCompare.values();
......@@ -38,11 +46,11 @@ public class UserSearchQuery extends SearchQuery {
public boolean isUsersWithUnusedCodes() {
return usersWithUnusedCodes;
}
public void setUsersWithUnusedCodes(boolean usersWithUnusedCodes) {
this.usersWithUnusedCodes = usersWithUnusedCodes;
}
public List<Role> getFilterRoles() {
return filterRoles;
}
......
......@@ -20,12 +20,13 @@ public class SearchQuery implements Serializable {
super();
}
public SearchQuery(int page, int pagesize, String sort, String search, boolean direction) {
public SearchQuery(int page, int pagesize, String sort, String search, QuerySortOrder direction) {
super();
this.page = page;
this.pagesize = pagesize;
this.sort = sort;
this.search = search;
this.sortDirection = direction;
}
public int getPage() {
......@@ -42,14 +43,15 @@ public class SearchQuery implements Serializable {
}
public int getPagesize() {
if (pagesize < 1) {
pagesize = 20;
}
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
if (pagesize < 1)
pagesize = 20;
else
this.pagesize = pagesize;
}
public String getSort() {
......
......@@ -150,7 +150,7 @@ public class MapAdminView {
if (placebean.reservePlace(place, eventuser))
{
try {
placebean.buySelectedPlaces(eventuser);
placebean.reserveSelectedPlaces(eventuser);
return Response.ok().build();
} catch (BortalCatchableException e) {
logger.warn("Wtf! Bortalerror");
......
......@@ -12,6 +12,7 @@ import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.rest.pojo.SimpleEventuserRoot;
import fi.codecrew.moya.util.UserSearchQuery;
import fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder;
import fi.codecrew.moya.utilities.SearchResult;
@RequestScoped
......@@ -26,10 +27,8 @@ public class UserRestView {
@GET
@Path("/eventusers")
public SimpleEventuserRoot getEventUsers() {
UserSearchQuery q = new UserSearchQuery();
q.setPagesize(0);
UserSearchQuery q = new UserSearchQuery(0, 0, null, null, QuerySortOrder.UNSORTED);
SearchResult<EventUser> users = userbean.getThisEventsUsers(q);
return SimpleEventuserRoot.parse(users.getResults());
}
}
......@@ -24,6 +24,7 @@ import fi.codecrew.moya.model.Place;
import fi.codecrew.moya.model.PlaceGroup;
import fi.codecrew.moya.model.User;
import fi.codecrew.moya.utilities.SearchQuery;
import fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder;
import fi.codecrew.moya.web.annotations.SelectedUser;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
......@@ -158,7 +159,7 @@ public class PlaceView extends GenericCDIView {
public String searchUser() {
super.beginConversation();
userlist = new ListDataModel<User>(userbean.getUsers(new SearchQuery(0, 0, null, searchuser, false)).getResults());
userlist = new ListDataModel<User>(userbean.getUsers(new SearchQuery(0, 20, null, searchuser, QuerySortOrder.DESCENDING)).getResults());
return null;
}
......
......@@ -27,6 +27,7 @@ import fi.codecrew.moya.model.ReaderType;
import fi.codecrew.moya.model.Role;
import fi.codecrew.moya.model.User;
import fi.codecrew.moya.utilities.SearchQuery;
import fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.shop.UserCardWrapper;
import fi.codecrew.moya.web.cdiview.user.UserView;
......@@ -148,7 +149,7 @@ public class ReaderView extends GenericCDIView {
if (usersearch == null || usersearch.length() < 2) {
super.addFaceMessage("user.tooShortSearch");
} else {
userlist = UserCardWrapper.initWrapper(userbean.getUsers(new SearchQuery(0, 0, null, usersearch, false)).getResults(), userbean);
userlist = UserCardWrapper.initWrapper(userbean.getUsers(new SearchQuery(0, 20, null, usersearch, QuerySortOrder.DESCENDING)).getResults(), userbean);
}
return null;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!