ItEr41S16ImplantacionAplicacionItEr40S21: [Bug #53] Fixed mapping between resources and calendars.
This commit is contained in:
parent
abe94db641
commit
d1bddfa6a2
6 changed files with 31 additions and 4 deletions
|
|
@ -21,6 +21,7 @@
|
|||
package org.navalplanner.business.calendars.entities;
|
||||
|
||||
import org.hibernate.validator.AssertTrue;
|
||||
import org.hibernate.validator.NotNull;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.resources.entities.Resource;
|
||||
|
||||
|
|
@ -31,6 +32,8 @@ import org.navalplanner.business.resources.entities.Resource;
|
|||
*/
|
||||
public class ResourceCalendar extends BaseCalendar {
|
||||
|
||||
private Resource resource;
|
||||
|
||||
private Integer capacity = 1;
|
||||
|
||||
public Integer getCapacity() {
|
||||
|
|
@ -78,4 +81,13 @@ public class ResourceCalendar extends BaseCalendar {
|
|||
return (capacity >= 1);
|
||||
}
|
||||
|
||||
@NotNull(message = "resource not specified")
|
||||
public Resource getResource() {
|
||||
return resource;
|
||||
}
|
||||
|
||||
public void setResource(Resource resource) {
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -647,6 +647,9 @@ public abstract class Resource extends BaseEntity{
|
|||
|
||||
public void setCalendar(ResourceCalendar calendar) {
|
||||
this.calendar = calendar;
|
||||
if (calendar != null) {
|
||||
calendar.setResource(this);
|
||||
}
|
||||
}
|
||||
|
||||
public ResourceCalendar getCalendar() {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@
|
|||
<joined-subclass name="ResourceCalendar">
|
||||
<key column="BASE_CALENDAR_ID" />
|
||||
<property name="capacity" not-null="true" />
|
||||
<one-to-one name="resource"
|
||||
class="org.navalplanner.business.resources.entities.Resource"
|
||||
access="field" property-ref="calendar" />
|
||||
</joined-subclass>
|
||||
</class>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
<many-to-one name="calendar" access="field" cascade="all"
|
||||
class="org.navalplanner.business.calendars.entities.ResourceCalendar"
|
||||
unique="true" />
|
||||
column="BASE_CALENDAR_ID" unique="true" />
|
||||
|
||||
<set name="resourcesCostCategoryAssignments" inverse="true" cascade="all-delete-orphan">
|
||||
<key column="RESOURCE_ID"/>
|
||||
|
|
|
|||
|
|
@ -47,7 +47,10 @@ import org.navalplanner.business.calendars.entities.CalendarExceptionType;
|
|||
import org.navalplanner.business.calendars.entities.ResourceCalendar;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.resources.daos.IResourceDAO;
|
||||
import org.navalplanner.business.resources.entities.Worker;
|
||||
import org.navalplanner.business.test.calendars.entities.BaseCalendarTest;
|
||||
import org.navalplanner.business.test.resources.daos.ResourceDAOTest;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataIntegrityViolationException;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
|
@ -74,6 +77,9 @@ public class BaseCalendarDAOTest {
|
|||
@Autowired
|
||||
private SessionFactory session;
|
||||
|
||||
@Autowired
|
||||
private IResourceDAO resourceDAO;
|
||||
|
||||
@Resource
|
||||
private IDataBootstrap calendarBootstrap;
|
||||
|
||||
|
|
@ -292,14 +298,17 @@ public class BaseCalendarDAOTest {
|
|||
BaseCalendar calendar2 = BaseCalendarTest.createBasicCalendar();
|
||||
calendar1.setName("Test2");
|
||||
|
||||
Worker worker = ResourceDAOTest.givenValidWorker();
|
||||
ResourceCalendar resourceCalendar = ResourceCalendar.create();
|
||||
resourceCalendar.setName("testResourceCalendar");
|
||||
BaseCalendarTest.setHoursForAllDays(resourceCalendar, 8);
|
||||
worker.setCalendar(resourceCalendar);
|
||||
|
||||
baseCalendarDAO.save(calendar1);
|
||||
baseCalendarDAO.save(calendar2);
|
||||
baseCalendarDAO.save(resourceCalendar);
|
||||
resourceDAO.save(worker);
|
||||
baseCalendarDAO.flush();
|
||||
resourceDAO.flush();
|
||||
|
||||
baseCalendars = baseCalendarDAO.getBaseCalendars();
|
||||
assertThat(baseCalendars.size(), equalTo(previous + 2));
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class ResourceDAOTest {
|
|||
|
||||
Resource foundResource = resourceDAO.find(resource.getId());
|
||||
assertNotSame(resource, foundResource);
|
||||
assertNotNull(foundResource.getCalendar().getId());
|
||||
assertNotNull(foundResource.getCalendar());
|
||||
assertThat(foundResource.getCalendar().getId(),
|
||||
equalTo(resourceCalendar.getId()));
|
||||
}
|
||||
|
|
@ -81,7 +81,7 @@ public class ResourceDAOTest {
|
|||
return resourceCalendar;
|
||||
}
|
||||
|
||||
private Worker givenValidWorker() {
|
||||
public static Worker givenValidWorker() {
|
||||
Worker worker = Worker.create();
|
||||
worker.setFirstName("First name");
|
||||
worker.setSurname("Surname");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue