FINERACT-2358: Allow to configure advanced accounting rules based on write-off reason
This commit is contained in:
+2
@@ -181,8 +181,10 @@ public final class AccountingConstants {
|
||||
INCOME_FROM_GOODWILL_CREDIT_FEES("incomeFromGoodwillCreditFeesAccountId"), //
|
||||
INCOME_FROM_GOODWILL_CREDIT_PENALTY("incomeFromGoodwillCreditPenaltyAccountId"), //
|
||||
CHARGE_OFF_REASON_TO_EXPENSE_ACCOUNT_MAPPINGS("chargeOffReasonToExpenseAccountMappings"), //
|
||||
WRITE_OFF_REASON_TO_EXPENSE_ACCOUNT_MAPPINGS("writeOffReasonsToExpenseMappings"), //
|
||||
EXPENSE_GL_ACCOUNT_ID("expenseAccountId"), //
|
||||
CHARGE_OFF_REASON_CODE_VALUE_ID("chargeOffReasonCodeValueId"), //
|
||||
WRITE_OFF_REASON_CODE_VALUE_ID("writeOffReasonCodeValueId"), //
|
||||
DEFERRED_INCOME_LIABILITY("deferredIncomeLiabilityAccountId"), //
|
||||
INCOME_FROM_CAPITALIZATION("incomeFromCapitalizationAccountId"), //
|
||||
BUY_DOWN_EXPENSE("buyDownExpenseAccountId"), //
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.apache.fineract.accounting.producttoaccountmapping.data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class WriteOffReasonsToExpenseAccountMapper implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String writeOffReasonCodeValueId;
|
||||
private String expenseAccountId;
|
||||
}
|
||||
+14
-7
@@ -531,13 +531,20 @@ public class DataValidatorBuilder {
|
||||
}
|
||||
|
||||
if (this.value != null) {
|
||||
final long number = Long.parseLong(this.value.toString());
|
||||
if (number < 1) {
|
||||
String validationErrorCode = "validation.msg." + this.resource + "." + this.parameter + ".not.greater.than.zero";
|
||||
String defaultEnglishMessage = "The parameter `" + this.parameter + "` must be greater than 0.";
|
||||
final ApiParameterError error = ApiParameterError.parameterError(validationErrorCode, defaultEnglishMessage, this.parameter,
|
||||
number, 0);
|
||||
this.dataValidationErrors.add(error);
|
||||
try {
|
||||
final long number = Long.parseLong(this.value.toString());
|
||||
if (number < 1) {
|
||||
String validationErrorCode = "validation.msg." + this.resource + "." + this.parameter + ".not.greater.than.zero";
|
||||
String defaultEnglishMessage = "The parameter `" + this.parameter + "` must be greater than 0.";
|
||||
final ApiParameterError error = ApiParameterError.parameterError(validationErrorCode, defaultEnglishMessage,
|
||||
this.parameter, number, 0);
|
||||
this.dataValidationErrors.add(error);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
String validationErrorCode = "validation.msg." + this.resource + "." + this.parameter + ".not.a.number";
|
||||
String defaultEnglishMessage = "The parameter `" + this.parameter + "` must be a number.";
|
||||
this.dataValidationErrors.add(ApiParameterError.parameterError(validationErrorCode, defaultEnglishMessage, this.parameter));
|
||||
throwValidationErrors();
|
||||
}
|
||||
}
|
||||
return this;
|
||||
|
||||
Reference in New Issue
Block a user