Commit dd3cb56c by Tuomas Riihimäki

Paikan vapautus ei poistanut paikkaan liitettyä käyttäjää.

1 parent ccab4169
...@@ -31,21 +31,14 @@ import javax.ejb.TimerService; ...@@ -31,21 +31,14 @@ import javax.ejb.TimerService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.codecrew.moya.enums.apps.MapPermission;
import fi.codecrew.moya.enums.apps.SpecialPermission;
import fi.codecrew.moya.exceptions.BortalCatchableException;
import fi.codecrew.moya.facade.EventUserFacade; import fi.codecrew.moya.facade.EventUserFacade;
import fi.codecrew.moya.facade.GroupMembershipFacade; import fi.codecrew.moya.facade.GroupMembershipFacade;
import fi.codecrew.moya.facade.PlaceFacade; import fi.codecrew.moya.facade.PlaceFacade;
import fi.codecrew.moya.facade.PlaceGroupFacade; import fi.codecrew.moya.facade.PlaceGroupFacade;
import fi.codecrew.moya.facade.UserFacade; import fi.codecrew.moya.facade.UserFacade;
import fi.codecrew.moya.beans.AccountEventBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.LoggingBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.PlaceBeanLocal;
import fi.codecrew.moya.beans.ProductBeanLocal;
import fi.codecrew.moya.beans.SecurityLogType;
import fi.codecrew.moya.enums.apps.MapPermission;
import fi.codecrew.moya.enums.apps.SpecialPermission;
import fi.codecrew.moya.exceptions.BortalCatchableException;
import fi.codecrew.moya.model.EventMap; import fi.codecrew.moya.model.EventMap;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.GroupMembership; import fi.codecrew.moya.model.GroupMembership;
...@@ -488,12 +481,30 @@ public class PlaceBean implements PlaceBeanLocal { ...@@ -488,12 +481,30 @@ public class PlaceBean implements PlaceBeanLocal {
@Override @Override
@RolesAllowed(MapPermission.S_BUY_PLACES) @RolesAllowed(MapPermission.S_BUY_PLACES)
public void unbuyPlace(Place place) { public Place unbuyPlace(Place place) {
place = placeFacade.find(place.getId()); place = placeFacade.reload(place);
if (place.getGroup() != null) { if (place.getGroup() != null) {
place.getGroup().getPlaces().remove(place); place.getGroup().getPlaces().remove(place);
place.setGroup(null); place.setGroup(null);
} }
}
if (place.getPlaceReserver() != null)
{
GroupMembership res = place.getPlaceReserver();
if (res.getPlaceGroup().getMembers() != null) {
res.getPlaceGroup().getMembers().remove(res);
}
if (res.getUser() != null && res.getUser().getGroupMemberships() != null) {
res.getUser().getGroupMemberships().remove(res);
}
place.setPlaceReserver(null);
gmemfacade.remove(res);
}
return place;
}
} }
...@@ -41,7 +41,7 @@ public interface PlaceBeanLocal { ...@@ -41,7 +41,7 @@ public interface PlaceBeanLocal {
Place find(int placeId); Place find(int placeId);
void unbuyPlace(Place place); Place unbuyPlace(Place place);
BigDecimal getTotalReservationPrice(EventUser user, Place newPlace); BigDecimal getTotalReservationPrice(EventUser user, Place newPlace);
......
...@@ -55,7 +55,7 @@ public class GroupMembership extends GenericEntity { ...@@ -55,7 +55,7 @@ public class GroupMembership extends GenericEntity {
private PlaceGroup placeGroup; private PlaceGroup placeGroup;
@OneToOne(optional = false) @OneToOne(optional = false)
@JoinColumn(name = "place_reservation_id", referencedColumnName = "id", nullable = true) @JoinColumn(name = "place_reservation_id", referencedColumnName = "id", nullable = true, unique = true)
private Place placeReservation; private Place placeReservation;
@JoinColumn(name = EVENTUSER_ID, referencedColumnName = EventUser.ID_COLUMN) @JoinColumn(name = EVENTUSER_ID, referencedColumnName = EventUser.ID_COLUMN)
......
...@@ -176,7 +176,7 @@ public class PlaceView extends GenericCDIView { ...@@ -176,7 +176,7 @@ public class PlaceView extends GenericCDIView {
public String removePlaceFromGroup() { public String removePlaceFromGroup() {
placebean.unbuyPlace(place); place = placebean.unbuyPlace(place);
addFaceMessage("place.unbought", place.getName()); addFaceMessage("place.unbought", place.getName());
return null; return null;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!