From ff2f2298cf56ef493a9d7f77dd8e82dc32b87cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Tue, 28 Feb 2012 16:28:51 +0100 Subject: [PATCH] Bug #1289: Added subcontractor name to tasks when showing resources is enabled The name of the subcontractors are not being displayed when the container is collapsed. The expected behaviour also might consider painting the parent node differently when it only contains subcontracted elements. FEA: ItEr76S04BugFixing --- .../libreplan/business/planner/entities/Task.java | 9 +++++++++ .../business/planner/entities/TaskElement.java | 9 +++++++++ .../libreplan/web/planner/TaskElementAdapter.java | 14 +++++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) 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 060ac7d55..dcc72fb3d 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; @@ -888,6 +889,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) { @@ -907,6 +912,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 4a13b7d6a..1af71bb8f 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 @@ -46,6 +46,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; @@ -569,6 +570,10 @@ public abstract class TaskElement extends BaseEntity { return false; } + public String getSubcontractionName() { + return ""; + } + public boolean isSubcontractedAndWasAlreadySent() { // Just Task could be subcontracted return false; @@ -747,4 +752,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 c8124a48a..a1a853953 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; @@ -269,6 +271,9 @@ public class TaskElementAdapter { @Autowired private IResourceAllocationDAO resourceAllocationDAO; + @Autowired + private IExternalCompanyDAO externalCompanyDAO; + @Autowired private IResourcesSearcher searcher; @@ -821,6 +826,10 @@ public class TaskElementAdapter { public String execute() { orderElementDAO.reattach(taskElement .getOrderElement()); + if (taskElement.isSubcontracted()) { + externalCompanyDAO.reattach(taskElement + .getSubcontractedCompany()); + } return buildResourcesText(); } }); @@ -883,6 +892,9 @@ public class TaskElementAdapter { } } } + if (taskElement.isSubcontracted()) { + result.add(taskElement.getSubcontractionName()); + } Collections.sort(result); return StringUtils.join(result, ", "); }