diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Task.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Task.java index a8c62d087..57ce56920 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Task.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Task.java @@ -42,6 +42,7 @@ import org.joda.time.LocalDate; import org.libreplan.business.calendars.entities.AvailabilityTimeLine; import org.libreplan.business.calendars.entities.ICalendar; import org.libreplan.business.calendars.entities.SameWorkHoursEveryDay; +import org.libreplan.business.externalcompanies.entities.ExternalCompany; import org.libreplan.business.orders.entities.AggregatedHoursGroup; import org.libreplan.business.orders.entities.HoursGroup; import org.libreplan.business.orders.entities.OrderElement; @@ -847,6 +848,10 @@ public class Task extends TaskElement implements ITaskPositionConstrained { return subcontractedTaskData; } + public ExternalCompany getSubcontractedCompany() { + return subcontractedTaskData.getExternalCompany(); + } + public void removeAllSatisfiedResourceAllocations() { Set> resourceAllocations = getSatisfiedResourceAllocations(); for (ResourceAllocation resourceAllocation : resourceAllocations) { @@ -866,6 +871,10 @@ public class Task extends TaskElement implements ITaskPositionConstrained { return (subcontractedTaskData != null); } + public String getSubcontractionName() { + return subcontractedTaskData.getExternalCompany().getName(); + } + public boolean isSubcontractedAndWasAlreadySent() { return (subcontractedTaskData != null) && (!subcontractedTaskData.getState() diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskElement.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskElement.java index c6de6bc4e..32a4f25b8 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskElement.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskElement.java @@ -45,6 +45,7 @@ import org.joda.time.LocalDate; import org.libreplan.business.calendars.entities.BaseCalendar; import org.libreplan.business.common.BaseEntity; import org.libreplan.business.common.entities.ProgressType; +import org.libreplan.business.externalcompanies.entities.ExternalCompany; import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.orders.entities.OrderStatusEnum; @@ -573,6 +574,10 @@ public abstract class TaskElement extends BaseEntity { return false; } + public String getSubcontractionName() { + return ""; + } + public boolean isSubcontractedAndWasAlreadySent() { // Just Task could be subcontracted return false; @@ -729,4 +734,8 @@ public abstract class TaskElement extends BaseEntity { return (this.getParent() == null); } + public ExternalCompany getSubcontractedCompany() { + return null; + } + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java index 9f1f0b20c..be09558f7 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java @@ -3,7 +3,7 @@ * * Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e * Desenvolvemento Tecnolóxico de Galicia - * Copyright (C) 2010-2011 Igalia, S.L. + * Copyright (C) 2010-2012 Igalia, S.L. * * 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 @@ -57,8 +57,10 @@ import org.libreplan.business.common.IAdHocTransactionService; import org.libreplan.business.common.IOnTransaction; import org.libreplan.business.common.daos.IConfigurationDAO; import org.libreplan.business.common.entities.ProgressType; +import org.libreplan.business.externalcompanies.daos.IExternalCompanyDAO; import org.libreplan.business.labels.entities.Label; import org.libreplan.business.orders.daos.IOrderElementDAO; +import org.libreplan.business.orders.daos.OrderElementDAO; import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.orders.entities.OrderStatusEnum; @@ -274,6 +276,9 @@ public class TaskElementAdapter { @Autowired private IResourceAllocationDAO resourceAllocationDAO; + @Autowired + private IExternalCompanyDAO externalCompanyDAO; + @Autowired private IResourcesSearcher searcher; @@ -863,6 +868,10 @@ public class TaskElementAdapter { public String execute() { orderElementDAO.reattach(taskElement .getOrderElement()); + if (taskElement.isSubcontracted()) { + externalCompanyDAO.reattach(taskElement + .getSubcontractedCompany()); + } return buildResourcesText(); } }); @@ -925,6 +934,9 @@ public class TaskElementAdapter { } } } + if (taskElement.isSubcontracted()) { + result.add(taskElement.getSubcontractionName()); + } Collections.sort(result); return StringUtils.join(result, ", "); }