Now the dates filtering the resource load window are checked against the
resources activation periods. Using the following algorithm:
1) If the resource has not activation periods then it should always appear
2) The filter can have null for start and end dates and the activation periods
can have null for end date. So we should define what to do in each case:
Let's define some acronyms:
* Filter Start Date: FSD
* Filter End Date: FED
* Activation Period Start Date: APSD (cannot be null)
* Activation Period End Date: APED
2.1) FSD is null and FED are null: The resource should appear regardless its
activation periods
2.2) FSD is null:
2.2.1) APED is null: Check if APSD is lower or equals than FED
2.2.2) APED is not null: Check if APSD is lower or equals than FED or APED
is lower or equals than FED
2.3) FED is null:
2.3.1) APED is null: The resource should appear
2.3.2) APED is not null: Check if APSD is later or equals than FSD or APED
is later or equals than FSD
2.4) FSD is not null and FED is not null:
2.4.1) APED is null: Check if APSD is between FSD and FED
2.4.2) APED is not null: Check if activation period overlaps filter period
at any point
FEA: ItEr77S04BugFixing
In order to allow switch tasks codes and avoid the issues changing the code
while creating a child, the unique constraint in DB for field code in
order_element table has been removed.
Instead two new constraints methods have been added:
* OrderElement.checkConstraintUniqueCode()
* Order.checkConstraintUniqueCodeInsideOrder()
FEA: ItEr77S04BugFixing
The comparison with the OrderElemen was wrong and it causes that the data stored
was wrong.
Moreover, it was not needed to open the transaction in the bound service method
as it's already opened in PersonalTimesheetModel.
FEA: ItEr77S14BoundUsersWebServices
Now the IntraDayDates methods are used. Most of the changes are in the
tests, since they were using the previous LocalDate methods.
FEA: ItEr77S04BugFixing
Depending on selected node and if it's or not updated from templates the
different buttons are enabled or disabled accordingly.
FEA: ItEr77S12AdaptPlanningAccordingTimesheets
The methods used to calculate the start and end of the task when
moving the task and when allocating in the form were different. This
caused the length of the task to change when being moved.
Now the method used when moving the task is the one always in use,
because it's more precise.
When doing the allocation that calculates RESOURCES_PER_DAY use
IntraDayDates instead of LocalDate so if the first day of the
allocation is partially allocated, the part free is used.
FEA: ItEr77S04BugFixing
* TaskElements are marked or not as updatedFromTimesheets
* TaskElement start date is set with a START_IN_FIXED_DATE constraint to the
first date in the timesheets
* TaskElement end date is set to the last date in the timesheets if this is
later than the current end date of the task
* Depending on if the task is marked as finishedFromTimesheets, a progress of
type TIMESHEETS is added or not. If the task is finished, the end date is set
according to last date in the timesheets
* TaskElement size and position is updated in the Gantt
FEA: ItEr77S12AdaptPlanningAccordingTimesheets
In that way we are sure that everything is removed properly. We have to manually
detach the removed element from its parent in order to avoid delete the parent
too.
FEA: ItEr77S13AllowDeleteOrderElements
The new progress type is read-only, so a new field to mark it in AdvanceType has
been added and used in the UI accordingly.
FEA: ItEr77S12AdaptPlanningAccordingTimesheets
In order to do that, a set of order elements affected by the lines
added/edit/removed in a timesheet is calculated before saving the timesheet.
Afterwards the first/last dates are recalculated for all the order elements in
the set.
FEA: ItEr77S12AdaptPlanningAccordingTimesheets
The first and last date of the task depending on the timesheets will be stored
in these two new fields in SumChargedEffort.
FEA: ItEr77S12AdaptPlanningAccordingTimesheets
In
ExpenseSheet.checkConstraintPersonalExpenseSheetMustHaveTheSameResourceInAllLines
we check that the resource is the same in all the lines. However, if there are
no lines an exception arises.
FEA: ItEr77S04BugFixing