ItEr45S12RFGravacionDatosHistoricosResponsabilidadesTraballoUnidadesPlanItEr44S18: Historical List of templates assignment in projects.
It must be reviewed the error which occurs when you go from the list of historical application of a template to the order of a particular use of the template. A javascript occupies the 100% of the CPU.
This commit is contained in:
parent
381f339440
commit
02b9dadabe
13 changed files with 376 additions and 26 deletions
|
|
@ -27,6 +27,7 @@ import org.navalplanner.business.common.daos.IGenericDAO;
|
|||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.templates.entities.OrderElementTemplate;
|
||||
|
||||
/**
|
||||
* Contract for {@link OrderElementDAO}
|
||||
|
|
@ -76,6 +77,8 @@ public interface IOrderElementDAO extends IGenericDAO<OrderElement, Long> {
|
|||
*/
|
||||
int getAssignedHours(OrderElement orderElement);
|
||||
|
||||
int getAssignedDirectHours(OrderElement orderElement);
|
||||
|
||||
/**
|
||||
* Returns the advance percentage in hours for an {@link OrderElement}
|
||||
*
|
||||
|
|
@ -96,4 +99,6 @@ public interface IOrderElementDAO extends IGenericDAO<OrderElement, Long> {
|
|||
|
||||
public List<OrderElement> findOrderElementsWithExternalCode();
|
||||
|
||||
List<OrderElement> findByTemplate(OrderElementTemplate template);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import org.navalplanner.business.orders.entities.Order;
|
|||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.orders.entities.TaskSource;
|
||||
import org.navalplanner.business.planner.daos.ITaskSourceDAO;
|
||||
import org.navalplanner.business.templates.entities.OrderElementTemplate;
|
||||
import org.navalplanner.business.workreports.daos.IWorkReportLineDAO;
|
||||
import org.navalplanner.business.workreports.entities.WorkReportLine;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -112,17 +113,17 @@ public class OrderElementDAO extends GenericDAOHibernate<OrderElement, Long>
|
|||
OrderElement order = transactionService
|
||||
.runOnAnotherTransaction(new IOnTransaction<OrderElement>() {
|
||||
|
||||
@Override
|
||||
public OrderElement execute() {
|
||||
OrderElement current = orderElement;
|
||||
OrderElement result = current;
|
||||
while (current != null) {
|
||||
result = current;
|
||||
current = findParent(current);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public OrderElement execute() {
|
||||
OrderElement current = orderElement;
|
||||
OrderElement result = current;
|
||||
while (current != null) {
|
||||
result = current;
|
||||
current = findParent(current);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
});
|
||||
return orderDAO.findExistingEntity(order.getId());
|
||||
}
|
||||
|
||||
|
|
@ -140,14 +141,16 @@ public class OrderElementDAO extends GenericDAOHibernate<OrderElement, Long>
|
|||
+ getAssignedHours(w);
|
||||
}
|
||||
}
|
||||
List<WorkReportLine> listWRL = this.workReportLineDAO
|
||||
.findByOrderElement(orderElement);
|
||||
return (getAssignedDirectHours(listWRL) + addAsignedHoursChildren);
|
||||
return (getAssignedDirectHours(orderElement) + addAsignedHoursChildren);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int getAssignedDirectHours(List<WorkReportLine> listWRL) {
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public int getAssignedDirectHours(OrderElement orderElement) {
|
||||
List<WorkReportLine> listWRL = this.workReportLineDAO
|
||||
.findByOrderElement(orderElement);
|
||||
int asignedDirectHours = 0;
|
||||
Iterator<WorkReportLine> iterator = listWRL.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
|
|
@ -189,6 +192,12 @@ public class OrderElementDAO extends GenericDAOHibernate<OrderElement, Long>
|
|||
return (List<OrderElement>) c.list();
|
||||
}
|
||||
|
||||
public List<OrderElement> findByTemplate(OrderElementTemplate template) {
|
||||
Criteria c = getSession().createCriteria(OrderElement.class);
|
||||
c.add(Restrictions.eq("template", template));
|
||||
return (List<OrderElement>) c.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderElement findUniqueByCode(String code)
|
||||
throws InstanceNotFoundException {
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ import org.zkoss.zul.RowRenderer;
|
|||
import org.zkoss.zul.SimpleListModel;
|
||||
import org.zkoss.zul.Tab;
|
||||
import org.zkoss.zul.Tabbox;
|
||||
import org.zkoss.zul.Treeitem;
|
||||
import org.zkoss.zul.Vbox;
|
||||
import org.zkoss.zul.api.Window;
|
||||
|
||||
|
|
@ -197,6 +198,8 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
|
||||
private OrdersRowRenderer ordersRowRenderer = new OrdersRowRenderer();
|
||||
|
||||
private OrderElementTreeController orderElementTreeController;
|
||||
|
||||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception {
|
||||
super.doAfterCompose(comp);
|
||||
|
|
@ -281,8 +284,9 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
OrderElementController orderElementController) throws Exception {
|
||||
TreeComponent orderElementsTree = (TreeComponent) editWindow
|
||||
.getFellow("orderElementTree");
|
||||
orderElementsTree.useController(new OrderElementTreeController(
|
||||
orderModel, orderElementController));
|
||||
orderElementTreeController = new OrderElementTreeController(
|
||||
orderModel, orderElementController);
|
||||
orderElementsTree.useController(orderElementTreeController);
|
||||
}
|
||||
|
||||
private IOrderElementModel getOrderElementModel() {
|
||||
|
|
@ -848,4 +852,17 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
orderFilter.setVisible(false);
|
||||
filter.setVisible(true);
|
||||
}
|
||||
|
||||
public void highLight(OrderElement orderElement) {
|
||||
selectTab("tabOrderElements");
|
||||
if ((!(orderElement instanceof Order))
|
||||
&& (orderElementTreeController != null)) {
|
||||
final Treeitem item = orderElementTreeController
|
||||
.getTreeitemByOrderElement(orderElement);
|
||||
if (item != null) {
|
||||
orderElementTreeController.showEditionOrderElement(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -114,6 +114,10 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
this.orderElementController = orderElementController;
|
||||
}
|
||||
|
||||
public OrderElementController getOrderElementController() {
|
||||
return orderElementController;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected OrderElementTreeModel getModel() {
|
||||
return orderModel.getOrderElementTreeModel();
|
||||
|
|
@ -413,10 +417,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
new EventListener() {
|
||||
@Override
|
||||
public void onEvent(Event event) throws Exception {
|
||||
markModifiedTreeitem((Treerow) item.getFirstChild());
|
||||
IOrderElementModel model = orderModel
|
||||
.getOrderElementModel(currentOrderElement);
|
||||
orderElementController.openWindow(model);
|
||||
showEditionOrderElement(item);
|
||||
}
|
||||
});
|
||||
return editbutton;
|
||||
|
|
@ -519,4 +520,22 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
|
|||
return tooltipText.toString();
|
||||
}
|
||||
|
||||
public void showEditionOrderElement(final Treeitem item) {
|
||||
OrderElement currentOrderElement = (OrderElement) item.getValue();
|
||||
markModifiedTreeitem((Treerow) item.getFirstChild());
|
||||
IOrderElementModel model = orderModel
|
||||
.getOrderElementModel(currentOrderElement);
|
||||
orderElementController.openWindow(model);
|
||||
}
|
||||
|
||||
public Treeitem getTreeitemByOrderElement(OrderElement element) {
|
||||
List<Treeitem> listItems = new ArrayList<Treeitem>(this.tree.getItems());
|
||||
for (Treeitem item : listItems) {
|
||||
OrderElement orderElement = (OrderElement) item.getValue();
|
||||
if (orderElement.getId().equals(element.getId())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
package org.navalplanner.web.planner.tabs;
|
||||
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.web.common.entrypoints.EntryPoint;
|
||||
import org.navalplanner.web.common.entrypoints.EntryPoints;
|
||||
|
||||
|
|
@ -42,4 +43,7 @@ public interface IGlobalViewEntryPoints {
|
|||
@EntryPoint("order")
|
||||
public void goToOrder(Order order);
|
||||
|
||||
@EntryPoint( { "orderElement", "order" })
|
||||
public void goToOrderElementDetails(OrderElement orderElement, Order order);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import java.util.Map;
|
|||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.planner.daos.ITaskElementDAO;
|
||||
import org.navalplanner.business.resources.daos.IResourceDAO;
|
||||
import org.navalplanner.web.common.entrypoints.URLHandler;
|
||||
|
|
@ -280,7 +281,7 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
|
||||
@Override
|
||||
public void goToOrdersList() {
|
||||
getTabsRegistry().show(ordersTab);
|
||||
ordersTab.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -289,4 +290,11 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
getTabsRegistry().show(planningTab);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToOrderElementDetails(OrderElement orderElement, Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(ordersTab);
|
||||
orderCRUDController.highLight(orderElement);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,4 +53,5 @@ public interface IOrderTemplatesModel {
|
|||
List<Label> getLabels();
|
||||
|
||||
Set<QualityForm> getAllQualityForms();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,13 +21,17 @@ package org.navalplanner.web.templates;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.templates.entities.OrderElementTemplate;
|
||||
import org.navalplanner.web.common.OnlyOneVisible;
|
||||
import org.navalplanner.web.common.Util;
|
||||
import org.navalplanner.web.common.entrypoints.IURLHandlerRegistry;
|
||||
import org.navalplanner.web.common.entrypoints.URLHandler;
|
||||
import org.navalplanner.web.planner.tabs.IGlobalViewEntryPoints;
|
||||
import org.navalplanner.web.templates.advances.AdvancesAssignmentComponent;
|
||||
import org.navalplanner.web.templates.historicalAssignment.OrderElementHistoricalAssignmentComponent;
|
||||
import org.navalplanner.web.templates.labels.LabelsAssignmentToTemplateComponent;
|
||||
import org.navalplanner.web.templates.materials.MaterialAssignmentTemplateComponent;
|
||||
import org.navalplanner.web.templates.quality.QualityFormAssignerComponent;
|
||||
|
|
@ -57,6 +61,9 @@ public class OrderTemplatesController extends GenericForwardComposer implements
|
|||
|
||||
private Window editWindow;
|
||||
|
||||
@Resource
|
||||
private IGlobalViewEntryPoints globalView;
|
||||
|
||||
@Autowired
|
||||
private IURLHandlerRegistry handlerRegistry;
|
||||
|
||||
|
|
@ -94,6 +101,7 @@ public class OrderTemplatesController extends GenericForwardComposer implements
|
|||
bindLabelsControllerWithCurrentTemplate();
|
||||
bindQualityFormWithCurrentTemplate();
|
||||
bindEditTemplateWindowWithController();
|
||||
bindHistoricalArragenmentWithCurrentTemplate();
|
||||
show(editWindow);
|
||||
}
|
||||
|
||||
|
|
@ -135,6 +143,12 @@ public class OrderTemplatesController extends GenericForwardComposer implements
|
|||
editTemplateWindow);
|
||||
}
|
||||
|
||||
private void bindHistoricalArragenmentWithCurrentTemplate() {
|
||||
OrderElementHistoricalAssignmentComponent c = (OrderElementHistoricalAssignmentComponent) editWindow
|
||||
.getFellow("historicalAssignment");
|
||||
c.useModel(model, globalView);
|
||||
}
|
||||
|
||||
public boolean isTemplateTreeDisabled() {
|
||||
return model.isTemplateTreeDisabled();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -124,14 +124,14 @@ public class OrderTemplatesModel implements IOrderTemplatesModel {
|
|||
public void createTemplateFrom(OrderElement orderElement) {
|
||||
initializeAcompanyingObjectsOnConversation();
|
||||
orderElementDAO.loadOrderAvoidingProxyFor(orderElement);
|
||||
OrderElement reloaded = orderElementDAO
|
||||
.findExistingEntity(orderElement.getId());
|
||||
template = reloaded.createTemplate();
|
||||
OrderElement orderElementOrigin = orderElementDAO
|
||||
.findExistingEntity(orderElement
|
||||
.getId());
|
||||
template = orderElementOrigin.createTemplate();
|
||||
loadAssociatedData(template);
|
||||
treeModel = new TemplatesTree(template);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void initEdit(OrderElementTemplate template) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* This file is part of ###PROJECT_NAME###
|
||||
*
|
||||
* Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.web.templates.historicalAssignment;
|
||||
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
|
||||
|
||||
/**
|
||||
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
|
||||
*/
|
||||
|
||||
public class OrderElementHistoricAssignmentDTO {
|
||||
|
||||
public final String orderCode;
|
||||
public final String orderElementCode;
|
||||
public final String estimatedHours;
|
||||
public final String workedHours;
|
||||
public final OrderElement orderElement;
|
||||
public final Order order;
|
||||
|
||||
OrderElementHistoricAssignmentDTO(OrderElement orderElement,
|
||||
Order order,
|
||||
String estimatedHours, String workedHours) {
|
||||
this.orderElement = orderElement;
|
||||
this.order = order;
|
||||
this.orderCode = order.getCode();
|
||||
this.orderElementCode = orderElement.getCode();
|
||||
this.estimatedHours = estimatedHours;
|
||||
this.workedHours = workedHours;
|
||||
}
|
||||
|
||||
public String getOrderCode() {
|
||||
return orderCode;
|
||||
}
|
||||
|
||||
public String getOrderElementCode() {
|
||||
return orderElementCode;
|
||||
}
|
||||
|
||||
public String getEstimatedHours() {
|
||||
return estimatedHours;
|
||||
}
|
||||
|
||||
public String getWorkedHours() {
|
||||
return workedHours;
|
||||
}
|
||||
|
||||
public OrderElement getOrderElement() {
|
||||
return this.orderElement;
|
||||
}
|
||||
|
||||
public Order getOrder() {
|
||||
return order;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
/*
|
||||
* This file is part of ###PROJECT_NAME###
|
||||
*
|
||||
* Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.web.templates.historicalAssignment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
import org.navalplanner.business.orders.daos.IOrderElementDAO;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.templates.entities.OrderElementTemplate;
|
||||
import org.navalplanner.web.planner.tabs.IGlobalViewEntryPoints;
|
||||
import org.navalplanner.web.templates.IOrderTemplatesModel;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.context.WebApplicationContext;
|
||||
import org.springframework.web.context.support.WebApplicationContextUtils;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.HtmlMacroComponent;
|
||||
|
||||
/**
|
||||
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class OrderElementHistoricalAssignmentComponent extends HtmlMacroComponent {
|
||||
|
||||
private OrderElementTemplate template;
|
||||
|
||||
private IOrderTemplatesModel model;
|
||||
|
||||
private IAdHocTransactionService adHocTransactionService;
|
||||
|
||||
private IOrderElementDAO orderElementDAO;
|
||||
|
||||
private IOrderDAO orderDAO;
|
||||
|
||||
private IGlobalViewEntryPoints globalView;
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public void afterCompose() {
|
||||
super.afterCompose();
|
||||
this.adHocTransactionService = (IAdHocTransactionService) getBean("adHocTransactionService");
|
||||
this.orderElementDAO = (IOrderElementDAO) getBean("orderElementDAO");
|
||||
this.orderDAO = (IOrderDAO) getBean("orderDAO");
|
||||
}
|
||||
|
||||
public void useModel(IOrderTemplatesModel model,
|
||||
IGlobalViewEntryPoints globalView) {
|
||||
template = model.getTemplate();
|
||||
this.model = model;
|
||||
this.globalView = globalView;
|
||||
}
|
||||
|
||||
public List<OrderElementHistoricAssignmentDTO> getOrderElementsWithThisAssignedTemplate() {
|
||||
if ((model == null) || (template == null) || template.isNewObject()) {
|
||||
return Collections.emptyList();
|
||||
} else {
|
||||
return this.adHocTransactionService.runOnReadOnlyTransaction(new IOnTransaction<List<OrderElementHistoricAssignmentDTO>>() {
|
||||
@Override
|
||||
public List<OrderElementHistoricAssignmentDTO> execute() {
|
||||
final List<OrderElement> orderElements = new ArrayList<OrderElement>(
|
||||
orderElementDAO.findByTemplate(template));
|
||||
return createOrderElementHistoricAssignmentDTOs(orderElements);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private List<OrderElementHistoricAssignmentDTO> createOrderElementHistoricAssignmentDTOs(
|
||||
List<OrderElement> orderElements) {
|
||||
List<OrderElementHistoricAssignmentDTO> dtos = new ArrayList<OrderElementHistoricAssignmentDTO>();
|
||||
for (OrderElement orderElement : orderElements) {
|
||||
dtos.add(new OrderElementHistoricAssignmentDTO(orderElement,
|
||||
getOrder(orderElement),
|
||||
getEstimatedHours(orderElement),
|
||||
getWorkedHours(orderElement)));
|
||||
}
|
||||
return dtos;
|
||||
}
|
||||
|
||||
private Order getOrder(OrderElement orderElement) {
|
||||
Order order = (Order) orderElementDAO
|
||||
.loadOrderAvoidingProxyFor(orderElement);
|
||||
return order;
|
||||
}
|
||||
|
||||
public String getEstimatedHours(OrderElement orderElement) {
|
||||
return (orderElement.getWorkHours()).toString();
|
||||
}
|
||||
|
||||
private String getWorkedHours(OrderElement orderElement){
|
||||
Integer asignedDirectHours = orderElementDAO
|
||||
.getAssignedDirectHours(orderElement);
|
||||
return asignedDirectHours.toString();
|
||||
}
|
||||
|
||||
public void view(final OrderElementHistoricAssignmentDTO dto) {
|
||||
OrderElement orderElement = dto.getOrderElement();
|
||||
Order order = dto.getOrder();
|
||||
globalView.goToOrderElementDetails(orderElement, order);
|
||||
}
|
||||
|
||||
private Object getBean(String classname) {
|
||||
HttpServletRequest servletRequest = (HttpServletRequest) Executions
|
||||
.getCurrent().getNativeRequest();
|
||||
ServletContext servletContext = servletRequest.getSession()
|
||||
.getServletContext();
|
||||
WebApplicationContext webApplicationContext = WebApplicationContextUtils
|
||||
.getWebApplicationContext(servletContext);
|
||||
return webApplicationContext.getBean(classname);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
<!--
|
||||
This file is part of ###PROJECT_NAME###
|
||||
|
||||
Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
Desenvolvemento Tecnolóxico de Galicia
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<zk>
|
||||
<zscript><![CDATA[
|
||||
historicalAssignment = self;
|
||||
]]>
|
||||
</zscript>
|
||||
<vbox>
|
||||
<!-- Order element historic assignment to templates-->
|
||||
<vbox>
|
||||
<vbox id="messagesContainerHistoricAssignment" />
|
||||
<panel title="${i18n:_('Historical list Assignment')}" border="normal">
|
||||
<panelchildren>
|
||||
<grid height="200px" fixedLayout="true"
|
||||
model="@{historicalAssignment.orderElementsWithThisAssignedTemplate}">
|
||||
<columns>
|
||||
<column label="${i18n:_('Order code')}" sort="orderCode" sortDirection="descending"/>
|
||||
<column label="${i18n:_('Order element code')}" sort="auto(name)" sortDirection="descending"/>
|
||||
<column label="${i18n:_('Estimated hours')}" />
|
||||
<column label="${i18n:_('worked hours')}" />
|
||||
<column label="${i18n:_('Operations')}" />
|
||||
</columns>
|
||||
<rows>
|
||||
<row self="@{each='orderElementDTO'}" value="@{orderElementDTO}">
|
||||
<label value="@{orderElementDTO.orderCode}"/>
|
||||
<label value="@{orderElementDTO.orderElementCode}"/>
|
||||
<label value="@{orderElementDTO.estimatedHours}"/>
|
||||
<label value="@{orderElementDTO.workedHours}"/>
|
||||
<button label="${i18n:_('View')}"
|
||||
onClick="historicalAssignment.view(self.parent.value);"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
</panelchildren>
|
||||
</panel>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</zk>
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
<?component name="assignedQualityForms" class="org.navalplanner.web.templates.quality.QualityFormAssignerComponent" macroURI="/templates/_assignedQualityForms.zul" ?>
|
||||
<?component name="advancesAssignment" class="org.navalplanner.web.templates.advances.AdvancesAssignmentComponent" macroURI="/templates/_advances.zul"?>
|
||||
<?component name="editTemplateWindow" macroURI="_editTemplateWindow.zul" inline="true"?>
|
||||
<?component name="historicalAssignment" class="org.navalplanner.web.templates.historicalAssignment.OrderElementHistoricalAssignmentComponent" macroURI="/templates/_historicalAssignment.zul" ?>
|
||||
|
||||
<zk>
|
||||
<zscript><![CDATA[
|
||||
|
|
@ -54,6 +55,7 @@
|
|||
<tab label="${i18n:_('Labels')}" />
|
||||
<tab label="${i18n:_('Materials')}" />
|
||||
<tab label="${i18n:_('Quality Forms')}" />
|
||||
<tab label="${i18n:_('Historical assignment')}" />
|
||||
</tabs>
|
||||
<tabpanels>
|
||||
<tabpanel>
|
||||
|
|
@ -101,6 +103,9 @@
|
|||
<tabpanel>
|
||||
<assignedQualityForms id="assignedQualityForms"/>
|
||||
</tabpanel>
|
||||
<tabpanel>
|
||||
<historicalAssignment id="historicalAssignment"/>
|
||||
</tabpanel>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
<hbox>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue