[Bug #1307] Prevent changing spread progress in children when parents are consolidated
FEA: ItEr75S04BugFixing
This commit is contained in:
parent
2b9a7ec6fc
commit
87f4993c43
6 changed files with 55 additions and 5 deletions
|
|
@ -259,4 +259,8 @@ public class DirectAdvanceAssignment extends AdvanceAssignment {
|
|||
return copy;
|
||||
}
|
||||
|
||||
public boolean hasAnyConsolidationValue() {
|
||||
return !nonCalculatedConsolidations.isEmpty();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -81,4 +81,8 @@ public class IndirectAdvanceAssignment extends AdvanceAssignment {
|
|||
return calculatedConsolidations;
|
||||
}
|
||||
|
||||
public boolean hasAnyConsolidationValue() {
|
||||
return !calculatedConsolidations.isEmpty();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1459,4 +1459,28 @@ public abstract class OrderElement extends IntegrationEntity implements
|
|||
return super.toString() + " :: " + getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if it has nay consolidated advance, if not checks if any parent
|
||||
* has it
|
||||
*/
|
||||
public boolean hasAnyConsolidatedAdvance() {
|
||||
for (DirectAdvanceAssignment each : directAdvanceAssignments) {
|
||||
if (each.hasAnyConsolidationValue()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for (IndirectAdvanceAssignment each : getIndirectAdvanceAssignments()) {
|
||||
if (each.hasAnyConsolidationValue()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (parent != null) {
|
||||
return parent.hasAnyConsolidatedAdvance();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,4 +119,6 @@ public interface IManageOrderElementAdvancesModel {
|
|||
LocalDate getLastConsolidatedMeasurementDate(
|
||||
AdvanceAssignment advanceAssignment);
|
||||
|
||||
boolean hasAnyConsolidatedAdvanceCurrentOrderElement();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -875,13 +875,21 @@ public class ManageOrderElementAdvancesController extends
|
|||
|
||||
private void setReportGlobalAdvance(final Listitem item) {
|
||||
boolean spread = true;
|
||||
if (!radioSpreadIsConsolidated()) {
|
||||
for (AdvanceAssignment advance : this.getAdvanceAssignments()) {
|
||||
advance.setReportGlobalAdvance(false);
|
||||
}
|
||||
} else {
|
||||
|
||||
if (manageOrderElementAdvancesModel
|
||||
.hasAnyConsolidatedAdvanceCurrentOrderElement()) {
|
||||
showErrorMessage(_("Spread progress cannot be changed if there is a consolidation in any progress assignment from root task"));
|
||||
spread = false;
|
||||
} else {
|
||||
if (!radioSpreadIsConsolidated()) {
|
||||
for (AdvanceAssignment advance : this.getAdvanceAssignments()) {
|
||||
advance.setReportGlobalAdvance(false);
|
||||
}
|
||||
} else {
|
||||
spread = false;
|
||||
}
|
||||
}
|
||||
|
||||
((AdvanceAssignment) item.getValue()).setReportGlobalAdvance(spread);
|
||||
Util.reloadBindings(editAdvances);
|
||||
setSelectedAdvanceLine();
|
||||
|
|
|
|||
|
|
@ -831,4 +831,12 @@ public class ManageOrderElementAdvancesModel implements
|
|||
.getConsolidatedUntil();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasAnyConsolidatedAdvanceCurrentOrderElement() {
|
||||
if (orderElement == null) {
|
||||
return false;
|
||||
}
|
||||
return orderElement.hasAnyConsolidatedAdvance();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue