[Bug #1307] Prevent add progress measurement before consolidated day in any parent

FEA: ItEr75S04BugFixing
This commit is contained in:
Manuel Rego Casasnovas 2011-12-27 11:20:39 +01:00
parent 0d14b15448
commit 355d554205
2 changed files with 19 additions and 14 deletions

View file

@ -1296,12 +1296,14 @@ public class ManageOrderElementAdvancesController extends
}
}
LocalDate consolidatedUntil = manageOrderElementAdvancesModel
.getLastConsolidatedMeasurementDate(measurement
.getAdvanceAssignment());
if (consolidatedUntil != null) {
if (consolidatedUntil.compareTo(measurement.getDate()) >= 0) {
return _("Date is not valid, it must be greater than the last progress consolidation");
if (!isReadOnlyAdvanceMeasurements()) {
LocalDate consolidatedUntil = manageOrderElementAdvancesModel
.getLastConsolidatedMeasurementDate(measurement
.getAdvanceAssignment());
if (consolidatedUntil != null) {
if (consolidatedUntil.compareTo(measurement.getDate()) >= 0) {
return _("Date is not valid, it must be greater than the last progress consolidation");
}
}
}

View file

@ -803,14 +803,17 @@ public class ManageOrderElementAdvancesModel implements
public LocalDate getLastConsolidatedMeasurementDate(
AdvanceAssignment advance) {
List<Consolidation> consolidations = new ArrayList<Consolidation>();
if (advance instanceof DirectAdvanceAssignment) {
Set<NonCalculatedConsolidation> nonCalculatedConsolidations = ((DirectAdvanceAssignment) advance)
.getNonCalculatedConsolidation();
consolidations.addAll(nonCalculatedConsolidations);
} else {
Set<CalculatedConsolidation> calculatedConsolidations = ((IndirectAdvanceAssignment) advance)
.getCalculatedConsolidation();
consolidations.addAll(calculatedConsolidations);
Set<NonCalculatedConsolidation> nonCalculatedConsolidations = ((DirectAdvanceAssignment) advance)
.getNonCalculatedConsolidation();
consolidations.addAll(nonCalculatedConsolidations);
if (consolidations.isEmpty()) {
Set<IndirectAdvanceAssignment> indirects = getSpreadIndirectAdvanceAssignmentWithSameType(
orderElement, advance);
for (IndirectAdvanceAssignment indirect : indirects) {
consolidations.addAll(indirect.getCalculatedConsolidation());
}
}
if (consolidations.isEmpty()) {