diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java
index d9fddda17..07ae06d17 100644
--- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java
+++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderModel.java
@@ -404,7 +404,9 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel {
newOrder.setCodeAutogenerated();
newOrder.setCode(getOrder().getCode());
}
-
+ if (getOrder().getDeadline() != null) {
+ newOrder.setDeadline(getOrder().getDeadline());
+ }
newOrder.setCustomer(((Order) getOrder()).getCustomer());
newOrder.setCalendar(getCalendar());
diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java
index 40565c130..ea36180b8 100644
--- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java
+++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/ProjectDetailsController.java
@@ -29,6 +29,7 @@ import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.joda.time.LocalDate;
import org.libreplan.business.calendars.entities.BaseCalendar;
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
import org.libreplan.business.orders.daos.IOrderDAO;
@@ -143,11 +144,9 @@ public class ProjectDetailsController extends GenericForwardComposer {
if (tabs != null) {
tabs.goToOrdersList();
}
-
if (bdProjectTemplate.getSelectedElement() != null) {
OrderTemplate template = (OrderTemplate) bdProjectTemplate
.getSelectedElement();
-
orderController.createFromTemplate(template);
}
orderController.editNewCreatedOrder(window);
@@ -280,12 +279,23 @@ public class ProjectDetailsController extends GenericForwardComposer {
bdExternalCompanies.close();
}
});
- txtName.addEventListener(Events.ON_OK, new EventListener() {
- @Override
- public void onEvent(Event event) {
- accept();
- }
- });
+ bdProjectTemplate.setListboxEventListener(Events.ON_SELECT,
+ new EventListener() {
+ @Override
+ public void onEvent(Event event) {
+ calculateDeadlineDate();
+ }
+ });
}
+ public void calculateDeadlineDate() {
+ if ((bdProjectTemplate.getSelectedElement() == null)
+ || (((OrderTemplate) bdProjectTemplate.getSelectedElement())
+ .getDeadlineAsDaysFromBeginning() == null)
+ || (initDate.getValue() == null)) {
+ return;
+ }
+ int days = ((OrderTemplate) bdProjectTemplate.getSelectedElement()).getDeadlineAsDaysFromBeginning();
+ deadline.setValue( new LocalDate(initDate.getValue()).plusDays(days).toDateTimeAtStartOfDay().toDate());
+ }
}
\ No newline at end of file
diff --git a/libreplan-webapp/src/main/webapp/orders/_projectDetails.zul b/libreplan-webapp/src/main/webapp/orders/_projectDetails.zul
index b6792890e..bd53ebffb 100644
--- a/libreplan-webapp/src/main/webapp/orders/_projectDetails.zul
+++ b/libreplan-webapp/src/main/webapp/orders/_projectDetails.zul
@@ -34,7 +34,8 @@
+ constraint="no empty:${i18n:_('cannot be null or empty')}"
+ onOK="projectController.accept();"/>
@@ -49,7 +50,7 @@
+ widthBandbox="400px" widthListbox="500px" />