creates a new field in the SubcontratedTaskData to store the collection of subcontrator delivering dates.

FEA: ItEr75S32AnA15S04UpdateDeliveringDateInSubcontracting
This commit is contained in:
Susana Montes Pedreira 2011-12-13 11:07:26 +01:00
parent e00ef6d40d
commit 9a82aeb6af
6 changed files with 42 additions and 7 deletions

View file

@ -92,6 +92,9 @@ public class SubcontractedTaskData extends BaseEntity {
private SubcontractState state = SubcontractState.PENDING;
private final SortedSet<SubcontractorDeliverDate> requiredDeliveringDates = new TreeSet<SubcontractorDeliverDate>(
new DeliverDateComparator());
/**
* Constructor for hibernate. Do not use!
*/
@ -252,4 +255,13 @@ public class SubcontractedTaskData extends BaseEntity {
&& externalCompany.getInteractsWithApplications();
}
public void setRequiredDeliveringDates(SortedSet<SubcontractorDeliverDate> requiredDeliveringDates) {
this.requiredDeliveringDates.clear();
this.requiredDeliveringDates.addAll(requiredDeliveringDates);
}
public SortedSet<SubcontractorDeliverDate> getRequiredDeliveringDates() {
return requiredDeliveringDates;
}
}

View file

@ -124,4 +124,10 @@
</createTable>
</changeSet>
<changeSet author="smontes" id="add-subcontracted-task-data">
<comment>Add the column subcontracted_task_id to maintain the relation</comment>
<addColumn tableName="subcontractor_deliver_date">
<column name="subcontracted_task_data_id" type="BIGINT"/>
</addColumn>
</changeSet>
</databaseChangeLog>

View file

@ -24,7 +24,7 @@
<property name="reviewed" access="field" column="reviewed" />
<many-to-one name="subcontractedTaskData"
class="org.libreplan.business.planner.entities.SubcontractedTaskData"
column="Subcontracted_task_data" />
column="subcontracted_task_data" />
<list name="subcontractorCommunicationValues" table="subcontractor_communication_values">
<key column="subcontractor_communication_id" />

View file

@ -212,6 +212,12 @@
</type>
</property>
<set name="requiredDeliveringDates" inverse="true" cascade="all-delete-orphan" access="field"
sort="org.libreplan.business.externalcompanies.entities.DeliverDateComparator">
<key column="subcontracted_task_data_id" />
<one-to-many class="org.libreplan.business.planner.entities.SubcontractorDeliverDate" />
</set>
</class>
</hibernate-mapping>

View file

@ -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

View file

@ -237,6 +237,7 @@ public class ReportAdvancesServiceTest {
public void validAdvancesReportToSubcontratedOrderElement() {
int previousCommunications = subcontractorCommunicationDAO.getAll().size();
OrderLine orderLine = createOrderLine();
String orderElementCode = orderLine.getCode();
Map<LocalDate, BigDecimal> 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;
}