From 9a82aeb6af2e85b51fbd5ba720aaffbc7e4063d9 Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Tue, 13 Dec 2011 11:07:26 +0100 Subject: [PATCH] creates a new field in the SubcontratedTaskData to store the collection of subcontrator delivering dates. FEA: ItEr75S32AnA15S04UpdateDeliveringDateInSubcontracting --- .../entities/SubcontractedTaskData.java | 12 ++++++++++++ .../src/main/resources/db.changelog-1.2.xml | 6 ++++++ .../SubcontractorCommunication.hbm.xml | 2 +- .../business/planner/entities/Tasks.hbm.xml | 6 ++++++ .../SubcontractorCommunicationDAOTest.java | 18 ++++++++++++++++-- .../subcontract/ReportAdvancesServiceTest.java | 5 +---- 6 files changed, 42 insertions(+), 7 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java index 3dd0b835c..87ba7b820 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java @@ -92,6 +92,9 @@ public class SubcontractedTaskData extends BaseEntity { private SubcontractState state = SubcontractState.PENDING; + private final SortedSet requiredDeliveringDates = new TreeSet( + new DeliverDateComparator()); + /** * Constructor for hibernate. Do not use! */ @@ -252,4 +255,13 @@ public class SubcontractedTaskData extends BaseEntity { && externalCompany.getInteractsWithApplications(); } + public void setRequiredDeliveringDates(SortedSet requiredDeliveringDates) { + this.requiredDeliveringDates.clear(); + this.requiredDeliveringDates.addAll(requiredDeliveringDates); + } + + public SortedSet getRequiredDeliveringDates() { + return requiredDeliveringDates; + } + } \ No newline at end of file diff --git a/libreplan-business/src/main/resources/db.changelog-1.2.xml b/libreplan-business/src/main/resources/db.changelog-1.2.xml index 34f9c7150..e4be9f6c9 100644 --- a/libreplan-business/src/main/resources/db.changelog-1.2.xml +++ b/libreplan-business/src/main/resources/db.changelog-1.2.xml @@ -124,4 +124,10 @@ + + Add the column subcontracted_task_id to maintain the relation + + + + diff --git a/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/SubcontractorCommunication.hbm.xml b/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/SubcontractorCommunication.hbm.xml index be34aeb25..8ae7336de 100644 --- a/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/SubcontractorCommunication.hbm.xml +++ b/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/SubcontractorCommunication.hbm.xml @@ -24,7 +24,7 @@ + column="subcontracted_task_data" /> diff --git a/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/Tasks.hbm.xml b/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/Tasks.hbm.xml index a9e5c0685..4496874f9 100644 --- a/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/Tasks.hbm.xml +++ b/libreplan-business/src/main/resources/org/libreplan/business/planner/entities/Tasks.hbm.xml @@ -212,6 +212,12 @@ + + + + + diff --git a/libreplan-business/src/test/java/org/libreplan/business/test/planner/daos/SubcontractorCommunicationDAOTest.java b/libreplan-business/src/test/java/org/libreplan/business/test/planner/daos/SubcontractorCommunicationDAOTest.java index 3ea20f4a6..177e2248b 100644 --- a/libreplan-business/src/test/java/org/libreplan/business/test/planner/daos/SubcontractorCommunicationDAOTest.java +++ b/libreplan-business/src/test/java/org/libreplan/business/test/planner/daos/SubcontractorCommunicationDAOTest.java @@ -230,10 +230,24 @@ public class SubcontractorCommunicationDAOTest { throws InstanceNotFoundException { SubcontractorCommunication customerCommunication = createValidSubcontractorCommunication(); subcontractorCommunicationDAO.save(customerCommunication); + assertTrue(customerCommunication.getId() != null); + Long idSubcontratecTaskData = customerCommunication.getSubcontractedTaskData().getId(); + Long idCommunication = customerCommunication.getId(); + subcontractorCommunicationDAO.remove(customerCommunication.getId()); - assertFalse(subcontractorCommunicationDAO - .exists(customerCommunication.getId())); + + try{ + subcontractorCommunicationDAO.findExistingEntity(idCommunication); + fail("error"); + }catch(RuntimeException e){ + //ok + } + try{ + subcontractedTaskDataDAO.findExistingEntity(idSubcontratecTaskData); + }catch(RuntimeException e){ + fail("error"); + } } @Test diff --git a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java index 0fb6a177f..4d95aefb7 100644 --- a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java +++ b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/subcontract/ReportAdvancesServiceTest.java @@ -237,6 +237,7 @@ public class ReportAdvancesServiceTest { public void validAdvancesReportToSubcontratedOrderElement() { int previousCommunications = subcontractorCommunicationDAO.getAll().size(); OrderLine orderLine = createOrderLine(); + String orderElementCode = orderLine.getCode(); Map values = givenValidMapValues(1, 0, @@ -244,7 +245,6 @@ public class ReportAdvancesServiceTest { OrderElementWithAdvanceMeasurementsListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsListDTO( orderElementCode, values); - SubcontractorCommunication subcontractorCommunication = SubcontractorCommunication.create(); reportAdvancesService .updateAdvances(orderElementWithAdvanceMeasurementsListDTO); @@ -439,9 +439,6 @@ public class ReportAdvancesServiceTest { task.dontPoseAsTransientObjectAnymore(); taskElementDAO.flush(); - sessionFactory.getCurrentSession().evict(task); - sessionFactory.getCurrentSession().evict(subcontractedTaskData); - subcontractedTaskDataDAO.save(subcontractedTaskData); return subcontractedTaskData; }