View Javadoc

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   * @author Marc Michele
24   *
25   */
26  public class EditAction extends EmptyAction {
27  
28  	/**
29  	 * Serial Version UID.
30  	 */
31      private static final long serialVersionUID = 7464881886808879895L;
32  
33      /**
34       * Statischer Logger der Klasse.
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      }// Ende execute()
100 
101     public List<Date> getTimes() {
102         LOGGER.info("getTimes() aufgerufen.");
103 
104         List<Date> times = new ArrayList<Date>();
105 
106         // Anfangs Punkt der Zeitreihe
107         Calendar calendarStart = Calendar.getInstance();
108         calendarStart.setTime(reservation.getEvent().getBeginning());
109         times.add(calendarStart.getTime());
110                 
111         // Endpunkt der Zeitreihe 
112         Calendar calendar = Calendar.getInstance();
113         calendar.setTime(reservation.getEvent().getEnding());
114         calendar.add(Calendar.MINUTE, -30);
115         Date end = calendar.getTime();
116 
117         // Datum mit dem gerechnet wird
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 }// Ende class