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 import java.util.UUID;
8
9 import org.apache.logging.log4j.LogManager;
10 import org.apache.logging.log4j.Logger;
11 import org.apache.struts2.ServletActionContext;
12 import org.apache.struts2.convention.annotation.Action;
13 import org.apache.struts2.convention.annotation.Actions;
14 import org.apache.struts2.convention.annotation.Result;
15
16 import de.tivsource.ejb3plugin.InjectEJB;
17 import de.tivsource.page.admin.actions.EmptyAction;
18 import de.tivsource.page.dao.event.EventDaoLocal;
19 import de.tivsource.page.dao.reservation.ReservationDaoLocal;
20 import de.tivsource.page.entity.reservation.Reservation;
21 import de.tivsource.page.enumeration.Origin;
22
23
24
25
26
27
28 public class AddAction extends EmptyAction {
29
30
31
32
33 private static final long serialVersionUID = 7464881886808879895L;
34
35
36
37
38 private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
39
40 @InjectEJB(name="EventDao")
41 private EventDaoLocal eventDaoLocal;
42
43 @InjectEJB(name="ReservationDao")
44 private ReservationDaoLocal reservationDaoLocal;
45
46 private String redirect;
47
48 private Reservation reservation;
49
50 public Reservation getReservation() {
51 return reservation;
52 }
53
54 public void setReservation(Reservation reservation) {
55 this.reservation = reservation;
56 }
57
58 public String getRedirect() {
59 return redirect;
60 }
61
62 @Override
63 @Actions({
64 @Action(
65 value = "add",
66 results = {
67 @Result(name = "success", type = "redirectAction", location = "${redirect}"),
68 @Result(name = "input", type="tiles", location = "reservationAddForm"),
69 @Result(name = "error", type="tiles", location = "reservationAddError")
70 }
71 )
72 })
73 public String execute() throws Exception {
74 LOGGER.info("execute() aufgerufen.");
75
76 String remoteUser = ServletActionContext.getRequest().getRemoteUser();
77 String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
78
79 if(reservation != null) {
80 redirect = "index.html?event=" + reservation.getEvent().getUuid();
81 reservation.setUuid(UUID.randomUUID().toString());
82 reservation.setCreated(new Date());
83 reservation.setCreatedAddress(remoteAddress);
84 reservation.setConfirmed(false);
85 reservation.setModified(new Date());
86 reservation.setModifiedAddress(remoteAddress);
87 reservation.setModifiedBy(remoteUser);
88 reservation.setOrigin(Origin.TELEPHONE);
89 reservationDaoLocal.merge(reservation);
90
91 reservationDaoLocal.merge(reservation);
92 return SUCCESS;
93 }
94 else {
95 return ERROR;
96 }
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 }