diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java
index e053e0172..9f0412238 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java
@@ -26,6 +26,8 @@ import java.util.List;
import java.util.Set;
import org.hibernate.validator.AssertTrue;
+import org.hibernate.validator.NotNull;
+import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.planner.entities.DayAssignment;
import org.navalplanner.business.planner.entities.ResourceAllocation;
import org.navalplanner.business.planner.entities.Task;
@@ -62,6 +64,9 @@ public class Order extends OrderLineGroup {
private Boolean dependenciesConstraintsHavePriority;
+ @NotNull
+ private BaseCalendar calendar;
+
public String getResponsible() {
return responsible;
}
@@ -171,4 +176,12 @@ public class Order extends OrderLineGroup {
this.dependenciesConstraintsHavePriority = dependenciesConstraintsHavePriority;
}
+ public void setCalendar(BaseCalendar calendar) {
+ this.calendar = calendar;
+ }
+
+ public BaseCalendar getCalendar() {
+ return calendar;
+ }
+
}
diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
index 038146b96..e3b5baad3 100644
--- a/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
+++ b/navalplanner-business/src/main/resources/org/navalplanner/business/orders/entities/Orders.hbm.xml
@@ -21,6 +21,7 @@
org.navalplanner.business.orders.entities.SchedulingState$Type
+
@@ -59,6 +60,10 @@
+
+
+
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java
index 2362f6b7b..9780873d7 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java
@@ -23,6 +23,7 @@ package org.navalplanner.web.orders;
import java.util.List;
import java.util.Map;
+import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.labels.entities.Label;
import org.navalplanner.business.orders.entities.IOrderLineGroup;
@@ -84,4 +85,12 @@ public interface IOrderModel {
void setOrder(Order order);
+ List getBaseCalendars();
+
+ BaseCalendar getDefaultCalendar();
+
+ BaseCalendar getCalendar();
+
+ void setCalendar(BaseCalendar calendar);
+
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java
index 973c69991..808c801ec 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java
@@ -26,6 +26,7 @@ import java.util.List;
import org.apache.commons.logging.LogFactory;
import org.hibernate.validator.InvalidValue;
+import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.orders.entities.IOrderLineGroup;
import org.navalplanner.business.orders.entities.Order;
@@ -41,6 +42,9 @@ import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
+import org.zkoss.zul.Combobox;
+import org.zkoss.zul.Comboitem;
+import org.zkoss.zul.ComboitemRenderer;
import org.zkoss.zul.Label;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Tab;
@@ -99,6 +103,8 @@ public class OrderCRUDController extends GenericForwardComposer {
private IOrderPlanningGate planningControllerEntryPoints;
+ private BaseCalendarsComboitemRenderer baseCalendarsComboitemRenderer = new BaseCalendarsComboitemRenderer();
+
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
@@ -330,4 +336,33 @@ public class OrderCRUDController extends GenericForwardComposer {
this.onUp = onUp;
}
+ public List getBaseCalendars() {
+ return orderModel.getBaseCalendars();
+ }
+
+ public BaseCalendarsComboitemRenderer getBaseCalendarsComboitemRenderer() {
+ return baseCalendarsComboitemRenderer;
+ }
+
+ private class BaseCalendarsComboitemRenderer implements ComboitemRenderer {
+
+ @Override
+ public void render(Comboitem item, Object data) throws Exception {
+ BaseCalendar calendar = (BaseCalendar) data;
+ item.setLabel(calendar.getName());
+ item.setValue(calendar);
+
+ BaseCalendar current = orderModel.getCalendar();
+ if ((current != null) && calendar.getId().equals(current.getId())) {
+ Combobox combobox = (Combobox) item.getParent();
+ combobox.setSelectedItem(item);
+ }
+ }
+
+ }
+
+ public void setBaseCalendar(BaseCalendar calendar) {
+ orderModel.setCalendar(calendar);
+ }
+
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java
index 992347bf5..04e3624f6 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java
@@ -35,6 +35,9 @@ import org.apache.commons.lang.Validate;
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
import org.navalplanner.business.advance.entities.IndirectAdvanceAssignment;
+import org.navalplanner.business.calendars.daos.IBaseCalendarDAO;
+import org.navalplanner.business.calendars.entities.BaseCalendar;
+import org.navalplanner.business.common.daos.IConfigurationDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.labels.daos.ILabelDAO;
@@ -103,6 +106,12 @@ public class OrderModel implements IOrderModel {
@Autowired
private ITaskElementDAO taskElementDAO;
+ @Autowired
+ private IBaseCalendarDAO baseCalendarDAO;
+
+ @Autowired
+ private IConfigurationDAO configurationDAO;
+
@Override
public List