FIN-260: add ensure client charge date not before client activation date

This commit is contained in:
abdulazizali77
2016-11-28 18:53:31 +08:00
parent e9e3326f5b
commit 46c0cec835
@@ -118,8 +118,19 @@ public class ClientChargeWritePlatformServiceJpaRepositoryImpl implements Client
}
final ClientCharge clientCharge = ClientCharge.createNew(client, charge, command);
final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat());
final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors)
.resource(ClientApiConstants.CLIENT_CHARGES_RESOURCE_NAME);
LocalDate activationDate = client.getActivationLocalDate();
LocalDate dueDate = clientCharge.getDueLocalDate();
if(dueDate.isBefore(activationDate)){
baseDataValidator.reset().parameter(ClientApiConstants.dueAsOfDateParamName).value(dueDate.toString(fmt))
.failWithCodeNoParameterAddedToErrorCode("dueDate.before.activationDate");
if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); }
}
validateDueDateOnWorkingDay(clientCharge, fmt);
this.clientChargeRepository.saveAndFlush(clientCharge);