diff --git a/src/main/java/com/ellisdon/portal/mv/controller/VacationEntryViewController.java b/src/main/java/com/ellisdon/portal/mv/controller/VacationEntryViewController.java
index aa02af7..0474b7f 100644
--- a/src/main/java/com/ellisdon/portal/mv/controller/VacationEntryViewController.java
+++ b/src/main/java/com/ellisdon/portal/mv/controller/VacationEntryViewController.java
@@ -21,6 +21,7 @@
import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Spinner;
import org.zkoss.zul.Textbox;
@@ -44,6 +45,7 @@
private Datebox toDate;
private Spinner daysTaken;
private Textbox comments;
+ private Checkbox halfDayCheck;
private static final Logger logger = MyVacationLogger.getLogger(VacationEntryViewController.class);
@@ -73,14 +75,16 @@
//Validate comments
validate_Comments();
-
+
+ float takenDays = calculateDaysTaken();
+
//Save the Vacation for User
VacationHistoryDTO vachistdto = new VacationHistoryDTO();
Calendar cal = Utility.getOnlyDate(fromDate.getValue());
vachistdto.setFromdate(cal.getTime());
cal = Utility.getOnlyDate(toDate.getValue());
vachistdto.setTodate(cal.getTime());
- vachistdto.setDaystaken(daysTaken.getValue());
+ vachistdto.setDaystaken(takenDays);
vachistdto.setComments(comments.getText());
userVacation.takeUserVacation(vachistdto);
@@ -114,8 +118,27 @@
private void clearForm(){
fromDate.setValue(new Date());
toDate.setValue(new Date());
- daysTaken.setValue(1);
- comments.setValue("");
+ daysTaken.setValue(0);
+ comments.setValue("");
+ halfDayCheck.setChecked(false);
+ }
+
+ private float calculateDaysTaken(){
+ float dtaken = daysTaken.getValue();
+ float totalDays=0;
+
+ if ((!halfDayCheck.isChecked())&& (dtaken==0)) {
+ throw new WrongValueException(daysTaken, "Please select the vacation days");
+ }else if((halfDayCheck.isChecked())&& (dtaken==0)){
+ totalDays = new Float(0.5).floatValue();
+ }else if((halfDayCheck.isChecked())&& (dtaken > 0)){
+ totalDays = new Float(0.5).floatValue();
+ totalDays = dtaken + totalDays;
+ }else{
+ totalDays = dtaken;
+ }
+
+ return totalDays;
}
diff --git a/src/main/webapp/myvacation.zul b/src/main/webapp/myvacation.zul
index 2e8a0b7..91288ee 100644
--- a/src/main/webapp/myvacation.zul
+++ b/src/main/webapp/myvacation.zul
@@ -94,12 +94,15 @@
<row>
<label value="Days taken" width="150px" />
- <spinner id="daysTaken" value="1" constraint="no negative,no zero, no empty" />
+ <div>
+ <spinner id="daysTaken" value="1" constraint="no negative, no empty" />
+ <checkbox id="halfDayCheck" label="Half Day"/>
+ </div>
</row>
<row>
<label value="Comments" width="150px" />
- <textbox id="comments" value="" width="350px" maxlength="45" />
+ <textbox id="comments" value="" width="350px" maxlength="45" />
</row>
</rows>