ItEr14S11CUConfiguracionDeOrganizacionsDeTraballoConUnidadesTraballoItEr13S13: Basic changes at model,
adding new attributes and moving ActivityWork set to TaskWorkLeaf.
This commit is contained in:
parent
9652efb04d
commit
df70af8fef
6 changed files with 136 additions and 48 deletions
|
|
@ -1,6 +1,6 @@
|
|||
package org.navalplanner.business.workorders.entities;
|
||||
|
||||
import org.hibernate.validator.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class ActivityWork {
|
||||
|
||||
|
|
@ -10,9 +10,16 @@ public class ActivityWork {
|
|||
return id;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private Integer workingHours;
|
||||
|
||||
private BigDecimal percentage;
|
||||
|
||||
public enum HoursPolicies {
|
||||
NO_FIXED, FIXED_HOURS, FIXED_PERCENTAGE
|
||||
};
|
||||
|
||||
private HoursPolicies hoursPolicy = HoursPolicies.NO_FIXED;
|
||||
|
||||
public void setWorkingHours(Integer workingHours) {
|
||||
this.workingHours = workingHours;
|
||||
}
|
||||
|
|
@ -21,4 +28,20 @@ public class ActivityWork {
|
|||
return workingHours;
|
||||
}
|
||||
|
||||
public void setPercentage(BigDecimal percentage) {
|
||||
this.percentage = percentage;
|
||||
}
|
||||
|
||||
public BigDecimal getPercentage() {
|
||||
return percentage;
|
||||
}
|
||||
|
||||
public void setHoursPolicy(HoursPolicies hoursPolicy) {
|
||||
this.hoursPolicy = hoursPolicy;
|
||||
}
|
||||
|
||||
public HoursPolicies getHoursPolicy() {
|
||||
return hoursPolicy;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
package org.navalplanner.business.workorders.entities;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.hibernate.validator.NotNull;
|
||||
|
||||
|
|
@ -18,21 +15,15 @@ public abstract class TaskWork {
|
|||
|
||||
private Date endDate;
|
||||
|
||||
private Set<ActivityWork> activityWorks = new HashSet<ActivityWork>();
|
||||
private Boolean mandatoryInit = false;
|
||||
|
||||
private Boolean mandatoryEnd = false;
|
||||
|
||||
private String description;
|
||||
|
||||
public abstract Integer getWorkHours();
|
||||
|
||||
public void setActivities(List<ActivityWork> activities) {
|
||||
this.activityWorks = new HashSet<ActivityWork>(activities);
|
||||
}
|
||||
|
||||
public void addActivity(ActivityWork activityWork) {
|
||||
activityWorks.add(activityWork);
|
||||
}
|
||||
|
||||
public List<ActivityWork> getActivities() {
|
||||
return new ArrayList<ActivityWork>(activityWorks);
|
||||
}
|
||||
public abstract List<ActivityWork> getActivities();
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
|
|
@ -73,15 +64,32 @@ public abstract class TaskWork {
|
|||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public abstract void remove(TaskWork lastAsTask);
|
||||
public void setMandatoryInit(Boolean mandatoryInit) {
|
||||
this.mandatoryInit = mandatoryInit;
|
||||
}
|
||||
|
||||
public abstract void replace(TaskWork old, TaskWork newTask);
|
||||
public Boolean isMandatoryInit() {
|
||||
return mandatoryInit;
|
||||
}
|
||||
|
||||
public void setMandatoryEnd(Boolean mandatoryEnd) {
|
||||
this.mandatoryEnd = mandatoryEnd;
|
||||
}
|
||||
|
||||
public Boolean isMandatoryEnd() {
|
||||
return mandatoryEnd;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public abstract TaskWorkContainer asContainer();
|
||||
|
||||
public void forceLoadActivities() {
|
||||
for (ActivityWork activityWork : activityWorks) {
|
||||
activityWork.getWorkingHours();
|
||||
}
|
||||
}
|
||||
public abstract void forceLoadActivities();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,4 +66,20 @@ public class TaskWorkContainer extends TaskWork implements ITaskWorkContainer {
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceLoadActivities() {
|
||||
for (TaskWork taskWork : children) {
|
||||
taskWork.forceLoadActivities();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ActivityWork> getActivities() {
|
||||
List<ActivityWork> activities = new ArrayList<ActivityWork>();
|
||||
for (TaskWork taskWork : children) {
|
||||
activities.addAll(taskWork.getActivities());
|
||||
}
|
||||
return activities;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,16 @@
|
|||
package org.navalplanner.business.workorders.entities;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class TaskWorkLeaf extends TaskWork {
|
||||
|
||||
private Boolean fixedHours = false;
|
||||
|
||||
private Set<ActivityWork> activityWorks = new HashSet<ActivityWork>();
|
||||
|
||||
@Override
|
||||
public Integer getWorkHours() {
|
||||
int result = 0;
|
||||
|
|
@ -28,25 +34,17 @@ public class TaskWorkLeaf extends TaskWork {
|
|||
return true;
|
||||
}
|
||||
|
||||
public void remove(TaskWork taskWork) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskWorkContainer asContainer() {
|
||||
TaskWorkContainer result = new TaskWorkContainer();
|
||||
result.setName(getName());
|
||||
result.setInitDate(getInitDate());
|
||||
result.setEndDate(getEndDate());
|
||||
result.setActivities(getActivities());
|
||||
// FIXME
|
||||
// result.setActivities(getActivities());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void replace(TaskWork old, TaskWork newTask) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setWorkHours(Integer workingHours) {
|
||||
List<ActivityWork> activities = getActivities();
|
||||
|
||||
|
|
@ -63,4 +61,37 @@ public class TaskWorkLeaf extends TaskWork {
|
|||
|
||||
setActivities(activities);
|
||||
}
|
||||
|
||||
public void setActivities(List<ActivityWork> activities) {
|
||||
this.activityWorks = new HashSet<ActivityWork>(activities);
|
||||
}
|
||||
|
||||
public void addActivity(ActivityWork activityWork) {
|
||||
activityWorks.add(activityWork);
|
||||
}
|
||||
|
||||
public void deleteActivity(ActivityWork value) {
|
||||
activityWorks.remove(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ActivityWork> getActivities() {
|
||||
return new ArrayList<ActivityWork>(activityWorks);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceLoadActivities() {
|
||||
for (ActivityWork activityWork : activityWorks) {
|
||||
activityWork.getWorkingHours();
|
||||
}
|
||||
}
|
||||
|
||||
public void setFixedHours(Boolean fixedHours) {
|
||||
this.fixedHours = fixedHours;
|
||||
}
|
||||
|
||||
public Boolean isFixedHours() {
|
||||
return fixedHours;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,14 +23,13 @@
|
|||
<id name="id" type="long" access="field">
|
||||
<generator class="native" />
|
||||
</id>
|
||||
<set name="activityWorks" access="field" cascade="all">
|
||||
<key column="PARENT_TASK" not-null="false"></key>
|
||||
<one-to-many class="ActivityWork" />
|
||||
</set>
|
||||
|
||||
<property name="name" access="field" />
|
||||
<property name="initDate" access="field" />
|
||||
<property name="endDate" access="field" />
|
||||
<property name="mandatoryInit" access="field" />
|
||||
<property name="mandatoryEnd" access="field" />
|
||||
<property name="description" access="field" />
|
||||
|
||||
<joined-subclass name="TaskWorkContainer">
|
||||
<key column="TASKWORKID"></key>
|
||||
|
|
@ -43,6 +42,13 @@
|
|||
|
||||
<joined-subclass name="TaskWorkLeaf">
|
||||
<key column="TASKWORKID"></key>
|
||||
|
||||
<property name="fixedHours" access="field" />
|
||||
|
||||
<set name="activityWorks" access="field" cascade="all">
|
||||
<key column="PARENT_TASK" not-null="false"></key>
|
||||
<one-to-many class="ActivityWork" />
|
||||
</set>
|
||||
</joined-subclass>
|
||||
</class>
|
||||
|
||||
|
|
@ -50,6 +56,10 @@
|
|||
<id name="id" type="long" access="field">
|
||||
<generator class="native" />
|
||||
</id>
|
||||
<property name="workingHours"></property>
|
||||
|
||||
<property name="workingHours" access="field" />
|
||||
<property name="percentage" access="field" />
|
||||
<property name="hoursPolicy" access="field" />
|
||||
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
|
|
@ -1,5 +1,13 @@
|
|||
package org.navalplanner.business.test.workorders.services;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
|
||||
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
|
@ -20,14 +28,6 @@ import org.springframework.test.context.ContextConfiguration;
|
|||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
|
||||
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
|
||||
|
||||
/**
|
||||
* Tests for {@link ProjectWork}. <br />
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -171,7 +171,7 @@ public class ProjectWorkServiceTest {
|
|||
TaskWorkContainer containerReloaded = (TaskWorkContainer) reloaded
|
||||
.getTaskWorks().get(0);
|
||||
assertThat(containerReloaded.getActivities().size(),
|
||||
equalTo(0));
|
||||
equalTo(1));
|
||||
assertThat(containerReloaded.getChildren().size(),
|
||||
equalTo(1));
|
||||
TaskWork leaf = containerReloaded.getChildren().get(0);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue