revamp the interface of the General Data tab in the Project
Details perspective, in order to show the deliver dates. FEA: ItEr75S32AnA15S04UpdateDeliveringDateInSubcontracting
This commit is contained in:
parent
ab1e701870
commit
e6cdb15a66
3 changed files with 189 additions and 102 deletions
|
|
@ -29,6 +29,8 @@ import java.util.Date;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.SortedSet;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
|
@ -37,6 +39,8 @@ import org.apache.commons.logging.LogFactory;
|
|||
import org.hibernate.validator.InvalidValue;
|
||||
import org.libreplan.business.calendars.entities.BaseCalendar;
|
||||
import org.libreplan.business.common.exceptions.ValidationException;
|
||||
import org.libreplan.business.externalcompanies.entities.DeadlineCommunication;
|
||||
import org.libreplan.business.externalcompanies.entities.DeliverDateComparator;
|
||||
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
|
||||
import org.libreplan.business.orders.entities.HoursGroup;
|
||||
import org.libreplan.business.orders.entities.Order;
|
||||
|
|
@ -1499,4 +1503,10 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
}
|
||||
}
|
||||
|
||||
public SortedSet<DeadlineCommunication> getDeliverDates() {
|
||||
if(getOrder() != null){
|
||||
return getOrder().getDeliveringDates();
|
||||
}
|
||||
return new TreeSet<DeadlineCommunication>(new DeliverDateComparator());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import org.libreplan.business.common.entities.Configuration;
|
|||
import org.libreplan.business.common.entities.EntityNameEnum;
|
||||
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.libreplan.business.externalcompanies.daos.IExternalCompanyDAO;
|
||||
import org.libreplan.business.externalcompanies.entities.DeadlineCommunication;
|
||||
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
|
||||
import org.libreplan.business.labels.daos.ILabelDAO;
|
||||
import org.libreplan.business.labels.entities.Label;
|
||||
|
|
@ -273,12 +274,17 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel {
|
|||
forceLoadCriterionRequirements(order);
|
||||
forceLoadCalendar(this.getCalendar());
|
||||
forceLoadCustomer(order.getCustomer());
|
||||
forceLoadDeliveringDates(order);
|
||||
forceLoadLabels(order);
|
||||
forceLoadMaterialAssignments(order);
|
||||
forceLoadTaskQualityForms(order);
|
||||
initOldCodes();
|
||||
}
|
||||
|
||||
private void forceLoadDeliveringDates(Order order){
|
||||
order.getDeliveringDates().size();
|
||||
}
|
||||
|
||||
private void forceLoadLabels(OrderElement orderElement) {
|
||||
orderElement.getLabels().size();
|
||||
for (OrderElement each : orderElement.getChildren()) {
|
||||
|
|
|
|||
|
|
@ -62,108 +62,179 @@
|
|||
<orderElementTree id="orderElementTree" showCreateTemplateButton="true" />
|
||||
</tabpanel>
|
||||
<tabpanel id="tabPanelGeneralData" fulfill="tabGeneralData.onSelect">
|
||||
<grid fixedLayout="true">
|
||||
<columns>
|
||||
<column width="200px" />
|
||||
<column />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="${i18n:_('Name')}" />
|
||||
<textbox value="@{controller.order.name}" width="500px"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Code')}" />
|
||||
<hbox>
|
||||
<textbox value="@{controller.order.code}" width="250px"
|
||||
disabled="@{controller.codeAutogenerated}" />
|
||||
<checkbox label="${i18n:_('Generate code')}"
|
||||
checked="@{controller.codeAutogenerated}" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('External code')}" />
|
||||
<textbox value="@{controller.order.externalCode}"
|
||||
width="250px" disabled="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Scheduling mode')}" />
|
||||
<combobox id="schedulingMode" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Starting date')}" />
|
||||
<datebox id="initDate"
|
||||
value="@{controller.order.initDate}" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Deadline')}" />
|
||||
<datebox id="deadline"
|
||||
value="@{controller.order.deadline}" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Responsible')}" />
|
||||
<textbox
|
||||
value="@{controller.order.responsible}" width="500px"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Customer')}" />
|
||||
<bandboxSearch id="bdExternalCompanies" widthBandbox="485px" widthListbox="500px"
|
||||
finder="ExternalCompanyBandboxFinder"
|
||||
model="@{controller.externalCompaniesAreClient}"
|
||||
selectedElement="@{controller.order.customer}"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Customer reference')}" />
|
||||
<textbox value="@{controller.order.customerReference}" width="500px"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Description')}" />
|
||||
<textbox
|
||||
value="@{controller.order.description}"
|
||||
rows="6" width="500px" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Dependencies have priority')}" />
|
||||
<checkbox
|
||||
checked="@{controller.order.dependenciesConstraintsHavePriority}" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Calendar')}" />
|
||||
<combobox id="calendarCombobox" width="200px"
|
||||
model="@{controller.baseCalendars}"
|
||||
itemRenderer="@{controller.baseCalendarsComboitemRenderer}"
|
||||
onSelect="controller.setBaseCalendar(self.selectedItem.value);" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Budget')}" />
|
||||
<hbox align="center">
|
||||
<label value="${i18n:_('Work')}" />
|
||||
<decimalbox id="boxWorkBudget" width="150px" scale = "2"
|
||||
value="@{controller.order.workBudget}"
|
||||
onChange="controller.reloadTotalBudget(txtTotalBudget)" />
|
||||
<separator bar="false" spacing="15px" orient="vertical"/>
|
||||
<label value="${i18n:_('Materials')}" />
|
||||
<decimalbox id="boxMaterialsBudget" width="150px" scale="2"
|
||||
value="@{controller.order.materialsBudget}"
|
||||
onChange="controller.reloadTotalBudget(txtTotalBudget)" />
|
||||
<separator bar="false" spacing="15px" orient="vertical"/>
|
||||
<label value=" ${i18n:_('Total')} :" />
|
||||
<label id="txtTotalBudget" value="@{controller.order.totalBudget}"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Total hours')}" />
|
||||
<label value="@{controller.order.totalHours}" width="200px"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('State')}" />
|
||||
<listbox id="listOrderStatus" mold="select" rows="1" width="220px"
|
||||
model="@{controller.orderStatus}"
|
||||
selectedItem="@{controller.order.state}"
|
||||
itemRenderer="org.libreplan.web.common.EnumsListitemRenderer" />
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
<groupbox style="margin-top: 5px" sclass="assignedresources" closable="false">
|
||||
<caption label="${i18n:_('Identification')}" />
|
||||
|
||||
<separator spacing="10px"/>
|
||||
|
||||
<grid fixedLayout="true" width="550px">
|
||||
<columns>
|
||||
<column width="200px" />
|
||||
<column />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="${i18n:_('Name')}" />
|
||||
<textbox value="@{controller.order.name}" width="200px"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Code')}" />
|
||||
<hbox>
|
||||
<textbox value="@{controller.order.code}" width="200px"
|
||||
disabled="@{controller.codeAutogenerated}" />
|
||||
<checkbox label="${i18n:_('Generate code')}"
|
||||
checked="@{controller.codeAutogenerated}" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Responsible')}" />
|
||||
<textbox
|
||||
value="@{controller.order.responsible}" width="200px"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Description')}" />
|
||||
<textbox
|
||||
value="@{controller.order.description}"
|
||||
rows="7" width="330px" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('State')}" />
|
||||
<listbox id="listOrderStatus" mold="select" rows="1" width="220px"
|
||||
model="@{controller.orderStatus}"
|
||||
selectedItem="@{controller.order.state}"
|
||||
itemRenderer="org.libreplan.web.common.EnumsListitemRenderer" />
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</groupbox>
|
||||
<div>
|
||||
<groupbox style="margin-top: 5px" sclass="assignedresources" closable="false">
|
||||
<caption label="${i18n:_('Planning Configuration')}" />
|
||||
|
||||
<separator spacing="10px"/>
|
||||
|
||||
<grid fixedLayout="true">
|
||||
<columns>
|
||||
<column width="180px" />
|
||||
<column />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="${i18n:_('Starting date')}" />
|
||||
<datebox id="initDate"
|
||||
value="@{controller.order.initDate}" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Deadline')}" />
|
||||
<datebox id="deadline"
|
||||
value="@{controller.order.deadline}" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Calendar')}" />
|
||||
<combobox id="calendarCombobox" width="200px"
|
||||
model="@{controller.baseCalendars}"
|
||||
itemRenderer="@{controller.baseCalendarsComboitemRenderer}"
|
||||
onSelect="controller.setBaseCalendar(self.selectedItem.value);" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Scheduling mode')}" />
|
||||
<combobox id="schedulingMode" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Dependencies have priority')}" />
|
||||
<checkbox
|
||||
checked="@{controller.order.dependenciesConstraintsHavePriority}" />
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</groupbox>
|
||||
<groupbox style="margin-top: 5px" sclass="assignedresources" closable="false">
|
||||
<caption label="${i18n:_('Cost')}" />
|
||||
|
||||
<separator spacing="10px"/>
|
||||
|
||||
<grid fixedLayout="true">
|
||||
<columns>
|
||||
<column width="120px" />
|
||||
<column />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="${i18n:_('Budget')}" />
|
||||
<hbox align="center">
|
||||
<label value="${i18n:_('Work')}" />
|
||||
<decimalbox id="boxWorkBudget" width="80px" scale = "2"
|
||||
value="@{controller.order.workBudget}"
|
||||
onChange="controller.reloadTotalBudget(txtTotalBudget)" />
|
||||
<separator bar="false" spacing="15px" orient="vertical"/>
|
||||
<label value="${i18n:_('Materials')}" />
|
||||
<decimalbox id="boxMaterialsBudget" width="80px" scale="2"
|
||||
value="@{controller.order.materialsBudget}"
|
||||
onChange="controller.reloadTotalBudget(txtTotalBudget)" />
|
||||
<separator bar="false" spacing="15px" orient="vertical"/>
|
||||
<label value=" ${i18n:_('Total')} :" />
|
||||
<label id="txtTotalBudget" value="@{controller.order.totalBudget}"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Total hours')}" />
|
||||
<label value="@{controller.order.totalHours}"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</groupbox>
|
||||
</div>
|
||||
</hbox>
|
||||
<groupbox style="margin-top: 5px" sclass="assignedresources" closable="false">
|
||||
<caption label="${i18n:_('Customer information')}" />
|
||||
<separator spacing="10px"/>
|
||||
<hbox>
|
||||
<separator spacing="10px"/>
|
||||
|
||||
<grid fixedLayout="true">
|
||||
<columns>
|
||||
<column width="200px" />
|
||||
<column />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="${i18n:_('External code')}" />
|
||||
<textbox value="@{controller.order.externalCode}"
|
||||
width="350px" disabled="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Customer')}" />
|
||||
<bandboxSearch id="bdExternalCompanies" widthBandbox="465px" widthListbox="480px"
|
||||
finder="ExternalCompanyBandboxFinder"
|
||||
model="@{controller.externalCompaniesAreClient}"
|
||||
selectedElement="@{controller.order.customer}"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Customer reference')}" />
|
||||
<textbox value="@{controller.order.customerReference}" width="465px"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
<separator spacing="20px"/>
|
||||
|
||||
<grid id="gridDeliverDate"
|
||||
model="@{controller.deliverDates}"
|
||||
mold="paging" pageSize="4" fixedLayout="true" width="400px">
|
||||
<columns>
|
||||
<column label="${i18n:_('Deliver date')}" align="center" width="200px"/>
|
||||
<column label="${i18n:_('Communication date')}" align="center"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row self="@{each='deliverDate'}" value="@{deliverDate}">
|
||||
<label value="@{deliverDate.deliverDate, converter='org.libreplan.web.common.typeconverters.DateConverter'}" />
|
||||
<label value="@{deliverDate.saveDate, converter='org.libreplan.web.common.typeconverters.DateConverter'}" />
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</tabpanel>
|
||||
<tabpanel>
|
||||
<listOrderElementHours id="orderElementHours" fulfill="tabAssignedHours.onSelect"/>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue