FINERACT-2316: Localize interest rate chart slab validation
- Add localized validation messages for overlap and gap errors in interest rate chart slabs - Use DataValidatorBuilder with resource/parameter context for clean error codes - Add unit tests for validation error codes and arguments - Add German translations for validation messages
This commit is contained in:
committed by
Adam Saghy
parent
270901b9a2
commit
3d3b2dad6f
+14
-10
@@ -137,17 +137,21 @@ public class InterestRateChart extends AbstractPersistableCustom<Long> {
|
||||
if (iSlabs.slabFields().isValidChart(isPrimaryGroupingByAmount)
|
||||
&& nextSlabs.slabFields().isValidChart(isPrimaryGroupingByAmount)) {
|
||||
if (iSlabs.slabFields().isRateChartOverlapping(nextSlabs.slabFields(), isPrimaryGroupingByAmount)) {
|
||||
baseDataValidator.failWithCodeNoParameterAddedToErrorCode("chart.slabs.range.overlapping",
|
||||
iSlabs.slabFields().fromPeriod(), iSlabs.slabFields().toPeriod(), nextSlabs.slabFields().fromPeriod(),
|
||||
nextSlabs.slabFields().toPeriod(), iSlabs.slabFields().getAmountRangeFrom(),
|
||||
iSlabs.slabFields().getAmountRangeTo(), nextSlabs.slabFields().getAmountRangeFrom(),
|
||||
nextSlabs.slabFields().getAmountRangeTo());
|
||||
// Use DataValidatorBuilder with resource/parameter context for clean error codes
|
||||
DataValidatorBuilder v = new DataValidatorBuilder(baseDataValidator.getDataValidationErrors())
|
||||
.resource("savings.interestRateChart").parameter("slabs");
|
||||
v.failWithCode("overlap", iSlabs.slabFields().fromPeriod(), iSlabs.slabFields().toPeriod(),
|
||||
nextSlabs.slabFields().fromPeriod(), nextSlabs.slabFields().toPeriod(),
|
||||
iSlabs.slabFields().getAmountRangeFrom(), iSlabs.slabFields().getAmountRangeTo(),
|
||||
nextSlabs.slabFields().getAmountRangeFrom(), nextSlabs.slabFields().getAmountRangeTo());
|
||||
} else if (iSlabs.slabFields().isRateChartHasGap(nextSlabs.slabFields(), isPrimaryGroupingByAmount)) {
|
||||
baseDataValidator.failWithCodeNoParameterAddedToErrorCode("chart.slabs.range.has.gap",
|
||||
iSlabs.slabFields().fromPeriod(), iSlabs.slabFields().toPeriod(), nextSlabs.slabFields().fromPeriod(),
|
||||
nextSlabs.slabFields().toPeriod(), iSlabs.slabFields().getAmountRangeFrom(),
|
||||
iSlabs.slabFields().getAmountRangeTo(), nextSlabs.slabFields().getAmountRangeFrom(),
|
||||
nextSlabs.slabFields().getAmountRangeTo());
|
||||
// Use DataValidatorBuilder with resource/parameter context for clean error codes
|
||||
DataValidatorBuilder v = new DataValidatorBuilder(baseDataValidator.getDataValidationErrors())
|
||||
.resource("savings.interestRateChart").parameter("slabs");
|
||||
v.failWithCode("gap", iSlabs.slabFields().fromPeriod(), iSlabs.slabFields().toPeriod(),
|
||||
nextSlabs.slabFields().fromPeriod(), nextSlabs.slabFields().toPeriod(),
|
||||
iSlabs.slabFields().getAmountRangeFrom(), iSlabs.slabFields().getAmountRangeTo(),
|
||||
nextSlabs.slabFields().getAmountRangeFrom(), nextSlabs.slabFields().getAmountRangeTo());
|
||||
}
|
||||
if (isPrimaryGroupingByAmount) {
|
||||
if (!iSlabs.slabFields().isAmountSame(nextSlabs.slabFields())) {
|
||||
|
||||
Reference in New Issue
Block a user