1 package de.tivsource.page.admin.actions.locations.reservation;
2
3 import java.util.ArrayList;
4 import java.util.Calendar;
5 import java.util.Date;
6 import java.util.List;
7
8 import org.apache.logging.log4j.LogManager;
9 import org.apache.logging.log4j.Logger;
10 import org.apache.struts2.ServletActionContext;
11 import org.apache.struts2.convention.annotation.Action;
12 import org.apache.struts2.convention.annotation.Actions;
13 import org.apache.struts2.convention.annotation.Result;
14
15 import de.tivsource.ejb3plugin.InjectEJB;
16 import de.tivsource.page.admin.actions.EmptyAction;
17 import de.tivsource.page.dao.event.EventDaoLocal;
18 import de.tivsource.page.dao.reservation.ReservationDaoLocal;
19 import de.tivsource.page.entity.reservation.Reservation;
20
21
22
23
24
25
26 public class EditAction extends EmptyAction {
27
28
29
30
31 private static final long serialVersionUID = 7464881886808879895L;
32
33
34
35
36 private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
37
38 @InjectEJB(name="EventDao")
39 private EventDaoLocal eventDaoLocal;
40
41 @InjectEJB(name="ReservationDao")
42 private ReservationDaoLocal reservationDaoLocal;
43
44 private String redirect;
45
46 private Reservation reservation;
47
48 public Reservation getReservation() {
49 return reservation;
50 }
51
52 public void setReservation(Reservation reservation) {
53 this.reservation = reservation;
54 }
55
56 public String getRedirect() {
57 return redirect;
58 }
59
60 @Override
61 @Actions({
62 @Action(
63 value = "edit",
64 results = {
65 @Result(name = "success", type = "redirectAction", location = "${redirect}"),
66 @Result(name = "input", type="tiles", location = "reservationEditForm"),
67 @Result(name = "error", type="tiles", location = "reservationEditError")
68 }
69 )
70 })
71 public String execute() throws Exception {
72 LOGGER.info("execute() aufgerufen.");
73
74 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
75 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
76
77 if(reservation != null) {
78 Reservation dbReservation = reservationDaoLocal.findByUuid(reservation.getUuid());
79 redirect = "index.html?event=" + dbReservation.getEvent().getUuid();
80 dbReservation.setConfirmed(false);
81 dbReservation.setEmail(reservation.getEmail());
82 dbReservation.setFirstname(reservation.getFirstname());
83 dbReservation.setGender(reservation.getGender());
84 dbReservation.setLastname(reservation.getLastname());
85 dbReservation.setQuantity(reservation.getQuantity());
86 dbReservation.setTelephone(reservation.getTelephone());
87 dbReservation.setTime(reservation.getTime());
88 dbReservation.setWishes(reservation.getWishes());
89 dbReservation.setModified(new Date());
90 dbReservation.setModifiedAddress(remoteAddress);
91 dbReservation.setModifiedBy(remoteUser);
92 reservationDaoLocal.merge(dbReservation);
93 return SUCCESS;
94 }
95 else {
96 return ERROR;
97 }
98
99 }
100
101 public List<Date> getTimes() {
102 LOGGER.info("getTimes() aufgerufen.");
103
104 List<Date> times = new ArrayList<Date>();
105
106
107 Calendar calendarStart = Calendar.getInstance();
108 calendarStart.setTime(reservation.getEvent().getBeginning());
109 times.add(calendarStart.getTime());
110
111
112 Calendar calendar = Calendar.getInstance();
113 calendar.setTime(reservation.getEvent().getEnding());
114 calendar.add(Calendar.MINUTE, -30);
115 Date end = calendar.getTime();
116
117
118 Date time = reservation.getEvent().getBeginning();
119 while (time.before(end)) {
120 Calendar calendarTime = Calendar.getInstance();
121 calendarTime.setTime(time);
122 calendarTime.add(Calendar.MINUTE, 15);
123 time = calendarTime.getTime();
124 times.add(time);
125 }
126
127 LOGGER.info("Inhalt der Liste: " + times.size());
128
129 return times;
130 }
131
132 }