ItEr59S04ValidacionEProbasFuncionaisItEr58S04 : Fixing bug.
fixes the constraint to add new advance measurement if its date already is consolidated.
This commit is contained in:
parent
7c41c093a2
commit
cdb9704046
3 changed files with 76 additions and 34 deletions
|
|
@ -51,7 +51,7 @@ public interface IManageOrderElementAdvancesModel {
|
|||
|
||||
public boolean addNewLineAdvaceAssignment();
|
||||
|
||||
public void addNewLineAdvaceMeasurement();
|
||||
public AdvanceMeasurement addNewLineAdvaceMeasurement();
|
||||
|
||||
public void removeLineAdvanceAssignment(AdvanceAssignment advance);
|
||||
|
||||
|
|
@ -104,6 +104,8 @@ public interface IManageOrderElementAdvancesModel {
|
|||
|
||||
public boolean hasConsolidatedAdvances(AdvanceMeasurement advanceMeasurement);
|
||||
|
||||
public boolean canRemoveOrChange(AdvanceMeasurement advanceMeasurement);
|
||||
|
||||
public boolean findIndirectConsolidation(
|
||||
AdvanceMeasurement advanceMeasurement);
|
||||
|
||||
|
|
|
|||
|
|
@ -267,7 +267,13 @@ public class ManageOrderElementAdvancesController extends
|
|||
}
|
||||
|
||||
public void goToCreateLineAdvanceMeasurement() {
|
||||
manageOrderElementAdvancesModel.addNewLineAdvaceMeasurement();
|
||||
AdvanceMeasurement newMeasure = manageOrderElementAdvancesModel
|
||||
.addNewLineAdvaceMeasurement();
|
||||
if ((newMeasure != null)
|
||||
&& (manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(newMeasure))) {
|
||||
newMeasure.setDate(null);
|
||||
}
|
||||
reloadAdvances();
|
||||
}
|
||||
|
||||
|
|
@ -298,12 +304,12 @@ public class ManageOrderElementAdvancesController extends
|
|||
|
||||
public void goToRemoveLineAdvanceMeasurement(Listitem listItem) {
|
||||
AdvanceMeasurement advance = (AdvanceMeasurement) listItem.getValue();
|
||||
if (manageOrderElementAdvancesModel.hasConsolidatedAdvances(advance)) {
|
||||
showMessagesConsolidation(2);
|
||||
} else {
|
||||
if (manageOrderElementAdvancesModel.canRemoveOrChange(advance)) {
|
||||
manageOrderElementAdvancesModel
|
||||
.removeLineAdvanceMeasurement(advance);
|
||||
reloadAdvances();
|
||||
} else {
|
||||
showMessagesConsolidation(2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -922,12 +928,12 @@ public class ManageOrderElementAdvancesController extends
|
|||
Decimalbox valueBox = getDecimalboxBy(listItem);
|
||||
valueBox.setValue(advance.getValue());
|
||||
|
||||
// Validate the value of the advance measurement
|
||||
// Validate the date of the advance measurement
|
||||
Datebox dateBox = getDateboxBy(listItem);
|
||||
if (advance.getDate() == null) {
|
||||
dateBox.setValue(null);
|
||||
} else {
|
||||
dateBox.setValue(advance.getDate().toDateTimeAtStartOfDay()
|
||||
dateBox.setValue(advance.getDate().toDateTimeAtStartOfDay()
|
||||
.toDate());
|
||||
}
|
||||
}
|
||||
|
|
@ -1004,10 +1010,10 @@ public class ManageOrderElementAdvancesController extends
|
|||
@Override
|
||||
public void onEvent(Event event) throws Exception {
|
||||
if (manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement)) {
|
||||
showMessagesConsolidation(2);
|
||||
} else {
|
||||
.canRemoveOrChange(advanceMeasurement)) {
|
||||
updatesValue(value);
|
||||
} else {
|
||||
showMessagesConsolidation(2);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -1022,8 +1028,8 @@ public class ManageOrderElementAdvancesController extends
|
|||
|
||||
@Override
|
||||
public void set(BigDecimal value) {
|
||||
if (!manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement)) {
|
||||
if (manageOrderElementAdvancesModel
|
||||
.canRemoveOrChange(advanceMeasurement)) {
|
||||
advanceMeasurement.setValue(value);
|
||||
reloadAdvances();
|
||||
}
|
||||
|
|
@ -1060,10 +1066,10 @@ public class ManageOrderElementAdvancesController extends
|
|||
@Override
|
||||
public void onEvent(Event event) throws Exception {
|
||||
if (manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement)) {
|
||||
showMessagesConsolidation(2);
|
||||
} else {
|
||||
.canRemoveOrChange(advanceMeasurement)) {
|
||||
setCurrentDate(listitem);
|
||||
} else {
|
||||
showMessagesConsolidation(2);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -1082,11 +1088,20 @@ public class ManageOrderElementAdvancesController extends
|
|||
|
||||
@Override
|
||||
public void set(Date value) {
|
||||
if (!manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement)) {
|
||||
if (manageOrderElementAdvancesModel
|
||||
.canRemoveOrChange(advanceMeasurement)) {
|
||||
|
||||
LocalDate oldDate = advanceMeasurement.getDate();
|
||||
advanceMeasurement.setDate(new LocalDate(value));
|
||||
|
||||
if (manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement)) {
|
||||
showMessagesConsolidation(new LocalDate(value));
|
||||
advanceMeasurement.setDate(oldDate);
|
||||
}
|
||||
|
||||
manageOrderElementAdvancesModel
|
||||
.sortListAdvanceMeasurement();
|
||||
.sortListAdvanceMeasurement();
|
||||
reloadAdvances();
|
||||
}
|
||||
}
|
||||
|
|
@ -1101,8 +1116,8 @@ public class ManageOrderElementAdvancesController extends
|
|||
throws WrongValueException {
|
||||
AdvanceMeasurement advanceMeasurement = getAdvanceMeasurementByComponent(comp);
|
||||
if ((advanceMeasurement != null)
|
||||
&& (!manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement))) {
|
||||
&& (manageOrderElementAdvancesModel
|
||||
.canRemoveOrChange(advanceMeasurement))) {
|
||||
advanceMeasurement.setValue((BigDecimal) value);
|
||||
if (((BigDecimal) value) == null) {
|
||||
throw new WrongValueException(
|
||||
|
|
@ -1152,8 +1167,8 @@ public class ManageOrderElementAdvancesController extends
|
|||
public void validate(Component comp, Object value)
|
||||
throws WrongValueException {
|
||||
AdvanceMeasurement advanceMeasurement = getAdvanceMeasurementByComponent(comp);
|
||||
if ((!manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement))) {
|
||||
if ((manageOrderElementAdvancesModel
|
||||
.canRemoveOrChange(advanceMeasurement))) {
|
||||
if (((Date) value) == null) {
|
||||
advanceMeasurement.setDate(null);
|
||||
throw new WrongValueException(
|
||||
|
|
@ -1168,15 +1183,23 @@ public class ManageOrderElementAdvancesController extends
|
|||
_("The date is not valid, the date must be unique for this advanced assignment"));
|
||||
}
|
||||
if (advanceMeasurement != null) {
|
||||
LocalDate oldDate = advanceMeasurement
|
||||
.getDate();
|
||||
advanceMeasurement.setDate(new LocalDate(
|
||||
(Date) value));
|
||||
manageOrderElementAdvancesModel
|
||||
|
||||
if (manageOrderElementAdvancesModel
|
||||
.hasConsolidatedAdvances(advanceMeasurement)){
|
||||
advanceMeasurement.setDate(oldDate);
|
||||
} else {
|
||||
manageOrderElementAdvancesModel
|
||||
.sortListAdvanceMeasurement();
|
||||
if (manageOrderElementAdvancesModel
|
||||
if (manageOrderElementAdvancesModel
|
||||
.lessThanPreviousMeasurements()) {
|
||||
throw new WrongValueException(
|
||||
throw new WrongValueException(
|
||||
comp,
|
||||
_("Value is not valid, the value must be greater than the value of the previous advances."));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1273,6 +1296,9 @@ public class ManageOrderElementAdvancesController extends
|
|||
case 2:
|
||||
message = _("This advance measurement can not be changed or removed, because it is consolidated. It is needed to remove its consolidation.");
|
||||
break;
|
||||
case 3:
|
||||
message = _("This advance measurement can not be in current date, because it is consolidated. it is necessary to select other date.");
|
||||
break;
|
||||
}
|
||||
if (!StringUtils.isBlank(message)) {
|
||||
increaseScreenHeight();
|
||||
|
|
@ -1280,6 +1306,14 @@ public class ManageOrderElementAdvancesController extends
|
|||
}
|
||||
}
|
||||
|
||||
private void showMessagesConsolidation(LocalDate date) {
|
||||
String message = _("This advance measurement can not be in "
|
||||
+ date
|
||||
+ ", because it is consolidated. it is necessary to select other date.");
|
||||
increaseScreenHeight();
|
||||
messagesForUser.showMessage(Level.ERROR, message);
|
||||
}
|
||||
|
||||
public void createPercentageAdvances(IOrderElementModel orderElementModel)
|
||||
throws DuplicateAdvanceAssignmentForOrderElementException,
|
||||
DuplicateValueTrueReportGlobalAdvanceException {
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ public class ManageOrderElementAdvancesModel implements
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addNewLineAdvaceMeasurement() {
|
||||
public AdvanceMeasurement addNewLineAdvaceMeasurement() {
|
||||
if (this.advanceAssignment != null) {
|
||||
AdvanceMeasurement newMeasurement = AdvanceMeasurement.create();
|
||||
newMeasurement.setDate(new LocalDate());
|
||||
|
|
@ -317,7 +317,9 @@ public class ManageOrderElementAdvancesModel implements
|
|||
this.advanceAssignment.getAdvanceMeasurements().add(
|
||||
newMeasurement);
|
||||
}
|
||||
return newMeasurement;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -674,8 +676,7 @@ public class ManageOrderElementAdvancesModel implements
|
|||
.getNonCalculatedConsolidation().isEmpty())) {
|
||||
return true;
|
||||
}
|
||||
return (!((DirectAdvanceAssignment) advance).isFake())
|
||||
&& (containsAnyConsolidatedAdvanceMeasurement((DirectAdvanceAssignment) advance));
|
||||
return ((!((DirectAdvanceAssignment) advance).isFake()) && (!canBeRemovedAllAdvanceMeasurements((DirectAdvanceAssignment) advance)));
|
||||
|
||||
} else {
|
||||
return ((advance.getReportGlobalAdvance()) && (!((IndirectAdvanceAssignment) advance)
|
||||
|
|
@ -683,16 +684,21 @@ public class ManageOrderElementAdvancesModel implements
|
|||
}
|
||||
}
|
||||
|
||||
private boolean containsAnyConsolidatedAdvanceMeasurement(
|
||||
private boolean canBeRemovedAllAdvanceMeasurements(
|
||||
DirectAdvanceAssignment advance) {
|
||||
Iterator<AdvanceMeasurement> iterator = advance
|
||||
.getAdvanceMeasurements().iterator();
|
||||
while (iterator.hasNext()) {
|
||||
if (hasConsolidatedAdvances(iterator.next(), advance.isFake())) {
|
||||
return true;
|
||||
if (!canRemoveOrChange(iterator.next())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public boolean canRemoveOrChange(AdvanceMeasurement advanceMeasurement) {
|
||||
return (!hasConsolidatedAdvances(advanceMeasurement));
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
|
|
@ -728,7 +734,6 @@ public class ManageOrderElementAdvancesModel implements
|
|||
@Transactional(readOnly = true)
|
||||
public boolean findIndirectConsolidation(
|
||||
AdvanceMeasurement advanceMeasurement) {
|
||||
|
||||
AdvanceAssignment advance = advanceMeasurement.getAdvanceAssignment();
|
||||
if ((orderElement != null) && (orderElement.getParent() != null) && (advance instanceof DirectAdvanceAssignment)) {
|
||||
|
||||
|
|
@ -781,7 +786,8 @@ public class ManageOrderElementAdvancesModel implements
|
|||
for (CalculatedConsolidation consolidation : consolidations) {
|
||||
for (CalculatedConsolidatedValue value : consolidation
|
||||
.getCalculatedConsolidatedValues()) {
|
||||
if (value.getDate().compareTo(advance.getDate()) == 0) {
|
||||
if ((value.getDate() != null) && (advance.getDate() != null)
|
||||
&& (value.getDate().compareTo(advance.getDate()) == 0)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue