From f50806e51e3940d33d9afea86d743573573ecc3c 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 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, ", "); }