ItEr35S08CUAsignacionCalendarioLaboralRecursoItEr25S09: Adding calendar property to order.

This commit is contained in:
Manuel Rego Casasnovas 2009-11-24 13:28:52 +01:00 committed by Javier Moran Rua
parent e83acbdccc
commit 5d5a71b990
6 changed files with 114 additions and 0 deletions

View file

@ -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;
}
}

View file

@ -21,6 +21,7 @@
<param name="enumClass">org.navalplanner.business.orders.entities.SchedulingState$Type</param>
</type>
</property>
<set name="directAdvanceAssignments" access="field" cascade="all,delete-orphan" inverse="true">
<key column="DIRECT_ORDER_ELEMENT_ID" />
<one-to-many class="org.navalplanner.business.advance.entities.DirectAdvanceAssignment" />
@ -59,6 +60,10 @@
<property name="responsible" access="field"></property>
<property name="customer" access="field"></property>
<property name="dependenciesConstraintsHavePriority" access="field"></property>
<many-to-one name="calendar" column="BASE_CALENDAR_ID" cascade="none"
class="org.navalplanner.business.calendars.entities.BaseCalendar"/>
</joined-subclass>
</joined-subclass>

View file

@ -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<BaseCalendar> getBaseCalendars();
BaseCalendar getDefaultCalendar();
BaseCalendar getCalendar();
void setCalendar(BaseCalendar calendar);
}

View file

@ -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<BaseCalendar> 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);
}
}

View file

@ -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<Label> getLabels() {
final List<Label> result = new ArrayList<Label>();
@ -151,6 +160,7 @@ public class OrderModel implements IOrderModel {
this.orderElementTreeModel = new OrderElementTreeModel(this.order);
forceLoadAdvanceAssignmentsAndMeasurements(this.order);
forceLoadCriterionRequirements(this.order);
forceLoadCalendar(this.getCalendar());
}
private void initializeCacheLabels() {
@ -235,6 +245,7 @@ public class OrderModel implements IOrderModel {
this.order = Order.create();
this.orderElementTreeModel = new OrderElementTreeModel(this.order);
this.order.setInitDate(new Date());
this.order.setCalendar(getDefaultCalendar());
}
@Override
@ -351,4 +362,38 @@ public class OrderModel implements IOrderModel {
this.order = order;
}
@Override
@Transactional(readOnly = true)
public List<BaseCalendar> getBaseCalendars() {
return baseCalendarDAO.getBaseCalendars();
}
@Override
@Transactional(readOnly = true)
public BaseCalendar getDefaultCalendar() {
BaseCalendar defaultCalendar = configurationDAO.getConfiguration()
.getDefaultCalendar();
forceLoadCalendar(defaultCalendar);
return defaultCalendar;
}
private void forceLoadCalendar(BaseCalendar calendar) {
calendar.getName();
}
@Override
public BaseCalendar getCalendar() {
if (order == null) {
return null;
}
return order.getCalendar();
}
@Override
public void setCalendar(BaseCalendar calendar) {
if (order != null) {
order.setCalendar(calendar);
}
}
}

View file

@ -83,6 +83,13 @@
<checkbox
checked="@{controller.order.dependenciesConstraintsHavePriority}" />
</row>
<row>
<label value="${i18n:_('Calendar')}" />
<combobox id="calendarCombobox"
model="@{controller.baseCalendars}"
itemRenderer="@{controller.baseCalendarsComboitemRenderer}"
onSelect="controller.setBaseCalendar(self.selectedItem.value);" />
</row>
</rows>
</grid>
</tabpanel>