From 4f312f33f6774d14c77feaa941473550613528b1 Mon Sep 17 00:00:00 2001 From: Arnold Galovics Date: Mon, 5 Sep 2022 20:23:48 +0200 Subject: [PATCH] FINERACT-1694: Making Avro mapping to fail at compile time for unmapped properties --- .../main/avro/group/v1/GroupRoleDataV1.avsc | 2 +- .../main/avro/loan/v1/LoanAccountDataV1.avsc | 2 +- .../loan/v1/LoanAccountSummaryDataV1.avsc | 2 +- ...vsc => LoanApplicationTimelineDataV1.avsc} | 2 +- .../main/avro/loan/v1/LoanProductDataV1.avsc | 2 +- .../main/avro/loan/v1/LoanScheduleDataV1.avsc | 10 +- .../avro/loan/v1/LoanStatusEnumDataV1.avsc | 2 +- ...ShareAccountApplicationTimelineDataV1.avsc | 8 +- fineract-client/build.gradle | 20 +- .../JournalEntryReadPlatformServiceImpl.java | 7 +- .../service/AuditReadPlatformServiceImpl.java | 4 +- .../SynchronousCommandProcessingService.java | 2 +- .../helper/ClientIdSerializer.java | 2 +- .../helper/CurrencyDateCodeSerializer.java | 2 +- .../populator/AbstractWorkbookPopulator.java | 4 +- .../populator/CenterSheetPopulator.java | 6 +- .../populator/ClientSheetPopulator.java | 12 +- .../populator/ExtrasSheetPopulator.java | 2 +- .../FixedDepositProductSheetPopulator.java | 2 +- .../populator/GroupSheetPopulator.java | 6 +- .../populator/OfficeSheetPopulator.java | 4 +- .../populator/PersonnelSheetPopulator.java | 4 +- ...RecurringDepositProductSheetPopulator.java | 2 +- .../SavingsAccountSheetPopulator.java | 4 +- .../SavingsProductSheetPopulator.java | 8 +- .../SharedProductsSheetPopulator.java | 6 +- .../centers/CentersWorkbookPopulator.java | 2 +- .../ChartOfAccountsWorkbook.java | 6 +- .../client/ClientEntityWorkbookPopulator.java | 2 +- .../client/ClientPersonWorkbookPopulator.java | 2 +- .../group/GroupsWorkbookPopulator.java | 4 +- .../office/OfficeWorkbookPopulator.java | 2 +- .../savings/SavingsWorkbookPopulator.java | 2 +- .../users/UserWorkbookPopulator.java | 2 +- .../codes/data/CodeValueData.java | 29 +- .../core/data/CommandProcessingResult.java | 54 +--- .../core/data/EnumOptionData.java | 42 +-- .../mapper/client/ClientDataMapper.java | 3 +- .../FixedDepositAccountDataMapper.java | 3 +- .../CommandProcessingResultMapper.java | 3 +- .../mapper/loan/LoanAccountDataMapper.java | 3 +- .../mapper/loan/LoanChargeDataMapper.java | 3 +- .../mapper/loan/LoanProductDataMapper.java | 3 +- .../loan/LoanTransactionDataMapper.java | 3 +- .../RecurringDepositAccountDataMapper.java | 3 +- .../savings/SavingsAccountDataMapper.java | 3 +- .../SavingsAccountTransactionDataMapper.java | 3 +- .../mapper/share/ShareAccountDataMapper.java | 3 +- .../mapper/share/ShareProductDataMapper.java | 3 +- .../mapper/support/AvroDateTimeMapper.java | 50 ++++ .../mapper/support/AvroMapperConfig.java | 28 ++ .../mapper/support/AvroMonthDayMapper.java | 33 +++ .../monetary/data/CurrencyData.java | 54 +--- .../organisation/office/data/OfficeData.java | 23 +- ...llerManagementReadPlatformServiceImpl.java | 2 +- .../api/StandingInstructionApiResource.java | 8 +- .../account/data/AccountTransferData.java | 5 +- .../account/data/PortfolioAccountData.java | 70 +---- .../ExecuteStandingInstructionsTasklet.java | 4 +- ...countTransfersReadPlatformServiceImpl.java | 22 +- ...ingInstructionReadPlatformServiceImpl.java | 12 +- .../data/LoanAccountSummaryData.java | 25 +- .../data/ShareAccountSummaryData.java | 7 +- .../portfolio/calendar/data/CalendarData.java | 152 +--------- .../portfolio/charge/data/ChargeData.java | 30 +- .../api/ClientIdentifiersApiResource.java | 8 +- .../client/api/ClientsApiResource.java | 2 +- .../data/ClientCollateralManagementData.java | 32 +-- .../portfolio/client/data/ClientData.java | 76 +---- .../client/data/ClientTimelineData.java | 2 + .../data/InterestRatePeriodData.java | 30 +- .../group/data/GroupGeneralData.java | 5 +- .../portfolio/group/data/GroupRoleData.java | 36 +-- .../loanaccount/api/LoansApiResource.java | 28 +- .../loanaccount/data/DisbursementData.java | 33 +-- .../loanaccount/data/LoanAccountData.java | 170 ++++------- .../data/LoanApplicationTimelineData.java | 47 +-- .../data/LoanBorrowerCycleData.java | 17 +- .../loanaccount/data/LoanChargeData.java | 59 +--- .../data/LoanChargePaidByData.java | 37 +-- .../data/LoanCollateralManagementData.java | 30 +- .../data/LoanInstallmentChargeData.java | 31 +- .../data/LoanInterestRecalculationData.java | 10 +- .../LoanRepaymentScheduleInstallmentData.java | 12 +- .../loanaccount/data/LoanStatusEnumData.java | 16 +- .../loanaccount/data/LoanSummaryData.java | 11 +- .../data/LoanTermVariationsData.java | 23 +- .../data/LoanTermVariationsDataWrapper.java | 4 +- .../loanaccount/data/LoanTransactionData.java | 37 +-- .../data/LoanTransactionEnumData.java | 101 +------ .../loanaccount/data/PaidInAdvanceData.java | 12 +- .../portfolio/loanaccount/domain/Loan.java | 2 +- .../domain/LoanRepaymentDataComparator.java | 2 +- .../guarantor/data/GuarantorData.java | 19 +- .../TransferFeeChargeForLoansTasklet.java | 4 +- .../loanschedule/data/LoanScheduleData.java | 7 +- .../data/LoanSchedulePeriodData.java | 71 ++--- .../domain/AbstractLoanScheduleGenerator.java | 16 +- ...gBalanceInterestLoanScheduleGenerator.java | 2 +- .../domain/LoanApplicationTerms.java | 2 +- ...cheduleCalculationPlatformServiceImpl.java | 10 +- ...cheduleHistoryReadPlatformServiceImpl.java | 26 +- ...nReschedulePreviewPlatformServiceImpl.java | 6 +- .../LoanAccrualWritePlatformServiceImpl.java | 14 +- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- .../service/LoanArrearsAgingServiceImpl.java | 39 +-- .../service/LoanReadPlatformServiceImpl.java | 56 ++-- ...WritePlatformServiceJpaRepositoryImpl.java | 19 +- .../api/LoanProductsApiResource.java | 2 +- ...LoanProductBorrowerCycleVariationData.java | 17 +- .../loanproduct/data/LoanProductData.java | 267 ++---------------- .../data/LoanProductGuaranteeData.java | 18 +- .../LoanProductInterestRecalculationData.java | 65 +---- .../loanproduct/service/LoanEnumerations.java | 6 +- .../LoanProductReadPlatformServiceImpl.java | 2 +- .../portfolio/note/data/NoteData.java | 17 +- .../paymentdetail/data/PaymentDetailData.java | 49 +--- .../paymenttype/data/PaymentTypeData.java | 49 +--- .../portfolio/rate/data/RateData.java | 2 + .../api/FixedDepositAccountsApiResource.java | 4 +- .../RecurringDepositAccountsApiResource.java | 4 +- .../api/SavingsAccountsApiResource.java | 4 +- .../savings/data/DepositAccountData.java | 30 +- .../savings/data/FixedDepositAccountData.java | 14 +- .../data/RecurringDepositAccountData.java | 9 + ...SavingsAccountApplicationTimelineData.java | 43 +-- .../data/SavingsAccountChargeData.java | 57 +--- .../savings/data/SavingsAccountData.java | 195 +------------ .../data/SavingsAccountStatusEnumData.java | 37 +-- .../data/SavingsAccountSubStatusEnumData.java | 30 +- .../data/SavingsAccountSummaryData.java | 63 +---- .../data/SavingsAccountTransactionData.java | 197 ++----------- .../SavingsAccountTransactionEnumData.java | 88 +----- .../domain/SavingsAccountAssembler.java | 9 +- .../SavingsAccountChargesPaidByData.java | 22 +- ...vingsAccountTransactionDataComparator.java | 2 +- ...DepositsAccountMaturityDetailsTasklet.java | 9 +- ...DepositAccountReadPlatformServiceImpl.java | 14 +- ...WritePlatformServiceJpaRepositoryImpl.java | 8 +- ...ingsAccountInterestPostingServiceImpl.java | 85 +++--- ...SavingsAccountReadPlatformServiceImpl.java | 8 +- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- .../ShareAccountApplicationTimelineData.java | 34 +-- .../data/ShareAccountChargeData.java | 7 +- .../shareaccounts/data/ShareAccountData.java | 23 +- .../data/ShareAccountDividendData.java | 15 +- .../data/ShareAccountStatusEnumData.java | 21 +- .../data/ShareAccountTransactionData.java | 39 +-- .../ShareAccountReadPlatformServiceImpl.java | 12 +- .../shareproducts/data/ShareProductData.java | 86 +----- .../data/ShareProductMarketPriceData.java | 23 +- .../shareproducts/domain/ShareProduct.java | 4 +- .../ShareProductDividendAssembler.java | 4 +- .../portfolio/tax/data/TaxComponentData.java | 23 +- .../portfolio/tax/data/TaxDetailsData.java | 29 +- ...CommandHandlerProviderStepDefinitions.java | 2 +- .../support/AvroDateTimeMapperTest.java | 99 +++++++ 157 files changed, 931 insertions(+), 2919 deletions(-) rename fineract-avro-schemas/src/main/avro/loan/v1/{LoanApplicationTimelineV1.avsc => LoanApplicationTimelineDataV1.avsc} (99%) create mode 100644 fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapper.java create mode 100644 fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMapperConfig.java create mode 100644 fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMonthDayMapper.java create mode 100644 fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapperTest.java diff --git a/fineract-avro-schemas/src/main/avro/group/v1/GroupRoleDataV1.avsc b/fineract-avro-schemas/src/main/avro/group/v1/GroupRoleDataV1.avsc index a253e6c28..df8d65a07 100644 --- a/fineract-avro-schemas/src/main/avro/group/v1/GroupRoleDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/group/v1/GroupRoleDataV1.avsc @@ -13,7 +13,7 @@ }, { "default": null, - "name": "code", + "name": "role", "type": [ "null", "org.apache.fineract.avro.generic.v1.CodeValueDataV1" diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountDataV1.avsc index a3b18cf00..966c670bb 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountDataV1.avsc @@ -416,7 +416,7 @@ "name": "timeline", "type": [ "null", - "org.apache.fineract.avro.generic.v1.EnumOptionDataV1" + "org.apache.fineract.avro.loan.v1.LoanApplicationTimelineDataV1" ] }, { diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountSummaryDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountSummaryDataV1.avsc index afd4e7145..2bf12ec50 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountSummaryDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanAccountSummaryDataV1.avsc @@ -88,7 +88,7 @@ "name": "timeline", "type": [ "null", - "org.apache.fineract.avro.loan.v1.LoanApplicationTimelineV1" + "org.apache.fineract.avro.loan.v1.LoanApplicationTimelineDataV1" ] }, { diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineDataV1.avsc similarity index 99% rename from fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineV1.avsc rename to fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineDataV1.avsc index cc1cfc04e..880a2f7f8 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanApplicationTimelineDataV1.avsc @@ -1,5 +1,5 @@ { - "name": "LoanApplicationTimelineV1", + "name": "LoanApplicationTimelineDataV1", "namespace": "org.apache.fineract.avro.loan.v1", "type": "record", "fields": [ diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanProductDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanProductDataV1.avsc index 8576f4c20..935c96906 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanProductDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanProductDataV1.avsc @@ -325,7 +325,7 @@ }, { "default": null, - "name": "allowPartialPeriodInterestCalcualtion", + "name": "allowPartialPeriodInterestCalculation", "type": [ "null", "boolean" diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanScheduleDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanScheduleDataV1.avsc index b836b7395..426055bd6 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanScheduleDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanScheduleDataV1.avsc @@ -128,7 +128,10 @@ "name": "periods", "type": [ "null", - "org.apache.fineract.avro.loan.v1.LoanSchedulePeriodDataV1" + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.LoanSchedulePeriodDataV1" + } ] }, { @@ -136,7 +139,10 @@ "name": "futurePeriods", "type": [ "null", - "org.apache.fineract.avro.loan.v1.LoanSchedulePeriodDataV1" + { + "type": "array", + "items": "org.apache.fineract.avro.loan.v1.LoanSchedulePeriodDataV1" + } ] } ] diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanStatusEnumDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanStatusEnumDataV1.avsc index 4a075ad65..a239ca20d 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanStatusEnumDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanStatusEnumDataV1.avsc @@ -21,7 +21,7 @@ }, { "default": null, - "name": "description", + "name": "value", "type": [ "null", "string" diff --git a/fineract-avro-schemas/src/main/avro/share/v1/ShareAccountApplicationTimelineDataV1.avsc b/fineract-avro-schemas/src/main/avro/share/v1/ShareAccountApplicationTimelineDataV1.avsc index 99d3d099e..ab1ceafec 100644 --- a/fineract-avro-schemas/src/main/avro/share/v1/ShareAccountApplicationTimelineDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/share/v1/ShareAccountApplicationTimelineDataV1.avsc @@ -37,7 +37,7 @@ }, { "default": null, - "name": "rejectedOnDate", + "name": "rejectedDate", "type": [ "null", "string" @@ -69,7 +69,7 @@ }, { "default": null, - "name": "approvedOnDate", + "name": "approvedDate", "type": [ "null", "string" @@ -101,7 +101,7 @@ }, { "default": null, - "name": "activatedOnDate", + "name": "activatedDate", "type": [ "null", "string" @@ -133,7 +133,7 @@ }, { "default": null, - "name": "closedOnDate", + "name": "closedDate", "type": [ "null", "string" diff --git a/fineract-client/build.gradle b/fineract-client/build.gradle index 7af23cee2..cc6871c4a 100644 --- a/fineract-client/build.gradle +++ b/fineract-client/build.gradle @@ -45,7 +45,7 @@ task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateT validateSpec = false skipValidateSpec = true inputSpec = "file:///$swaggerFile" - outputDir = "$buildDir/generated/java".toString() + outputDir = "$buildDir/generated/temp-java".toString() templateDir = "$projectDir/src/main/resources/templates/java" groupId = 'org.apache.fineract' apiPackage = 'org.apache.fineract.client.services' @@ -110,8 +110,24 @@ task buildAsciidoc(type: org.openapitools.generator.gradle.plugin.tasks.Generate dependsOn(':fineract-provider:resolve') } +task cleanupJodaImports() { + // This is a temporary step to get rid of joda imports in the generated code + // At this point it's unknown why it's even generated, probably it's a bug in the generator + doLast { + copy { + from "$buildDir/generated/temp-java".toString() + into "$buildDir/generated/java".toString() + filter { line -> + line.replaceAll("import org\\.joda\\.time\\.\\*;", "") + } + } + } + + dependsOn("buildJavaSdk") +} + // TODO: @vidakovic we could provide even more client libs in different languages (Go, Ruby, Swift etc.) -compileJava.dependsOn(buildJavaSdk, buildTypescriptAngularSdk, buildAsciidoc, licenseFormatMain, spotlessMiscApply) +compileJava.dependsOn(buildJavaSdk, buildTypescriptAngularSdk, buildAsciidoc, cleanupJodaImports, licenseFormatMain, spotlessMiscApply) java { // keep this at Java 8, not 17; see https://issues.apache.org/jira/browse/FINERACT-1214 diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java index 52e2d8fb3..c5f512603 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryReadPlatformServiceImpl.java @@ -212,7 +212,7 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat if (PortfolioAccountType.fromInt(entityTypeId).isLoanAccount()) { final LoanTransactionEnumData loanTransactionType = LoanEnumerations .transactionType(JdbcSupport.getInteger(rs, "loanTransactionType")); - transactionTypeEnumData = new TransactionTypeEnumData(loanTransactionType.id(), loanTransactionType.getCode(), + transactionTypeEnumData = new TransactionTypeEnumData(loanTransactionType.getId(), loanTransactionType.getCode(), loanTransactionType.getValue()); } else if (PortfolioAccountType.fromInt(entityTypeId).isSavingsAccount()) { final SavingsAccountTransactionEnumData savingsTransactionType = SavingsEnumerations @@ -444,8 +444,9 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat final LocalDate transactionDate = DateUtils.getBusinessLocalDate(); - return OfficeOpeningBalancesData.createNew(officeId, officeData.name(), transactionDate, contraAccount, assetAccountOpeningBalances, - liabilityAccountOpeningBalances, incomeAccountOpeningBalances, equityAccountOpeningBalances, expenseAccountOpeningBalances); + return OfficeOpeningBalancesData.createNew(officeId, officeData.getName(), transactionDate, contraAccount, + assetAccountOpeningBalances, liabilityAccountOpeningBalances, incomeAccountOpeningBalances, equityAccountOpeningBalances, + expenseAccountOpeningBalances); } private List populateOpeningBalances(final List existingOpeningBalanceTransactions, diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/service/AuditReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/commands/service/AuditReadPlatformServiceImpl.java index c1cd53adb..c9365950f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/service/AuditReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/service/AuditReadPlatformServiceImpl.java @@ -276,7 +276,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { if (StringUtils.isNotBlank(officeIdStr)) { officeId = Long.valueOf(officeIdStr); final OfficeData office = this.officeReadPlatformService.retrieveOffice(officeId); - commandAsJsonMap.put("officeName", office.name()); + commandAsJsonMap.put("officeName", office.getName()); } else { commandAsJsonMap.put("officeName", ""); } @@ -290,7 +290,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { if (StringUtils.isNotBlank(clientIdStr)) { clientId = Long.valueOf(clientIdStr); final ClientData client = this.clientReadPlatformService.retrieveOne(clientId); - commandAsJsonMap.put("clientName", client.displayName()); + commandAsJsonMap.put("clientName", client.getDisplayName()); } else { commandAsJsonMap.put("clientName", ""); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/service/SynchronousCommandProcessingService.java b/fineract-provider/src/main/java/org/apache/fineract/commands/service/SynchronousCommandProcessingService.java index 90b911ac4..1d6c5fccf 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/service/SynchronousCommandProcessingService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/service/SynchronousCommandProcessingService.java @@ -91,7 +91,7 @@ public class SynchronousCommandProcessingService implements CommandProcessingSer } else { commandSourceResult = CommandSource.fullEntryFrom(wrapper, command, maker); } - commandSourceResult.updateResourceId(result.resourceId()); + commandSourceResult.updateResourceId(result.getResourceId()); commandSourceResult.updateForAudit(result.getOfficeId(), result.getGroupId(), result.getClientId(), result.getLoanId(), result.getSavingsId(), result.getProductId(), result.getTransactionId()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/ClientIdSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/ClientIdSerializer.java index 87125545a..28aab7556 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/ClientIdSerializer.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/ClientIdSerializer.java @@ -33,7 +33,7 @@ public class ClientIdSerializer implements JsonSerializer public JsonElement serialize(Collection src, Type typeOfSrc, JsonSerializationContext context) { JsonArray clientIdJsonArray = new JsonArray(); for (ClientData client : src) { - JsonElement clientIdElment = new JsonPrimitive(client.id().toString()); + JsonElement clientIdElment = new JsonPrimitive(client.getId().toString()); clientIdJsonArray.add(clientIdElment); } return clientIdJsonArray; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/CurrencyDateCodeSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/CurrencyDateCodeSerializer.java index d35cbfa94..6c4fc28bd 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/CurrencyDateCodeSerializer.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/helper/CurrencyDateCodeSerializer.java @@ -29,6 +29,6 @@ public class CurrencyDateCodeSerializer implements JsonSerializer @Override public JsonElement serialize(CurrencyData src, Type typeOfSrc, JsonSerializationContext context) { - return new JsonPrimitive(src.code()); + return new JsonPrimitive(src.getCode()); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/AbstractWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/AbstractWorkbookPopulator.java index 0361b88dc..244ba125d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/AbstractWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/AbstractWorkbookPopulator.java @@ -100,7 +100,7 @@ public abstract class AbstractWorkbookPopulator implements WorkbookPopulator { int rowIndex = 0; for (OfficeData office : offices) { Row row = sheet.createRow(++rowIndex); - writeString(officeNameCol, row, office.name().trim().replaceAll("[ )(]", "_")); + writeString(officeNameCol, row, office.getName().trim().replaceAll("[ )(]", "_")); writeDate(activationDateCol, row, "" + office.getOpeningDate().getDayOfMonth() + "/" + office.getOpeningDate().getMonthValue() + "/" + office.getOpeningDate().getYear(), dateCellStyle, dateFormat); @@ -123,7 +123,7 @@ public abstract class AbstractWorkbookPopulator implements WorkbookPopulator { if (row == null) { row = sheet.createRow(rowIndex); } - writeString(nameCol, row, client.displayName().replaceAll("[ )(] ", "_") + "(" + client.id() + ")"); + writeString(nameCol, row, client.getDisplayName().replaceAll("[ )(] ", "_") + "(" + client.getId() + ")"); if (client.getActivationDate() != null) { writeDate(activationDateCol, row, outputFormat.format(client.getActivationDate()), dateCellStyle, dateFormat); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/CenterSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/CenterSheetPopulator.java index 3d6ba4ffb..d4064072c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/CenterSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/CenterSheetPopulator.java @@ -72,11 +72,11 @@ public class CenterSheetPopulator extends AbstractWorkbookPopulator { Row row = centerSheet.createRow(rowIndex); for (OfficeData office : offices) { startIndex = rowIndex + 1; - writeString(OFFICE_NAME_COL, row, office.name()); + writeString(OFFICE_NAME_COL, row, office.getName()); ArrayList centersList = new ArrayList(); - if (officeToCenters.containsKey(office.name().trim().replaceAll("[ )(]", "_"))) { - centersList = officeToCenters.get(office.name().trim().replaceAll("[ )(]", "_")); + if (officeToCenters.containsKey(office.getName().trim().replaceAll("[ )(]", "_"))) { + centersList = officeToCenters.get(office.getName().trim().replaceAll("[ )(]", "_")); if (!centersList.isEmpty()) { for (String centerName : centersList) { writeString(CENTER_NAME_COL, row, centerName); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ClientSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ClientSheetPopulator.java index 2397b9576..0fd74fe27 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ClientSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ClientSheetPopulator.java @@ -62,7 +62,7 @@ public class ClientSheetPopulator extends AbstractWorkbookPopulator { private void setClientNameToClientIdMap() { clientNameToClientId = new HashMap<>(); for (ClientData clientData : allClients) { - clientNameToClientId.put(clientData.displayName().trim() + "(" + clientData.id() + ")", clientData.id()); + clientNameToClientId.put(clientData.getDisplayName().trim() + "(" + clientData.getId() + ")", clientData.getId()); } } @@ -82,14 +82,14 @@ public class ClientSheetPopulator extends AbstractWorkbookPopulator { officeToClients = new HashMap<>(); for (ClientData person : allClients) { addToOfficeClientMap(person.getOfficeName().trim().replaceAll("[ )(]", "_"), - person.displayName().trim() + "(" + person.id() + ")"); + person.getDisplayName().trim() + "(" + person.getId() + ")"); } } private void setClientNameToSavingsAccountsIdsMap() { clientNameToSavingsAccountIds = new HashMap<>(); for (ClientData client : allClients) { - clientNameToSavingsAccountIds.put(client.displayName().trim() + "(" + client.id() + ")", client.getSavingsAccountId()); + clientNameToSavingsAccountIds.put(client.getDisplayName().trim() + "(" + client.getId() + ")", client.getSavingsAccountId()); } } @@ -112,10 +112,10 @@ public class ClientSheetPopulator extends AbstractWorkbookPopulator { Row row = clientSheet.createRow(rowIndex); for (OfficeData office : officesDataList) { startIndex = rowIndex + 1; - writeString(OFFICE_NAME_COL, row, office.name()); + writeString(OFFICE_NAME_COL, row, office.getName()); ArrayList clientList = new ArrayList(); - if (officeToClients.containsKey(office.name().trim().replaceAll("[ )(]", "_"))) { - clientList = officeToClients.get(office.name().trim().replaceAll("[ )(]", "_")); + if (officeToClients.containsKey(office.getName().trim().replaceAll("[ )(]", "_"))) { + clientList = officeToClients.get(office.getName().trim().replaceAll("[ )(]", "_")); } if (!clientList.isEmpty()) { for (String clientName : clientList) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ExtrasSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ExtrasSheetPopulator.java index 9a3ed0e95..7c930d709 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ExtrasSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/ExtrasSheetPopulator.java @@ -77,7 +77,7 @@ public class ExtrasSheetPopulator extends AbstractWorkbookPopulator { } writeString(CURRENCY_NAME_COL, row, currencies.getName().trim().replaceAll("[ )(]", "_")); - writeString(CURRENCY_CODE_COL, row, currencies.code()); + writeString(CURRENCY_CODE_COL, row, currencies.getCode()); } extrasSheet.protectSheet(""); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/FixedDepositProductSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/FixedDepositProductSheetPopulator.java index dd0c6eee9..17db4422c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/FixedDepositProductSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/FixedDepositProductSheetPopulator.java @@ -117,7 +117,7 @@ public class FixedDepositProductSheetPopulator extends AbstractWorkbookPopulator writeString(LOCKIN_PERIOD_FREQUENCY_COL, row, product.getLockinPeriodFrequencyType().getValue()); } CurrencyData currency = product.getCurrency(); - writeString(CURRENCY_COL, row, currency.code()); + writeString(CURRENCY_COL, row, currency.getCode()); } productSheet.protectSheet(""); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/GroupSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/GroupSheetPopulator.java index d8f903a55..f3fb1a85e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/GroupSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/GroupSheetPopulator.java @@ -93,11 +93,11 @@ public class GroupSheetPopulator extends AbstractWorkbookPopulator { Row row = groupSheet.createRow(rowIndex); for (OfficeData office : offices) { startIndex = rowIndex + 1; - writeString(OFFICE_NAME_COL, row, office.name()); + writeString(OFFICE_NAME_COL, row, office.getName()); ArrayList groupsList = new ArrayList<>(); - if (officeToGroups.containsKey(office.name().trim().replaceAll("[ )(]", "_"))) { - groupsList = officeToGroups.get(office.name().trim().replaceAll("[ )(]", "_")); + if (officeToGroups.containsKey(office.getName().trim().replaceAll("[ )(]", "_"))) { + groupsList = officeToGroups.get(office.getName().trim().replaceAll("[ )(]", "_")); } if (!groupsList.isEmpty()) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/OfficeSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/OfficeSheetPopulator.java index fac149b20..c0a979c83 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/OfficeSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/OfficeSheetPopulator.java @@ -51,7 +51,7 @@ public class OfficeSheetPopulator extends AbstractWorkbookPopulator { for (OfficeData office : offices) { Row row = officeSheet.createRow(rowIndex); writeLong(ID_COL, row, office.getId()); - writeString(OFFICE_NAME_COL, row, office.name().trim().replaceAll("[ )(]", "_")); + writeString(OFFICE_NAME_COL, row, office.getName().trim().replaceAll("[ )(]", "_")); rowIndex++; } } @@ -72,7 +72,7 @@ public class OfficeSheetPopulator extends AbstractWorkbookPopulator { public List getOfficeNames() { List officeNames = new ArrayList<>(); for (OfficeData office : offices) { - officeNames.add(office.name()); + officeNames.add(office.getName()); } return officeNames; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/PersonnelSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/PersonnelSheetPopulator.java index 96b0f3f07..8c19deca1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/PersonnelSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/PersonnelSheetPopulator.java @@ -77,9 +77,9 @@ public class PersonnelSheetPopulator extends AbstractWorkbookPopulator { Row row = staffSheet.createRow(rowIndex); for (OfficeData office : offices) { startIndex = rowIndex + 1; - writeString(OFFICE_NAME_COL, row, office.name().trim().replaceAll("[ )(]", "_")); + writeString(OFFICE_NAME_COL, row, office.getName().trim().replaceAll("[ )(]", "_")); - List staffList = officeToPersonnel.get(office.name().trim().replaceAll("[ )(]", "_")); + List staffList = officeToPersonnel.get(office.getName().trim().replaceAll("[ )(]", "_")); if (staffList != null) { if (!staffList.isEmpty()) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/RecurringDepositProductSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/RecurringDepositProductSheetPopulator.java index a1431229b..26da0b63c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/RecurringDepositProductSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/RecurringDepositProductSheetPopulator.java @@ -125,7 +125,7 @@ public class RecurringDepositProductSheetPopulator extends AbstractWorkbookPopul writeString(LOCKIN_PERIOD_FREQUENCY_COL, row, product.getLockinPeriodFrequencyType().getValue()); } CurrencyData currency = product.getCurrency(); - writeString(CURRENCY_COL, row, currency.code()); + writeString(CURRENCY_COL, row, currency.getCode()); } productSheet.protectSheet(""); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsAccountSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsAccountSheetPopulator.java index e86eaa401..133fd5082 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsAccountSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsAccountSheetPopulator.java @@ -53,9 +53,9 @@ public class SavingsAccountSheetPopulator extends AbstractWorkbookPopulator { int rowIndex = 1; for (SavingsAccountData savings : savingsAccountDataList) { Row row = savingsSheet.createRow(rowIndex++); - writeLong(SAVINGS_ACCOUNT_ID_COL, row, savings.id()); + writeLong(SAVINGS_ACCOUNT_ID_COL, row, savings.getId()); writeString(SAVING_ACCOUNT_NO, row, savings.getAccountNo()); - writeString(CURRENCY_COL, row, savings.currency().code()); + writeString(CURRENCY_COL, row, savings.getCurrency().getCode()); writeString(CLIENT_NAME, row, savings.getClientName()); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsProductSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsProductSheetPopulator.java index 1dedb9cf8..c428b9e1a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsProductSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SavingsProductSheetPopulator.java @@ -79,10 +79,10 @@ public class SavingsProductSheetPopulator extends AbstractWorkbookPopulator { writeString(LOCKIN_PERIOD_FREQUENCY_COL, row, product.getLockinPeriodFrequencyType().getValue()); } CurrencyData currency = product.getCurrency(); - writeString(CURRENCY_COL, row, currency.code()); - writeInt(DECIMAL_PLACES_COL, row, currency.decimalPlaces()); - if (currency.currencyInMultiplesOf() != null) { - writeInt(IN_MULTIPLES_OF_COL, row, currency.currencyInMultiplesOf()); + writeString(CURRENCY_COL, row, currency.getCode()); + writeInt(DECIMAL_PLACES_COL, row, currency.getDecimalPlaces()); + if (currency.getInMultiplesOf() != null) { + writeInt(IN_MULTIPLES_OF_COL, row, currency.getInMultiplesOf()); } writeBoolean(WITHDRAWAL_FEE_COL, row, product.isWithdrawalFeeForTransfers()); writeBoolean(ALLOW_OVERDRAFT_COL, row, product.isAllowOverdraft()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SharedProductsSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SharedProductsSheetPopulator.java index 7936f4cbc..5e207236a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SharedProductsSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/SharedProductsSheetPopulator.java @@ -76,9 +76,9 @@ public class SharedProductsSheetPopulator extends AbstractWorkbookPopulator { writeLong(PRODUCT_ID, row, productData.getId()); writeString(PRODUCT_NAME_COL, row, productData.getName().replaceAll("[ ]", "_")); writeString(CURRENCY_COL, row, productData.getCurrency().getName().replaceAll("[ ]", "_")); - writeInt(DECIMAL_PLACES_COL, row, productData.getCurrency().decimalPlaces()); + writeInt(DECIMAL_PLACES_COL, row, productData.getCurrency().getDecimalPlaces()); writeBigDecimal(TODAYS_PRICE_COL, row, deriveMarketPrice(productData)); - writeInt(CURRENCY_IN_MULTIPLES_COL, row, productData.getCurrency().currencyInMultiplesOf()); + writeInt(CURRENCY_IN_MULTIPLES_COL, row, productData.getCurrency().getInMultiplesOf()); if (chargesForSharedProducts != null) { int chargeRowIndex = 0; for (ChargeData chargeData : chargesForSharedProducts) { @@ -101,7 +101,7 @@ public class SharedProductsSheetPopulator extends AbstractWorkbookPopulator { if (marketDataSet != null && !marketDataSet.isEmpty()) { LocalDate currentDate = DateUtils.getBusinessLocalDate(); for (ShareProductMarketPriceData data : marketDataSet) { - LocalDate futureDate = data.getStartDate(); + LocalDate futureDate = data.getFromDate(); if (currentDate.isAfter(futureDate)) { marketValue = data.getShareValue(); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/centers/CentersWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/centers/CentersWorkbookPopulator.java index c2d15ce9a..307aa9822 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/centers/CentersWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/centers/CentersWorkbookPopulator.java @@ -226,7 +226,7 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { Integer[] officeNameToBeginEndIndexesOfStaff = personnelSheetPopulator.getOfficeNameToBeginEndIndexesOfStaff().get(i); Name loanOfficerName = centerWorkbook.createName(); if (officeNameToBeginEndIndexesOfStaff != null) { - loanOfficerName.setNameName("Staff_" + offices.get(i).name().trim().replaceAll("[ )(]", "_")); + loanOfficerName.setNameName("Staff_" + offices.get(i).getName().trim().replaceAll("[ )(]", "_")); loanOfficerName.setRefersToFormula(TemplatePopulateImportConstants.STAFF_SHEET_NAME + "!$B$" + officeNameToBeginEndIndexesOfStaff[0] + ":$B$" + officeNameToBeginEndIndexesOfStaff[1]); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java index 5f961763b..e4dad217e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/chartofaccounts/ChartOfAccountsWorkbook.java @@ -95,7 +95,7 @@ public class ChartOfAccountsWorkbook extends AbstractWorkbookPopulator { String[] currencyCode = new String[currencies.size()]; int currencyIndex = 0; for (CurrencyData currencies : currencies) { - currencyCode[currencyIndex] = currencies.code(); + currencyCode[currencyIndex] = currencies.getCode(); currencyIndex++; } return currencyCode; @@ -246,13 +246,13 @@ public class ChartOfAccountsWorkbook extends AbstractWorkbookPopulator { startIndex = rowIndex + 1; if (chartOfAccountsSheet.getRow(rowIndex) != null) { Row row = chartOfAccountsSheet.getRow(rowIndex); - writeString(ChartOfAcountsConstants.LOOKUP_OFFICE_COL, row, office.name()); + writeString(ChartOfAcountsConstants.LOOKUP_OFFICE_COL, row, office.getName()); writeLong(ChartOfAcountsConstants.LOOKUP_OFFICE_ID_COL, row, office.getId()); rowIndex++; } else { Row row = chartOfAccountsSheet.createRow(rowIndex); - writeString(ChartOfAcountsConstants.LOOKUP_OFFICE_COL, row, office.name()); + writeString(ChartOfAcountsConstants.LOOKUP_OFFICE_COL, row, office.getName()); writeLong(ChartOfAcountsConstants.LOOKUP_OFFICE_ID_COL, row, office.getId()); rowIndex++; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java index ee5724feb..8d16218ae 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientEntityWorkbookPopulator.java @@ -368,7 +368,7 @@ public class ClientEntityWorkbookPopulator extends AbstractWorkbookPopulator { Integer[] officeNameToBeginEndIndexesOfStaff = personnelSheetPopulator.getOfficeNameToBeginEndIndexesOfStaff().get(i); if (officeNameToBeginEndIndexesOfStaff != null) { Name name = clientWorkbook.createName(); - setSanitized(name, "Staff_" + offices.get(i).name()); + setSanitized(name, "Staff_" + offices.get(i).getName()); name.setRefersToFormula(TemplatePopulateImportConstants.STAFF_SHEET_NAME + "!$B$" + officeNameToBeginEndIndexesOfStaff[0] + ":$B$" + officeNameToBeginEndIndexesOfStaff[1]); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientPersonWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientPersonWorkbookPopulator.java index 64ca2498f..7fb495fc1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientPersonWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/client/ClientPersonWorkbookPopulator.java @@ -340,7 +340,7 @@ public class ClientPersonWorkbookPopulator extends AbstractWorkbookPopulator { Integer[] officeNameToBeginEndIndexesOfStaff = personnelSheetPopulator.getOfficeNameToBeginEndIndexesOfStaff().get(i); if (officeNameToBeginEndIndexesOfStaff != null) { Name name = clientWorkbook.createName(); - setSanitized(name, "Staff_" + offices.get(i).name()); + setSanitized(name, "Staff_" + offices.get(i).getName()); name.setRefersToFormula(TemplatePopulateImportConstants.STAFF_SHEET_NAME + "!$B$" + officeNameToBeginEndIndexesOfStaff[0] + ":$B$" + officeNameToBeginEndIndexesOfStaff[1]); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java index 91ed8f664..6748adbe9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/group/GroupsWorkbookPopulator.java @@ -241,12 +241,12 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { Name centerName = centerWorkbook.createName(); if (officeNameToBeginEndIndexesOfStaff != null) { - setSanitized(loanOfficerName, "Staff_" + offices.get(i).name()); + setSanitized(loanOfficerName, "Staff_" + offices.get(i).getName()); loanOfficerName.setRefersToFormula(TemplatePopulateImportConstants.STAFF_SHEET_NAME + "!$B$" + officeNameToBeginEndIndexesOfStaff[0] + ":$B$" + officeNameToBeginEndIndexesOfStaff[1]); } if (officeNameToBeginEndIndexesOfCenters != null) { - setSanitized(centerName, "Center_" + offices.get(i).name()); + setSanitized(centerName, "Center_" + offices.get(i).getName()); centerName.setRefersToFormula(TemplatePopulateImportConstants.CENTER_SHEET_NAME + "!$B$" + officeNameToBeginEndIndexesOfCenters[0] + ":$B$" + officeNameToBeginEndIndexesOfCenters[1]); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/office/OfficeWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/office/OfficeWorkbookPopulator.java index 643f4e00c..4e60593e1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/office/OfficeWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/office/OfficeWorkbookPopulator.java @@ -56,7 +56,7 @@ public class OfficeWorkbookPopulator extends AbstractWorkbookPopulator { int rowIndex = 1; for (OfficeData office : offices) { Row row = officeSheet.createRow(rowIndex); - writeString(OfficeConstants.LOOKUP_OFFICE_COL, row, office.name()); + writeString(OfficeConstants.LOOKUP_OFFICE_COL, row, office.getName()); writeLong(OfficeConstants.LOOKUP_OFFICE_ID_COL, row, office.getId()); rowIndex++; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java index 07dfe80e5..791728c99 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/savings/SavingsWorkbookPopulator.java @@ -404,7 +404,7 @@ public class SavingsWorkbookPopulator extends AbstractWorkbookPopulator { setSanitized(lockinPeriodFrequencyName, "Lockin_Frequency_" + productName); lockinPeriodFrequencyName.setRefersToFormula(TemplatePopulateImportConstants.PRODUCT_SHEET_NAME + "!$J$" + (i + 2)); } - if (product.getCurrency().currencyInMultiplesOf() != null) { + if (product.getCurrency().getInMultiplesOf() != null) { setSanitized(inMultiplesOfName, "In_Multiples_" + productName); inMultiplesOfName.setRefersToFormula(TemplatePopulateImportConstants.PRODUCT_SHEET_NAME + "!$M$" + (i + 2)); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/users/UserWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/users/UserWorkbookPopulator.java index d1f79d917..b26346a49 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/users/UserWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/users/UserWorkbookPopulator.java @@ -105,7 +105,7 @@ public class UserWorkbookPopulator extends AbstractWorkbookPopulator { Name userOfficeName = userWorkbook.createName(); if (officeNameToBeginEndIndexesOfStaff != null) { - setSanitized(userOfficeName, "Staff_" + offices.get(i).name()); + setSanitized(userOfficeName, "Staff_" + offices.get(i).getName()); userOfficeName.setRefersToFormula(TemplatePopulateImportConstants.STAFF_SHEET_NAME + "!$B$" + officeNameToBeginEndIndexesOfStaff[0] + ":$B$" + officeNameToBeginEndIndexesOfStaff[1]); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/data/CodeValueData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/data/CodeValueData.java index db97f3656..f3233194a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/data/CodeValueData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/data/CodeValueData.java @@ -19,20 +19,17 @@ package org.apache.fineract.infrastructure.codes.data; import java.io.Serializable; +import lombok.Getter; /** * Immutable data object represent code-value data in system. */ +@Getter public class CodeValueData implements Serializable { private final Long id; - private final String name; - - @SuppressWarnings("unused") private final Integer position; - - @SuppressWarnings("unused") private final String description; private final boolean active; private final boolean mandatory; @@ -88,26 +85,4 @@ public class CodeValueData implements Serializable { this.active = active; this.mandatory = mandatory; } - - public Long getId() { - return this.id; - } - - public String getName() { - return this.name; - } - - /** - * @return the mandatory - */ - public boolean isMandatory() { - return mandatory; - } - - /** - * @return the active - */ - public boolean isActive() { - return active; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/CommandProcessingResult.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/CommandProcessingResult.java index d061e6322..385a915b7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/CommandProcessingResult.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/CommandProcessingResult.java @@ -21,12 +21,14 @@ package org.apache.fineract.infrastructure.core.data; import java.io.Serializable; import java.util.HashMap; import java.util.Map; +import lombok.Getter; import lombok.ToString; /** * Represents the successful result of an REST API call that results in processing a command. */ @ToString +@Getter public class CommandProcessingResult implements Serializable { private Long commandId; @@ -171,46 +173,10 @@ public class CommandProcessingResult implements Serializable { this(commandId, officeId, null, clientId, null, null, null, resourceId, null, changesOnly, null, null, null, null, null, null); } - public Long commandId() { - return this.commandId; - } - - public Long resourceId() { - return this.resourceId; - } - - public Long getOfficeId() { - return this.officeId; - } - public void setOfficeId(final Long officeId) { this.officeId = officeId; } - public Long getGroupId() { - return this.groupId; - } - - public Long getClientId() { - return this.clientId; - } - - public Long getLoanId() { - return this.loanId; - } - - public Long getSavingsId() { - return this.savingsId; - } - - public String getTransactionId() { - return this.transactionId; - } - - public Map getCreditReport() { - return this.creditBureauReportData; - } - public Map getChanges() { Map checkIfEmpty = null; if (this.changes != null && !this.changes.isEmpty()) { @@ -224,18 +190,6 @@ public class CommandProcessingResult implements Serializable { return !noChanges; } - public Long getProductId() { - return this.productId; - } - - public Long getGsimId() { - return this.gsimId; - } - - public Long getGlimId() { - return this.glimId; - } - public boolean isRollbackTransaction() { return this.rollbackTransaction != null && this.rollbackTransaction; } @@ -243,8 +197,4 @@ public class CommandProcessingResult implements Serializable { public void setRollbackTransaction(Boolean rollbackTransaction) { this.rollbackTransaction = rollbackTransaction; } - - public Long getSubResourceId() { - return subResourceId; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java index f6b6a1b9b..6f2251e9f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/data/EnumOptionData.java @@ -19,51 +19,21 @@ package org.apache.fineract.infrastructure.core.data; import java.io.Serializable; -import java.util.Objects; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; /** *

* Immutable data object representing generic enumeration value. *

*/ +@Getter +@EqualsAndHashCode +@AllArgsConstructor public class EnumOptionData implements Serializable { private final Long id; private final String code; private final String value; - - public EnumOptionData(final Long id, final String code, final String value) { - this.id = id; - this.code = code; - this.value = value; - } - - public Long getId() { - return this.id; - } - - public String getCode() { - return this.code; - } - - public String getValue() { - return this.value; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof EnumOptionData)) { - return false; - } - EnumOptionData that = (EnumOptionData) o; - return id.equals(that.id) && code.equals(that.code) && value.equals(that.value); - } - - @Override - public int hashCode() { - return Objects.hash(id, code, value); - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/client/ClientDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/client/ClientDataMapper.java index d6a87cd05..c3be145aa 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/client/ClientDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/client/ClientDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.client; import org.apache.fineract.avro.client.v1.ClientDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.client.data.ClientData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface ClientDataMapper { ClientDataV1 map(ClientData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/fixeddeposit/FixedDepositAccountDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/fixeddeposit/FixedDepositAccountDataMapper.java index c3dabfe12..430f02bbf 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/fixeddeposit/FixedDepositAccountDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/fixeddeposit/FixedDepositAccountDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.fixeddeposit; import org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.savings.data.FixedDepositAccountData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface FixedDepositAccountDataMapper { FixedDepositAccountDataV1 map(FixedDepositAccountData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/generic/CommandProcessingResultMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/generic/CommandProcessingResultMapper.java index e805709b0..20d14d408 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/generic/CommandProcessingResultMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/generic/CommandProcessingResultMapper.java @@ -20,9 +20,10 @@ package org.apache.fineract.infrastructure.event.external.service.serialization. import org.apache.fineract.avro.generic.v1.CommandProcessingResultV1; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface CommandProcessingResultMapper { CommandProcessingResultV1 map(CommandProcessingResult source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanAccountDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanAccountDataMapper.java index c3caeaf25..dd6007a2e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanAccountDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanAccountDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan; import org.apache.fineract.avro.loan.v1.LoanAccountDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.loanaccount.data.LoanAccountData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface LoanAccountDataMapper { LoanAccountDataV1 map(LoanAccountData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanChargeDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanChargeDataMapper.java index 4aa3ebcb4..b000dde1a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanChargeDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanChargeDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan; import org.apache.fineract.avro.loan.v1.LoanChargeDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.loanaccount.data.LoanChargeData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface LoanChargeDataMapper { LoanChargeDataV1 map(LoanChargeData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanProductDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanProductDataMapper.java index 0e37b1ed9..4daae8e58 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanProductDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanProductDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan; import org.apache.fineract.avro.loan.v1.LoanProductDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.loanproduct.data.LoanProductData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface LoanProductDataMapper { LoanProductDataV1 map(LoanProductData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java index 1d6dc9065..dbe24a0c9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan; import org.apache.fineract.avro.loan.v1.LoanTransactionDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.loanaccount.data.LoanTransactionData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface LoanTransactionDataMapper { LoanTransactionDataV1 map(LoanTransactionData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/recurringdeposit/RecurringDepositAccountDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/recurringdeposit/RecurringDepositAccountDataMapper.java index c8943c250..6d1f50775 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/recurringdeposit/RecurringDepositAccountDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/recurringdeposit/RecurringDepositAccountDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.recurringdeposit; import org.apache.fineract.avro.recurringdeposit.v1.RecurringDepositAccountDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.savings.data.RecurringDepositAccountData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface RecurringDepositAccountDataMapper { RecurringDepositAccountDataV1 map(RecurringDepositAccountData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountDataMapper.java index 05a9402fc..cc2e786ab 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.savings; import org.apache.fineract.avro.savings.v1.SavingsAccountDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.savings.data.SavingsAccountData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface SavingsAccountDataMapper { SavingsAccountDataV1 map(SavingsAccountData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountTransactionDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountTransactionDataMapper.java index dabf8bc7e..a0cf86658 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountTransactionDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/savings/SavingsAccountTransactionDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.savings; import org.apache.fineract.avro.savings.v1.SavingsAccountTransactionDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface SavingsAccountTransactionDataMapper { SavingsAccountTransactionDataV1 map(SavingsAccountTransactionData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareAccountDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareAccountDataMapper.java index a808e5a79..6dc7b82df 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareAccountDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareAccountDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.share; import org.apache.fineract.avro.share.v1.ShareAccountDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.shareaccounts.data.ShareAccountData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface ShareAccountDataMapper { ShareAccountDataV1 map(ShareAccountData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareProductDataMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareProductDataMapper.java index 3e96e423d..d2e2374b4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareProductDataMapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/share/ShareProductDataMapper.java @@ -19,10 +19,11 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.mapper.share; import org.apache.fineract.avro.share.v1.ShareProductDataV1; +import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.support.AvroMapperConfig; import org.apache.fineract.portfolio.shareproducts.data.ShareProductData; import org.mapstruct.Mapper; -@Mapper(componentModel = "spring") +@Mapper(config = AvroMapperConfig.class) public interface ShareProductDataMapper { ShareProductDataV1 map(ShareProductData source); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapper.java new file mode 100644 index 000000000..7ad3011c0 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapper.java @@ -0,0 +1,50 @@ +/** + * 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.infrastructure.event.external.service.serialization.mapper.support; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import org.springframework.stereotype.Component; + +@Component +public class AvroDateTimeMapper { + + public String mapOffsetDateTime(OffsetDateTime source) { + if (source == null) { + return null; + } + return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(source); + } + + public String mapLocalDateTime(LocalDateTime source) { + if (source == null) { + return null; + } + return DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(source); + } + + public String mapLocalDate(LocalDate source) { + if (source == null) { + return null; + } + return DateTimeFormatter.ISO_LOCAL_DATE.format(source); + } +} diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMapperConfig.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMapperConfig.java new file mode 100644 index 000000000..c7ed92f4d --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMapperConfig.java @@ -0,0 +1,28 @@ +/** + * 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.infrastructure.event.external.service.serialization.mapper.support; + +import org.mapstruct.Builder; +import org.mapstruct.MapperConfig; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +@MapperConfig(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.ERROR, builder = @Builder(disableBuilder = true), uses = { + AvroDateTimeMapper.class, AvroMonthDayMapper.class }) +public class AvroMapperConfig {} diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMonthDayMapper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMonthDayMapper.java new file mode 100644 index 000000000..b4bbb0041 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroMonthDayMapper.java @@ -0,0 +1,33 @@ +/** + * 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.infrastructure.event.external.service.serialization.mapper.support; + +import java.time.MonthDay; +import org.springframework.stereotype.Component; + +@Component +public class AvroMonthDayMapper { + + public String mapMonthDay(MonthDay source) { + if (source == null) { + return null; + } + return source.toString(); + } +} diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/data/CurrencyData.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/data/CurrencyData.java index d4e1f824f..808ce564b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/data/CurrencyData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/monetary/data/CurrencyData.java @@ -19,11 +19,14 @@ package org.apache.fineract.organisation.monetary.data; import java.io.Serializable; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.Getter; /** * Immutable data object representing currency. */ +@Getter +@EqualsAndHashCode public class CurrencyData implements Serializable { private final String code; @@ -31,9 +34,7 @@ public class CurrencyData implements Serializable { private final int decimalPlaces; private final Integer inMultiplesOf; private final String displaySymbol; - @SuppressWarnings("unused") private final String nameCode; - @SuppressWarnings("unused") private final String displayLabel; public static CurrencyData blank() { @@ -71,18 +72,6 @@ public class CurrencyData implements Serializable { this.displayLabel = null; } - public String code() { - return this.code; - } - - public int decimalPlaces() { - return this.decimalPlaces; - } - - public Integer currencyInMultiplesOf() { - return this.inMultiplesOf; - } - private String generateDisplayLabel() { final StringBuilder builder = new StringBuilder(this.name).append(' '); @@ -95,39 +84,4 @@ public class CurrencyData implements Serializable { return builder.toString(); } - - public String getName() { - return name; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof CurrencyData)) { - return false; - } - CurrencyData that = (CurrencyData) o; - return (decimalPlaces == that.decimalPlaces) && Objects.equals(code, that.code) && Objects.equals(name, that.name) - && Objects.equals(inMultiplesOf, that.inMultiplesOf) && Objects.equals(displaySymbol, that.displaySymbol) - && Objects.equals(nameCode, that.nameCode) && Objects.equals(displayLabel, that.displayLabel); - } - - @Override - public int hashCode() { - return Objects.hash(code, name, decimalPlaces, inMultiplesOf, displaySymbol, nameCode, displayLabel); - } - - public String getCode() { - return this.code; - } - - public int getDecimalPlaces() { - return this.decimalPlaces; - } - - public Integer getInMultiplesOf() { - return this.inMultiplesOf; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/data/OfficeData.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/data/OfficeData.java index 223fc9755..f7ad2cdb4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/office/data/OfficeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/office/data/OfficeData.java @@ -22,10 +22,12 @@ import java.io.Serializable; import java.time.LocalDate; import java.util.Collection; import java.util.List; +import lombok.Getter; /** * Immutable data object for office data. */ +@Getter public class OfficeData implements Serializable { private final Long id; @@ -36,7 +38,6 @@ public class OfficeData implements Serializable { private final String hierarchy; private final Long parentId; private final String parentName; - @SuppressWarnings("unused") private final Collection allowedParents; // import fields @@ -58,18 +59,6 @@ public class OfficeData implements Serializable { return new OfficeData(id, name, null, null, null, null, null, null, null); } - public LocalDate getOpeningDate() { - return openingDate; - } - - public Integer getRowIndex() { - return rowIndex; - } - - public Long getId() { - return id; - } - public static OfficeData dropdown(final Long id, final String name, final String nameDecorated) { return new OfficeData(id, name, nameDecorated, null, null, null, null, null, null); } @@ -99,12 +88,4 @@ public class OfficeData implements Serializable { public boolean hasIdentifyOf(final Long officeId) { return this.id.equals(officeId); } - - public String name() { - return this.name; - } - - public String getHierarchy() { - return this.hierarchy; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformServiceImpl.java index 464b43839..120dbf132 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/teller/service/TellerManagementReadPlatformServiceImpl.java @@ -369,7 +369,7 @@ public class TellerManagementReadPlatformServiceImpl implements TellerManagement final OfficeData officeData = this.officeReadPlatformService.retrieveOffice(defaultOfficeId); String officeName = ""; if (officeData != null) { - officeName = officeData.name(); + officeName = officeData.getName(); } TellerData tellerData = findTeller(tellerId); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java index 5a32190f5..0cc8d19d0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/api/StandingInstructionApiResource.java @@ -246,10 +246,10 @@ public class StandingInstructionApiResource { } if (associationParameters.contains("template")) { final StandingInstructionData templateData = this.standingInstructionReadPlatformService.retrieveTemplate( - standingInstructionData.fromClient().officeId(), standingInstructionData.fromClient().id(), - standingInstructionData.fromAccount().accountId(), standingInstructionData.fromAccountType().getValue(), - standingInstructionData.toClient().officeId(), standingInstructionData.toClient().id(), - standingInstructionData.toAccount().accountId(), standingInstructionData.toAccountType().getValue(), + standingInstructionData.fromClient().getOfficeId(), standingInstructionData.fromClient().getId(), + standingInstructionData.fromAccount().getId(), standingInstructionData.fromAccountType().getValue(), + standingInstructionData.toClient().getOfficeId(), standingInstructionData.toClient().getId(), + standingInstructionData.toAccount().getId(), standingInstructionData.toAccountType().getValue(), standingInstructionData.transferType().getValue()); standingInstructionData = StandingInstructionData.withTemplateData(standingInstructionData, templateData); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/AccountTransferData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/AccountTransferData.java index cb2c64a2c..7d019de83 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/AccountTransferData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/AccountTransferData.java @@ -22,6 +22,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Collection; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.organisation.monetary.data.CurrencyData; import org.apache.fineract.organisation.office.data.OfficeData; @@ -30,7 +31,7 @@ import org.apache.fineract.portfolio.client.data.ClientData; /** * Immutable data object representing a savings account. */ -@SuppressWarnings("unused") +@Getter public final class AccountTransferData implements Serializable { private final Long id; @@ -69,7 +70,7 @@ public final class AccountTransferData implements Serializable { CurrencyData currency = null; BigDecimal transferAmount = BigDecimal.ZERO; if (fromAccount != null) { - currency = fromAccount.currency(); + currency = fromAccount.getCurrency(); if (fromAccount.getAmtForTransfer() != null) { transferAmount = fromAccount.getAmtForTransfer(); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java index b4d3103b1..c3eb7d825 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/data/PortfolioAccountData.java @@ -20,14 +20,17 @@ package org.apache.fineract.portfolio.account.data; import java.io.Serializable; import java.math.BigDecimal; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.HashCodeBuilder; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.apache.fineract.organisation.monetary.data.CurrencyData; /** * Immutable data object representing a savings account. */ -@SuppressWarnings("unused") +@Getter +@EqualsAndHashCode +@RequiredArgsConstructor public class PortfolioAccountData implements Serializable { private final Long id; @@ -66,64 +69,7 @@ public class PortfolioAccountData implements Serializable { this.amtForTransfer = null; } - public PortfolioAccountData(final Long id, final String accountNo, final String externalId, final Long groupId, final String groupName, - final Long clientId, final String clientName, final Long productId, final String productName, final Long fieldOfficerId, - final String fieldOfficerName, final CurrencyData currency, final BigDecimal amtForTransfer) { - this.id = id; - this.accountNo = accountNo; - this.externalId = externalId; - this.groupId = groupId; - this.groupName = groupName; - this.clientId = clientId; - this.clientName = clientName; - this.productId = productId; - this.productName = productName; - this.fieldOfficerId = fieldOfficerId; - this.fieldOfficerName = fieldOfficerName; - this.currency = currency; - this.amtForTransfer = amtForTransfer; - } - - @Override - public boolean equals(final Object obj) { - - if (obj == null) { - return false; - } - if (obj == this) { - return true; - } - if (!(obj instanceof PortfolioAccountData)) { - return false; - } - final PortfolioAccountData rhs = (PortfolioAccountData) obj; - return new EqualsBuilder().append(this.id, rhs.id).append(this.accountNo, rhs.accountNo).append(this.productId, rhs.productId) - .append(this.productName, rhs.productName).isEquals(); - } - - @Override - public int hashCode() { - return new HashCodeBuilder(17, 37).append(this.id).append(this.accountNo).append(this.productId).append(this.productName) - .toHashCode(); - } - - public Long clientId() { - return this.clientId; - } - - public CurrencyData currency() { - return this.currency; - } - - public String currencyCode() { - return this.currency.code(); - } - - public BigDecimal getAmtForTransfer() { - return this.amtForTransfer; - } - - public Long accountId() { - return this.id; + public String getCurrencyCode() { + return this.currency.getCode(); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/jobs/executestandinginstructions/ExecuteStandingInstructionsTasklet.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/jobs/executestandinginstructions/ExecuteStandingInstructionsTasklet.java index 0faae1ca7..ec8286247 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/jobs/executestandinginstructions/ExecuteStandingInstructionsTasklet.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/jobs/executestandinginstructions/ExecuteStandingInstructionsTasklet.java @@ -91,7 +91,7 @@ public class ExecuteStandingInstructionsTasklet implements Tasklet { if (data.toAccountType().isLoanAccount() && (recurrenceType.isDuesRecurrence() || (isDueForTransfer && instructionType.isDuesAmoutTransfer()))) { StandingInstructionDuesData standingInstructionDuesData = standingInstructionReadPlatformService - .retriveLoanDuesData(data.toAccount().accountId()); + .retriveLoanDuesData(data.toAccount().getId()); if (data.instructionType().isDuesAmoutTransfer()) { transactionAmount = standingInstructionDuesData.totalDueAmount(); } @@ -105,7 +105,7 @@ public class ExecuteStandingInstructionsTasklet implements Tasklet { final boolean isRegularTransaction = true; final boolean isExceptionForBalanceCheck = false; AccountTransferDTO accountTransferDTO = new AccountTransferDTO(transactionDate, transactionAmount, data.fromAccountType(), - data.toAccountType(), data.fromAccount().accountId(), data.toAccount().accountId(), + data.toAccountType(), data.fromAccount().getId(), data.toAccount().getId(), data.name() + " Standing instruction trasfer ", null, null, null, null, data.toTransferType(), null, null, data.transferType().getValue(), null, null, null, null, null, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java index a4703c66f..a3862c379 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java @@ -136,12 +136,12 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers fromAccount = this.portfolioAccountReadPlatformService.retrieveOne(fromAccountId, accountType); // override provided fromClient with client of account - mostRelevantFromClientId = fromAccount.clientId(); + mostRelevantFromClientId = fromAccount.getClientId(); } if (mostRelevantFromClientId != null) { fromClient = this.clientReadPlatformService.retrieveOne(mostRelevantFromClientId); - mostRelevantFromOfficeId = fromClient.officeId(); + mostRelevantFromOfficeId = fromClient.getOfficeId(); long[] loanStatus = null; if (mostRelevantFromAccountType == 1) { loanStatus = new long[] { 300, 700 }; @@ -166,13 +166,13 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers if (toAccountId != null && fromAccount != null) { toAccount = this.portfolioAccountReadPlatformService.retrieveOne(toAccountId, mostRelevantToAccountType, - fromAccount.currencyCode()); - mostRelevantToClientId = toAccount.clientId(); + fromAccount.getCurrencyCode()); + mostRelevantToClientId = toAccount.getClientId(); } if (mostRelevantToClientId != null) { toClient = this.clientReadPlatformService.retrieveOne(mostRelevantToClientId); - mostRelevantToOfficeId = toClient.officeId(); + mostRelevantToOfficeId = toClient.getOfficeId(); toClientOptions = this.clientReadPlatformService.retrieveAllForLookupByOfficeId(mostRelevantToOfficeId); @@ -199,7 +199,7 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers private Collection retrieveToAccounts(final PortfolioAccountData excludeThisAccountFromOptions, final Integer toAccountType, final Long toClientId) { - final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.currencyCode() : null; + final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.getCurrencyCode() : null; PortfolioAccountDTO portfolioAccountDTO = new PortfolioAccountDTO(toAccountType, toClientId, currencyCode, null, null); Collection accountOptions = this.portfolioAccountReadPlatformService @@ -491,12 +491,12 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers fromAccount = this.portfolioAccountReadPlatformService.retrieveOneByPaidInAdvance(fromAccountId, accountType); // override provided fromClient with client of account - mostRelevantFromClientId = fromAccount.clientId(); + mostRelevantFromClientId = fromAccount.getClientId(); } if (mostRelevantFromClientId != null) { fromClient = this.clientReadPlatformService.retrieveOne(mostRelevantFromClientId); - mostRelevantFromOfficeId = fromClient.officeId(); + mostRelevantFromOfficeId = fromClient.getOfficeId(); long[] loanStatus = null; if (mostRelevantFromAccountType == 1) { loanStatus = new long[] { 300, 700 }; @@ -521,13 +521,13 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers if (toAccountId != null && fromAccount != null) { toAccount = this.portfolioAccountReadPlatformService.retrieveOne(toAccountId, mostRelevantToAccountType, - fromAccount.currencyCode()); - mostRelevantToClientId = toAccount.clientId(); + fromAccount.getCurrencyCode()); + mostRelevantToClientId = toAccount.getClientId(); } if (mostRelevantToClientId != null) { toClient = this.clientReadPlatformService.retrieveOne(mostRelevantToClientId); - mostRelevantToOfficeId = toClient.officeId(); + mostRelevantToOfficeId = toClient.getOfficeId(); toClientOptions = this.clientReadPlatformService.retrieveAllForLookupByOfficeId(mostRelevantToOfficeId); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java index da2d4ab46..0f1c74682 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java @@ -162,12 +162,12 @@ public class StandingInstructionReadPlatformServiceImpl implements StandingInstr fromAccount = this.portfolioAccountReadPlatformService.retrieveOne(fromAccountId, accountType); // override provided fromClient with client of account - mostRelevantFromClientId = fromAccount.clientId(); + mostRelevantFromClientId = fromAccount.getClientId(); } if (mostRelevantFromClientId != null) { fromClient = this.clientReadPlatformService.retrieveOne(mostRelevantFromClientId); - mostRelevantFromOfficeId = fromClient.officeId(); + mostRelevantFromOfficeId = fromClient.getOfficeId(); long[] loanStatus = null; if (mostRelevantFromAccountType == 1) { loanStatus = new long[] { 300, 700 }; @@ -192,13 +192,13 @@ public class StandingInstructionReadPlatformServiceImpl implements StandingInstr if (toAccountId != null && fromAccount != null) { toAccount = this.portfolioAccountReadPlatformService.retrieveOne(toAccountId, mostRelevantToAccountType, - fromAccount.currencyCode()); - mostRelevantToClientId = toAccount.clientId(); + fromAccount.getCurrencyCode()); + mostRelevantToClientId = toAccount.getClientId(); } if (mostRelevantToClientId != null) { toClient = this.clientReadPlatformService.retrieveOne(mostRelevantToClientId); - mostRelevantToOfficeId = toClient.officeId(); + mostRelevantToOfficeId = toClient.getOfficeId(); toClientOptions = this.clientReadPlatformService.retrieveAllForLookupByOfficeId(mostRelevantToOfficeId); @@ -243,7 +243,7 @@ public class StandingInstructionReadPlatformServiceImpl implements StandingInstr private Collection retrieveToAccounts(final PortfolioAccountData excludeThisAccountFromOptions, final Integer toAccountType, final Long toClientId) { - final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.currencyCode() : null; + final String currencyCode = excludeThisAccountFromOptions != null ? excludeThisAccountFromOptions.getCurrencyCode() : null; PortfolioAccountDTO portfolioAccountDTO = new PortfolioAccountDTO(toAccountType, toClientId, currencyCode, null, null); Collection accountOptions = this.portfolioAccountReadPlatformService diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/LoanAccountSummaryData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/LoanAccountSummaryData.java index 3d24ef513..4ef5400f8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/LoanAccountSummaryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/LoanAccountSummaryData.java @@ -19,6 +19,8 @@ package org.apache.fineract.portfolio.accountdetails.data; import java.math.BigDecimal; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.portfolio.loanaccount.data.LoanApplicationTimelineData; import org.apache.fineract.portfolio.loanaccount.data.LoanStatusEnumData; @@ -26,7 +28,8 @@ import org.apache.fineract.portfolio.loanaccount.data.LoanStatusEnumData; /** * Immutable data object for loan accounts. */ -@SuppressWarnings("unused") +@Getter +@RequiredArgsConstructor public class LoanAccountSummaryData { private final Long id; @@ -66,24 +69,4 @@ public class LoanAccountSummaryData { this.amountPaid = amountPaid; } - public LoanAccountSummaryData(final Long id, final String accountNo, final String parentAccountNumber, final String externalId, - final Long productId, final String loanProductName, final String shortLoanProductName, final LoanStatusEnumData loanStatus, - final EnumOptionData loanType, final Integer loanCycle, final LoanApplicationTimelineData timeline, final Boolean inArrears, - final BigDecimal originalLoan, final BigDecimal loanBalance, final BigDecimal amountPaid) { - this.id = id; - this.accountNo = accountNo; - this.parentAccountNumber = parentAccountNumber; - this.externalId = externalId; - this.productId = productId; - this.productName = loanProductName; - this.shortProductName = shortLoanProductName; - this.status = loanStatus; - this.loanType = loanType; - this.loanCycle = loanCycle; - this.timeline = timeline; - this.inArrears = inArrears; - this.loanBalance = loanBalance; - this.originalLoan = originalLoan; - this.amountPaid = amountPaid; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/ShareAccountSummaryData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/ShareAccountSummaryData.java index b85dc97fa..49ec56260 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/ShareAccountSummaryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/ShareAccountSummaryData.java @@ -19,11 +19,12 @@ package org.apache.fineract.portfolio.accountdetails.data; import java.io.Serializable; +import lombok.Getter; import org.apache.fineract.organisation.monetary.data.CurrencyData; import org.apache.fineract.portfolio.shareaccounts.data.ShareAccountApplicationTimelineData; import org.apache.fineract.portfolio.shareaccounts.data.ShareAccountStatusEnumData; -@SuppressWarnings("unused") +@Getter public class ShareAccountSummaryData implements Serializable { private final Long id; @@ -62,8 +63,4 @@ public class ShareAccountSummaryData implements Serializable { this.timeline = timeline; } - public String getAccountNo() { - return this.accountNo; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java index 406df8355..e1295063a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java @@ -24,8 +24,8 @@ import java.time.LocalTime; import java.time.OffsetDateTime; import java.util.Collection; import java.util.List; -import java.util.Objects; -import org.apache.commons.collections4.CollectionUtils; +import lombok.EqualsAndHashCode; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType; import org.apache.fineract.portfolio.calendar.domain.CalendarRemindBy; @@ -38,6 +38,8 @@ import org.apache.fineract.portfolio.common.domain.NthDayType; /** * Immutable data object representing a Calendar. */ +@Getter +@EqualsAndHashCode public final class CalendarData implements Serializable { private final Long id; @@ -375,90 +377,6 @@ public final class CalendarData implements Serializable { this.frequencyNthDayTypeOptions = frequencyNthDayTypeOptions; } - public Long getId() { - return this.id; - } - - public Long getEntityId() { - return this.entityId; - } - - public EnumOptionData getEntityType() { - return this.entityType; - } - - public String getTitle() { - return this.title; - } - - public String getDescription() { - return this.description; - } - - public String getLocation() { - return this.location; - } - - public LocalDate getStartDate() { - return this.startDate; - } - - public LocalDate getEndDate() { - return this.endDate; - } - - public OffsetDateTime getCreatedDate() { - return this.createdDate; - } - - public Integer getDuration() { - return this.duration; - } - - public EnumOptionData getType() { - return this.type; - } - - public boolean isRepeating() { - return this.repeating; - } - - public String getRecurrence() { - return this.recurrence; - } - - public EnumOptionData getRemindBy() { - return this.remindBy; - } - - public Integer getFirstReminder() { - return this.firstReminder; - } - - public Integer getSecondReminder() { - return this.secondReminder; - } - - public List getEntityTypeOptions() { - return this.entityTypeOptions; - } - - public List getCalendarTypeOptions() { - return this.calendarTypeOptions; - } - - public List getRemindByOptions() { - return this.remindByOptions; - } - - public String getHumanReadable() { - return this.humanReadable; - } - - public Long getCalendarInstanceId() { - return this.calendarInstanceId; - } - public boolean isStartDateBeforeOrEqual(final LocalDate compareDate) { if (this.startDate != null && compareDate != null) { if (this.startDate.isBefore(compareDate) || this.startDate.equals(compareDate)) { @@ -493,66 +411,4 @@ public final class CalendarData implements Serializable { } return false; } - - public Integer interval() { - return this.interval; - } - - public EnumOptionData frequencyType() { - return this.frequency; - } - - public EnumOptionData getRepeatsOnDay() { - return this.repeatsOnDay; - } - - public EnumOptionData getRepeatsOnNthDayOfMonth() { - return this.repeatsOnNthDayOfMonth; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof CalendarData)) { - return false; - } - CalendarData that = (CalendarData) o; - return (repeating == that.repeating) && Objects.equals(id, that.id) && Objects.equals(calendarInstanceId, that.calendarInstanceId) - && Objects.equals(entityId, that.entityId) && Objects.equals(entityType, that.entityType) - && Objects.equals(title, that.title) && Objects.equals(description, that.description) - && Objects.equals(location, that.location) && Objects.equals(startDate, that.startDate) - && Objects.equals(endDate, that.endDate) && Objects.equals(meetingTime, that.meetingTime) - && Objects.equals(duration, that.duration) && Objects.equals(type, that.type) && Objects.equals(recurrence, that.recurrence) - && Objects.equals(frequency, that.frequency) && Objects.equals(interval, that.interval) - && Objects.equals(repeatsOnDay, that.repeatsOnDay) && Objects.equals(repeatsOnNthDayOfMonth, that.repeatsOnNthDayOfMonth) - && Objects.equals(remindBy, that.remindBy) && Objects.equals(firstReminder, that.firstReminder) - && Objects.equals(secondReminder, that.secondReminder) - && CollectionUtils.isEqualCollection(recurringDates, that.recurringDates) - && CollectionUtils.isEqualCollection(nextTenRecurringDates, that.nextTenRecurringDates) - && Objects.equals(humanReadable, that.humanReadable) - && Objects.equals(recentEligibleMeetingDate, that.recentEligibleMeetingDate) - && Objects.equals(createdDate, that.createdDate) && Objects.equals(lastUpdatedDate, that.lastUpdatedDate) - && Objects.equals(createdByUserId, that.createdByUserId) && Objects.equals(createdByUsername, that.createdByUsername) - && Objects.equals(lastUpdatedByUserId, that.lastUpdatedByUserId) - && Objects.equals(lastUpdatedByUsername, that.lastUpdatedByUsername) - && Objects.equals(repeatsOnDayOfMonth, that.repeatsOnDayOfMonth) - && Objects.equals(entityTypeOptions, that.entityTypeOptions) - && Objects.equals(calendarTypeOptions, that.calendarTypeOptions) && Objects.equals(remindByOptions, that.remindByOptions) - && Objects.equals(frequencyOptions, that.frequencyOptions) && Objects.equals(repeatsOnDayOptions, that.repeatsOnDayOptions) - && Objects.equals(frequencyNthDayTypeOptions, that.frequencyNthDayTypeOptions) && Objects.equals(rowIndex, that.rowIndex) - && Objects.equals(dateFormat, that.dateFormat) && Objects.equals(locale, that.locale) - && Objects.equals(centerId, that.centerId) && Objects.equals(typeId, that.typeId); - } - - @Override - public int hashCode() { - return Objects.hash(id, calendarInstanceId, entityId, entityType, title, description, location, startDate, endDate, meetingTime, - duration, type, repeating, recurrence, frequency, interval, repeatsOnDay, repeatsOnNthDayOfMonth, remindBy, firstReminder, - secondReminder, recurringDates, nextTenRecurringDates, humanReadable, recentEligibleMeetingDate, createdDate, - lastUpdatedDate, createdByUserId, createdByUsername, lastUpdatedByUserId, lastUpdatedByUsername, repeatsOnDayOfMonth, - entityTypeOptions, calendarTypeOptions, remindByOptions, frequencyOptions, repeatsOnDayOptions, frequencyNthDayTypeOptions, - rowIndex, dateFormat, locale, centerId, typeId); - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java index 6aef79bbd..2b36e0c9c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java @@ -25,6 +25,7 @@ import java.time.MonthDay; import java.util.Collection; import java.util.List; import java.util.Map; +import lombok.Getter; import org.apache.fineract.accounting.glaccount.data.GLAccountData; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.organisation.monetary.data.CurrencyData; @@ -38,6 +39,7 @@ import org.apache.fineract.portfolio.tax.data.TaxGroupData; /** * Immutable data object for charge data. */ +@Getter public final class ChargeData implements Comparable, Serializable { private final Long id; @@ -354,10 +356,6 @@ public final class ChargeData implements Comparable, Serializable { amountPercentageAppliedTo, chargeOptions, isActive, chargeAmountOrPercentage); } - public boolean isPenalty() { - return this.penalty; - } - public boolean isOverdueInstallmentCharge() { boolean isOverdueInstallmentCharge = false; if (this.chargeTimeType != null) { @@ -366,27 +364,7 @@ public final class ChargeData implements Comparable, Serializable { return isOverdueInstallmentCharge; } - public Long getId() { - return id; - } - - public String getName() { - return name; - } - - public EnumOptionData getChargeCalculationType() { - return chargeCalculationType; - } - - public EnumOptionData getChargeTimeType() { - return chargeTimeType; - } - - public BigDecimal getAmount() { - return this.amount; - } - - public CurrencyData getCurrency() { - return currency; + public boolean isIsPaymentType() { + return this.isPaymentType; } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java index 0838c4223..0ebde1c91 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientIdentifiersApiResource.java @@ -159,8 +159,8 @@ public class ClientIdentifiersApiResource { // need to fetch client info final ClientData clientInfo = this.clientReadPlatformService.retrieveClientByIdentifier(e.getDocumentTypeId(), e.getIdentifierKey()); - rethrowas = new DuplicateClientIdentifierException(clientInfo.displayName(), clientInfo.officeName(), e.getIdentifierType(), - e.getIdentifierKey()); + rethrowas = new DuplicateClientIdentifierException(clientInfo.getDisplayName(), clientInfo.getOfficeName(), + e.getIdentifierType(), e.getIdentifierKey()); } throw rethrowas; } @@ -216,8 +216,8 @@ public class ClientIdentifiersApiResource { if (e.getDocumentTypeId() != null) { final ClientData clientInfo = this.clientReadPlatformService.retrieveClientByIdentifier(e.getDocumentTypeId(), e.getIdentifierKey()); - reThrowAs = new DuplicateClientIdentifierException(clientInfo.displayName(), clientInfo.officeName(), e.getIdentifierType(), - e.getIdentifierKey()); + reThrowAs = new DuplicateClientIdentifierException(clientInfo.getDisplayName(), clientInfo.getOfficeName(), + e.getIdentifierType(), e.getIdentifierKey()); } throw reThrowAs; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java index 39b8b3e0f..04a7a9d05 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientsApiResource.java @@ -190,7 +190,7 @@ public class ClientsApiResource { ClientData clientData = this.clientReadPlatformService.retrieveOne(clientId); if (settings.isTemplate()) { - final ClientData templateData = this.clientReadPlatformService.retrieveTemplate(clientData.officeId(), + final ClientData templateData = this.clientReadPlatformService.retrieveTemplate(clientData.getOfficeId(), staffInSelectedOfficeOnly); clientData = ClientData.templateOnTop(clientData, templateData); Collection savingAccountOptions = this.savingsAccountReadPlatformService.retrieveForLookup(clientId, null); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientCollateralManagementData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientCollateralManagementData.java index 635325987..a6f51225f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientCollateralManagementData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientCollateralManagementData.java @@ -20,22 +20,18 @@ package org.apache.fineract.portfolio.client.data; import java.io.Serializable; import java.math.BigDecimal; +import lombok.Getter; import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement; +@Getter public final class ClientCollateralManagementData implements Serializable { private final BigDecimal quantity; - private final Long id; - private final BigDecimal pctToBase; - private final BigDecimal unitPrice; - private final BigDecimal total; - private final BigDecimal totalCollateral; - private final String name; private ClientCollateralManagementData(final BigDecimal quantity, final Long id, final BigDecimal pctToBase, final BigDecimal unitPrice, @@ -55,28 +51,4 @@ public final class ClientCollateralManagementData implements Serializable { clientCollateralManagements.getCollaterals().getPctToBase(), clientCollateralManagements.getCollaterals().getBasePrice(), total, totalCollateral, clientCollateralManagements.getCollaterals().getName()); } - - public BigDecimal getQuantity() { - return this.quantity; - } - - public BigDecimal getTotal() { - return this.total; - } - - public BigDecimal getPctToBase() { - return this.pctToBase; - } - - public BigDecimal getTotalCollateral() { - return this.totalCollateral; - } - - public BigDecimal getUnitPrice() { - return this.unitPrice; - } - - public Long getId() { - return this.id; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java index 1f55f94b3..054d65184 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientData.java @@ -23,6 +23,7 @@ import java.time.LocalDate; import java.util.Collection; import java.util.List; import java.util.Set; +import lombok.Getter; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.CompareToBuilder; import org.apache.commons.lang3.builder.EqualsBuilder; @@ -41,7 +42,7 @@ import org.apache.fineract.portfolio.savings.data.SavingsProductData; /** * Immutable data object representing client data. */ -@SuppressWarnings("unused") +@Getter public final class ClientData implements Comparable, Serializable { private final Long id; @@ -272,22 +273,6 @@ public final class ClientData implements Comparable, Serializable { this.clientCollateralManagements = null; } - public Integer getRowIndex() { - return rowIndex; - } - - public Long getSavingsAccountId() { - return savingsAccountId; - } - - public Long getId() { - return id; - } - - public String getOfficeName() { - return officeName; - } - public static ClientData template(final Long officeId, final LocalDate joinedDate, final Collection officeOptions, final Collection staffOptions, final Collection narrations, final Collection genderOptions, final Collection savingProductOptions, @@ -611,38 +596,6 @@ public final class ClientData implements Comparable, Serializable { this.clientCollateralManagements = clientCollateralManagements; } - public Long id() { - return this.id; - } - - public String displayName() { - return this.displayName; - } - - public String accountNo() { - return this.accountNo; - } - - public Long officeId() { - return this.officeId; - } - - public String officeName() { - return this.officeName; - } - - public Long getImageId() { - return this.imageId; - } - - public Boolean getImagePresent() { - return this.imagePresent; - } - - public ClientTimelineData getTimeline() { - return this.timeline; - } - @Override public int compareTo(final ClientData obj) { if (obj == null) { @@ -651,8 +604,6 @@ public final class ClientData implements Comparable, Serializable { return new CompareToBuilder() // .append(this.id, obj.id) // .append(this.displayName, obj.displayName) // - .append(this.mobileNo, obj.mobileNo) // - .append(this.emailAddress, obj.emailAddress) // .toComparison(); } @@ -671,8 +622,6 @@ public final class ClientData implements Comparable, Serializable { return new EqualsBuilder() // .append(this.id, rhs.id) // .append(this.displayName, rhs.displayName) // - .append(this.mobileNo, rhs.mobileNo) // - .append(this.emailAddress, rhs.emailAddress) // .isEquals(); } @@ -683,25 +632,4 @@ public final class ClientData implements Comparable, Serializable { .append(this.displayName) // .toHashCode(); } - - public String getExternalId() { - return this.externalId; - } - - public String getFirstname() { - return this.firstname; - } - - public String getLastname() { - return this.lastname; - } - - public LocalDate getActivationDate() { - return this.activationDate; - } - - public Boolean getIsAddressEnabled() { - return this.isAddressEnabled; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientTimelineData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientTimelineData.java index 9191bb65d..122e265c2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientTimelineData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/data/ClientTimelineData.java @@ -20,11 +20,13 @@ package org.apache.fineract.portfolio.client.data; import java.io.Serializable; import java.time.LocalDate; +import lombok.Getter; /** * Immutable data object represent the important time-line events of a loan application and loan. */ @SuppressWarnings("unused") +@Getter public class ClientTimelineData implements Serializable { private final LocalDate submittedOnDate; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/InterestRatePeriodData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/InterestRatePeriodData.java index 5e50ecdb4..fe14d8ca3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/InterestRatePeriodData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/data/InterestRatePeriodData.java @@ -20,7 +20,9 @@ package org.apache.fineract.portfolio.floatingrates.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +@Getter public class InterestRatePeriodData { private LocalDate fromDate; @@ -41,50 +43,26 @@ public class InterestRatePeriodData { this.blrInterestRate = blrInterestRate; } - public LocalDate getFromDate() { - return this.fromDate; - } - public void setFromDate(LocalDate fromDate) { this.fromDate = fromDate; } - public BigDecimal getInterestRate() { - return this.interestRate; - } - public boolean isDifferentialToBLR() { return this.isDifferentialToBLR; } - public LocalDate getBlrFromDate() { - return this.blrFromDate; - } - - public BigDecimal getBlrInterestRate() { - return this.blrInterestRate; - } - - public BigDecimal getLoanDifferentialInterestRate() { - return this.loanDifferentialInterestRate; + public boolean isIsDifferentialToBLR() { + return this.isDifferentialToBLR; } public void setLoanDifferentialInterestRate(BigDecimal loanDifferentialInterestRate) { this.loanDifferentialInterestRate = loanDifferentialInterestRate; } - public BigDecimal getLoanProductDifferentialInterestRate() { - return this.loanProductDifferentialInterestRate; - } - public void setLoanProductDifferentialInterestRate(BigDecimal loanProductDifferentialInterestRate) { this.loanProductDifferentialInterestRate = loanProductDifferentialInterestRate; } - public BigDecimal getEffectiveInterestRate() { - return this.effectiveInterestRate; - } - public void setEffectiveInterestRate(BigDecimal effectiveInterestRate) { this.effectiveInterestRate = effectiveInterestRate; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupGeneralData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupGeneralData.java index 65bed689c..6d12ced4e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupGeneralData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupGeneralData.java @@ -23,6 +23,7 @@ import java.time.LocalDate; import java.util.Collection; import java.util.List; import java.util.Objects; +import lombok.Getter; import org.apache.commons.collections4.CollectionUtils; import org.apache.fineract.infrastructure.codes.data.CodeValueData; import org.apache.fineract.infrastructure.core.data.EnumOptionData; @@ -35,18 +36,16 @@ import org.apache.fineract.portfolio.client.data.ClientData; /** * Immutable data object representing a general group (so may or may not have a parent). */ +@Getter public class GroupGeneralData implements Serializable { private final Long id; private final String accountNo; private final String name; private final String externalId; - private final EnumOptionData status; - @SuppressWarnings("unused") private final Boolean active; private final LocalDate activationDate; - private final Long officeId; private final String officeName; private final Long centerId; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupRoleData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupRoleData.java index c81789ecb..4ea41d4d5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupRoleData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/data/GroupRoleData.java @@ -19,46 +19,22 @@ package org.apache.fineract.portfolio.group.data; import java.io.Serializable; -import java.util.Objects; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; import org.apache.fineract.infrastructure.codes.data.CodeValueData; +@Getter +@EqualsAndHashCode +@AllArgsConstructor public class GroupRoleData implements Serializable { - @SuppressWarnings("unused") private final Long id; - @SuppressWarnings("unused") private final CodeValueData role; - @SuppressWarnings("unused") private final Long clientId; - @SuppressWarnings("unused") private final String clientName; public static final GroupRoleData template() { return new GroupRoleData(null, null, null, null); } - - public GroupRoleData(final Long id, final CodeValueData role, final Long clientId, final String clientName) { - this.id = id; - this.role = role; - this.clientId = clientId; - this.clientName = clientName; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof GroupRoleData)) { - return false; - } - GroupRoleData that = (GroupRoleData) o; - return Objects.equals(id, that.id) && Objects.equals(role, that.role) && Objects.equals(clientId, that.clientId) - && Objects.equals(clientName, that.clientName); - } - - @Override - public int hashCode() { - return Objects.hash(id, role, clientId, clientName); - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java index 2a952f657..b37458424 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/LoansApiResource.java @@ -378,13 +378,13 @@ public class LoansApiResource { : LoanAccountData.populateGroupDefaults(newLoanAccount, loanAccountGroupData); if (productId != null) { Map memberLoanCycle = new HashMap<>(); - Collection members = loanAccountGroupData.groupData().clientMembers(); + Collection members = loanAccountGroupData.getGroup().clientMembers(); accountLinkingOptions = new ArrayList<>(); if (members != null) { for (ClientData clientData : members) { - Integer loanCounter = this.loanReadPlatformService.retriveLoanCounter(clientData.id(), productId); - memberLoanCycle.put(clientData.id(), loanCounter); - accountLinkingOptions.addAll(getaccountLinkingOptions(newLoanAccount, clientData.id(), groupId)); + Integer loanCounter = this.loanReadPlatformService.retriveLoanCounter(clientData.getId(), productId); + memberLoanCycle.put(clientData.getId(), loanCounter); + accountLinkingOptions.addAll(getaccountLinkingOptions(newLoanAccount, clientData.getId(), groupId)); } } @@ -417,10 +417,10 @@ public class LoansApiResource { private Collection getaccountLinkingOptions(final LoanAccountData newLoanAccount, final Long clientId, final Long groupId) { - final CurrencyData currencyData = newLoanAccount.currency(); + final CurrencyData currencyData = newLoanAccount.getCurrency(); String currencyCode = null; if (currencyData != null) { - currencyCode = currencyData.code(); + currencyCode = currencyData.getCode(); } final long[] accountStatus = { SavingsAccountStatusType.ACTIVE.getValue() }; final PortfolioAccountDTO portfolioAccountDTO = new PortfolioAccountDTO(PortfolioAccountType.SAVINGS.getValue(), clientId, @@ -630,7 +630,7 @@ public class LoansApiResource { final boolean template = ApiParameterHelper.template(uriInfo.getQueryParameters()); if (template) { productOptions = this.loanProductReadPlatformService.retrieveAllLoanProductsForLookup(); - product = this.loanProductReadPlatformService.retrieveLoanProduct(loanBasicDetails.loanProductId()); + product = this.loanProductReadPlatformService.retrieveLoanProduct(loanBasicDetails.getLoanProductId()); loanBasicDetails.setProduct(product); loanTermFrequencyTypeOptions = this.dropdownReadPlatformService.retrieveLoanTermFrequencyTypeOptions(); repaymentFrequencyTypeOptions = this.dropdownReadPlatformService.retrieveRepaymentFrequencyTypeOptions(); @@ -662,14 +662,14 @@ public class LoansApiResource { loanPurposeOptions = this.codeValueReadPlatformService.retrieveCodeValuesByCode("LoanPurpose"); loanCollateralOptions = this.codeValueReadPlatformService.retrieveCodeValuesByCode("LoanCollateral"); - final CurrencyData currencyData = loanBasicDetails.currency(); + final CurrencyData currencyData = loanBasicDetails.getCurrency(); String currencyCode = null; if (currencyData != null) { - currencyCode = currencyData.code(); + currencyCode = currencyData.getCode(); } final long[] accountStatus = { SavingsAccountStatusType.ACTIVE.getValue() }; PortfolioAccountDTO portfolioAccountDTO = new PortfolioAccountDTO(PortfolioAccountType.SAVINGS.getValue(), - loanBasicDetails.clientId(), currencyCode, accountStatus, DepositAccountType.SAVINGS_DEPOSIT.getValue()); + loanBasicDetails.getClientId(), currencyCode, accountStatus, DepositAccountType.SAVINGS_DEPOSIT.getValue()); accountLinkingOptions = this.portfolioAccountReadPlatformService.retrieveAllForLookup(portfolioAccountDTO); if (!associationParameters.contains(DataTableApiConstant.linkedAccountAssociateParamName)) { @@ -680,15 +680,15 @@ public class LoansApiResource { calendarOptions = this.loanReadPlatformService.retrieveCalendars(loanBasicDetails.groupId()); } - if (loanBasicDetails.product().canUseForTopup() && loanBasicDetails.clientId() != null) { + if (loanBasicDetails.getProduct().isCanUseForTopup() && loanBasicDetails.getClientId() != null) { clientActiveLoanOptions = this.accountDetailsReadPlatformService - .retrieveClientActiveLoanAccountSummary(loanBasicDetails.clientId()); + .retrieveClientActiveLoanAccountSummary(loanBasicDetails.getClientId()); } } - Collection overdueCharges = this.chargeReadPlatformService.retrieveLoanProductCharges(loanBasicDetails.loanProductId(), - ChargeTimeType.OVERDUE_INSTALLMENT); + Collection overdueCharges = this.chargeReadPlatformService + .retrieveLoanProductCharges(loanBasicDetails.getLoanProductId(), ChargeTimeType.OVERDUE_INSTALLMENT); paidInAdvanceTemplate = this.loanReadPlatformService.retrieveTotalPaidInAdvance(loanId); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/DisbursementData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/DisbursementData.java index 6cea5e44f..8e66b973e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/DisbursementData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/DisbursementData.java @@ -20,19 +20,21 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * Immutable data object representing disbursement information. */ -public class DisbursementData implements Comparable { +@RequiredArgsConstructor +@Getter +public final class DisbursementData implements Comparable { - @SuppressWarnings("unused") private final Long id; private final LocalDate expectedDisbursementDate; private final LocalDate actualDisbursementDate; private final BigDecimal principal; private final BigDecimal netDisbursalAmount; - @SuppressWarnings("unused") private final String loanChargeId; private final BigDecimal chargeAmount; private final BigDecimal waivedChargeAmount; @@ -66,23 +68,6 @@ public class DisbursementData implements Comparable { } - public String getLinkAccountId() { - return linkAccountId; - } - - public DisbursementData(Long id, final LocalDate expectedDisbursementDate, final LocalDate actualDisbursementDate, - final BigDecimal principalDisbursed, final BigDecimal netDisbursalAmount, final String loanChargeId, BigDecimal chargeAmount, - BigDecimal waivedChargeAmount) { - this.id = id; - this.expectedDisbursementDate = expectedDisbursementDate; - this.actualDisbursementDate = actualDisbursementDate; - this.principal = principalDisbursed; - this.loanChargeId = loanChargeId; - this.chargeAmount = chargeAmount; - this.waivedChargeAmount = waivedChargeAmount; - this.netDisbursalAmount = netDisbursalAmount; - } - public LocalDate disbursementDate() { LocalDate disbursementDate = this.expectedDisbursementDate; if (this.actualDisbursementDate != null) { @@ -91,14 +76,6 @@ public class DisbursementData implements Comparable { return disbursementDate; } - public BigDecimal amount() { - return this.principal; - } - - public BigDecimal getChargeAmount() { - return this.chargeAmount; - } - public boolean isDisbursed() { return this.actualDisbursementDate != null; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanAccountData.java index 38a8eafe3..79cc3e1b6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanAccountData.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import javax.persistence.Transient; +import lombok.Getter; import org.apache.fineract.infrastructure.codes.data.CodeValueData; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.infrastructure.dataqueries.data.DatatableData; @@ -57,7 +58,7 @@ import org.springframework.util.CollectionUtils; /** * Immutable data object representing loan account data. */ -@SuppressWarnings("unused") +@Getter public final class LoanAccountData { // basic loan details @@ -113,7 +114,7 @@ public final class LoanAccountData { private final EnumOptionData amortizationType; private final EnumOptionData interestType; private final EnumOptionData interestCalculationPeriodType; - private final Boolean allowPartialPeriodInterestCalcualtion; + private final Boolean allowPartialPeriodInterestCalculation; private final BigDecimal inArrearsTolerance; private final Long transactionProcessingStrategyId; private final String transactionProcessingStrategyName; @@ -355,7 +356,7 @@ public final class LoanAccountData { this.isFloatingInterestRate = false; this.interestRateDifferential = null; - this.allowPartialPeriodInterestCalcualtion = null; + this.allowPartialPeriodInterestCalculation = null; this.transactionProcessingStrategyName = null; @@ -431,34 +432,6 @@ public final class LoanAccountData { this.delinquencyRange = null; } - public Integer getRowIndex() { - return rowIndex; - } - - public Long getClientId() { - return clientId; - } - - public String getClientName() { - return clientName; - } - - public BigDecimal getPrincipal() { - return principal; - } - - public LoanApplicationTimelineData getTimeline() { - return timeline; - } - - public String getAccountNo() { - return accountNo; - } - - public String getLoanProductName() { - return loanProductName; - } - public static final Comparator ClientNameComparator = new Comparator() { @Override @@ -469,10 +442,6 @@ public final class LoanAccountData { } }; - public String getClientAccountNo() { - return clientAccountNo; - } - /** * Used to produce a {@link LoanAccountData} with only collateral options for now. */ @@ -778,7 +747,7 @@ public final class LoanAccountData { acc.repaymentFrequencyNthDayType, acc.repaymentFrequencyDayOfWeekType, acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, acc.interestRateDifferential, - acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, acc.expectedFirstRepaymentOnDate, + acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, clientAcc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, acc.repaymentSchedule, acc.transactions, acc.charges, acc.collateral, acc.guarantors, @@ -957,7 +926,7 @@ public final class LoanAccountData { acc.repaymentEvery, acc.repaymentFrequencyType, acc.repaymentFrequencyNthDayType, acc.repaymentFrequencyDayOfWeekType, acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, - acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, + acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, groupAcc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, acc.repaymentSchedule, acc.transactions, acc.charges, acc.collateral, acc.guarantors, @@ -1060,7 +1029,7 @@ public final class LoanAccountData { BigDecimal interestRatePerPeriod = null; Integer numberOfRepayments = null; - if (product.useBorrowerCycle() && loanCycleNumber > 0) { + if (product.isUseBorrowerCycle() && loanCycleNumber > 0) { Collection principalVariationsForBorrowerCycle = product .getPrincipalVariationsForBorrowerCycle(); Collection interestForVariationsForBorrowerCycle = product @@ -1108,7 +1077,7 @@ public final class LoanAccountData { final Boolean isVariableInstallmentsAllowed = Boolean.FALSE; final Integer minimumGap = null; final Integer maximumGap = null; - final Boolean canUseForTopup = product.canUseForTopup(); + final Boolean canUseForTopup = product.isCanUseForTopup(); final boolean isTopup = false; final Long closureLoanId = null; final String closureLoanAccountNo = null; @@ -1127,8 +1096,8 @@ public final class LoanAccountData { transactionProcessingStrategyName, product.getAmortizationType(), interestRatePerPeriod, product.getInterestRateFrequencyType(), product.getAnnualInterestRate(), product.getInterestType(), product.isFloatingInterestRateCalculationAllowed(), product.getDefaultDifferentialLendingRate(), - product.getInterestCalculationPeriodType(), product.getAllowPartialPeriodInterestCalcualtion(), - expectedFirstRepaymentOnDate, product.getGraceOnPrincipalPayment(), product.getRecurringMoratoriumOnPrincipalPeriods(), + product.getInterestCalculationPeriodType(), product.isAllowPartialPeriodInterestCalculation(), expectedFirstRepaymentOnDate, + product.getGraceOnPrincipalPayment(), product.getRecurringMoratoriumOnPrincipalPeriods(), product.getGraceOnInterestPayment(), product.getGraceOnInterestCharged(), interestChargedFromDate, timeline, summary, feeChargesDueAtDisbursementCharged, repaymentSchedule, transactions, charges, collateral, guarantors, calendarData, productOptions, termFrequencyTypeOptions, repaymentFrequencyTypeOptions, repaymentFrequencyNthDayTypeOptions, @@ -1136,14 +1105,14 @@ public final class LoanAccountData { interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions, chargeTemplate, loanOfficerOptions, loanPurposeOptions, loanCollateralOptions, calendarOptions, syncDisbursementWithMeeting, loancounter, loanProductCounter, notes, accountLinkingOptions, linkedAccount, disbursementData, product.getMultiDisburseLoan(), - product.canDefineInstallmentAmount(), fixedEmi, product.getOutstandingLoanBalance(), emiAmountVariations, memberVariations, - product, inArrears, product.getGraceOnArrearsAgeing(), product.overdueFeeCharges(), isNPA, product.getDaysInMonthType(), - product.getDaysInYearType(), product.isInterestRecalculationEnabled(), product.toLoanInterestRecalculationData(), - originalSchedule, createStandingInstructionAtDisbursement, paidInAdvance, interestRatesPeriods, - product.isVariableInstallmentsAllowed(), product.getMinimumGapBetweenInstallments(), - product.getMaximumGapBetweenInstallments(), subStatus, canUseForTopup, clientActiveLoanOptions, isTopup, closureLoanId, - closureLoanAccountNo, topupAmount, product.isEqualAmortization(), rates, isRatesEnabled, - product.getFixedPrincipalPercentagePerInstallment(), delinquent, delinquencyRange); + product.isCanDefineInstallmentAmount(), fixedEmi, product.getOutstandingLoanBalance(), emiAmountVariations, + memberVariations, product, inArrears, product.getGraceOnArrearsAgeing(), product.overdueFeeCharges(), isNPA, + product.getDaysInMonthType(), product.getDaysInYearType(), product.isInterestRecalculationEnabled(), + product.toLoanInterestRecalculationData(), originalSchedule, createStandingInstructionAtDisbursement, paidInAdvance, + interestRatesPeriods, product.isAllowVariableInstallments(), product.getMinimumGap(), product.getMaximumGap(), subStatus, + canUseForTopup, clientActiveLoanOptions, isTopup, closureLoanId, closureLoanAccountNo, topupAmount, + product.isEqualAmortization(), rates, isRatesEnabled, product.getFixedPrincipalPercentagePerInstallment(), delinquent, + delinquencyRange); } public static LoanAccountData populateLoanProductDefaults(final LoanAccountData acc, final LoanProductData product) { @@ -1198,7 +1167,7 @@ public final class LoanAccountData { product.getTransactionProcessingStrategyName(), product.getAmortizationType(), product.getInterestRatePerPeriod(), product.getInterestRateFrequencyType(), product.getAnnualInterestRate(), product.getInterestType(), product.isFloatingInterestRateCalculationAllowed(), product.getDefaultDifferentialLendingRate(), - product.getInterestCalculationPeriodType(), product.getAllowPartialPeriodInterestCalcualtion(), + product.getInterestCalculationPeriodType(), product.isAllowPartialPeriodInterestCalculation(), acc.expectedFirstRepaymentOnDate, product.getGraceOnPrincipalPayment(), product.getRecurringMoratoriumOnPrincipalPeriods(), product.getGraceOnInterestPayment(), product.getGraceOnInterestCharged(), acc.interestChargedFromDate, acc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, repaymentSchedule, transactions, charges, collateral, guarantors, @@ -1206,15 +1175,15 @@ public final class LoanAccountData { interestRateFrequencyTypeOptions, amortizationTypeOptions, interestTypeOptions, interestCalculationPeriodTypeOptions, fundOptions, chargeOptions, chargeTemplate, loanOfficerOptions, loanPurposeOptions, loanCollateralOptions, calendarOptions, acc.syncDisbursementWithMeeting, acc.loanCounter, acc.loanProductCounter, notes, acc.accountLinkingOptions, - acc.linkedAccount, acc.disbursementDetails, product.getMultiDisburseLoan(), product.canDefineInstallmentAmount(), + acc.linkedAccount, acc.disbursementDetails, product.getMultiDisburseLoan(), product.isCanDefineInstallmentAmount(), acc.fixedEmiAmount, product.getOutstandingLoanBalance(), acc.emiAmountVariations, acc.memberVariations, product, acc.inArrears, product.getGraceOnArrearsAgeing(), product.overdueFeeCharges(), acc.isNPA, product.getDaysInMonthType(), product.getDaysInYearType(), product.isInterestRecalculationEnabled(), product.toLoanInterestRecalculationData(), acc.originalSchedule, acc.createStandingInstructionAtDisbursement, paidInAdvance, acc.interestRatesPeriods, - product.isVariableInstallmentsAllowed(), product.getMinimumGapBetweenInstallments(), - product.getMaximumGapBetweenInstallments(), acc.subStatus, acc.canUseForTopup, acc.clientActiveLoanOptions, acc.isTopup, - acc.closureLoanId, acc.closureLoanAccountNo, acc.topupAmount, product.isEqualAmortization(), acc.rates, acc.isRatesEnabled, - product.getFixedPrincipalPercentagePerInstallment(), delinquent, delinquencyRange); + product.isAllowVariableInstallments(), product.getMinimumGap(), product.getMaximumGap(), acc.subStatus, acc.canUseForTopup, + acc.clientActiveLoanOptions, acc.isTopup, acc.closureLoanId, acc.closureLoanAccountNo, acc.topupAmount, + product.isEqualAmortization(), acc.rates, acc.isRatesEnabled, product.getFixedPrincipalPercentagePerInstallment(), + delinquent, delinquencyRange); } /* @@ -1333,7 +1302,7 @@ public final class LoanAccountData { final CollectionData delinquent) { LoanProductConfigurableAttributes loanProductConfigurableAttributes = null; if (acc.product != null) { - loanProductConfigurableAttributes = acc.product.getLoanProductConfigurableAttributes(); + loanProductConfigurableAttributes = acc.product.getAllowAttributeOverrides(); } return new LoanAccountData(acc.id, acc.accountNo, acc.status, acc.externalId, acc.clientId, acc.clientAccountNo, acc.clientName, @@ -1344,7 +1313,7 @@ public final class LoanAccountData { acc.repaymentEvery, acc.repaymentFrequencyType, acc.repaymentFrequencyNthDayType, acc.repaymentFrequencyDayOfWeekType, acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, - acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, + acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, acc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, repaymentSchedule, transactions, charges, collateral, guarantors, calendarData, @@ -1386,7 +1355,7 @@ public final class LoanAccountData { acc.repaymentEvery, acc.repaymentFrequencyType, acc.repaymentFrequencyNthDayType, acc.repaymentFrequencyDayOfWeekType, acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, - acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, + acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, acc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, acc.repaymentSchedule, acc.transactions, acc.charges, acc.collateral, acc.guarantors, @@ -1415,7 +1384,7 @@ public final class LoanAccountData { Integer numberOfRepayments = null; Long clientId = mapEntry.getKey(); Integer loanCycleNumber = mapEntry.getValue(); - if (acc.product.useBorrowerCycle() && loanCycleNumber != null && loanCycleNumber > 0) { + if (acc.product.isUseBorrowerCycle() && loanCycleNumber != null && loanCycleNumber > 0) { Collection principalVariationsForBorrowerCycle = acc.product .getPrincipalVariationsForBorrowerCycle(); Collection interestForVariationsForBorrowerCycle = acc.product @@ -1452,7 +1421,7 @@ public final class LoanAccountData { acc.repaymentEvery, acc.repaymentFrequencyType, acc.repaymentFrequencyNthDayType, acc.repaymentFrequencyDayOfWeekType, acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, - acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, + acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, acc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, acc.repaymentSchedule, acc.transactions, acc.charges, acc.collateral, acc.guarantors, @@ -1486,7 +1455,7 @@ public final class LoanAccountData { acc.repaymentEvery, acc.repaymentFrequencyType, acc.repaymentFrequencyNthDayType, acc.repaymentFrequencyDayOfWeekType, acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, - acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, + acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, acc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, acc.repaymentSchedule, acc.transactions, acc.charges, acc.collateral, acc.guarantors, @@ -1515,7 +1484,7 @@ public final class LoanAccountData { acc.repaymentEvery, acc.repaymentFrequencyType, calendarData.getRepeatsOnNthDayOfMonth(), calendarData.getRepeatsOnDay(), acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, - acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, + acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, acc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, acc.repaymentSchedule, acc.transactions, acc.charges, acc.collateral, acc.guarantors, @@ -1545,7 +1514,7 @@ public final class LoanAccountData { acc.repaymentEvery, acc.repaymentFrequencyType, acc.repaymentFrequencyNthDayType, acc.repaymentFrequencyDayOfWeekType, acc.transactionProcessingStrategyId, acc.transactionProcessingStrategyName, acc.amortizationType, acc.interestRatePerPeriod, acc.interestRateFrequencyType, acc.annualInterestRate, acc.interestType, acc.isFloatingInterestRate, - acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalcualtion, + acc.interestRateDifferential, acc.interestCalculationPeriodType, acc.allowPartialPeriodInterestCalculation, acc.expectedFirstRepaymentOnDate, acc.graceOnPrincipalPayment, acc.recurringMoratoriumOnPrincipalPeriods, acc.graceOnInterestPayment, acc.graceOnInterestCharged, acc.interestChargedFromDate, acc.timeline, acc.summary, acc.feeChargesAtDisbursementCharged, acc.repaymentSchedule, acc.transactions, acc.charges, acc.collateral, acc.guarantors, @@ -1585,7 +1554,7 @@ public final class LoanAccountData { final EnumOptionData amortizationType, final BigDecimal interestRatePerPeriod, final EnumOptionData interestRateFrequencyType, final BigDecimal annualInterestRate, final EnumOptionData interestType, final boolean isFloatingInterestRate, final BigDecimal interestRateDifferential, final EnumOptionData interestCalculationPeriodType, - final Boolean allowPartialPeriodInterestCalcualtion, final LocalDate expectedFirstRepaymentOnDate, + final Boolean allowPartialPeriodInterestCalculation, final LocalDate expectedFirstRepaymentOnDate, final Integer graceOnPrincipalPayment, final Integer recurringMoratoriumOnPrincipalPeriods, final Integer graceOnInterestPayment, final Integer graceOnInterestCharged, final LocalDate interestChargedFromDate, final LoanApplicationTimelineData timeline, final LoanSummaryData summary, final BigDecimal feeChargesDueAtDisbursementCharged, @@ -1663,7 +1632,7 @@ public final class LoanAccountData { this.isFloatingInterestRate = isFloatingInterestRate; this.interestRateDifferential = interestRateDifferential; this.interestCalculationPeriodType = interestCalculationPeriodType; - this.allowPartialPeriodInterestCalcualtion = allowPartialPeriodInterestCalcualtion; + this.allowPartialPeriodInterestCalculation = allowPartialPeriodInterestCalculation; this.expectedFirstRepaymentOnDate = expectedFirstRepaymentOnDate; this.graceOnPrincipalPayment = graceOnPrincipalPayment; this.recurringMoratoriumOnPrincipalPeriods = recurringMoratoriumOnPrincipalPeriods; @@ -1759,7 +1728,7 @@ public final class LoanAccountData { this.fixedEmiAmount = fixedEmiAmount; this.maxOutstandingLoanBalance = maxOutstandingLoanBalance; - if (this.status != null && LoanStatus.fromInt(this.status.id().intValue()).isApproved()) { + if (this.status != null && LoanStatus.fromInt(this.status.getId().intValue()).isApproved()) { this.canDisburse = true; } else { boolean canDisburse = false; @@ -1788,7 +1757,7 @@ public final class LoanAccountData { this.createStandingInstructionAtDisbursement = createStandingInstructionAtDisbursement; this.paidInAdvance = paidInAdvance; if (this.product != null) { - this.product.setLoanProductConfigurableAttributes(product.getLoanProductConfigurableAttributes()); + this.product.setLoanProductConfigurableAttributes(product.getAllowAttributeOverrides()); } this.interestRatesPeriods = interestRatesPeriods; this.isVariableInstallmentsAllowed = isVariableInstallmentsAllowed; @@ -1820,14 +1789,6 @@ public final class LoanAccountData { return officeId; } - public Long loanOfficerId() { - return this.loanOfficerId; - } - - public Collection charges() { - return this.charges; - } - public Long groupOfficeId() { return this.group == null ? null : this.group.officeId(); } @@ -1836,14 +1797,6 @@ public final class LoanAccountData { return this.group == null ? null : this.group.getId(); } - public CurrencyData currency() { - return this.currency; - } - - public Long clientId() { - return this.clientId; - } - private static BigDecimal fetchLoanCycleDefaultValue(Collection borrowerCycleVariationData, Integer loanCycleNumber) { BigDecimal defaultValue = null; @@ -1862,31 +1815,19 @@ public final class LoanAccountData { private static boolean isLoanCycleValuesWhenConditionGreterthan(Integer loanCycleNumber, Integer cycleNumberSelected, LoanProductBorrowerCycleVariationData data) { return data.getBorrowerCycleNumber() < loanCycleNumber - && data.getValueConditionType().equals(LoanProductValueConditionType.GREATERTHAN) + && data.getLoanProductValueConditionType().equals(LoanProductValueConditionType.GREATERTHAN) && cycleNumberSelected < data.getBorrowerCycleNumber(); } private static boolean isLoanCycleValuesWhenConditionEqual(Integer loanCycleNumber, LoanProductBorrowerCycleVariationData data) { return data.getBorrowerCycleNumber().equals(loanCycleNumber) - && data.getValueConditionType().equals(LoanProductValueConditionType.EQUAL); - } - - public LoanProductData product() { - return this.product; + && data.getLoanProductValueConditionType().equals(LoanProductValueConditionType.EQUAL); } public void setProduct(LoanProductData product) { this.product = product; } - public GroupGeneralData groupData() { - return this.group; - } - - public Long loanProductId() { - return this.loanProductId; - } - public BigDecimal getTotalOutstandingAmount() { if (this.summary != null) { return this.summary.getTotalOutstanding(); @@ -1895,28 +1836,28 @@ public final class LoanAccountData { } } + public boolean isIsInterestRecalculationEnabled() { + return this.isInterestRecalculationEnabled; + } + public boolean isInterestRecalculationEnabled() { return this.isInterestRecalculationEnabled; } public Long getInterestRecalculationDetailId() { - if (isInterestRecalculationEnabled()) { + if (isInterestRecalculationEnabled) { return this.interestRecalculationData.getId(); } return null; } public boolean isActive() { - return LoanStatus.fromInt(this.status.id().intValue()).isActive(); - } - - public boolean isMultiDisburseLoan() { - return multiDisburseLoan; + return LoanStatus.fromInt(this.status.getId().intValue()).isActive(); } public BigDecimal getTotalPaidFeeCharges() { if (this.summary != null) { - return this.summary.getTotalPaidFeeCharges(); + return this.summary.getFeeChargesPaid(); } return BigDecimal.ZERO; } @@ -1936,6 +1877,10 @@ public final class LoanAccountData { return LoanAccountData.collateralTemplate(loanCollateralOptions); } + public boolean isIsLoanProductLinkedToFloatingRate() { + return this.isLoanProductLinkedToFloatingRate; + } + public boolean isLoanProductLinkedToFloatingRate() { return this.isLoanProductLinkedToFloatingRate; } @@ -1948,12 +1893,8 @@ public final class LoanAccountData { return this.isFloatingInterestRate; } - public BigDecimal getInterestRateDifferential() { - return this.interestRateDifferential; - } - - public BigDecimal getNetDisbursalAmount() { - return netDisbursalAmount; + public boolean isIsFloatingInterestRate() { + return this.isFloatingInterestRate; } public void setDatatables(final List datatables) { @@ -1961,7 +1902,14 @@ public final class LoanAccountData { } public String getStatusStringValue() { - return this.status.value(); + return this.status.getValue(); } + public boolean isTopup() { + return isTopup; + } + + public boolean isIsTopup() { + return isTopup; + } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanApplicationTimelineData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanApplicationTimelineData.java index e10a329d5..750d10e5e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanApplicationTimelineData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanApplicationTimelineData.java @@ -20,12 +20,15 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.apache.fineract.organisation.monetary.data.CurrencyData; /** * Immutable data object represent the important time-line events of a loan application and loan. */ -@SuppressWarnings("unused") +@Getter +@RequiredArgsConstructor public class LoanApplicationTimelineData { private final LocalDate submittedOnDate; @@ -99,48 +102,6 @@ public class LoanApplicationTimelineData { writeOffByUsername, writeOffByFirstname, writeOffByLastname); } - public LoanApplicationTimelineData(final LocalDate submittedOnDate, final String submittedByUsername, final String submittedByFirstname, - final String submittedByLastname, final LocalDate rejectedOnDate, final String rejectedByUsername, - final String rejectedByFirstname, final String rejectedByLastname, final LocalDate withdrawnOnDate, - final String withdrawnByUsername, final String withdrawnByFirstname, final String withdrawnByLastname, - final LocalDate approvedOnDate, final String approvedByUsername, final String approvedByFirstname, - final String approvedByLastname, final LocalDate expectedDisbursementDate, final LocalDate actualDisbursementDate, - final String disbursedByUsername, final String disbursedByFirstname, final String disbursedByLastname, - final LocalDate closedOnDate, final String closedByUsername, final String closedByFirstname, final String closedByLastname, - final LocalDate expectedMaturityDate, final LocalDate writeOffOnDate, final String writeOffByUsername, - final String writeOffByFirstname, final String writeOffByLastname) { - this.submittedOnDate = submittedOnDate; - this.submittedByUsername = submittedByUsername; - this.submittedByFirstname = submittedByFirstname; - this.submittedByLastname = submittedByLastname; - this.rejectedOnDate = rejectedOnDate; - this.rejectedByUsername = rejectedByUsername; - this.rejectedByFirstname = rejectedByFirstname; - this.rejectedByLastname = rejectedByLastname; - this.withdrawnOnDate = withdrawnOnDate; - this.withdrawnByUsername = withdrawnByUsername; - this.withdrawnByFirstname = withdrawnByFirstname; - this.withdrawnByLastname = withdrawnByLastname; - this.approvedOnDate = approvedOnDate; - this.approvedByUsername = approvedByUsername; - this.approvedByFirstname = approvedByFirstname; - this.approvedByLastname = approvedByLastname; - this.expectedDisbursementDate = expectedDisbursementDate; - this.actualDisbursementDate = actualDisbursementDate; - this.disbursedByUsername = disbursedByUsername; - this.disbursedByFirstname = disbursedByFirstname; - this.disbursedByLastname = disbursedByLastname; - this.closedOnDate = closedOnDate; - this.closedByUsername = closedByUsername; - this.closedByFirstname = closedByFirstname; - this.closedByLastname = closedByLastname; - this.expectedMaturityDate = expectedMaturityDate; - this.writeOffOnDate = writeOffOnDate; - this.writeOffByUsername = writeOffByUsername; - this.writeOffByFirstname = writeOffByFirstname; - this.writeOffByLastname = writeOffByLastname; - } - public RepaymentScheduleRelatedLoanData repaymentScheduleRelatedData(final CurrencyData currency, final BigDecimal principal, final BigDecimal approvedPrincipal, final BigDecimal inArrearsTolerance, final BigDecimal totalFeeChargesAtDisbursement) { return new RepaymentScheduleRelatedLoanData(this.expectedDisbursementDate, this.actualDisbursementDate, currency, principal, diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanBorrowerCycleData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanBorrowerCycleData.java index 7a19af49d..508a463da 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanBorrowerCycleData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanBorrowerCycleData.java @@ -19,24 +19,15 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +@RequiredArgsConstructor +@Getter public class LoanBorrowerCycleData { - @SuppressWarnings("unused") private final BigDecimal principal; - @SuppressWarnings("unused") private final BigDecimal interestRatePerPeriod; - @SuppressWarnings("unused") private final Integer numberOfRepayments; - @SuppressWarnings("unused") private final Integer termFrequency; - - public LoanBorrowerCycleData(final BigDecimal principal, final BigDecimal interestRatePerPeriod, final Integer numberOfRepayments, - final Integer termFrequency) { - - this.principal = principal; - this.interestRatePerPeriod = interestRatePerPeriod; - this.numberOfRepayments = numberOfRepayments; - this.termFrequency = termFrequency; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargeData.java index 090f256ec..68cd919b6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargeData.java @@ -21,6 +21,7 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Collection; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.organisation.monetary.data.CurrencyData; import org.apache.fineract.portfolio.charge.data.ChargeData; @@ -30,6 +31,7 @@ import org.apache.fineract.portfolio.charge.domain.ChargeTimeType; /** * Immutable data object for loan charge data. */ +@Getter public class LoanChargeData { private final Long id; @@ -381,22 +383,6 @@ public class LoanChargeData { return isAccountTransfer && !this.paid && !this.waived; } - public Long getId() { - return this.id; - } - - public LocalDate getDueDate() { - return this.dueDate; - } - - public Long getLoanId() { - return this.loanId; - } - - public BigDecimal getAmountOutstanding() { - return this.amountOutstanding; - } - public boolean isInstallmentFee() { boolean isInstalmentFee = false; if (this.chargeTimeType != null) { @@ -405,48 +391,7 @@ public class LoanChargeData { return isInstalmentFee; } - public EnumOptionData getChargeCalculationType() { - return chargeCalculationType; - } - - public BigDecimal amountOrPercentage() { - return this.amountOrPercentage; - } - - public Collection getInstallmentChargeData() { - return this.installmentChargeData; - } - - public boolean isPenalty() { - return this.penalty; - } - - public BigDecimal getAmount() { - return this.amount; - } - - public BigDecimal getAmountAccrued() { - return this.amountAccrued; - } - public void updateAmountAccrued(BigDecimal amountAccrued) { this.amountAccrued = amountAccrued; } - - public Long getChargeId() { - return this.chargeId; - } - - public BigDecimal getAmountWaived() { - return this.amountWaived; - } - - public BigDecimal getAmountUnrecognized() { - return this.amountUnrecognized; - } - - public String getExternalId() { - return externalId; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargePaidByData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargePaidByData.java index 085ca5ad4..abab243a9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargePaidByData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanChargePaidByData.java @@ -19,7 +19,11 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +@Getter +@RequiredArgsConstructor public class LoanChargePaidByData { private final Long id; @@ -29,16 +33,6 @@ public class LoanChargePaidByData { private final Long transactionId; private final String name; - public LoanChargePaidByData(final Long id, final BigDecimal amount, final Integer installmentNumber, final Long chargeId, - final Long transactionId, String name) { - this.id = id; - this.amount = amount; - this.installmentNumber = installmentNumber; - this.chargeId = chargeId; - this.transactionId = transactionId; - this.name = name; - } - public LoanChargePaidByData(final Long id, final BigDecimal amount, final Integer installmentNumber, final Long chargeId, final Long transactionId) { this.id = id; @@ -49,27 +43,4 @@ public class LoanChargePaidByData { this.name = null; } - public Long getId() { - return this.id; - } - - public BigDecimal getAmount() { - return this.amount; - } - - public Integer getInstallmentNumber() { - return this.installmentNumber; - } - - public Long getChargeId() { - return this.chargeId; - } - - public Long getTransactionId() { - return this.transactionId; - } - - public String getName() { - return name; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanCollateralManagementData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanCollateralManagementData.java index 5c8b03a83..bbce1a3c0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanCollateralManagementData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanCollateralManagementData.java @@ -19,7 +19,11 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +@RequiredArgsConstructor +@Getter public class LoanCollateralManagementData { private final Long clientCollateralId; @@ -31,30 +35,4 @@ public class LoanCollateralManagementData { private final BigDecimal totalCollateral; private final Long id; - - public LoanCollateralManagementData(final Long clientCollateralIdId, final BigDecimal quantity, final BigDecimal total, - final BigDecimal totalCollateral, final Long id) { - this.clientCollateralId = clientCollateralIdId; - this.quantity = quantity; - this.totalCollateral = totalCollateral; - this.total = total; - this.id = id; - } - - public Long getClientCollateralId() { - return this.clientCollateralId; - } - - public BigDecimal getQuantity() { - return this.quantity; - } - - public BigDecimal getTotal() { - return this.total; - } - - public BigDecimal getTotalCollateral() { - return this.totalCollateral; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInstallmentChargeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInstallmentChargeData.java index 20ac50f24..e9cd73852 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInstallmentChargeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInstallmentChargeData.java @@ -20,7 +20,9 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +@Getter public class LoanInstallmentChargeData { private final Integer installmentNumber; @@ -70,36 +72,7 @@ public class LoanInstallmentChargeData { this.amountUnrecognized = amountUnrecognized; } - public Integer getInstallmentNumber() { - return this.installmentNumber; - } - - public LocalDate getDueDate() { - return this.dueDate; - } - public boolean isPaymentPending() { return !(this.paid || this.waived); } - - public BigDecimal getAmountOutstanding() { - return this.amountOutstanding; - } - - public BigDecimal getAmount() { - return this.amount; - } - - public BigDecimal getAmountWaived() { - return this.amountWaived; - } - - public BigDecimal getAmountAccrued() { - return this.amountAccrued; - } - - public BigDecimal getAmountUnrecognized() { - return this.amountUnrecognized; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInterestRecalculationData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInterestRecalculationData.java index 105e87f10..c4dd5e434 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInterestRecalculationData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanInterestRecalculationData.java @@ -18,31 +18,29 @@ */ package org.apache.fineract.portfolio.loanaccount.data; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.portfolio.calendar.data.CalendarData; +@Getter public class LoanInterestRecalculationData { private final Long id; private final Long loanId; private final EnumOptionData interestRecalculationCompoundingType; private final EnumOptionData rescheduleStrategyType; - @SuppressWarnings("unused") private final CalendarData calendarData; private final EnumOptionData recalculationRestFrequencyType; private final Integer recalculationRestFrequencyInterval; - /* private final LocalDate recalculationRestFrequencyDate; */ private final EnumOptionData recalculationRestFrequencyNthDay; private final EnumOptionData recalculationRestFrequencyWeekday; private final Integer recalculationRestFrequencyOnDay; private final EnumOptionData recalculationCompoundingFrequencyType; private final Integer recalculationCompoundingFrequencyInterval; - /* private final LocalDate recalculationCompoundingFrequencyDate; */ private final EnumOptionData recalculationCompoundingFrequencyNthDay; private final EnumOptionData recalculationCompoundingFrequencyWeekday; private final Integer recalculationCompoundingFrequencyOnDay; private final Boolean isCompoundingToBePostedAsTransaction; - @SuppressWarnings("unused") private final CalendarData compoundingCalendarData; private final Boolean allowCompoundingOnEod; @@ -88,8 +86,4 @@ public class LoanInterestRecalculationData { recalculationData.allowCompoundingOnEod); } - public Long getId() { - return this.id; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanRepaymentScheduleInstallmentData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanRepaymentScheduleInstallmentData.java index c9111cde5..fe29cd70c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanRepaymentScheduleInstallmentData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanRepaymentScheduleInstallmentData.java @@ -20,7 +20,11 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.AllArgsConstructor; +import lombok.Getter; +@AllArgsConstructor +@Getter public final class LoanRepaymentScheduleInstallmentData { private Long id; @@ -31,14 +35,6 @@ public final class LoanRepaymentScheduleInstallmentData { private BigDecimal amount; - private LoanRepaymentScheduleInstallmentData(final Long id, final Integer installmentId, final LocalDate date, - final BigDecimal amount) { - this.amount = amount; - this.date = date; - this.installmentId = installmentId; - this.id = id; - } - public static LoanRepaymentScheduleInstallmentData instanceOf(final Long id, final Integer installmentId, final LocalDate date, final BigDecimal amount) { return new LoanRepaymentScheduleInstallmentData(id, installmentId, date, amount); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanStatusEnumData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanStatusEnumData.java index 1edfcbe9a..e2950c835 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanStatusEnumData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanStatusEnumData.java @@ -18,10 +18,12 @@ */ package org.apache.fineract.portfolio.loanaccount.data; +import lombok.Getter; + /** * Immutable data object represent loan status enumerations. */ -@SuppressWarnings("unused") +@Getter public class LoanStatusEnumData { private final Long id; @@ -49,16 +51,4 @@ public class LoanStatusEnumData { this.closed = this.closedObligationsMet || this.closedWrittenOff || this.closedRescheduled; this.overpaid = Long.valueOf(700).equals(this.id); } - - public Long id() { - return this.id; - } - - public String code() { - return this.code; - } - - public String value() { - return this.value; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanSummaryData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanSummaryData.java index d3b4e913e..efd710378 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanSummaryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanSummaryData.java @@ -20,12 +20,13 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; import org.apache.fineract.organisation.monetary.data.CurrencyData; /** * Immutable data object representing loan summary information. */ -@SuppressWarnings("unused") +@Getter public class LoanSummaryData { private final CurrencyData currency; @@ -116,12 +117,4 @@ public class LoanSummaryData { this.writeoffReason = writeoffReason; this.totalRecovered = totalRecovered; } - - public BigDecimal getTotalOutstanding() { - return this.totalOutstanding; - } - - public BigDecimal getTotalPaidFeeCharges() { - return feeChargesPaid; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTermVariationsData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTermVariationsData.java index 23319bcea..d1b64b81e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTermVariationsData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTermVariationsData.java @@ -20,12 +20,13 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.portfolio.loanaccount.domain.LoanTermVariationType; +@Getter public class LoanTermVariationsData implements Comparable { - @SuppressWarnings("unused") private final Long id; private final EnumOptionData termType; private LocalDate termVariationApplicableFrom; @@ -54,22 +55,10 @@ public class LoanTermVariationsData implements Comparable paymentTypeOptions) { return new LoanTransactionData(loanTransactionData.id, loanTransactionData.officeId, loanTransactionData.officeName, @@ -344,38 +337,14 @@ public class LoanTransactionData { this.possibleNextRepaymentDate = possibleNextRepaymentDate; } - public LocalDate dateOf() { - return this.date; - } - public boolean isNotDisbursement() { - return type.id() == 1; - } - - public BigDecimal getAmount() { - return this.amount; - } - - public BigDecimal getNetDisbursalAmount() { - return netDisbursalAmount; - } - - public BigDecimal getUnrecognizedIncomePortion() { - return this.unrecognizedIncomePortion; - } - - public BigDecimal getInterestPortion() { - return this.interestPortion; + return type.getId() == 1; } public void setWriteOffReasonOptions(Collection writeOffReasonOptions) { this.writeOffReasonOptions = writeOffReasonOptions; } - public Collection getLoanChargePaidByList() { - return loanChargePaidByList; - } - public void setLoanChargePaidByList(Collection loanChargePaidByList) { this.loanChargePaidByList = loanChargePaidByList; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTransactionEnumData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTransactionEnumData.java index a0bbeae4c..9ba692ed1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTransactionEnumData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/LoanTransactionEnumData.java @@ -18,10 +18,12 @@ */ package org.apache.fineract.portfolio.loanaccount.data; +import lombok.Getter; + /** * Immutable data object represent loan status enumerations. */ -@SuppressWarnings("unused") +@Getter public class LoanTransactionEnumData { private final Long id; @@ -80,18 +82,6 @@ public class LoanTransactionEnumData { this.chargeback = Long.valueOf(25).equals(this.id); } - public Long id() { - return this.id; - } - - public String getCode() { - return this.code; - } - - public String getValue() { - return this.value; - } - /** * Returns true if the transaction involves either a payment (disbursement) or a receipt (repayments, repayments * during disbursement etc) @@ -111,89 +101,4 @@ public class LoanTransactionEnumData { } return false; } - - public boolean isDisbursement() { - return this.disbursement; - } - - public boolean isRepaymentAtDisbursement() { - return this.repaymentAtDisbursement; - } - - public boolean isRepayment() { - return this.repayment; - } - - public boolean isMerchantIssuedRefund() { - return this.merchantIssuedRefund; - } - - public boolean isPayoutRefund() { - return this.payoutRefund; - } - - public boolean isGoodwillCredit() { - return this.goodwillCredit; - } - - public boolean isChargeRefund() { - return this.chargeRefund; - } - - public boolean isWaiveInterest() { - return this.waiveInterest; - } - - public boolean isWaiveCharges() { - return this.waiveCharges; - } - - public boolean isWriteOff() { - return this.writeOff; - } - - public boolean isRecoveryRepayment() { - return this.recoveryRepayment; - } - - public boolean isAccrual() { - return this.accrual; - } - - public boolean isInitiateTransfer() { - return this.initiateTransfer; - } - - public boolean isApproveTransfer() { - return this.approveTransfer; - } - - public boolean isWithdrawTransfer() { - return this.withdrawTransfer; - } - - public boolean isRejectTransfer() { - return this.rejectTransfer; - } - - public boolean isChargePayment() { - return this.chargePayment; - } - - public boolean isRefund() { - return this.refund; - } - - public boolean isRefundForActiveLoans() { - return this.refundForActiveLoans; - } - - public boolean isCreditBalanceRefund() { - return this.creditBalanceRefund; - } - - public boolean isChargeback() { - return this.chargeback; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/PaidInAdvanceData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/PaidInAdvanceData.java index 0af2382e3..be643496f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/PaidInAdvanceData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/data/PaidInAdvanceData.java @@ -19,17 +19,13 @@ package org.apache.fineract.portfolio.loanaccount.data; import java.math.BigDecimal; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +@Getter +@RequiredArgsConstructor public class PaidInAdvanceData { private final BigDecimal paidInAdvance; - public PaidInAdvanceData(final BigDecimal paidInAdvance) { - this.paidInAdvance = paidInAdvance; - } - - public BigDecimal getPaidInAdvance() { - return paidInAdvance; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java index 11171e261..e5bbb38a7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java @@ -6768,7 +6768,7 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom { if (this.isMultiDisburmentLoan()) { List disbursementData = getDisbursmentData(); Collections.sort(disbursementData); - firstDisbursalAmount = disbursementData.get(disbursementData.size() - 1).amount(); + firstDisbursalAmount = disbursementData.get(disbursementData.size() - 1).getPrincipal(); } else { firstDisbursalAmount = this.getLoanRepaymentScheduleDetail().getPrincipal().getAmount(); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentDataComparator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentDataComparator.java index 5e89a12b5..912366360 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentDataComparator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanRepaymentDataComparator.java @@ -25,6 +25,6 @@ public class LoanRepaymentDataComparator implements Comparator guarantorTypeOptions, final Collection allowedClientRelationshipTypes, Collection accountLinkingOptions) { final Collection guarantorFundingDetails = null; @@ -152,8 +146,8 @@ public class GuarantorData { public static GuarantorData mergeClientData(final ClientData clientData, final GuarantorData guarantorData) { return new GuarantorData(guarantorData.id, guarantorData.loanId, guarantorData.clientRelationshipType, guarantorData.entityId, guarantorData.guarantorType, clientData.getFirstname(), clientData.getLastname(), null, null, null, null, null, null, null, - null, null, null, clientData.officeName(), clientData.getActivationDate(), clientData.getExternalId(), guarantorData.status, - guarantorData.guarantorFundingDetails, null, guarantorData.allowedClientRelationshipTypes, + null, null, null, clientData.getOfficeName(), clientData.getActivationDate(), clientData.getExternalId(), + guarantorData.status, guarantorData.guarantorFundingDetails, null, guarantorData.allowedClientRelationshipTypes, guarantorData.accountLinkingOptions); } @@ -209,9 +203,4 @@ public class GuarantorData { public boolean isStaffMember() { return GuarantorType.STAFF.getValue().equals(this.guarantorType.getId().intValue()); } - - public Long getEntityId() { - return this.entityId; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/transferfeechargeforloans/TransferFeeChargeForLoansTasklet.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/transferfeechargeforloans/TransferFeeChargeForLoansTasklet.java index 9c6b0d81b..6451387ac 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/transferfeechargeforloans/TransferFeeChargeForLoansTasklet.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/transferfeechargeforloans/TransferFeeChargeForLoansTasklet.java @@ -71,7 +71,7 @@ public class TransferFeeChargeForLoansTasklet implements Tasklet { final boolean isExceptionForBalanceCheck = false; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(DateUtils.getBusinessLocalDate(), installmentChargeData.getAmountOutstanding(), PortfolioAccountType.SAVINGS, PortfolioAccountType.LOAN, - portfolioAccountData.accountId(), chargeData.getLoanId(), "Loan Charge Payment", null, null, null, null, + portfolioAccountData.getId(), chargeData.getLoanId(), "Loan Charge Payment", null, null, null, null, LoanTransactionType.CHARGE_PAYMENT.getValue(), chargeData.getId(), installmentChargeData.getInstallmentNumber(), AccountTransferType.CHARGE_PAYMENT.getValue(), null, null, null, null, null, null, isRegularTransaction, isExceptionForBalanceCheck); @@ -84,7 +84,7 @@ public class TransferFeeChargeForLoansTasklet implements Tasklet { final boolean isExceptionForBalanceCheck = false; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(DateUtils.getBusinessLocalDate(), chargeData.getAmountOutstanding(), PortfolioAccountType.SAVINGS, PortfolioAccountType.LOAN, - portfolioAccountData.accountId(), chargeData.getLoanId(), "Loan Charge Payment", null, null, null, null, + portfolioAccountData.getId(), chargeData.getLoanId(), "Loan Charge Payment", null, null, null, null, LoanTransactionType.CHARGE_PAYMENT.getValue(), chargeData.getId(), null, AccountTransferType.CHARGE_PAYMENT.getValue(), null, null, null, null, null, null, isRegularTransaction, isExceptionForBalanceCheck); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleData.java index da1d8907c..3c9ea4e19 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleData.java @@ -20,6 +20,7 @@ package org.apache.fineract.portfolio.loanaccount.loanschedule.data; import java.math.BigDecimal; import java.util.Collection; +import lombok.Getter; import org.apache.fineract.organisation.monetary.data.CurrencyData; /** @@ -31,7 +32,7 @@ import org.apache.fineract.organisation.monetary.data.CurrencyData; * (both fees and penalties) * */ -@SuppressWarnings("unused") +@Getter public class LoanScheduleData { /** @@ -106,10 +107,6 @@ public class LoanScheduleData { this.totalOutstanding = null; } - public Collection getPeriods() { - return this.periods; - } - public void updateFuturePeriods(Collection futurePeriods) { this.futurePeriods = futurePeriods; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanSchedulePeriodData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanSchedulePeriodData.java index 6b2ae0b6f..0de3e8719 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanSchedulePeriodData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanSchedulePeriodData.java @@ -21,12 +21,14 @@ package org.apache.fineract.portfolio.loanaccount.loanschedule.data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.temporal.ChronoUnit; +import lombok.Getter; import org.apache.fineract.infrastructure.core.service.DateUtils; /** * Immutable data object that represents a period of a loan schedule. * */ +@Getter public final class LoanSchedulePeriodData { private final Integer period; @@ -42,7 +44,6 @@ public final class LoanSchedulePeriodData { private final BigDecimal principalWrittenOff; private final BigDecimal principalOutstanding; private final BigDecimal principalLoanBalanceOutstanding; - @SuppressWarnings("unused") private final BigDecimal interestOriginalDue; private final BigDecimal interestDue; private final BigDecimal interestPaid; @@ -59,8 +60,6 @@ public final class LoanSchedulePeriodData { private final BigDecimal penaltyChargesWaived; private final BigDecimal penaltyChargesWrittenOff; private final BigDecimal penaltyChargesOutstanding; - - @SuppressWarnings("unused") private final BigDecimal totalOriginalDueForPeriod; private final BigDecimal totalDueForPeriod; private final BigDecimal totalPaidForPeriod; @@ -341,111 +340,87 @@ public final class LoanSchedulePeriodData { return value; } - public Integer periodNumber() { - return this.period; - } - - public LocalDate periodFromDate() { - return this.fromDate; - } - - public LocalDate periodDueDate() { - return this.dueDate; - } - - public Integer daysInPeriod() { - return this.daysInPeriod; - } - - public BigDecimal principalDisbursed() { + public BigDecimal getPrincipalDisbursed() { return defaultToZeroIfNull(this.principalDisbursed); } - public BigDecimal principalDue() { + public BigDecimal getPrincipalDue() { return defaultToZeroIfNull(this.principalDue); } - public BigDecimal principalPaid() { + public BigDecimal getPrincipalPaid() { return defaultToZeroIfNull(this.principalPaid); } - public BigDecimal principalWrittenOff() { + public BigDecimal getPrincipalWrittenOff() { return defaultToZeroIfNull(this.principalWrittenOff); } - public BigDecimal principalOutstanding() { + public BigDecimal getPrincipalOutstanding() { return defaultToZeroIfNull(this.principalOutstanding); } - public BigDecimal interestDue() { + public BigDecimal getInterestDue() { return defaultToZeroIfNull(this.interestDue); } - public BigDecimal interestPaid() { + public BigDecimal getInterestPaid() { return defaultToZeroIfNull(this.interestPaid); } - public BigDecimal interestWaived() { + public BigDecimal getInterestWaived() { return defaultToZeroIfNull(this.interestWaived); } - public BigDecimal interestWrittenOff() { + public BigDecimal getInterestWrittenOff() { return defaultToZeroIfNull(this.interestWrittenOff); } - public BigDecimal interestOutstanding() { + public BigDecimal getInterestOutstanding() { return defaultToZeroIfNull(this.interestOutstanding); } - public BigDecimal feeChargesDue() { + public BigDecimal getFeeChargesDue() { return defaultToZeroIfNull(this.feeChargesDue); } - public BigDecimal feeChargesWaived() { + public BigDecimal getFeeChargesWaived() { return defaultToZeroIfNull(this.feeChargesWaived); } - public BigDecimal feeChargesWrittenOff() { + public BigDecimal getFeeChargesWrittenOff() { return defaultToZeroIfNull(this.feeChargesWrittenOff); } - public BigDecimal feeChargesPaid() { + public BigDecimal getFeeChargesPaid() { return defaultToZeroIfNull(this.feeChargesPaid); } - public BigDecimal feeChargesOutstanding() { + public BigDecimal getFeeChargesOutstanding() { return defaultToZeroIfNull(this.feeChargesOutstanding); } - public BigDecimal penaltyChargesDue() { + public BigDecimal getPenaltyChargesDue() { return defaultToZeroIfNull(this.penaltyChargesDue); } - public BigDecimal penaltyChargesWaived() { + public BigDecimal getPenaltyChargesWaived() { return defaultToZeroIfNull(this.penaltyChargesWaived); } - public BigDecimal penaltyChargesWrittenOff() { + public BigDecimal getPenaltyChargesWrittenOff() { return defaultToZeroIfNull(this.penaltyChargesWrittenOff); } - public BigDecimal penaltyChargesPaid() { + public BigDecimal getPenaltyChargesPaid() { return defaultToZeroIfNull(this.penaltyChargesPaid); } - public BigDecimal penaltyChargesOutstanding() { + public BigDecimal getPenaltyChargesOutstanding() { return defaultToZeroIfNull(this.penaltyChargesOutstanding); } - public BigDecimal totalOverdue() { + public BigDecimal getTotalOverdue() { return defaultToZeroIfNull(this.totalOverdue); } - - public BigDecimal principalLoanBalanceOutstanding() { - return this.principalLoanBalanceOutstanding; - } - - public Boolean getComplete() { - return this.complete; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java index 6e6dd81c2..3a695c326 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractLoanScheduleGenerator.java @@ -1005,7 +1005,7 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener // due date changes should be applied only for that dueDate if (loanApplicationTerms.getLoanTermVariations().hasDueDateVariation(scheduledDueDate)) { LoanTermVariationsData loanTermVariationsData = loanApplicationTerms.getLoanTermVariations().nextDueDateVariation(); - if (loanTermVariationsData.getTermApplicableFrom().isEqual(modifiedScheduledDueDate)) { + if (loanTermVariationsData.getTermVariationApplicableFrom().isEqual(modifiedScheduledDueDate)) { modifiedScheduledDueDate = loanTermVariationsData.getDateValue(); if (!loanTermVariationsData.isSpecificToInstallment()) { scheduleParams.setActualRepaymentDate(modifiedScheduledDueDate); @@ -1044,7 +1044,7 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener switch (loanTermVariationsData.getTermVariationType()) { case INSERT_INSTALLMENT: scheduleParams.setActualRepaymentDate(previousRepaymentDate); - modifiedScheduledDueDate = loanTermVariationsData.getTermApplicableFrom(); + modifiedScheduledDueDate = loanTermVariationsData.getTermVariationApplicableFrom(); if (loanTermVariationsData.getDecimalValue() != null) { if (loanApplicationTerms.getInterestMethod().isDecliningBalance() && loanApplicationTerms.getAmortizationMethod().isEqualInstallment()) { @@ -1057,7 +1057,7 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener loanTermVariationsData.setProcessed(true); break; case DELETE_INSTALLMENT: - if (loanTermVariationsData.getTermApplicableFrom().isEqual(modifiedScheduledDueDate)) { + if (loanTermVariationsData.getTermVariationApplicableFrom().isEqual(modifiedScheduledDueDate)) { skipPeriod = true; loanTermVariationsData.setProcessed(true); } @@ -1161,11 +1161,11 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener } switch (loanTermVariationsData.getTermVariationType()) { case INSERT_INSTALLMENT: - modifiedScheduledDueDate = loanTermVariationsData.getTermApplicableFrom(); + modifiedScheduledDueDate = loanTermVariationsData.getTermVariationApplicableFrom(); variationsData.add(loanTermVariationsData); break; case DELETE_INSTALLMENT: - if (loanTermVariationsData.getTermApplicableFrom().isEqual(modifiedScheduledDueDate)) { + if (loanTermVariationsData.getTermVariationApplicableFrom().isEqual(modifiedScheduledDueDate)) { skipPeriod = true; variationsData.add(loanTermVariationsData); } @@ -1922,10 +1922,10 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener for (DisbursementData disbursementData : loanApplicationTerms.getDisbursementDatas()) { if (disbursementData.disbursementDate().equals(disbursementDate)) { final LoanScheduleModelDisbursementPeriod disbursementPeriod = LoanScheduleModelDisbursementPeriod.disbursement( - disbursementData.disbursementDate(), Money.of(currency, disbursementData.amount()), + disbursementData.disbursementDate(), Money.of(currency, disbursementData.getPrincipal()), chargesDueAtTimeOfDisbursement); periods.add(disbursementPeriod); - principal = principal.add(disbursementData.amount()); + principal = principal.add(disbursementData.getPrincipal()); } else if (!excludePastUndisbursed || disbursementData.isDisbursed() || !disbursementData.disbursementDate().isBefore(DateUtils.getLocalDateOfTenant())) { /* @@ -1937,7 +1937,7 @@ public abstract class AbstractLoanScheduleGenerator implements LoanScheduleGener if (prevsum != null) { sumToNow = prevsum.getAmount(); } - sumToNow = sumToNow.add(disbursementData.amount()); + sumToNow = sumToNow.add(disbursementData.getPrincipal()); disurseDetail.put(disbursementData.disbursementDate(), Money.of(currency, sumToNow)); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DecliningBalanceInterestLoanScheduleGenerator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DecliningBalanceInterestLoanScheduleGenerator.java index c39112577..3d00b33df 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DecliningBalanceInterestLoanScheduleGenerator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DecliningBalanceInterestLoanScheduleGenerator.java @@ -74,7 +74,7 @@ public class DecliningBalanceInterestLoanScheduleGenerator extends AbstractLoanS for (LoanTermVariationsData loanTermVariation : termVariations) { if (loanTermVariation.getTermVariationType().isInterestRateVariation() && loanTermVariation.isApplicable(periodStartDate, periodEndDate)) { - LocalDate fromDate = loanTermVariation.getTermApplicableFrom(); + LocalDate fromDate = loanTermVariation.getTermVariationApplicableFrom(); if (fromDate == null) { fromDate = periodStartDate; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java index c1679eebe..f0bb45fc2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java @@ -1693,7 +1693,7 @@ public final class LoanApplicationTerms { if (isMultiDisburseLoan()) { for (DisbursementData disbursement : getDisbursementDatas()) { if (disbursement.isDisbursed()) { - disbursedAmount = disbursedAmount.plus(disbursement.amount()); + disbursedAmount = disbursedAmount.plus(disbursement.getPrincipal()); } } } else { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleCalculationPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleCalculationPlatformServiceImpl.java index c10ea9182..9445407e8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleCalculationPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleCalculationPlatformServiceImpl.java @@ -189,16 +189,16 @@ public class LoanScheduleCalculationPlatformServiceImpl implements LoanScheduleC LoanScheduleData scheduleDate = model.toData(); Collection periodDatas = scheduleDate.getPeriods(); for (LoanSchedulePeriodData periodData : periodDatas) { - if ((periodData.periodDueDate().isEqual(today) || periodData.periodDueDate().isAfter(today)) && isNewPaymentRequired) { - LoanSchedulePeriodData loanSchedulePeriodData = LoanSchedulePeriodData.repaymentOnlyPeriod(periodData.periodNumber(), - periodData.periodFromDate(), periodData.periodDueDate(), totalPrincipal.getAmount(), - periodData.principalLoanBalanceOutstanding(), interestDue.getAmount(), + if ((periodData.getDueDate().isEqual(today) || periodData.getDueDate().isAfter(today)) && isNewPaymentRequired) { + LoanSchedulePeriodData loanSchedulePeriodData = LoanSchedulePeriodData.repaymentOnlyPeriod(periodData.getPeriod(), + periodData.getFromDate(), periodData.getDueDate(), totalPrincipal.getAmount(), + periodData.getPrincipalLoanBalanceOutstanding(), interestDue.getAmount(), loanRepaymentScheduleInstallment.getFeeChargesCharged(currency).getAmount(), loanRepaymentScheduleInstallment.getPenaltyChargesCharged(currency).getAmount(), totalAmount.getAmount(), totalPrincipal.plus(interestDue).getAmount()); futureInstallments.add(loanSchedulePeriodData); isNewPaymentRequired = false; - } else if (periodData.periodDueDate().isAfter(today)) { + } else if (periodData.getDueDate().isAfter(today)) { futureInstallments.add(periodData); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java index 4ab2750c9..d098c63d8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java @@ -108,7 +108,7 @@ public class LoanScheduleHistoryReadPlatformServiceImpl implements LoanScheduleH this.disbursement = repaymentScheduleRelatedLoanData.disbursementData(); this.totalFeeChargesDueAtDisbursement = repaymentScheduleRelatedLoanData.getTotalFeeChargesAtDisbursement(); this.lastDueDate = this.disbursement.disbursementDate(); - this.outstandingLoanPrincipalBalance = this.disbursement.amount(); + this.outstandingLoanPrincipalBalance = this.disbursement.getPrincipal(); this.disbursementData = disbursementData; } @@ -125,16 +125,16 @@ public class LoanScheduleHistoryReadPlatformServiceImpl implements LoanScheduleH public LoanScheduleData extractData(final ResultSet rs) throws SQLException, DataAccessException { final LoanSchedulePeriodData disbursementPeriod = LoanSchedulePeriodData.disbursementOnlyPeriod( - this.disbursement.disbursementDate(), this.disbursement.amount(), this.totalFeeChargesDueAtDisbursement, + this.disbursement.disbursementDate(), this.disbursement.getPrincipal(), this.totalFeeChargesDueAtDisbursement, this.disbursement.isDisbursed()); final Collection periods = new ArrayList<>(); - final MonetaryCurrency monCurrency = new MonetaryCurrency(this.currency.code(), this.currency.decimalPlaces(), - this.currency.currencyInMultiplesOf()); + final MonetaryCurrency monCurrency = new MonetaryCurrency(this.currency.getCode(), this.currency.getDecimalPlaces(), + this.currency.getInMultiplesOf()); BigDecimal totalPrincipalDisbursed = BigDecimal.ZERO; if (disbursementData == null || disbursementData.isEmpty()) { periods.add(disbursementPeriod); - totalPrincipalDisbursed = Money.of(monCurrency, this.disbursement.amount()).getAmount(); + totalPrincipalDisbursed = Money.of(monCurrency, this.disbursement.getPrincipal()).getAmount(); } else { this.outstandingLoanPrincipalBalance = BigDecimal.ZERO; } @@ -146,8 +146,8 @@ public class LoanScheduleHistoryReadPlatformServiceImpl implements LoanScheduleH Money totalRepaymentExpected = Money.zero(monCurrency); // update totals with details of fees charged during disbursement - totalFeeChargesCharged = totalFeeChargesCharged.plus(disbursementPeriod.feeChargesDue()); - totalRepaymentExpected = totalRepaymentExpected.plus(disbursementPeriod.feeChargesDue()); + totalFeeChargesCharged = totalFeeChargesCharged.plus(disbursementPeriod.getFeeChargesDue()); + totalRepaymentExpected = totalRepaymentExpected.plus(disbursementPeriod.getFeeChargesDue()); Integer loanTermInDays = 0; while (rs.next()) { @@ -158,18 +158,18 @@ public class LoanScheduleHistoryReadPlatformServiceImpl implements LoanScheduleH BigDecimal principal = BigDecimal.ZERO; for (DisbursementData data : disbursementData) { if (fromDate.equals(this.disbursement.disbursementDate()) && data.disbursementDate().equals(fromDate)) { - principal = principal.add(data.amount()); + principal = principal.add(data.getPrincipal()); final LoanSchedulePeriodData periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), - data.amount(), this.totalFeeChargesDueAtDisbursement, data.isDisbursed()); + data.getPrincipal(), this.totalFeeChargesDueAtDisbursement, data.isDisbursed()); periods.add(periodData); - this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.amount()); + this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.getPrincipal()); } else if (data.isDueForDisbursement(fromDate, dueDate) && this.outstandingLoanPrincipalBalance.compareTo(BigDecimal.ZERO) > 0) { - principal = principal.add(data.amount()); + principal = principal.add(data.getPrincipal()); final LoanSchedulePeriodData periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), - data.amount(), BigDecimal.ZERO, data.isDisbursed()); + data.getPrincipal(), BigDecimal.ZERO, data.isDisbursed()); periods.add(periodData); - this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.amount()); + this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.getPrincipal()); } } totalPrincipalDisbursed = totalPrincipalDisbursed.add(principal); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanReschedulePreviewPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanReschedulePreviewPlatformServiceImpl.java index 1b4feeb69..2710e1819 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanReschedulePreviewPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanReschedulePreviewPlatformServiceImpl.java @@ -89,7 +89,7 @@ public class LoanReschedulePreviewPlatformServiceImpl implements LoanRescheduleP if (dueDateVariationInCurrentRequest != null) { for (LoanTermVariationsData loanTermVariation : loanApplicationTerms.getLoanTermVariations().getDueDateVariation()) { if (loanTermVariation.getDateValue().equals(dueDateVariationInCurrentRequest.fetchTermApplicaDate())) { - rescheduleFromDate = loanTermVariation.getTermApplicableFrom(); + rescheduleFromDate = loanTermVariation.getTermVariationApplicableFrom(); removeLoanTermVariationsData.add(loanTermVariation); } } @@ -114,10 +114,10 @@ public class LoanReschedulePreviewPlatformServiceImpl implements LoanRescheduleP } for (LoanTermVariationsData loanTermVariation : loanApplicationTerms.getLoanTermVariations().getDueDateVariation()) { - if (rescheduleFromDate.isBefore(loanTermVariation.getTermApplicableFrom())) { + if (rescheduleFromDate.isBefore(loanTermVariation.getTermVariationApplicableFrom())) { LocalDate applicableDate = this.scheduledDateGenerator.generateNextRepaymentDate(rescheduleFromDate, loanApplicationTerms, false); - if (loanTermVariation.getTermApplicableFrom().equals(applicableDate)) { + if (loanTermVariation.getTermVariationApplicableFrom().equals(applicableDate)) { LocalDate adjustedDate = this.scheduledDateGenerator.generateNextRepaymentDate(adjustedApplicableDate, loanApplicationTerms, false); loanTermVariation.setApplicableFromDate(adjustedDate); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java index e6bc7002f..7042ce369 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java @@ -146,7 +146,7 @@ public class LoanAccrualWritePlatformServiceImpl implements LoanAccrualWritePlat } else { interestPortion = BigDecimal.valueOf(interestPerDay * daysToBeAccrued); } - interestPortion = interestPortion.setScale(accrualData.getCurrencyData().decimalPlaces(), MoneyHelper.getRoundingMode()); + interestPortion = interestPortion.setScale(accrualData.getCurrencyData().getDecimalPlaces(), MoneyHelper.getRoundingMode()); BigDecimal totalAccInterest = accrualData.getAccruedInterestIncome(); BigDecimal totalAccPenalty = accrualData.getAccruedPenaltyIncome(); @@ -421,10 +421,10 @@ public class LoanAccrualWritePlatformServiceImpl implements LoanAccrualWritePlat Collection loanTransactionDatas = new ArrayList<>(); for (LoanTransactionData loanTransactionData : loanWaiverTransactions) { - if (!loanTransactionData.dateOf().isAfter(accrualData.getFromDateAsLocaldate()) - || (loanTransactionData.dateOf().isAfter(accrualData.getFromDateAsLocaldate()) - && !loanTransactionData.dateOf().isAfter(accrualData.getDueDateAsLocaldate()) - && !loanTransactionData.dateOf().isAfter(tillDate))) { + if (!loanTransactionData.getDate().isAfter(accrualData.getFromDateAsLocaldate()) + || (loanTransactionData.getDate().isAfter(accrualData.getFromDateAsLocaldate()) + && !loanTransactionData.getDate().isAfter(accrualData.getDueDateAsLocaldate()) + && !loanTransactionData.getDate().isAfter(tillDate))) { loanTransactionDatas.add(loanTransactionData); } } @@ -436,8 +436,8 @@ public class LoanAccrualWritePlatformServiceImpl implements LoanAccrualWritePlat recognized = recognized.add(loanTransactionData.getInterestPortion()); unrecognized = unrecognized.add(loanTransactionData.getUnrecognizedIncomePortion()); } - if (loanSchedulePeriodData.periodDueDate().isBefore(accrualData.getDueDateAsLocaldate())) { - remainingAmt = remainingAmt.add(loanSchedulePeriodData.interestWaived()); + if (loanSchedulePeriodData.getDueDate().isBefore(accrualData.getDueDateAsLocaldate())) { + remainingAmt = remainingAmt.add(loanSchedulePeriodData.getInterestWaived()); if (recognized.compareTo(remainingAmt) > 0) { recognized = recognized.subtract(remainingAmt); remainingAmt = BigDecimal.ZERO; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java index efb5c819e..f8ce32daa 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java @@ -829,7 +829,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa isChargeModified = true; } else { LoanChargeData chargeData = chargesMap.get(loanCharge.getId()); - if (loanCharge.amountOrPercentage().compareTo(chargeData.amountOrPercentage()) != 0 + if (loanCharge.amountOrPercentage().compareTo(chargeData.getAmountOrPercentage()) != 0 || (loanCharge.isSpecifiedDueDate() && !loanCharge.getDueLocalDate().equals(chargeData.getDueDate()))) { isChargeModified = true; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java index b190699b3..22493a967 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java @@ -194,15 +194,16 @@ public class LoanArrearsAgingServiceImpl implements LoanArrearsAgingService { for (LoanSchedulePeriodData loanSchedulePeriodData : entry.getValue()) { if (!loanSchedulePeriodData.getComplete()) { principalOverdue = principalOverdue - .add(loanSchedulePeriodData.principalDue().subtract(loanSchedulePeriodData.principalPaid())); + .add(loanSchedulePeriodData.getPrincipalDue().subtract(loanSchedulePeriodData.getPrincipalPaid())); interestOverdue = interestOverdue - .add(loanSchedulePeriodData.interestDue().subtract(loanSchedulePeriodData.interestPaid())); - feeOverdue = feeOverdue.add(loanSchedulePeriodData.feeChargesDue().subtract(loanSchedulePeriodData.feeChargesPaid())); + .add(loanSchedulePeriodData.getInterestDue().subtract(loanSchedulePeriodData.getInterestPaid())); + feeOverdue = feeOverdue + .add(loanSchedulePeriodData.getFeeChargesDue().subtract(loanSchedulePeriodData.getFeeChargesPaid())); penaltyOverdue = penaltyOverdue - .add(loanSchedulePeriodData.penaltyChargesDue().subtract(loanSchedulePeriodData.penaltyChargesPaid())); - if (overDueSince.isAfter(loanSchedulePeriodData.periodDueDate()) && loanSchedulePeriodData.principalDue() - .subtract(loanSchedulePeriodData.principalPaid()).compareTo(BigDecimal.ZERO) > 0) { - overDueSince = loanSchedulePeriodData.periodDueDate(); + .add(loanSchedulePeriodData.getPenaltyChargesDue().subtract(loanSchedulePeriodData.getPenaltyChargesPaid())); + if (overDueSince.isAfter(loanSchedulePeriodData.getDueDate()) && loanSchedulePeriodData.getPrincipalDue() + .subtract(loanSchedulePeriodData.getPrincipalPaid()).compareTo(BigDecimal.ZERO) > 0) { + overDueSince = loanSchedulePeriodData.getDueDate(); } } } @@ -280,38 +281,38 @@ public class LoanArrearsAgingServiceImpl implements LoanArrearsAgingService { BigDecimal feeChargesPaid; BigDecimal penaltyChargesPaid; boolean isComplete = true; - if (loanSchedulePeriodData.principalDue().compareTo(principalAmt) > 0) { + if (loanSchedulePeriodData.getPrincipalDue().compareTo(principalAmt) > 0) { principalPaid = principalAmt; principalAmt = BigDecimal.ZERO; isComplete = false; } else { - principalPaid = loanSchedulePeriodData.principalDue(); - principalAmt = principalAmt.subtract(loanSchedulePeriodData.principalDue()); + principalPaid = loanSchedulePeriodData.getPrincipalDue(); + principalAmt = principalAmt.subtract(loanSchedulePeriodData.getPrincipalDue()); } - if (loanSchedulePeriodData.interestDue().compareTo(interestAmt) > 0) { + if (loanSchedulePeriodData.getInterestDue().compareTo(interestAmt) > 0) { interestPaid = interestAmt; interestAmt = BigDecimal.ZERO; isComplete = false; } else { - interestPaid = loanSchedulePeriodData.interestDue(); - interestAmt = interestAmt.subtract(loanSchedulePeriodData.interestDue()); + interestPaid = loanSchedulePeriodData.getInterestDue(); + interestAmt = interestAmt.subtract(loanSchedulePeriodData.getInterestDue()); } - if (loanSchedulePeriodData.feeChargesDue().compareTo(feeAmt) > 0) { + if (loanSchedulePeriodData.getFeeChargesDue().compareTo(feeAmt) > 0) { feeChargesPaid = feeAmt; feeAmt = BigDecimal.ZERO; isComplete = false; } else { - feeChargesPaid = loanSchedulePeriodData.feeChargesDue(); - feeAmt = feeAmt.subtract(loanSchedulePeriodData.feeChargesDue()); + feeChargesPaid = loanSchedulePeriodData.getFeeChargesDue(); + feeAmt = feeAmt.subtract(loanSchedulePeriodData.getFeeChargesDue()); } - if (loanSchedulePeriodData.penaltyChargesDue().compareTo(penaltyAmt) > 0) { + if (loanSchedulePeriodData.getPenaltyChargesDue().compareTo(penaltyAmt) > 0) { penaltyChargesPaid = penaltyAmt; penaltyAmt = BigDecimal.ZERO; isComplete = false; } else { - penaltyChargesPaid = loanSchedulePeriodData.penaltyChargesDue(); - penaltyAmt = penaltyAmt.subtract(loanSchedulePeriodData.penaltyChargesDue()); + penaltyChargesPaid = loanSchedulePeriodData.getPenaltyChargesDue(); + penaltyAmt = penaltyAmt.subtract(loanSchedulePeriodData.getPenaltyChargesDue()); } LoanSchedulePeriodData periodData = LoanSchedulePeriodData.withPaidDetail(loanSchedulePeriodData, isComplete, diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java index 4835913d5..bd7633b2a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java @@ -387,8 +387,8 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { final ClientData clientAccount = this.clientReadPlatformService.retrieveOne(clientId); final LocalDate expectedDisbursementDate = DateUtils.getBusinessLocalDate(); - LoanAccountData loanTemplateDetails = LoanAccountData.clientDefaults(clientAccount.id(), clientAccount.accountNo(), - clientAccount.displayName(), clientAccount.officeId(), expectedDisbursementDate); + LoanAccountData loanTemplateDetails = LoanAccountData.clientDefaults(clientAccount.getId(), clientAccount.getAccountNo(), + clientAccount.getDisplayName(), clientAccount.getOfficeId(), expectedDisbursementDate); if (productId != null) { final LoanProductData selectedProduct = this.loanProductReadPlatformService.retrieveLoanProduct(productId); @@ -869,7 +869,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { "feeChargesDueAtDisbursementCharged"); LoanSummaryData loanSummary = null; Boolean inArrears = false; - if (status.id().intValue() >= 300) { + if (status.getId().intValue() >= 300) { // loan summary final BigDecimal principalDisbursed = JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "principalDisbursed"); @@ -1090,7 +1090,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { this.disbursement = repaymentScheduleRelatedLoanData.disbursementData(); this.totalFeeChargesDueAtDisbursement = repaymentScheduleRelatedLoanData.getTotalFeeChargesAtDisbursement(); this.lastDueDate = this.disbursement.disbursementDate(); - this.outstandingLoanPrincipalBalance = this.disbursement.amount(); + this.outstandingLoanPrincipalBalance = this.disbursement.getPrincipal(); this.disbursementData = disbursementData; this.excludePastUndisbursed = isInterestRecalculationEnabled; this.totalPaidFeeCharges = totalPaidFeeCharges; @@ -1114,17 +1114,17 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { waivedChargeAmount = waivedChargeAmount.add(disbursementDetail.getWaivedChargeAmount()); } final LoanSchedulePeriodData disbursementPeriod = LoanSchedulePeriodData.disbursementOnlyPeriod( - this.disbursement.disbursementDate(), this.disbursement.amount(), this.totalFeeChargesDueAtDisbursement, + this.disbursement.disbursementDate(), this.disbursement.getPrincipal(), this.totalFeeChargesDueAtDisbursement, this.disbursement.isDisbursed()); final Collection periods = new ArrayList<>(); - final MonetaryCurrency monCurrency = new MonetaryCurrency(this.currency.code(), this.currency.decimalPlaces(), - this.currency.currencyInMultiplesOf()); + final MonetaryCurrency monCurrency = new MonetaryCurrency(this.currency.getCode(), this.currency.getDecimalPlaces(), + this.currency.getInMultiplesOf()); BigDecimal totalPrincipalDisbursed = BigDecimal.ZERO; BigDecimal disbursementChargeAmount = this.totalFeeChargesDueAtDisbursement; if (disbursementData.isEmpty()) { periods.add(disbursementPeriod); - totalPrincipalDisbursed = Money.of(monCurrency, this.disbursement.amount()).getAmount(); + totalPrincipalDisbursed = Money.of(monCurrency, this.disbursement.getPrincipal()).getAmount(); } else { if (!this.disbursement.isDisbursed()) { excludePastUndisbursed = false; @@ -1151,10 +1151,10 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { Money totalOutstanding = Money.zero(monCurrency); // update totals with details of fees charged during disbursement - totalFeeChargesCharged = totalFeeChargesCharged.plus(disbursementPeriod.feeChargesDue().subtract(waivedChargeAmount)); - totalRepaymentExpected = totalRepaymentExpected.plus(disbursementPeriod.feeChargesDue()).minus(waivedChargeAmount); - totalRepayment = totalRepayment.plus(disbursementPeriod.feeChargesPaid()).minus(waivedChargeAmount); - totalOutstanding = totalOutstanding.plus(disbursementPeriod.feeChargesDue()).minus(disbursementPeriod.feeChargesPaid()); + totalFeeChargesCharged = totalFeeChargesCharged.plus(disbursementPeriod.getFeeChargesDue().subtract(waivedChargeAmount)); + totalRepaymentExpected = totalRepaymentExpected.plus(disbursementPeriod.getFeeChargesDue()).minus(waivedChargeAmount); + totalRepayment = totalRepayment.plus(disbursementPeriod.getFeeChargesPaid()).minus(waivedChargeAmount); + totalOutstanding = totalOutstanding.plus(disbursementPeriod.getFeeChargesDue()).minus(disbursementPeriod.getFeeChargesPaid()); Integer loanTermInDays = 0; while (rs.next()) { @@ -1168,31 +1168,31 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { BigDecimal principal = BigDecimal.ZERO; for (final DisbursementData data : disbursementData) { if (fromDate.equals(this.disbursement.disbursementDate()) && data.disbursementDate().equals(fromDate)) { - principal = principal.add(data.amount()); + principal = principal.add(data.getPrincipal()); LoanSchedulePeriodData periodData = null; if (data.getChargeAmount() == null) { - periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.amount(), + periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.getPrincipal(), disbursementChargeAmount, data.isDisbursed()); } else { - periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.amount(), + periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.getPrincipal(), disbursementChargeAmount.add(data.getChargeAmount()).subtract(waivedChargeAmount), data.isDisbursed()); } periods.add(periodData); - this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.amount()); + this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.getPrincipal()); } else if (data.isDueForDisbursement(fromDate, dueDate)) { if (!excludePastUndisbursed || data.isDisbursed() || !data.disbursementDate().isBefore(DateUtils.getBusinessLocalDate())) { - principal = principal.add(data.amount()); + principal = principal.add(data.getPrincipal()); LoanSchedulePeriodData periodData; if (data.getChargeAmount() == null) { - periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.amount(), + periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.getPrincipal(), BigDecimal.ZERO, data.isDisbursed()); } else { - periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.amount(), + periodData = LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), data.getPrincipal(), data.getChargeAmount(), data.isDisbursed()); } periods.add(periodData); - this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.amount()); + this.outstandingLoanPrincipalBalance = this.outstandingLoanPrincipalBalance.add(data.getPrincipal()); } } } @@ -1452,7 +1452,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { } Integer loanCycleCounter = null; - if (loanProduct.useBorrowerCycle()) { + if (loanProduct.isUseBorrowerCycle()) { if (clientId == null) { loanCycleCounter = retriveLoanCounter(groupId, AccountType.GROUP.getValue(), loanProduct.getId()); } else { @@ -1461,9 +1461,9 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { } Collection activeLoanOptions = null; - if (loanProduct.canUseForTopup() && clientId != null) { + if (loanProduct.isCanUseForTopup() && clientId != null) { activeLoanOptions = this.accountDetailsReadPlatformService.retrieveClientActiveLoanAccountSummary(clientId); - } else if (loanProduct.canUseForTopup() && groupId != null) { + } else if (loanProduct.isCanUseForTopup() && groupId != null) { activeLoanOptions = this.accountDetailsReadPlatformService.retrieveGroupActiveLoanAccountSummary(groupId); } @@ -1481,8 +1481,8 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { final ClientData clientAccount = this.clientReadPlatformService.retrieveOne(clientId); final LocalDate expectedDisbursementDate = DateUtils.getBusinessLocalDate(); - return LoanAccountData.clientDefaults(clientAccount.id(), clientAccount.accountNo(), clientAccount.displayName(), - clientAccount.officeId(), expectedDisbursementDate); + return LoanAccountData.clientDefaults(clientAccount.getId(), clientAccount.getAccountNo(), clientAccount.getDisplayName(), + clientAccount.getOfficeId(), expectedDisbursementDate); } @Override @@ -1935,7 +1935,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { final BigDecimal unrecognizedIncomePortion = null; final List writeOffReasonOptions = new ArrayList<>( this.codeValueReadPlatformService.retrieveCodeValuesByCode(LoanApiConstants.WRITEOFFREASONS)); - LoanTransactionData loanTransactionData = new LoanTransactionData(null, null, null, transactionType, null, loan.currency(), + LoanTransactionData loanTransactionData = new LoanTransactionData(null, null, null, transactionType, null, loan.getCurrency(), DateUtils.getBusinessLocalDate(), loan.getTotalOutstandingAmount(), loan.getNetDisbursalAmount(), null, null, null, null, null, null, null, null, outstandingLoanBalance, unrecognizedIncomePortion, false); loanTransactionData.setWriteOffReasonOptions(writeOffReasonOptions); @@ -2241,7 +2241,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { if (loanData.isLoanProductLinkedToFloatingRate()) { final Collection intRatePeriodData = new ArrayList<>(); final Collection intRates = this.floatingRatesReadPlatformService - .retrieveInterestRatePeriods(loanData.loanProductId()); + .retrieveInterestRatePeriods(loanData.getLoanProductId()); for (final InterestRatePeriodData rate : intRates) { if (rate.getFromDate().compareTo(loanData.getDisbursementDate()) > 0 && loanData.isFloatingInterestRate()) { updateInterestRatePeriodData(rate, loanData); @@ -2259,7 +2259,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { } private void updateInterestRatePeriodData(InterestRatePeriodData rate, LoanAccountData loan) { - LoanProductData loanProductData = loanProductReadPlatformService.retrieveLoanProductFloatingDetails(loan.loanProductId()); + LoanProductData loanProductData = loanProductReadPlatformService.retrieveLoanProductFloatingDetails(loan.getLoanProductId()); rate.setLoanProductDifferentialInterestRate(loanProductData.getInterestRateDifferential()); rate.setLoanDifferentialInterestRate(loan.getInterestRateDifferential()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java index 46e4bffff..2d576c805 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java @@ -513,7 +513,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final boolean isRegularTransaction = true; final boolean isExceptionForBalanceCheck = false; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(actualDisbursementDate, entrySet.getValue(), - PortfolioAccountType.SAVINGS, PortfolioAccountType.LOAN, savingAccountData.accountId(), loanId, "Loan Charge Payment", + PortfolioAccountType.SAVINGS, PortfolioAccountType.LOAN, savingAccountData.getId(), loanId, "Loan Charge Payment", locale, fmt, null, null, LoanTransactionType.REPAYMENT_AT_DISBURSEMENT.getValue(), entrySet.getKey(), null, AccountTransferType.CHARGE_PAYMENT.getValue(), null, null, null, null, null, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); @@ -777,7 +777,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final boolean isRegularTransaction = true; final boolean isExceptionForBalanceCheck = false; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(actualDisbursementDate, entrySet.getValue(), - PortfolioAccountType.SAVINGS, PortfolioAccountType.LOAN, savingAccountData.accountId(), loan.getId(), + PortfolioAccountType.SAVINGS, PortfolioAccountType.LOAN, savingAccountData.getId(), loan.getId(), "Loan Charge Payment", locale, fmt, null, null, LoanTransactionType.REPAYMENT_AT_DISBURSEMENT.getValue(), entrySet.getKey(), null, AccountTransferType.CHARGE_PAYMENT.getValue(), null, null, null, null, null, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); @@ -1712,7 +1712,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf CommandProcessingResult result = makeLoanRepaymentWithChargeRefundChargeType(LoanTransactionType.CHARGE_REFUND, repaymentJsonCommand.getLoanId(), repaymentJsonCommand, isRecoveryRepayment, chargeRefundChargeType); - Long loanChargeRefundTransactionId = result.resourceId(); + Long loanChargeRefundTransactionId = result.getResourceId(); LoanTransaction newChargeRefundTxn = null; for (LoanTransaction chargeRefundTxn : loanCharge.getLoan().getLoanTransactions()) { if (loanChargeRefundTransactionId.equals(chargeRefundTxn.getId())) { @@ -2181,7 +2181,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final boolean isRegularTransaction = true; final boolean isExceptionForBalanceCheck = false; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(transactionDate, amount, PortfolioAccountType.SAVINGS, - PortfolioAccountType.LOAN, portfolioAccountData.accountId(), loanId, "Loan Charge Payment", locale, fmt, null, null, + PortfolioAccountType.LOAN, portfolioAccountData.getId(), loanId, "Loan Charge Payment", locale, fmt, null, null, LoanTransactionType.CHARGE_PAYMENT.getValue(), loanChargeId, loanInstallmentNumber, AccountTransferType.CHARGE_PAYMENT.getValue(), null, null, null, null, null, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); @@ -2193,7 +2193,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf .withClientId(loan.getClientId()) // .withGroupId(loan.getGroupId()) // .withLoanId(loanId) // - .withSavingsId(portfolioAccountData.accountId()).build(); + .withSavingsId(portfolioAccountData.getId()).build(); } public void disburseLoanToLoan(final Loan loan, final JsonCommand command, final BigDecimal amount) { @@ -2228,10 +2228,9 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final boolean isExceptionForBalanceCheck = false; final boolean isRegularTransaction = true; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(transactionDate, amount.getAmount(), PortfolioAccountType.LOAN, - PortfolioAccountType.SAVINGS, loan.getId(), portfolioAccountData.accountId(), "Loan Disbursement", locale, fmt, - paymentDetail, LoanTransactionType.DISBURSEMENT.getValue(), null, null, null, - AccountTransferType.ACCOUNT_TRANSFER.getValue(), null, null, txnExternalId, loan, null, fromSavingsAccount, - isRegularTransaction, isExceptionForBalanceCheck); + PortfolioAccountType.SAVINGS, loan.getId(), portfolioAccountData.getId(), "Loan Disbursement", locale, fmt, paymentDetail, + LoanTransactionType.DISBURSEMENT.getValue(), null, null, null, AccountTransferType.ACCOUNT_TRANSFER.getValue(), null, null, + txnExternalId, loan, null, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); this.accountTransfersWritePlatformService.transferFunds(accountTransferDTO); } @@ -3107,7 +3106,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final boolean isRegularTransaction = true; final boolean isExceptionForBalanceCheck = false; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(transactionDate, amount, PortfolioAccountType.SAVINGS, - PortfolioAccountType.LOAN, portfolioAccountData.accountId(), loanId, "Loan Charge Payment", locale, fmt, null, null, + PortfolioAccountType.LOAN, portfolioAccountData.getId(), loanId, "Loan Charge Payment", locale, fmt, null, null, LoanTransactionType.CHARGE_PAYMENT.getValue(), loanChargeId, loanInstallmentNumber, AccountTransferType.CHARGE_PAYMENT.getValue(), null, null, null, null, null, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java index 48c511818..2df0fa579 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/api/LoanProductsApiResource.java @@ -277,7 +277,7 @@ public class LoanProductsApiResource { Collection penaltyToGLAccountMappings = null; if (loanProduct.hasAccountingEnabled()) { accountingMappings = this.accountMappingReadPlatformService.fetchAccountMappingDetailsForLoanProduct(productId, - loanProduct.accountingRuleType().getId().intValue()); + loanProduct.getAccountingRule().getId().intValue()); paymentChannelToFundSourceMappings = this.accountMappingReadPlatformService .fetchPaymentTypeToFundSourceMappingsForLoanProduct(productId); feeToGLAccountMappings = this.accountMappingReadPlatformService.fetchFeeToGLAccountMappingsForLoanProduct(productId); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductBorrowerCycleVariationData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductBorrowerCycleVariationData.java index b72b58ad8..04ae7c21a 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductBorrowerCycleVariationData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductBorrowerCycleVariationData.java @@ -20,20 +20,19 @@ package org.apache.fineract.portfolio.loanproduct.data; import java.io.Serializable; import java.math.BigDecimal; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.portfolio.loanproduct.domain.LoanProductParamType; import org.apache.fineract.portfolio.loanproduct.domain.LoanProductValueConditionType; +@Getter public class LoanProductBorrowerCycleVariationData implements Serializable { - @SuppressWarnings("unused") private final Long id; private final Integer borrowerCycleNumber; private final EnumOptionData paramType; private final EnumOptionData valueConditionType; - @SuppressWarnings("unused") private final BigDecimal minValue; - @SuppressWarnings("unused") private final BigDecimal maxValue; private final BigDecimal defaultValue; @@ -48,20 +47,12 @@ public class LoanProductBorrowerCycleVariationData implements Serializable { this.defaultValue = defaultValue; } - public LoanProductParamType getParamType() { + public LoanProductParamType getLoanProductParamType() { return LoanProductParamType.fromInt(this.paramType.getId().intValue()); } - public Integer getBorrowerCycleNumber() { - return this.borrowerCycleNumber; - } - - public LoanProductValueConditionType getValueConditionType() { + public LoanProductValueConditionType getLoanProductValueConditionType() { return LoanProductValueConditionType.fromInt(this.valueConditionType.getId().intValue()); } - public BigDecimal getDefaultValue() { - return this.defaultValue; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductData.java index b9a0ee699..ae969b411 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductData.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; +import lombok.Getter; import org.apache.fineract.accounting.common.AccountingEnumerations; import org.apache.fineract.accounting.common.AccountingRuleType; import org.apache.fineract.accounting.glaccount.data.GLAccountData; @@ -52,10 +53,10 @@ import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData; import org.apache.fineract.portfolio.rate.data.RateData; import org.springframework.util.CollectionUtils; -@SuppressWarnings("unused") /** * Immutable data object to represent loan products. */ +@Getter public class LoanProductData implements Serializable { private final Long id; @@ -104,7 +105,7 @@ public class LoanProductData implements Serializable { private final EnumOptionData amortizationType; private final EnumOptionData interestType; private final EnumOptionData interestCalculationPeriodType; - private final Boolean allowPartialPeriodInterestCalcualtion; + private final Boolean allowPartialPeriodInterestCalculation; private final BigDecimal inArrearsTolerance; private final Long transactionProcessingStrategyId; private final String transactionProcessingStrategyName; @@ -636,7 +637,7 @@ public class LoanProductData implements Serializable { final Integer repaymentEvery, final BigDecimal interestRatePerPeriod, final BigDecimal minInterestRatePerPeriod, final BigDecimal maxInterestRatePerPeriod, final BigDecimal annualInterestRate, final EnumOptionData repaymentFrequencyType, final EnumOptionData interestRateFrequencyType, final EnumOptionData amortizationType, final EnumOptionData interestType, - final EnumOptionData interestCalculationPeriodType, final Boolean allowPartialPeriodInterestCalcualtion, final Long fundId, + final EnumOptionData interestCalculationPeriodType, final Boolean allowPartialPeriodInterestCalculation, final Long fundId, final String fundName, final Long transactionProcessingStrategyId, final String transactionProcessingStrategyName, final Integer graceOnPrincipalPayment, final Integer recurringMoratoriumOnPrincipalPeriods, final Integer graceOnInterestPayment, final Integer graceOnInterestCharged, final Collection charges, @@ -699,7 +700,7 @@ public class LoanProductData implements Serializable { this.amortizationType = amortizationType; this.interestType = interestType; this.interestCalculationPeriodType = interestCalculationPeriodType; - this.allowPartialPeriodInterestCalcualtion = allowPartialPeriodInterestCalcualtion; + this.allowPartialPeriodInterestCalculation = allowPartialPeriodInterestCalculation; this.fundId = fundId; this.fundName = fundName; this.transactionProcessingStrategyId = transactionProcessingStrategyId; @@ -829,7 +830,7 @@ public class LoanProductData implements Serializable { this.amortizationType = productData.amortizationType; this.interestType = productData.interestType; this.interestCalculationPeriodType = productData.interestCalculationPeriodType; - this.allowPartialPeriodInterestCalcualtion = productData.allowPartialPeriodInterestCalcualtion; + this.allowPartialPeriodInterestCalculation = productData.allowPartialPeriodInterestCalculation; this.startDate = productData.startDate; this.closeDate = productData.closeDate; this.status = productData.status; @@ -944,146 +945,10 @@ public class LoanProductData implements Serializable { return chargesLocal; } - public EnumOptionData accountingRuleType() { - return this.accountingRule; - } - public boolean hasAccountingEnabled() { return this.accountingRule.getId() > AccountingRuleType.NONE.getValue(); } - public Long getId() { - return this.id; - } - - public String getName() { - return this.name; - } - - public String getDescription() { - return this.description; - } - - public Long getFundId() { - return this.fundId; - } - - public String getFundName() { - return this.fundName; - } - - public Long getTransactionProcessingStrategyId() { - return this.transactionProcessingStrategyId; - } - - public String getTransactionProcessingStrategyName() { - return this.transactionProcessingStrategyName; - } - - public CurrencyData getCurrency() { - return this.currency; - } - - public BigDecimal getPrincipal() { - return this.principal; - } - - public BigDecimal getMinPrincipal() { - return this.minPrincipal; - } - - public BigDecimal getMaxPrincipal() { - return this.maxPrincipal; - } - - public BigDecimal getInArrearsTolerance() { - return this.inArrearsTolerance; - } - - public Integer getNumberOfRepayments() { - return this.numberOfRepayments; - } - - public Integer getRepaymentEvery() { - return this.repaymentEvery; - } - - public BigDecimal getInterestRatePerPeriod() { - return this.interestRatePerPeriod; - } - - public BigDecimal getAnnualInterestRate() { - return this.annualInterestRate; - } - - public EnumOptionData getRepaymentFrequencyType() { - return this.repaymentFrequencyType; - } - - public Integer getGraceOnPrincipalPayment() { - return this.graceOnPrincipalPayment; - } - - public Integer getRecurringMoratoriumOnPrincipalPeriods() { - return this.recurringMoratoriumOnPrincipalPeriods; - } - - public Integer getGraceOnInterestPayment() { - return this.graceOnInterestPayment; - } - - public Integer getGraceOnInterestCharged() { - return this.graceOnInterestCharged; - } - - public EnumOptionData getInterestRateFrequencyType() { - return this.interestRateFrequencyType; - } - - public EnumOptionData getAmortizationType() { - return this.amortizationType; - } - - public EnumOptionData getInterestType() { - return this.interestType; - } - - public EnumOptionData getInterestCalculationPeriodType() { - return this.interestCalculationPeriodType; - } - - public Collection getFundOptions() { - return this.fundOptions; - } - - public Collection getDelinquencyBucketOptions() { - return delinquencyBucketOptions; - } - - public List getAmortizationTypeOptions() { - return this.amortizationTypeOptions; - } - - public List getInterestTypeOptions() { - return this.interestTypeOptions; - } - - public List getInterestCalculationPeriodTypeOptions() { - return this.interestCalculationPeriodTypeOptions; - } - - public List getRepaymentFrequencyTypeOptions() { - return this.repaymentFrequencyTypeOptions; - } - - public List getInterestRateFrequencyTypeOptions() { - return this.interestRateFrequencyTypeOptions; - } - - public Collection getChargeOptions() { - return this.chargeOptions; - } - @Override public boolean equals(final Object obj) { if (!(obj instanceof LoanProductData)) { @@ -1098,48 +963,12 @@ public class LoanProductData implements Serializable { return this.id.hashCode(); } - public boolean useBorrowerCycle() { - return this.useBorrowerCycle; - } - - public Collection getPrincipalVariationsForBorrowerCycle() { - return this.principalVariationsForBorrowerCycle; - } - - public Collection getInterestRateVariationsForBorrowerCycle() { - return this.interestRateVariationsForBorrowerCycle; - } - - public Collection getNumberOfRepaymentVariationsForBorrowerCycle() { - return this.numberOfRepaymentVariationsForBorrowerCycle; - } - - public Boolean getMultiDisburseLoan() { - return this.multiDisburseLoan; - } - - public BigDecimal getOutstandingLoanBalance() { - return this.outstandingLoanBalance; - } - - public Integer getGraceOnArrearsAgeing() { - return this.graceOnArrearsAgeing; - } - - public EnumOptionData getDaysInMonthType() { - return this.daysInMonthType; - } - - public EnumOptionData getDaysInYearType() { - return this.daysInYearType; - } - public boolean isInterestRecalculationEnabled() { return this.isInterestRecalculationEnabled; } - public LoanProductInterestRecalculationData getInterestRecalculationData() { - return this.interestRecalculationData; + public boolean isIsInterestRecalculationEnabled() { + return this.isInterestRecalculationEnabled; } public Collection overdueFeeCharges() { @@ -1258,98 +1087,50 @@ public class LoanProductData implements Serializable { @SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL") public Boolean allowCompoundingOnEod() { - return isInterestRecalculationEnabled() ? this.interestRecalculationData.allowCompoundingOnEod() : null; - } - - public boolean canDefineInstallmentAmount() { - return this.canDefineInstallmentAmount; - } - - public LoanProductConfigurableAttributes getLoanProductConfigurableAttributes() { - return this.allowAttributeOverrides; + return isInterestRecalculationEnabled() ? this.interestRecalculationData.isAllowCompoundingOnEod() : null; } public void setLoanProductConfigurableAttributes(LoanProductConfigurableAttributes loanProductConfigurableAttributes) { this.allowAttributeOverrides = loanProductConfigurableAttributes; } - public boolean isLinkedToFloatingInterestRates() { + public boolean isIsLinkedToFloatingInterestRates() { return this.isLinkedToFloatingInterestRates; } - public BigDecimal getMinDifferentialLendingRate() { - return this.minDifferentialLendingRate; - } - - public BigDecimal getDefaultDifferentialLendingRate() { - return this.defaultDifferentialLendingRate; - } - - public BigDecimal getMaxDifferentialLendingRate() { - return this.maxDifferentialLendingRate; + public boolean isLinkedToFloatingInterestRates() { + return this.isLinkedToFloatingInterestRates; } public boolean isFloatingInterestRateCalculationAllowed() { return this.isFloatingInterestRateCalculationAllowed; } - public boolean isVariableInstallmentsAllowed() { - return this.allowVariableInstallments; + public boolean isIsFloatingInterestRateCalculationAllowed() { + return this.isFloatingInterestRateCalculationAllowed; } - public Integer getMinimumGapBetweenInstallments() { - return this.minimumGap; - } - - public Integer getMaximumGapBetweenInstallments() { - return this.maximumGap; - } - - public Boolean getAllowPartialPeriodInterestCalcualtion() { - return this.allowPartialPeriodInterestCalcualtion; - } - - public boolean syncExpectedWithDisbursementDate() { - return syncExpectedWithDisbursementDate; - } - - public boolean canUseForTopup() { - return this.canUseForTopup; - } - - public BigDecimal getInterestRateDifferential() { - return this.interestRateDifferential; + public boolean isIsEqualAmortization() { + return isEqualAmortization; } public boolean isEqualAmortization() { return isEqualAmortization; } - public LocalDate getStartDate() { - return startDate; + public Boolean isAllowPartialPeriodInterestCalculation() { + return allowPartialPeriodInterestCalculation; } - public LocalDate getCloseDate() { - return closeDate; + public Boolean isIsAllowPartialPeriodInterestCalculation() { + return allowPartialPeriodInterestCalculation; } - public Integer getMinNumberOfRepayments() { - return minNumberOfRepayments; + public boolean isRatesEnabled() { + return isRatesEnabled; } - public Integer getMaxNumberOfRepayments() { - return maxNumberOfRepayments; - } - - public BigDecimal getMinInterestRatePerPeriod() { - return minInterestRatePerPeriod; - } - - public BigDecimal getMaxInterestRatePerPeriod() { - return maxInterestRatePerPeriod; - } - - public BigDecimal getFixedPrincipalPercentagePerInstallment() { - return fixedPrincipalPercentagePerInstallment; + public boolean isIsRatesEnabled() { + return isRatesEnabled; } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductGuaranteeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductGuaranteeData.java index 1c3f608c5..32fb610e7 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductGuaranteeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductGuaranteeData.java @@ -20,18 +20,17 @@ package org.apache.fineract.portfolio.loanproduct.data; import java.io.Serializable; import java.math.BigDecimal; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +@Getter +@RequiredArgsConstructor public final class LoanProductGuaranteeData implements Serializable { - @SuppressWarnings("unused") private final Long id; - @SuppressWarnings("unused") private final Long productId; - @SuppressWarnings("unused") private final BigDecimal mandatoryGuarantee; - @SuppressWarnings("unused") private final BigDecimal minimumGuaranteeFromOwnFunds; - @SuppressWarnings("unused") private final BigDecimal minimumGuaranteeFromGuarantor; public static LoanProductGuaranteeData instance(final Long id, final Long productId, final BigDecimal mandatoryGuarantee, @@ -43,13 +42,4 @@ public final class LoanProductGuaranteeData implements Serializable { return new LoanProductGuaranteeData(null, null, null, null, null); } - private LoanProductGuaranteeData(final Long id, final Long productId, final BigDecimal mandatoryGuarantee, - final BigDecimal minimumGuaranteeFromOwnFunds, final BigDecimal minimumGuaranteeFromGuarantor) { - this.id = id; - this.productId = productId; - this.mandatoryGuarantee = mandatoryGuarantee; - this.minimumGuaranteeFromGuarantor = minimumGuaranteeFromGuarantor; - this.minimumGuaranteeFromOwnFunds = minimumGuaranteeFromOwnFunds; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductInterestRecalculationData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductInterestRecalculationData.java index 4fb5fa2b8..8c6fe4110 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductInterestRecalculationData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/LoanProductInterestRecalculationData.java @@ -23,16 +23,16 @@ import static org.apache.fineract.portfolio.loanproduct.service.LoanEnumerations import static org.apache.fineract.portfolio.loanproduct.service.LoanEnumerations.rescheduleStrategyType; import java.io.Serializable; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.portfolio.loanproduct.domain.InterestRecalculationCompoundingMethod; import org.apache.fineract.portfolio.loanproduct.domain.LoanPreClosureInterestCalculationStrategy; import org.apache.fineract.portfolio.loanproduct.domain.LoanRescheduleStrategyMethod; +@Getter public class LoanProductInterestRecalculationData implements Serializable { - @SuppressWarnings("unused") private final Long id; - @SuppressWarnings("unused") private final Long productId; private final EnumOptionData interestRecalculationCompoundingType; private final EnumOptionData rescheduleStrategyType; @@ -46,10 +46,8 @@ public class LoanProductInterestRecalculationData implements Serializable { private final EnumOptionData recalculationCompoundingFrequencyNthDay; private final EnumOptionData recalculationCompoundingFrequencyWeekday; private final Integer recalculationCompoundingFrequencyOnDay; - @SuppressWarnings("unused") private final boolean isArrearsBasedOnOriginalSchedule; private final boolean isCompoundingToBePostedAsTransaction; - @SuppressWarnings("unused") private final EnumOptionData preClosureInterestCalculationStrategy; private final boolean allowCompoundingOnEod; @@ -111,60 +109,19 @@ public class LoanProductInterestRecalculationData implements Serializable { isCompoundingToBePostedAsTransaction, preCloseInterestCalculationStrategy, allowCompoundingOnEod); } - public EnumOptionData getInterestRecalculationCompoundingType() { - return this.interestRecalculationCompoundingType; - } - - public EnumOptionData getRescheduleStrategyType() { - return this.rescheduleStrategyType; - - } - - public EnumOptionData getRecalculationRestFrequencyType() { - return this.recalculationRestFrequencyType; - } - - public Integer getRecalculationRestFrequencyInterval() { - return this.recalculationRestFrequencyInterval; - } - - public EnumOptionData getRecalculationCompoundingFrequencyType() { - return this.recalculationCompoundingFrequencyType; - } - - public Integer getRecalculationCompoundingFrequencyInterval() { - return this.recalculationCompoundingFrequencyInterval; - } - - public EnumOptionData getRecalculationRestFrequencyNthDay() { - return this.recalculationRestFrequencyNthDay; - } - - public EnumOptionData getRecalculationRestFrequencyWeekday() { - return this.recalculationRestFrequencyWeekday; - } - - public Integer getRecalculationRestFrequencyOnDay() { - return this.recalculationRestFrequencyOnDay; - } - - public EnumOptionData getRecalculationCompoundingFrequencyNthDay() { - return this.recalculationCompoundingFrequencyNthDay; - } - - public EnumOptionData getRecalculationCompoundingFrequencyWeekday() { - return this.recalculationCompoundingFrequencyWeekday; - } - - public Integer getRecalculationCompoundingFrequencyOnDay() { - return this.recalculationCompoundingFrequencyOnDay; + public boolean isArrearsBasedOnOriginalSchedule() { + return isArrearsBasedOnOriginalSchedule; } public boolean isCompoundingToBePostedAsTransaction() { - return this.isCompoundingToBePostedAsTransaction; + return isCompoundingToBePostedAsTransaction; } - public boolean allowCompoundingOnEod() { - return this.allowCompoundingOnEod; + public boolean isIsArrearsBasedOnOriginalSchedule() { + return isArrearsBasedOnOriginalSchedule; + } + + public boolean isIsCompoundingToBePostedAsTransaction() { + return isCompoundingToBePostedAsTransaction; } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanEnumerations.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanEnumerations.java index 599dd7aba..8f2f01d61 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanEnumerations.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanEnumerations.java @@ -294,9 +294,9 @@ public final class LoanEnumerations { public static EnumOptionData status(final LoanStatusEnumData status) { - Long id = status.id(); - String code = status.code(); - String value = status.value(); + Long id = status.getId(); + String code = status.getCode(); + String value = status.getValue(); return new EnumOptionData(id, code, value); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java index 3bdd52100..77c458b3d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductReadPlatformServiceImpl.java @@ -358,7 +358,7 @@ public class LoanProductReadPlatformServiceImpl implements LoanProductReadPlatfo final Collection numberOfRepaymentVariationsForBorrowerCycle = new ArrayList<>(); if (this.borrowerCycleVariationDatas != null) { for (final LoanProductBorrowerCycleVariationData borrowerCycleVariationData : this.borrowerCycleVariationDatas) { - final LoanProductParamType loanProductParamType = borrowerCycleVariationData.getParamType(); + final LoanProductParamType loanProductParamType = borrowerCycleVariationData.getLoanProductParamType(); if (loanProductParamType.isParamTypePrincipal()) { principalVariationsForBorrowerCycle.add(borrowerCycleVariationData); } else if (loanProductParamType.isParamTypeInterestTate()) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/data/NoteData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/data/NoteData.java index 70101927a..e7f395354 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/data/NoteData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/data/NoteData.java @@ -19,42 +19,29 @@ package org.apache.fineract.portfolio.note.data; import java.time.OffsetDateTime; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; /** * Immutable data object represent note or case information about a client, loan or loan transaction. */ +@Getter public class NoteData { - @SuppressWarnings("unused") private final Long id; - @SuppressWarnings("unused") private final Long clientId; - @SuppressWarnings("unused") private final Long groupId; - @SuppressWarnings("unused") private final Long loanId; - @SuppressWarnings("unused") private final Long loanTransactionId; - @SuppressWarnings("unused") private final Long depositAccountId; - @SuppressWarnings("unused") private final Long savingAccountId; - @SuppressWarnings("unused") private final EnumOptionData noteType; - @SuppressWarnings("unused") private final String note; - @SuppressWarnings("unused") private final Long createdById; - @SuppressWarnings("unused") private final String createdByUsername; - @SuppressWarnings("unused") private final OffsetDateTime createdOn; - @SuppressWarnings("unused") private final Long updatedById; - @SuppressWarnings("unused") private final String updatedByUsername; - @SuppressWarnings("unused") private final OffsetDateTime updatedOn; public NoteData(final Long id, final Long clientId, final Long groupId, final Long loanId, final Long transactionId, diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/data/PaymentDetailData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/data/PaymentDetailData.java index b510a9c4b..4ddd13a92 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/data/PaymentDetailData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymentdetail/data/PaymentDetailData.java @@ -19,61 +19,24 @@ package org.apache.fineract.portfolio.paymentdetail.data; import java.io.Serializable; -import java.util.Objects; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData; /** * Immutable data object representing a payment. */ +@Getter +@EqualsAndHashCode +@RequiredArgsConstructor public class PaymentDetailData implements Serializable { - @SuppressWarnings("unused") private final Long id; - @SuppressWarnings("unused") private final PaymentTypeData paymentType; - @SuppressWarnings("unused") private final String accountNumber; - @SuppressWarnings("unused") private final String checkNumber; - @SuppressWarnings("unused") private final String routingCode; - @SuppressWarnings("unused") private final String receiptNumber; - @SuppressWarnings("unused") private final String bankNumber; - - public PaymentDetailData(final Long id, final PaymentTypeData paymentType, final String accountNumber, final String checkNumber, - final String routingCode, final String receiptNumber, final String bankNumber) { - this.id = id; - this.paymentType = paymentType; - this.accountNumber = accountNumber; - this.checkNumber = checkNumber; - this.routingCode = routingCode; - this.receiptNumber = receiptNumber; - this.bankNumber = bankNumber; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof PaymentDetailData)) { - return false; - } - PaymentDetailData that = (PaymentDetailData) o; - return Objects.equals(id, that.id) && Objects.equals(paymentType, that.paymentType) - && Objects.equals(accountNumber, that.accountNumber) && Objects.equals(checkNumber, that.checkNumber) - && Objects.equals(routingCode, that.routingCode) && Objects.equals(receiptNumber, that.receiptNumber) - && Objects.equals(bankNumber, that.bankNumber); - } - - @Override - public int hashCode() { - return Objects.hash(id, paymentType, accountNumber, checkNumber, routingCode, receiptNumber, bankNumber); - } - - public PaymentTypeData getPaymentType() { - return this.paymentType; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/data/PaymentTypeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/data/PaymentTypeData.java index 14b18d6b9..ee18a19ff 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/data/PaymentTypeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/paymenttype/data/PaymentTypeData.java @@ -19,29 +19,21 @@ package org.apache.fineract.portfolio.paymenttype.data; import java.io.Serializable; -import java.util.Objects; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +@Getter +@EqualsAndHashCode +@AllArgsConstructor public class PaymentTypeData implements Serializable { - @SuppressWarnings("unused") private Long id; - @SuppressWarnings("unused") private String name; - @SuppressWarnings("unused") private String description; - @SuppressWarnings("unused") private Boolean isCashPayment; - @SuppressWarnings("unused") private Long position; - public PaymentTypeData(final Long id, final String name, final String description, final Boolean isCashPayment, final Long position) { - this.id = id; - this.name = name; - this.description = description; - this.isCashPayment = isCashPayment; - this.position = position; - } - public static PaymentTypeData instance(final Long id, final String name, final String description, final Boolean isCashPayment, final Long position) { return new PaymentTypeData(id, name, description, isCashPayment, position); @@ -53,33 +45,4 @@ public class PaymentTypeData implements Serializable { Long position = null; return new PaymentTypeData(id, name, description, isCashPayment, position); } - - public Long getId() { - return id; - } - - public String getName() { - return name; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - - if (!(o instanceof PaymentTypeData)) { - return false; - } - - PaymentTypeData that = (PaymentTypeData) o; - - return Objects.equals(id, that.id) && Objects.equals(name, that.name) && Objects.equals(description, that.description) - && Objects.equals(isCashPayment, that.isCashPayment) && Objects.equals(position, that.position); - } - - @Override - public int hashCode() { - return Objects.hash(id, name, description, isCashPayment, position); - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/data/RateData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/data/RateData.java index 8e421c488..48bb96da7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/data/RateData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/rate/data/RateData.java @@ -21,11 +21,13 @@ package org.apache.fineract.portfolio.rate.data; import java.io.Serializable; import java.math.BigDecimal; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; /** * Bowpi GT Created by Jose on 19/07/2017. */ +@Getter public final class RateData implements Serializable { private Long id; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java index 43a1a0f48..07efc5185 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/FixedDepositAccountsApiResource.java @@ -295,8 +295,8 @@ public class FixedDepositAccountsApiResource { if (settings.isTemplate()) { templateData = (FixedDepositAccountData) this.depositAccountReadPlatformService.retrieveTemplate( - DepositAccountType.FIXED_DEPOSIT, savingsAccount.clientId(), savingsAccount.groupId(), savingsAccount.productId(), - staffInSelectedOfficeOnly); + DepositAccountType.FIXED_DEPOSIT, savingsAccount.getClientId(), savingsAccount.getGroupId(), + savingsAccount.getDepositProductId(), staffInSelectedOfficeOnly); } return FixedDepositAccountData.associationsAndTemplate(savingsAccount, templateData, transactions, charges, linkedAccount, diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java index 929831cda..36dd1e4ed 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/RecurringDepositAccountsApiResource.java @@ -267,8 +267,8 @@ public class RecurringDepositAccountsApiResource { if (settings.isTemplate()) { templateData = (RecurringDepositAccountData) this.depositAccountReadPlatformService.retrieveTemplate( - DepositAccountType.RECURRING_DEPOSIT, savingsAccount.clientId(), savingsAccount.groupId(), savingsAccount.productId(), - staffInSelectedOfficeOnly); + DepositAccountType.RECURRING_DEPOSIT, savingsAccount.getClientId(), savingsAccount.getGroupId(), + savingsAccount.getDepositProductId(), staffInSelectedOfficeOnly); } return RecurringDepositAccountData.withTemplateOptions(savingsAccount, templateData, transactions, charges); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java index 9ecd0ceb9..b2f4f7dea 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsAccountsApiResource.java @@ -260,8 +260,8 @@ public class SavingsAccountsApiResource { SavingsAccountData templateData = null; final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); if (settings.isTemplate()) { - templateData = this.savingsAccountReadPlatformService.retrieveTemplate(savingsAccount.clientId(), savingsAccount.groupId(), - savingsAccount.productId(), staffInSelectedOfficeOnly); + templateData = this.savingsAccountReadPlatformService.retrieveTemplate(savingsAccount.getClientId(), + savingsAccount.getGroupId(), savingsAccount.getSavingsProductId(), staffInSelectedOfficeOnly); } return SavingsAccountData.withTemplateOptions(savingsAccount, templateData, transactions, charges); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java index e9ae7f32e..540aabf2d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java @@ -21,6 +21,7 @@ package org.apache.fineract.portfolio.savings.data; import java.math.BigDecimal; import java.util.Collection; import java.util.HashSet; +import lombok.Getter; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.fineract.infrastructure.core.data.EnumOptionData; @@ -32,6 +33,7 @@ import org.apache.fineract.portfolio.tax.data.TaxGroupData; /** * Immutable data object representing abstract for Fixed and Recurring Deposit Accounts Accounts. */ +@Getter public class DepositAccountData { protected final Long id; @@ -309,26 +311,6 @@ public class DepositAccountData { return null; } - public Long id() { - return this.id; - } - - public Long clientId() { - return this.clientId; - } - - public Long groupId() { - return this.groupId; - } - - public Long productId() { - return this.depositProductId; - } - - public CurrencyData currency() { - return this.currency; - } - @Override public boolean equals(final Object obj) { @@ -353,12 +335,4 @@ public class DepositAccountData { public Collection charges() { return (this.charges == null) ? new HashSet() : this.charges; } - - public EnumOptionData depositType() { - return depositType; - } - - public String accountNo() { - return accountNo; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java index b06272ef1..ec8051265 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java @@ -21,6 +21,7 @@ package org.apache.fineract.portfolio.savings.data; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Collection; +import lombok.Getter; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.fineract.infrastructure.core.data.EnumOptionData; @@ -36,6 +37,7 @@ import org.apache.fineract.portfolio.tax.data.TaxGroupData; /** * Immutable data object representing a Fixed Deposit account. */ +@Getter public final class FixedDepositAccountData extends DepositAccountData { private boolean preClosurePenalApplicable; @@ -129,10 +131,6 @@ public final class FixedDepositAccountData extends DepositAccountData { this.maturityInstructionOptions = null; } - public Integer getRowIndex() { - return rowIndex; - } - public static FixedDepositAccountData instance(final DepositAccountData depositAccountData, final boolean preClosurePenalApplicable, final BigDecimal preClosurePenalInterest, final EnumOptionData preClosurePenalInterestOnType, final Integer minDepositTerm, final Integer maxDepositTerm, final EnumOptionData minDepositTermType, final EnumOptionData maxDepositTermType, @@ -540,15 +538,7 @@ public final class FixedDepositAccountData extends DepositAccountData { return new HashCodeBuilder(17, 37).append(this.id).append(this.accountNo).toHashCode(); } - public BigDecimal getActivationCharge() { - return this.activationCharge; - } - public void setActivationCharge(BigDecimal activationCharge) { this.activationCharge = activationCharge; } - - public Long getTransferToSavingsId() { - return transferToSavingsId; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java index 389643bdb..7fb0c1a22 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java @@ -21,6 +21,7 @@ package org.apache.fineract.portfolio.savings.data; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Collection; +import lombok.Getter; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.fineract.infrastructure.core.data.EnumOptionData; @@ -35,6 +36,7 @@ import org.apache.fineract.portfolio.tax.data.TaxGroupData; /** * Immutable data object representing a Recurring Deposit account. */ +@Getter public final class RecurringDepositAccountData extends DepositAccountData { // additional fields @@ -602,4 +604,11 @@ public final class RecurringDepositAccountData extends DepositAccountData { return new HashCodeBuilder(17, 37).append(this.id).append(this.accountNo).toHashCode(); } + public boolean isIsMandatoryDeposit() { + return this.isMandatoryDeposit; + } + + public boolean isIsCalendarInherited() { + return this.isCalendarInherited; + } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountApplicationTimelineData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountApplicationTimelineData.java index 01b825526..592baeaff 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountApplicationTimelineData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountApplicationTimelineData.java @@ -20,11 +20,14 @@ package org.apache.fineract.portfolio.savings.data; import java.io.Serializable; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * Immutable data object represent the important time-line events of a savings account application. */ -@SuppressWarnings("unused") +@Getter +@RequiredArgsConstructor public class SavingsAccountApplicationTimelineData implements Serializable { private final LocalDate submittedOnDate; @@ -85,42 +88,4 @@ public class SavingsAccountApplicationTimelineData implements Serializable { activatedOnDate, activatedByUsername, activatedByFirstname, activatedByLastname, closedOnDate, closedByUsername, closedByFirstname, closedByLastname); } - - public SavingsAccountApplicationTimelineData(final LocalDate submittedOnDate, final String submittedByUsername, - final String submittedByFirstname, final String submittedByLastname, final LocalDate rejectedOnDate, - final String rejectedByUsername, final String rejectedByFirstname, final String rejectedByLastname, - final LocalDate withdrawnOnDate, final String withdrawnByUsername, final String withdrawnByFirstname, - final String withdrawnByLastname, final LocalDate approvedOnDate, final String approvedByUsername, - final String approvedByFirstname, final String approvedByLastname, final LocalDate activatedOnDate, - final String activatedByUsername, final String activatedByFirstname, final String activatedByLastname, - final LocalDate closedOnDate, final String closedByUsername, final String closedByFirstname, final String closedByLastname) { - this.submittedOnDate = submittedOnDate; - this.submittedByUsername = submittedByUsername; - this.submittedByFirstname = submittedByFirstname; - this.submittedByLastname = submittedByLastname; - this.rejectedOnDate = rejectedOnDate; - this.rejectedByUsername = rejectedByUsername; - this.rejectedByFirstname = rejectedByFirstname; - this.rejectedByLastname = rejectedByLastname; - this.withdrawnOnDate = withdrawnOnDate; - this.withdrawnByUsername = withdrawnByUsername; - this.withdrawnByFirstname = withdrawnByFirstname; - this.withdrawnByLastname = withdrawnByLastname; - this.approvedOnDate = approvedOnDate; - this.approvedByUsername = approvedByUsername; - this.approvedByFirstname = approvedByFirstname; - this.approvedByLastname = approvedByLastname; - this.activatedOnDate = activatedOnDate; - this.activatedByUsername = activatedByUsername; - this.activatedByFirstname = activatedByFirstname; - this.activatedByLastname = activatedByLastname; - this.closedOnDate = closedOnDate; - this.closedByUsername = closedByUsername; - this.closedByFirstname = closedByFirstname; - this.closedByLastname = closedByLastname; - } - - public LocalDate getActivatedOnDate() { - return activatedOnDate; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeData.java index 8eb09e9c3..cd80bcc37 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeData.java @@ -23,6 +23,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.MonthDay; import java.util.Collection; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.organisation.monetary.data.CurrencyData; import org.apache.fineract.portfolio.charge.data.ChargeData; @@ -31,61 +32,35 @@ import org.apache.fineract.portfolio.charge.domain.ChargeTimeType; /** * Immutable data object for Savings Account charge data. */ -@SuppressWarnings("unused") +@Getter public class SavingsAccountChargeData implements Serializable { private final Long id; - private final Long chargeId; - private final Long accountId; - private final String name; - private final EnumOptionData chargeTimeType; - private final LocalDate dueDate; - private final MonthDay feeOnMonthDay; - private final Integer feeInterval; - private final EnumOptionData chargeCalculationType; - private final BigDecimal percentage; - private final BigDecimal amountPercentageAppliedTo; - private final CurrencyData currency; - private final BigDecimal amount; - private final BigDecimal amountPaid; - private final BigDecimal amountWaived; - private final BigDecimal amountWrittenOff; - private final BigDecimal amountOutstanding; - private final BigDecimal amountOrPercentage; - private final boolean penalty; - private final Boolean isActive; - private final Boolean isFreeWithdrawal; - private final Integer freeWithdrawalChargeFrequency; - private final Integer restartFrequency; - private final Integer restartFrequencyEnum; - private final LocalDate inactivationDate; - private final Collection chargeOptions; - private ChargeData chargeData; public SavingsAccountChargeData(Long chargeId, BigDecimal amount, LocalDate dueDate) { @@ -221,7 +196,7 @@ public class SavingsAccountChargeData implements Serializable { this.amountWaived = amountWaived; this.amountWrittenOff = amountWrittenOff; this.amountOutstanding = amountOutstanding; - this.amountOrPercentage = getAmountOrPercentage(); + this.amountOrPercentage = calculateAmountOrPercentage(); this.chargeOptions = chargeOptions; this.penalty = penalty; this.feeOnMonthDay = feeOnMonthDay; @@ -234,7 +209,7 @@ public class SavingsAccountChargeData implements Serializable { this.restartFrequencyEnum = restartFrequencyEnum; } - private BigDecimal getAmountOrPercentage() { + private BigDecimal calculateAmountOrPercentage() { return (this.chargeCalculationType != null) && (this.chargeCalculationType.getId().intValue() > 1) ? this.percentage : this.amount; } @@ -250,28 +225,4 @@ public class SavingsAccountChargeData implements Serializable { return ChargeTimeType.fromInt(this.chargeTimeType.getId().intValue()).isSavingsActivation(); } - public BigDecimal getAmountOutstanding() { - return this.amountOutstanding; - } - - public long getAccountId() { - return this.accountId; - } - - public boolean isPenaltyCharge() { - return this.penalty; - } - - public ChargeData getCharge() { - return this.chargeData; - } - - public Long getId() { - return this.id; - } - - public boolean isPenalty() { - return this.penalty; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java index 0b006421d..292ccde24 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; +import lombok.Getter; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.fineract.infrastructure.core.data.EnumOptionData; @@ -46,6 +47,7 @@ import org.apache.fineract.portfolio.tax.data.TaxGroupData; /** * Immutable data object representing a savings account. */ +@Getter public final class SavingsAccountData implements Serializable { private final Long id; @@ -108,9 +110,7 @@ public final class SavingsAccountData implements Serializable { private final Collection withdrawalFeeTypeOptions; private final Collection chargeOptions; - @SuppressWarnings("unused") private final SavingsAccountChargeData withdrawalFee; - @SuppressWarnings("unused") private final SavingsAccountChargeData annualFee; private final BigDecimal nominalAnnualInterestRateOverdraft; private final BigDecimal minOverdraftForInterestCalculation; @@ -243,10 +243,6 @@ public final class SavingsAccountData implements Serializable { this.newSavingsAccountTransactionData.add(savingsAccountTransactionData); } - public List getNewSavingsAccountTransactionData() { - return this.newSavingsAccountTransactionData; - } - public void setSavingsAccountSummaryData(final SavingsAccountSummaryData savingsAccountSummaryData) { this.savingsAccountSummaryData = savingsAccountSummaryData; } @@ -271,10 +267,6 @@ public final class SavingsAccountData implements Serializable { this.startInterestCalculationDate = startInterestCalculationDate; } - public CurrencyData getCurrency() { - return this.currency; - } - public void setClientData(final ClientData clientData) { this.clientData = clientData; } @@ -292,62 +284,10 @@ public final class SavingsAccountData implements Serializable { this.officeId = officeId; } - public Long getOfficeId() { - return this.officeId; - } - - public String getClientName() { - return clientName; - } - - public String getAccountNo() { - return accountNo; - } - - public BigDecimal getNominalAnnualInterestRate() { - return this.nominalAnnualInterestRate; - } - - public BigDecimal getNominalAnnualInterestRateOverdraft() { - return this.nominalAnnualInterestRateOverdraft; - } - - public boolean isAllowOverdraft() { - return this.allowOverdraft; - } - - public TaxGroupData getTaxGroupData() { - return this.taxGroup; - } - - public Long getClientId() { - return clientId; - } - - public String getSavingsProductName() { - return savingsProductName; - } - - public BigDecimal getMinRequiredOpeningBalance() { - return minRequiredOpeningBalance; - } - - public SavingsAccountApplicationTimelineData getTimeline() { - return timeline; - } - - public Long getId() { - return this.id; - } - public void updateTransactions(final SavingsAccountTransactionData savingsAccountTransactionData) { this.savingsAccountTransactionData.add(savingsAccountTransactionData); } - public boolean withHoldTax() { - return this.withHoldTax; - } - public DepositAccountType depositAccountType() { return DepositAccountType.fromInt(this.depositType.getId().intValue()); } @@ -360,80 +300,36 @@ public final class SavingsAccountData implements Serializable { this.glAccountIdForInterestOnSavings = glAccountIdForInterestOnSavings; } - public Long getGlAccountIdForSavingsControl() { - return this.glAccountIdForSavingsControl; - } - - public Long getGlAccountIdForInterestOnSavings() { - return this.glAccountIdForInterestOnSavings; - } - - public List getSavingsAccountTransactionData() { - return this.savingsAccountTransactionData; - } - public void setHelpers(final SavingsAccountTransactionSummaryWrapper savingsAccountTransactionSummaryWrapper, final SavingsHelper savingsHelper) { this.savingsAccountTransactionSummaryWrapper = savingsAccountTransactionSummaryWrapper; this.savingsHelper = savingsHelper; } - public BigDecimal getMinBalanceForInterestCalculation() { - return this.minBalanceForInterestCalculation; - } - - public BigDecimal getMinOverdraftForInterestCalculation() { - return this.minOverdraftForInterestCalculation; - } - - public EnumOptionData getInterestPostingPeriodType() { - return this.interestPostingPeriodType; - } - public Integer getInterestPostingPeriodTypeId() { return this.interestPostingPeriodType.getId().intValue(); } - public EnumOptionData getDepositType() { - return this.depositType; - } - public Integer getDepositTypeId() { return this.depositType.getId().intValue(); } - public EnumOptionData getInterestCompoundingPeriodType() { - return this.interestCompoundingPeriodType; - } - public Integer getInterestCompoundingPeriodTypeId() { return this.interestCompoundingPeriodType.getId().intValue(); } - public EnumOptionData getInterestCalculationType() { - return this.interestCalculationType; - } - public Integer getInterestCalculationTypeId() { return this.interestCalculationType.getId().intValue(); } - public EnumOptionData getInterestCalculationDaysInYearType() { - return this.interestCalculationDaysInYearType; - } - public Integer getInterestCalculationDaysInYearTypeId() { return this.interestCalculationDaysInYearType.getId().intValue(); } - public LocalDate getLockedInUntilDate() { - return this.lockedInUntilDate; - } - public SavingsAccountTransactionData findLastTransaction(final LocalDate date) { SavingsAccountTransactionData savingsTransaction = null; - List trans = getTransactions(); + List trans = getSavingsAccountTransactionData(); for (final SavingsAccountTransactionData transaction : trans) { if (transaction.isNotReversed() && !transaction.isReversalTransaction() && transaction.occursOn(date)) { savingsTransaction = transaction; @@ -444,10 +340,6 @@ public final class SavingsAccountData implements Serializable { return savingsTransaction; } - public List getTransactions() { - return this.savingsAccountTransactionData; - } - public LocalDate getStartInterestCalculationDate() { LocalDate startInterestCalculationLocalDate = null; if (this.startInterestCalculationDate != null) { @@ -466,10 +358,6 @@ public final class SavingsAccountData implements Serializable { return activationLocalDate; } - public EnumOptionData getLockinPeriodFrequencyType() { - return this.lockinPeriodFrequencyType; - } - public Integer getLockinPeriodFrequencyTypeId() { return this.lockinPeriodFrequencyType.getId().intValue(); } @@ -499,7 +387,7 @@ public final class SavingsAccountData implements Serializable { public Long officeId() { Long officeId = null; if (this.clientData != null) { - officeId = this.clientData.officeId(); + officeId = this.clientData.getOfficeId(); } else if (this.groupId != null) { officeId = this.groupGeneralData.officeId(); } @@ -605,10 +493,6 @@ public final class SavingsAccountData implements Serializable { this.savingsAmountOnHold = null; } - public Integer getRowIndex() { - return rowIndex; - } - public static SavingsAccountData instance(final Long id, final String accountNo, final EnumOptionData depositType, final String externalId, final Long groupId, final String groupName, final Long clientId, final String clientName, final Long productId, final String productName, final Long fieldOfficerId, final String fieldOfficerName, @@ -746,12 +630,7 @@ public final class SavingsAccountData implements Serializable { final BigDecimal minRequiredOpeningBalance = null; final Integer lockinPeriodFrequency = null; final EnumOptionData lockinPeriodFrequencyType = null; - // final BigDecimal withdrawalFeeAmount = null; - // final EnumOptionData withdrawalFeeType = null; final boolean withdrawalFeeForTransfers = false; - // final BigDecimal annualFeeAmount = null; - // final MonthDay annualFeeOnMonthDay = null; - // final LocalDate annualFeeNextDueDate = null; final boolean allowOverdraft = false; final BigDecimal overdraftLimit = null; final BigDecimal nominalAnnualInterestRateOverdraft = null; @@ -885,12 +764,7 @@ public final class SavingsAccountData implements Serializable { final BigDecimal minRequiredOpeningBalance = null; final Integer lockinPeriodFrequency = null; final EnumOptionData lockinPeriodFrequencyType = null; - // final BigDecimal withdrawalFeeAmount = null; - // final EnumOptionData withdrawalFeeType = null; final boolean withdrawalFeeForTransfers = false; - // final BigDecimal annualFeeAmount = null; - // final MonthDay annualFeeOnMonthDay = null; - // final LocalDate annualFeeNextDueDate = null; final boolean allowOverdraft = false; final BigDecimal overdraftLimit = null; final BigDecimal nominalAnnualInterestRateOverdraft = null; @@ -986,12 +860,7 @@ public final class SavingsAccountData implements Serializable { this.minRequiredOpeningBalance = minRequiredOpeningBalance; this.lockinPeriodFrequency = lockinPeriodFrequency; this.lockinPeriodFrequencyType = lockinPeriodFrequencyType; - // this.withdrawalFeeAmount = withdrawalFeeAmount; - // this.withdrawalFeeType = withdrawalFeeType; this.withdrawalFeeForTransfers = withdrawalFeeForTransfers; - // this.annualFeeAmount = annualFeeAmount; - // this.annualFeeOnMonthDay = annualFeeOnMonthDay; - // this.annualFeeNextDueDate = annualFeeNextDueDate; this.summary = summary; this.transactions = transactions; @@ -1009,9 +878,9 @@ public final class SavingsAccountData implements Serializable { // charges available for adding to Savings account this.chargeOptions = chargeOptions; - this.withdrawalFee = getWithdrawalFee(); + this.withdrawalFee = calculateWithdrawalFee(); - this.annualFee = getAnnualFee(); + this.annualFee = calculateAnnualFee(); this.allowOverdraft = allowOverdraft; this.overdraftLimit = overdraftLimit; this.nominalAnnualInterestRateOverdraft = nominalAnnualInterestRateOverdraft; @@ -1032,7 +901,7 @@ public final class SavingsAccountData implements Serializable { this.savingsAmountOnHold = savingsAmountOnHold; } - private SavingsAccountChargeData getWithdrawalFee() { + private SavingsAccountChargeData calculateWithdrawalFee() { for (SavingsAccountChargeData charge : this.charges()) { if (charge.isWithdrawalFee()) { return charge; @@ -1041,7 +910,7 @@ public final class SavingsAccountData implements Serializable { return null; } - private SavingsAccountChargeData getAnnualFee() { + private SavingsAccountChargeData calculateAnnualFee() { for (SavingsAccountChargeData charge : this.charges()) { if (charge.isAnnualFee()) { return charge; @@ -1050,30 +919,6 @@ public final class SavingsAccountData implements Serializable { return null; } - public Long id() { - return this.id; - } - - public Long clientId() { - return this.clientId; - } - - public Long groupId() { - return this.groupId; - } - - public Long productId() { - return this.savingsProductId; - } - - public CurrencyData currency() { - return this.currency; - } - - public SavingsAccountTransactionSummaryWrapper getSavingsAccountTransactionSummaryWrapper() { - return this.savingsAccountTransactionSummaryWrapper; - } - public void setExistingTransactionIds(final Set existingTransactionIds) { if (existingTransactionIds != null) { this.existingTransactionIds.addAll(existingTransactionIds); @@ -1086,10 +931,6 @@ public final class SavingsAccountData implements Serializable { } } - public SavingsHelper getSavingsHelper() { - return this.savingsHelper; - } - @Override public boolean equals(final Object obj) { @@ -1119,23 +960,11 @@ public final class SavingsAccountData implements Serializable { this.datatables = datatables; } - public SavingsAccountSummaryData getSummary() { - return this.summary; - } - - public Set getExistingTransactionIds() { - return this.existingTransactionIds; - } - - public Set getExistingReversedTransactionIds() { - return this.existingReversedTransactionIds; - } - - public SavingsAccountTransactionData getLastSavingsAccountTransaction() { - return lastSavingsAccountTransaction; - } - public void setLastSavingsAccountTransaction(SavingsAccountTransactionData lastSavingsAccountTransaction) { this.lastSavingsAccountTransaction = lastSavingsAccountTransaction; } + + public boolean isIsDormancyTrackingActive() { + return this.isDormancyTrackingActive; + } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountStatusEnumData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountStatusEnumData.java index 22fb82683..f80686ae7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountStatusEnumData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountStatusEnumData.java @@ -19,57 +19,28 @@ package org.apache.fineract.portfolio.savings.data; import java.io.Serializable; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * Immutable data object represent savings account status enumerations. */ +@Getter +@RequiredArgsConstructor public class SavingsAccountStatusEnumData implements Serializable { private final Long id; - @SuppressWarnings("unused") private final String code; - @SuppressWarnings("unused") private final String value; - @SuppressWarnings("unused") private final boolean submittedAndPendingApproval; - @SuppressWarnings("unused") private final boolean approved; - @SuppressWarnings("unused") private final boolean rejected; - @SuppressWarnings("unused") private final boolean withdrawnByApplicant; - @SuppressWarnings("unused") private final boolean active; - @SuppressWarnings("unused") private final boolean closed; - @SuppressWarnings("unused") private final boolean prematureClosed; - @SuppressWarnings("unused") private final boolean transferInProgress; - @SuppressWarnings("unused") private final boolean transferOnHold; - @SuppressWarnings("unused") private final boolean matured; - public SavingsAccountStatusEnumData(final Long id, final String code, final String value, final boolean submittedAndPendingApproval, - final boolean approved, final boolean rejected, final boolean withdrawnByApplicant, final boolean active, final boolean closed, - final boolean prematureClosed, final boolean transferInProgress, final boolean transferOnHold, final boolean matured) { - this.id = id; - this.code = code; - this.value = value; - this.submittedAndPendingApproval = submittedAndPendingApproval; - this.approved = approved; - this.rejected = rejected; - this.withdrawnByApplicant = withdrawnByApplicant; - this.active = active; - this.closed = closed; - this.prematureClosed = prematureClosed; - this.transferInProgress = transferInProgress; - this.transferOnHold = transferOnHold; - this.matured = matured; - } - - public Long id() { - return this.id; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSubStatusEnumData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSubStatusEnumData.java index 55aedaaab..e7468afac 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSubStatusEnumData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSubStatusEnumData.java @@ -19,47 +19,25 @@ package org.apache.fineract.portfolio.savings.data; import java.io.Serializable; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * Immutable data object represent savings account sub-status enumerations. */ +@Getter +@RequiredArgsConstructor public class SavingsAccountSubStatusEnumData implements Serializable { private final Long id; - @SuppressWarnings("unused") private final String code; - @SuppressWarnings("unused") private final String value; - @SuppressWarnings("unused") private final boolean none; - @SuppressWarnings("unused") private final boolean inactive; - @SuppressWarnings("unused") private final boolean dormant; - @SuppressWarnings("unused") private final boolean escheat; - @SuppressWarnings("unused") private final boolean block; - @SuppressWarnings("unused") private final boolean blockCredit; - @SuppressWarnings("unused") private final boolean blockDebit; - public SavingsAccountSubStatusEnumData(final Long id, final String code, final String value, final boolean none, final boolean inactive, - final boolean dormant, final boolean escheat, final boolean block, final boolean blockCredit, final boolean blockDebit) { - this.id = id; - this.code = code; - this.value = value; - this.none = none; - this.inactive = inactive; - this.dormant = dormant; - this.escheat = escheat; - this.block = block; - this.blockCredit = blockCredit; - this.blockDebit = blockDebit; - } - - public Long id() { - return this.id; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java index 9335f8df6..babf3f2d9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java @@ -23,6 +23,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.HashMap; import java.util.List; +import lombok.Getter; import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.organisation.monetary.data.CurrencyData; import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency; @@ -35,7 +36,7 @@ import org.apache.fineract.portfolio.savings.domain.interest.PostingPeriod; /** * Immutable data object representing Savings Account summary information. */ -@SuppressWarnings("unused") +@Getter public class SavingsAccountSummaryData implements Serializable { private final CurrencyData currency; @@ -85,66 +86,6 @@ public class SavingsAccountSummaryData implements Serializable { this.prevInterestPostedTillDate = interestPostedTillDate; } - public LocalDate getPrevInterestPostedTillDate() { - return this.prevInterestPostedTillDate; - } - - public LocalDate getInterestPostedTillDate() { - return this.interestPostedTillDate; - } - - public BigDecimal getTotalInterestPosted() { - return this.totalInterestPosted; - } - - public BigDecimal getTotalWithdrawalFees() { - return this.totalWithdrawalFees; - } - - public BigDecimal getTotalInterestEarned() { - return this.totalInterestEarned; - } - - public BigDecimal getTotalDeposits() { - return this.totalDeposits; - } - - public BigDecimal getTotalWithdrawals() { - return this.totalWithdrawals; - } - - public BigDecimal getTotalFeeCharge() { - return this.totalFeeCharge; - } - - public BigDecimal getAvailableBalance() { - return this.availableBalance; - } - - public BigDecimal getAccountBalance() { - return accountBalance; - } - - public BigDecimal getTotalOverdraftInterestDerived() { - return this.totalOverdraftInterestDerived; - } - - public BigDecimal getTotalWithholdTax() { - return this.totalWithholdTax; - } - - public BigDecimal getTotalPenaltyCharge() { - return this.totalPenaltyCharge; - } - - public BigDecimal getTotalAnnualFees() { - return this.totalAnnualFees; - } - - public LocalDate getLastInterestCalculationDate() { - return this.lastInterestCalculationDate; - } - public BigDecimal getRunningBalanceOnPivotDate() { return this.runningBalanceOnInterestPostingTillDate; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java index 009a3b3af..80235741a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionData.java @@ -29,6 +29,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import lombok.Getter; import org.apache.fineract.infrastructure.codes.data.CodeValueData; import org.apache.fineract.infrastructure.core.domain.LocalDateInterval; import org.apache.fineract.infrastructure.core.service.DateUtils; @@ -49,7 +50,7 @@ import org.springframework.util.CollectionUtils; /** * Immutable data object representing a savings account transaction. */ -@SuppressWarnings("unused") +@Getter public final class SavingsAccountTransactionData implements Serializable { private Long id; @@ -131,10 +132,6 @@ public final class SavingsAccountTransactionData implements Serializable { isReversed, null, isManualTransaction, lienTransaction); } - public List getTaxDetails() { - return this.taxDetails; - } - public boolean isInterestPostingAndNotReversed() { return this.transactionType.isInterestPosting() && isNotReversed(); } @@ -169,7 +166,7 @@ public final class SavingsAccountTransactionData implements Serializable { } public boolean isAmountOnHold() { - return this.transactionType.isAmountOnHold(); + return this.transactionType.isAmountHold(); } public boolean isAnnualFeeAndNotReversed() { @@ -200,18 +197,10 @@ public final class SavingsAccountTransactionData implements Serializable { this.refNo = uuid; } - public String getRefNo() { - return this.refNo; - } - public void setBalanceNumberOfDays(final Integer balanceNumberOfDays) { this.balanceNumberOfDays = balanceNumberOfDays; } - public Integer getBalanceNumberOfDays() { - return this.balanceNumberOfDays; - } - public EndOfDayBalance toEndOfDayBalance(final Money openingBalance) { final MonetaryCurrency currency = openingBalance.getCurrency(); Money endOfDayBalance = openingBalance.copy(); @@ -226,23 +215,15 @@ public final class SavingsAccountTransactionData implements Serializable { } } - return EndOfDayBalance.from(getTransactionLocalDate(), openingBalance, endOfDayBalance, this.balanceNumberOfDays); + return EndOfDayBalance.from(getTransactionDate(), openingBalance, endOfDayBalance, this.balanceNumberOfDays); } public boolean isChargeTransactionAndNotReversed() { return this.transactionType.isChargeTransaction() && isNotReversed(); } - public LocalDate getLastTransactionDate() { - return this.transactionDate; - } - public boolean occursOn(final LocalDate occursOnDate) { - return getTransactionLocalDate().isEqual(occursOnDate); - } - - public LocalDate getTransactionLocalDate() { - return this.transactionDate; + return getTransactionDate().isEqual(occursOnDate); } public EndOfDayBalance toEndOfDayBalanceBoundedBy(final Money openingBalance, final LocalDateInterval boundedBy, @@ -253,7 +234,7 @@ public final class SavingsAccountTransactionData implements Serializable { int numberOfDaysOfBalance = this.balanceNumberOfDays; - LocalDate balanceStartDate = getTransactionLocalDate(); + LocalDate balanceStartDate = getTransactionDate(); LocalDate balanceEndDate = getEndOfBalanceLocalDate(); if (boundedBy.startDate().isAfter(balanceStartDate)) { @@ -286,7 +267,7 @@ public final class SavingsAccountTransactionData implements Serializable { } public boolean fallsWithin(final LocalDateInterval periodInterval) { - final LocalDateInterval balanceInterval = LocalDateInterval.create(getTransactionLocalDate(), getEndOfBalanceLocalDate()); + final LocalDateInterval balanceInterval = LocalDateInterval.create(getTransactionDate(), getEndOfBalanceLocalDate()); return periodInterval.contains(balanceInterval); } @@ -315,9 +296,9 @@ public final class SavingsAccountTransactionData implements Serializable { public static SavingsAccountTransactionData copyTransaction(SavingsAccountTransactionData accountTransaction) { return new SavingsAccountTransactionData(accountTransaction.getSavingsAccountId(), null, accountTransaction.getPaymentDetailData(), - accountTransaction.getTransactionType(), accountTransaction.getTransactionLocalDate(), - accountTransaction.getSubmittedOnDate(), accountTransaction.getAmount(), accountTransaction.isReversed(), null, - accountTransaction.isManualTransaction(), accountTransaction.lienTransaction); + accountTransaction.getTransactionType(), accountTransaction.getTransactionDate(), accountTransaction.getSubmittedOnDate(), + accountTransaction.getAmount(), accountTransaction.isReversed(), null, accountTransaction.isManualTransaction(), + accountTransaction.lienTransaction); } private SavingsAccountTransactionData(final Long savingsId, final Long officeId, final PaymentDetailData paymentDetailData, @@ -378,7 +359,7 @@ public final class SavingsAccountTransactionData implements Serializable { } else { this.balanceEndDate = null; } - this.balanceNumberOfDays = LocalDateInterval.create(getTransactionLocalDate(), endOfBalanceDate).daysInPeriodInclusiveOfEndDate(); + this.balanceNumberOfDays = LocalDateInterval.create(getTransactionDate(), endOfBalanceDate).daysInPeriodInclusiveOfEndDate(); this.cumulativeBalance = Money.of(currency, this.runningBalance).multipliedBy(this.balanceNumberOfDays).getAmount(); } @@ -480,7 +461,7 @@ public final class SavingsAccountTransactionData implements Serializable { thisTransactionData.put("officeId", officeId); thisTransactionData.put("type", transactionType); thisTransactionData.put("reversed", Boolean.valueOf(isReversed())); - thisTransactionData.put("date", getTransactionLocalDate()); + thisTransactionData.put("date", getTransactionDate()); thisTransactionData.put("currency", currencyData); thisTransactionData.put("amount", this.amount); thisTransactionData.put("overdraftAmount", this.overdraftAmount); @@ -497,9 +478,9 @@ public final class SavingsAccountTransactionData implements Serializable { final List> savingsChargesPaidData = new ArrayList<>(); for (final SavingsAccountChargesPaidByData chargePaidBy : this.chargesPaidByData) { final Map savingChargePaidData = new LinkedHashMap<>(); - savingChargePaidData.put("chargeId", chargePaidBy.getSavingsAccountCharge()); - savingChargePaidData.put("isPenalty", chargePaidBy.getSavingsAccountCharge().isPenalty()); - savingChargePaidData.put("savingsChargeId", chargePaidBy.getSavingsAccountCharge().getId()); + savingChargePaidData.put("chargeId", chargePaidBy.getSavingsAccountChargeData()); + savingChargePaidData.put("isPenalty", chargePaidBy.getSavingsAccountChargeData().isPenalty()); + savingChargePaidData.put("savingsChargeId", chargePaidBy.getSavingsAccountChargeData().getId()); savingChargePaidData.put("amount", chargePaidBy.getAmount()); savingsChargesPaidData.add(savingChargePaidData); @@ -512,8 +493,8 @@ public final class SavingsAccountTransactionData implements Serializable { for (final TaxDetailsData taxDetails : this.taxDetails) { final Map taxDetailsData = new HashMap<>(); taxDetailsData.put("amount", taxDetails.getAmount()); - if (taxDetails.getTaxComponent().getCreditAcount() != null) { - taxDetailsData.put("creditAccountId", taxDetails.getTaxComponent().getCreditAcount().getId()); + if (taxDetails.getTaxComponent().getCreditAccount() != null) { + taxDetailsData.put("creditAccountId", taxDetails.getTaxComponent().getCreditAccount().getId()); } taxData.add(taxDetailsData); } @@ -604,80 +585,6 @@ public final class SavingsAccountTransactionData implements Serializable { this.reasonForBlock = null; } - private SavingsAccountTransactionData(Integer id, BigDecimal transactionAmount, LocalDate transactionDate, Long paymentTypeId, - String accountNumber, String checkNumber, String routingCode, String receiptNumber, String bankNumber, Long savingsAccountId, - SavingsAccountTransactionEnumData transactionType, Integer rowIndex, String locale, String dateFormat, - BigDecimal cumulativeBalance, final Boolean lienTransaction) { - this.id = null; - this.transactionType = transactionType; - this.accountId = null; - this.accountNo = null; - this.date = null; - this.currency = null; - this.paymentDetailData = null; - this.amount = null; - this.outstandingChargeAmount = null; - this.runningBalance = null; - this.reversed = false; - this.submittedOnDate = null; - this.interestedPostedAsOn = false; - this.rowIndex = rowIndex; - this.savingsAccountId = savingsAccountId; - this.dateFormat = dateFormat; - this.locale = locale; - this.transactionDate = transactionDate; - this.transactionAmount = transactionAmount; - this.paymentTypeId = paymentTypeId; - this.accountNumber = accountNumber; - this.checkNumber = checkNumber; - this.routingCode = routingCode; - this.receiptNumber = receiptNumber; - this.bankNumber = bankNumber; - this.paymentTypeOptions = null; - this.submittedByUsername = null; - this.note = null; - this.cumulativeBalance = cumulativeBalance; - this.transfer = null; - this.isManualTransaction = false; - this.isReversal = null; - this.originalTransactionId = null; - this.lienTransaction = lienTransaction; - this.releaseTransactionId = null; - this.reasonForBlock = null; - } - - public Integer getRowIndex() { - return rowIndex; - } - - public Long getSavingsAccountId() { - return savingsAccountId; - } - - public PaymentDetailData getPaymentDetailData() { - return this.paymentDetailData; - } - - public Long getId() { - return this.id; - } - - public SavingsAccountTransactionEnumData getTransactionType() { - return transactionType; - } - - public LocalDate getTransactionDate() { - return this.transactionDate; - } - - public LocalDate getDate() { - return this.date; - } - - public BigDecimal getAmount() { - return this.amount; - } - public boolean isWithdrawal() { return this.transactionType.isWithdrawal(); } @@ -686,30 +593,6 @@ public final class SavingsAccountTransactionData implements Serializable { return this.transactionType.isInterestPosting() || this.transactionType.isOverDraftInterestPosting(); } - public boolean isManualTransaction() { - return this.isManualTransaction; - } - - public boolean isReversed() { - return this.reversed; - } - - public BigDecimal getRunningBalance() { - return this.runningBalance; - } - - public BigDecimal getCumulativeBalance() { - return this.cumulativeBalance; - } - - public LocalDate getBalanceEndDate() { - return this.balanceEndDate; - } - - public LocalDate getSubmittedOnDate() { - return this.submittedOnDate; - } - public boolean isWithHoldTaxAndNotReversed() { return SavingsAccountTransactionType.fromInt(this.transactionType.getId().intValue()).isWithHoldTax() && isNotReversed(); } @@ -718,12 +601,8 @@ public final class SavingsAccountTransactionData implements Serializable { return !isReversed(); } - public BigDecimal getOverdraftAmount() { - return this.overdraftAmount; - } - public boolean spansAnyPortionOf(final LocalDateInterval periodInterval) { - final LocalDateInterval balanceInterval = LocalDateInterval.create(getTransactionLocalDate(), getEndOfBalanceLocalDate()); + final LocalDateInterval balanceInterval = LocalDateInterval.create(getTransactionDate(), getEndOfBalanceLocalDate()); return balanceInterval.containsPortionOf(periodInterval); } @@ -889,39 +768,6 @@ public final class SavingsAccountTransactionData implements Serializable { this.reasonForBlock = reasonForBlock; } - private SavingsAccountTransactionData(final Long id, final SavingsAccountTransactionEnumData transactionType, - final PaymentDetailData paymentDetailData, final Long savingsId, final String savingsAccountNo, final LocalDate date, - final CurrencyData currency, final BigDecimal amount, final BigDecimal outstandingChargeAmount, final BigDecimal runningBalance, - final boolean reversed, final AccountTransferData transfer, final Collection paymentTypeOptions, - final LocalDate submittedOnDate, final boolean interestedPostedAsOn, final BigDecimal cumulativeBalance, - final Boolean lienTransaction) { - this.id = id; - this.transactionType = transactionType; - this.paymentDetailData = paymentDetailData; - this.accountId = savingsId; - this.accountNo = savingsAccountNo; - this.date = date; - this.currency = currency; - this.amount = amount; - this.outstandingChargeAmount = outstandingChargeAmount; - this.runningBalance = runningBalance; - this.reversed = reversed; - this.transfer = transfer; - this.paymentTypeOptions = paymentTypeOptions; - this.submittedOnDate = submittedOnDate; - - this.interestedPostedAsOn = interestedPostedAsOn; - this.submittedByUsername = null; - this.note = null; - this.cumulativeBalance = cumulativeBalance; - this.isManualTransaction = false; - this.isReversal = null; - this.originalTransactionId = null; - this.lienTransaction = lienTransaction; - this.releaseTransactionId = null; - this.reasonForBlock = null; - } - public static SavingsAccountTransactionData withWithDrawalTransactionDetails( final SavingsAccountTransactionData savingsAccountTransactionData) { @@ -948,4 +794,11 @@ public final class SavingsAccountTransactionData implements Serializable { return Boolean.TRUE.equals(this.isReversal); } + public boolean isManualTransaction() { + return isManualTransaction; + } + + public boolean isIsManualTransaction() { + return isManualTransaction; + } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionEnumData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionEnumData.java index 46157fcc2..a73a6ebdd 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionEnumData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionEnumData.java @@ -19,11 +19,13 @@ package org.apache.fineract.portfolio.savings.data; import java.io.Serializable; +import lombok.Getter; import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType; /** * Immutable data object represent savings account transaction type enumerations. */ +@Getter public class SavingsAccountTransactionEnumData implements Serializable { private final Long id; @@ -68,98 +70,20 @@ public class SavingsAccountTransactionEnumData implements Serializable { this.escheat = Long.valueOf(SavingsAccountTransactionType.ESCHEAT.getValue()).equals(this.id); this.amountHold = Long.valueOf(SavingsAccountTransactionType.AMOUNT_HOLD.getValue()).equals(this.id); this.amountRelease = Long.valueOf(SavingsAccountTransactionType.AMOUNT_RELEASE.getValue()).equals(this.id); - // this.overdraftFee = - // Long.valueOf(SavingsAccountTransactionType.OVERDRAFT_INTEREST.getValue()).equals(this.id); - } - - public Long getId() { - return this.id; - } - - public String getCode() { - return this.code; - } - - public String getValue() { - return this.value; - } - - public boolean isDeposit() { - return this.deposit; - } - - public boolean isWithdrawal() { - return this.withdrawal; - } - - public boolean isDepositOrWithdrawal() { - return this.deposit || this.withdrawal; - } - - public boolean isInterestPosting() { - return this.interestPosting; } public boolean isIncomeFromInterest() { return this.overdraftInterest; } - public boolean isFeeDeduction() { - return this.feeDeduction; - } - - public boolean isInitiateTransfer() { - return this.initiateTransfer; - } - - public boolean isApproveTransfer() { - return this.approveTransfer; - } - - public boolean isWithdrawTransfer() { - return this.withdrawTransfer; - } - - public boolean isRejectTransfer() { - return this.rejectTransfer; - } - - public boolean isOverdraftInterest() { - return this.overdraftInterest; - } - - public boolean isWrittenoff() { - return this.writtenoff; - } - - public boolean isOverdraftFee() { - return this.overdraftFee; - } - - public boolean isWithholdTax() { - return this.withholdTax; - } - - public boolean isDividendPayout() { - return this.dividendPayout; - } - - public boolean isEscheat() { - return this.escheat; - } - - public boolean isAmountOnHold() { - return this.amountHold; - } - - public boolean isAmountRelease() { - return this.amountRelease; - } - public boolean isOverDraftInterestPosting() { return this.overdraftInterest; } + public boolean isDepositOrWithdrawal() { + return this.deposit || this.withdrawal; + } + public boolean isChargeTransaction() { return isPayCharge() || isWithdrawalFee() || isAnnualFee(); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountAssembler.java index e45626574..32fa95dba 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountAssembler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountAssembler.java @@ -384,11 +384,12 @@ public class SavingsAccountAssembler { // Update last running balance on account level final boolean backdatedTxnsAllowedTill = this.configurationDomainService.retrievePivotDateConfig(); - if (backdatedTxnsAllowedTill && account.getTransactions() != null && account.getSummary().getInterestPostedTillDate() != null) { + if (backdatedTxnsAllowedTill && account.getSavingsAccountTransactionData() != null + && account.getSummary().getInterestPostedTillDate() != null) { List removalList = new ArrayList<>(); - for (int i = 0; i < account.getTransactions().size(); i++) { - SavingsAccountTransactionData savingsAccountTransaction = account.getTransactions().get(i); + for (int i = 0; i < account.getSavingsAccountTransactionData().size(); i++) { + SavingsAccountTransactionData savingsAccountTransaction = account.getSavingsAccountTransactionData().get(i); removalList.add(savingsAccountTransaction); if ((savingsAccountTransaction.isInterestPostingAndNotReversed() || savingsAccountTransaction.isOverdraftInterestAndNotReversed()) @@ -398,7 +399,7 @@ public class SavingsAccountAssembler { break; } } - account.getTransactions().removeAll(removalList); + account.getSavingsAccountTransactionData().removeAll(removalList); } else { account.getSummary().setRunningBalanceOnPivotDate(BigDecimal.ZERO); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargesPaidByData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargesPaidByData.java index 2ed84b522..981d24f86 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargesPaidByData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargesPaidByData.java @@ -20,12 +20,16 @@ package org.apache.fineract.portfolio.savings.domain; import java.io.Serializable; import java.math.BigDecimal; +import lombok.Getter; +import lombok.Setter; import org.apache.fineract.portfolio.savings.data.SavingsAccountChargeData; +@Getter public class SavingsAccountChargesPaidByData implements Serializable { private final Long chargeId; private final BigDecimal amount; + @Setter private SavingsAccountChargeData savingsAccountChargeData; public SavingsAccountChargesPaidByData(final Long chargeId, final BigDecimal amount) { @@ -33,18 +37,6 @@ public class SavingsAccountChargesPaidByData implements Serializable { this.amount = amount; } - public BigDecimal getAmount() { - return this.amount; - } - - public Long getChargeId() { - return this.chargeId; - } - - public void setSavingsAccountChargeData(final SavingsAccountChargeData savingsAccountChargeData) { - this.savingsAccountChargeData = savingsAccountChargeData; - } - public static SavingsAccountChargesPaidByData instance(final Long savingsAccountChargeId, final BigDecimal amount) { return new SavingsAccountChargesPaidByData(savingsAccountChargeId, amount); } @@ -54,11 +46,7 @@ public class SavingsAccountChargesPaidByData implements Serializable { } public boolean isPenaltyCharge() { - return (this.savingsAccountChargeData == null) ? false : this.savingsAccountChargeData.isPenaltyCharge(); - } - - public SavingsAccountChargeData getSavingsAccountCharge() { - return this.savingsAccountChargeData; + return (this.savingsAccountChargeData == null) ? false : this.savingsAccountChargeData.isPenalty(); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java index 223b819b1..3254a87ea 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java @@ -27,7 +27,7 @@ public class SavingsAccountTransactionDataComparator implements Comparator errors = e.getErrors(); for (final ApiParameterError error : errors) { - log.error("Update maturity details failed for account: {} with message {}", depositAccount.accountNo(), + log.error("Update maturity details failed for account: {} with message {}", depositAccount.getAccountNo(), error.getDeveloperMessage()); } } catch (final Exception ex) { - log.error("Update maturity details failed for account: {}", depositAccount.accountNo(), ex); + log.error("Update maturity details failed for account: {}", depositAccount.getAccountNo(), ex); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java index 50fe4dbd9..f59f70987 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountReadPlatformServiceImpl.java @@ -273,7 +273,7 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead .depositAccountOnClosureType(DepositAccountOnClosureType.values()); final Collection paymentTypeOptions = this.paymentTypeReadPlatformService.retrieveAllPaymentTypes(); final Collection savingsAccountDatas = this.savingsAccountReadPlatformService - .retrieveActiveForLookup(account.clientId(), DepositAccountType.SAVINGS_DEPOSIT); + .retrieveActiveForLookup(account.getClientId(), DepositAccountType.SAVINGS_DEPOSIT); if (depositAccountType.isFixedDeposit()) { account = FixedDepositAccountData.withClosureTemplateDetails((FixedDepositAccountData) account, onAccountClosureOptions, paymentTypeOptions, savingsAccountDatas); @@ -299,8 +299,8 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead } else if (depositAccountType.isRecurringDeposit()) { CalendarData calendar = this.calendarReadPlatformService.retrieveCollctionCalendarByEntity(accountId, CalendarEntityType.SAVINGS.getValue()); - final Integer frequency = calendar.interval() == -1 ? 1 : calendar.interval(); - final CalendarFrequencyType calendarFrequencyType = CalendarFrequencyType.fromInt(calendar.frequencyType().getId().intValue()); + final Integer frequency = calendar.getInterval() == -1 ? 1 : calendar.getInterval(); + final CalendarFrequencyType calendarFrequencyType = CalendarFrequencyType.fromInt(calendar.getFrequency().getId().intValue()); final PeriodFrequencyType periodFrequencyType = CalendarFrequencyType.from(calendarFrequencyType); final EnumOptionData frequencyType = CommonEnumerations.termFrequencyType(periodFrequencyType, "recurring.deposit.frequency."); depositAccount = RecurringDepositAccountData.withInterestChartAndRecurringDetails((RecurringDepositAccountData) depositAccount, @@ -331,7 +331,7 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead Collection savingsAccountDatas = null; if (clientId != null) { client = this.clientReadPlatformService.retrieveOne(clientId); - officeId = client.officeId(); + officeId = client.getOfficeId(); savingsAccountDatas = this.savingsAccountReadPlatformService.retrieveActiveForLookup(clientId, DepositAccountType.SAVINGS_DEPOSIT); } @@ -440,7 +440,7 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead String clientName = null; if (client != null) { - clientName = client.displayName(); + clientName = client.getDisplayName(); } String groupName = null; @@ -1181,8 +1181,8 @@ public class DepositAccountReadPlatformServiceImpl implements DepositAccountRead Long clientId = null; String clientName = null; if (this.client != null) { - clientId = this.client.id(); - clientName = this.client.displayName(); + clientId = this.client.getId(); + clientName = this.client.getDisplayName(); } Long groupId = null; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java index c979f8d9a..58c5f6df7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java @@ -180,8 +180,8 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo final boolean isExceptionForBalanceCheck = false; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(account.getActivationLocalDate(), amountForDeposit.getAmount(), PortfolioAccountType.SAVINGS, PortfolioAccountType.SAVINGS, - portfolioAccountData.accountId(), account.getId(), "Account Transfer", locale, fmt, null, null, null, null, - null, AccountTransferType.ACCOUNT_TRANSFER.getValue(), null, null, null, null, account, fromSavingsAccount, + portfolioAccountData.getId(), account.getId(), "Account Transfer", locale, fmt, null, null, null, null, null, + AccountTransferType.ACCOUNT_TRANSFER.getValue(), null, null, null, null, account, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); this.accountTransfersWritePlatformService.transferFunds(accountTransferDTO); } @@ -284,8 +284,8 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo final SavingsAccount fromSavingsAccount = null; final AccountTransferDTO accountTransferDTO = new AccountTransferDTO(account.getActivationLocalDate(), amountForDeposit.getAmount(), PortfolioAccountType.SAVINGS, PortfolioAccountType.SAVINGS, - portfolioAccountData.accountId(), account.getId(), "Account Transfer", locale, fmt, null, null, null, null, - null, AccountTransferType.ACCOUNT_TRANSFER.getValue(), null, null, null, null, account, fromSavingsAccount, + portfolioAccountData.getId(), account.getId(), "Account Transfer", locale, fmt, null, null, null, null, null, + AccountTransferType.ACCOUNT_TRANSFER.getValue(), null, null, null, null, account, fromSavingsAccount, isRegularTransaction, isExceptionForBalanceCheck); this.accountTransfersWritePlatformService.transferFunds(accountTransferDTO); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java index 5d83717a8..41137ca74 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingServiceImpl.java @@ -63,13 +63,13 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI final boolean isSavingsInterestPostingAtCurrentPeriodEnd, final Integer financialYearBeginningMonth, final LocalDate postInterestOnDate, final boolean backdatedTxnsAllowedTill, final SavingsAccountData savingsAccountData) { - Money interestPostedToDate = Money.zero(savingsAccountData.currency()); + Money interestPostedToDate = Money.zero(savingsAccountData.getCurrency()); LocalDate startInterestDate = getStartInterestCalculationDate(savingsAccountData); if (backdatedTxnsAllowedTill && savingsAccountData.getSummary().getInterestPostedTillDate() != null) { - interestPostedToDate = Money.of(savingsAccountData.currency(), savingsAccountData.getSummary().getTotalInterestPosted()); + interestPostedToDate = Money.of(savingsAccountData.getCurrency(), savingsAccountData.getSummary().getTotalInterestPosted()); SavingsAccountTransactionData savingsAccountTransactionData = retrieveLastTransactions(savingsAccountData); - LocalDate lastTransactionDate = savingsAccountTransactionData.getLastTransactionDate(); + LocalDate lastTransactionDate = savingsAccountTransactionData.getTransactionDate(); savingsAccountData.setStartInterestCalculationDate(lastTransactionDate.plusDays(1)); } else { savingsAccountData.setStartInterestCalculationDate(startInterestDate); @@ -98,7 +98,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI if (postingTransaction == null) { SavingsAccountTransactionData newPostingTransaction; - if (interestEarnedToBePostedForPeriod.isGreaterThanOrEqualTo(Money.zero(savingsAccountData.currency()))) { + if (interestEarnedToBePostedForPeriod.isGreaterThanOrEqualTo(Money.zero(savingsAccountData.getCurrency()))) { newPostingTransaction = SavingsAccountTransactionData.interestPosting(savingsAccountData, interestPostingTransactionDate, interestEarnedToBePostedForPeriod, interestPostingPeriod.isUserPosting()); } else { @@ -133,7 +133,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI applyWithHoldTaxForOldTransaction = true; } SavingsAccountTransactionData newPostingTransaction; - if (interestEarnedToBePostedForPeriod.isGreaterThanOrEqualTo(Money.zero(savingsAccountData.currency()))) { + if (interestEarnedToBePostedForPeriod.isGreaterThanOrEqualTo(Money.zero(savingsAccountData.getCurrency()))) { newPostingTransaction = SavingsAccountTransactionData.interestPosting(savingsAccountData, interestPostingTransactionDate, interestEarnedToBePostedForPeriod, interestPostingPeriod.isUserPosting()); @@ -159,13 +159,13 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI // no openingBalance concept supported yet but probably will to // allow // for migrations. - Money openingAccountBalance = Money.zero(savingsAccountData.currency()); + Money openingAccountBalance = Money.zero(savingsAccountData.getCurrency()); if (backdatedTxnsAllowedTill) { if (savingsAccountData.getSummary().getLastInterestCalculationDate() == null) { - openingAccountBalance = Money.zero(savingsAccountData.currency()); + openingAccountBalance = Money.zero(savingsAccountData.getCurrency()); } else { - openingAccountBalance = Money.of(savingsAccountData.currency(), + openingAccountBalance = Money.of(savingsAccountData.getCurrency(), savingsAccountData.getSummary().getRunningBalanceOnPivotDate()); } } @@ -176,10 +176,10 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI } if (!backdatedTxnsAllowedTill) { - savingsAccountData.getSummary().updateSummary(savingsAccountData.currency(), + savingsAccountData.getSummary().updateSummary(savingsAccountData.getCurrency(), savingsAccountData.getSavingsAccountTransactionSummaryWrapper(), savingsAccountData.getSavingsAccountTransactionData()); } else { - savingsAccountData.getSummary().updateSummaryWithPivotConfig(savingsAccountData.currency(), + savingsAccountData.getSummary().updateSummaryWithPivotConfig(savingsAccountData.getCurrency(), savingsAccountData.getSavingsAccountTransactionSummaryWrapper(), null, savingsAccountData.getSavingsAccountTransactionData()); } @@ -209,9 +209,10 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI // Check global configurations and 'pivot' date is null if (backdatedTxnsAllowedTill) { - openingAccountBalance = Money.of(savingsAccountData.currency(), savingsAccountData.getSummary().getRunningBalanceOnPivotDate()); + openingAccountBalance = Money.of(savingsAccountData.getCurrency(), + savingsAccountData.getSummary().getRunningBalanceOnPivotDate()); } else { - openingAccountBalance = Money.zero(savingsAccountData.currency()); + openingAccountBalance = Money.zero(savingsAccountData.getCurrency()); } // update existing transactions so derived balance fields are @@ -249,14 +250,14 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI final SavingsAccountTransactionData transaction = retrieveLastTransactions(savingsAccountData); if (transaction == null) { - periodStartingBalance = Money.zero(savingsAccountData.currency()); + periodStartingBalance = Money.zero(savingsAccountData.getCurrency()); } else { - periodStartingBalance = Money.of(savingsAccountData.currency(), + periodStartingBalance = Money.of(savingsAccountData.getCurrency(), savingsAccountData.getSummary().getRunningBalanceOnPivotDate()); } } else { - periodStartingBalance = Money.zero(savingsAccountData.currency()); + periodStartingBalance = Money.zero(savingsAccountData.getCurrency()); } final SavingsInterestCalculationType interestCalculationType = SavingsInterestCalculationType @@ -264,11 +265,11 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI final BigDecimal interestRateAsFraction = getEffectiveInterestRateAsFraction(mc, upToInterestCalculationDate, savingsAccountData); final BigDecimal overdraftInterestRateAsFraction = getEffectiveOverdraftInterestRateAsFraction(mc, savingsAccountData); final Collection interestPostTransactions = this.savingsHelper.fetchPostInterestTransactionIds(savingsAccountData.getId()); - final Money minBalanceForInterestCalculation = Money.of(savingsAccountData.currency(), + final Money minBalanceForInterestCalculation = Money.of(savingsAccountData.getCurrency(), minBalanceForInterestCalculation(savingsAccountData)); - final Money minOverdraftForInterestCalculation = Money.of(savingsAccountData.currency(), + final Money minOverdraftForInterestCalculation = Money.of(savingsAccountData.getCurrency(), savingsAccountData.getMinOverdraftForInterestCalculation()); - final MonetaryCurrency monetaryCurrency = MonetaryCurrency.fromCurrencyData(savingsAccountData.currency()); + final MonetaryCurrency monetaryCurrency = MonetaryCurrency.fromCurrencyData(savingsAccountData.getCurrency()); for (final LocalDateInterval periodInterval : postingPeriodIntervals) { @@ -294,11 +295,12 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI savingsAccountData.getSummary().updateFromInterestPeriodSummaries(monetaryCurrency, allPostingPeriods); if (backdatedTxnsAllowedTill) { - savingsAccountData.getSummary().updateSummaryWithPivotConfig(savingsAccountData.currency(), - savingsAccountData.getSavingsAccountTransactionSummaryWrapper(), null, savingsAccountData.getTransactions()); + savingsAccountData.getSummary().updateSummaryWithPivotConfig(savingsAccountData.getCurrency(), + savingsAccountData.getSavingsAccountTransactionSummaryWrapper(), null, + savingsAccountData.getSavingsAccountTransactionData()); } else { - savingsAccountData.getSummary().updateSummary(savingsAccountData.currency(), - savingsAccountData.getSavingsAccountTransactionSummaryWrapper(), savingsAccountData.getTransactions()); + savingsAccountData.getSummary().updateSummary(savingsAccountData.getCurrency(), + savingsAccountData.getSavingsAccountTransactionSummaryWrapper(), savingsAccountData.getSavingsAccountTransactionData()); } return allPostingPeriods; @@ -321,7 +323,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI private List retreiveListOfTransactions(final SavingsAccountData savingsAccountData) { final List listOfTransactionsSorted = new ArrayList<>(); - listOfTransactionsSorted.addAll(savingsAccountData.getTransactions()); + listOfTransactionsSorted.addAll(savingsAccountData.getSavingsAccountTransactionData()); final SavingsAccountTransactionDataComparator transactionComparator = new SavingsAccountTransactionDataComparator(); Collections.sort(listOfTransactionsSorted, transactionComparator); @@ -355,15 +357,16 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI } public List getTransactions(final SavingsAccountData savingsAccountData) { - return savingsAccountData.getTransactions(); + return savingsAccountData.getSavingsAccountTransactionData(); } private SavingsAccountTransactionData retrieveLastTransactions(final SavingsAccountData savingsAccountData) { - if (savingsAccountData.getTransactions() != null && savingsAccountData.getTransactions().size() == 1) { - return savingsAccountData.getTransactions().get(0); + if (savingsAccountData.getSavingsAccountTransactionData() != null + && savingsAccountData.getSavingsAccountTransactionData().size() == 1) { + return savingsAccountData.getSavingsAccountTransactionData().get(0); } final List listOfTransactionsSorted = new ArrayList<>(); - listOfTransactionsSorted.addAll(savingsAccountData.getTransactions()); + listOfTransactionsSorted.addAll(savingsAccountData.getSavingsAccountTransactionData()); if (!listOfTransactionsSorted.isEmpty()) { final SavingsAccountTransactionDataComparator transactionComparator = new SavingsAccountTransactionDataComparator(); Collections.sort(listOfTransactionsSorted, transactionComparator); @@ -395,7 +398,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI List transactions = new ArrayList<>(); for (SavingsAccountTransactionData trans : savingsAccountData.getSavingsAccountTransactionData()) { if (trans.isInterestPosting() && trans.isNotReversed() && !trans.isReversalTransaction() && trans.isManualTransaction()) { - transactions.add(trans.getTransactionLocalDate()); + transactions.add(trans.getTransactionDate()); } } return transactions; @@ -413,21 +416,21 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI if (transaction.isReversed() || transaction.isReversalTransaction()) { transaction.zeroBalanceFields(); } else { - Money overdraftAmount = Money.zero(savingsAccountData.currency()); - Money transactionAmount = Money.zero(savingsAccountData.currency()); + Money overdraftAmount = Money.zero(savingsAccountData.getCurrency()); + Money transactionAmount = Money.zero(savingsAccountData.getCurrency()); if (transaction.isCredit() || transaction.isAmountRelease()) { if (runningBalance.isLessThanZero()) { - Money diffAmount = Money.of(savingsAccountData.currency(), transaction.getAmount()).plus(runningBalance); + Money diffAmount = Money.of(savingsAccountData.getCurrency(), transaction.getAmount()).plus(runningBalance); if (diffAmount.isGreaterThanZero()) { - overdraftAmount = Money.of(savingsAccountData.currency(), transaction.getAmount()).minus(diffAmount); + overdraftAmount = Money.of(savingsAccountData.getCurrency(), transaction.getAmount()).minus(diffAmount); } else { - overdraftAmount = Money.of(savingsAccountData.currency(), transaction.getAmount()); + overdraftAmount = Money.of(savingsAccountData.getCurrency(), transaction.getAmount()); } } transactionAmount = transactionAmount.plus(transaction.getAmount()); } else if (transaction.isDebit() || transaction.isAmountOnHold()) { if (runningBalance.isLessThanZero()) { - overdraftAmount = Money.of(savingsAccountData.currency(), transaction.getAmount()); + overdraftAmount = Money.of(savingsAccountData.getCurrency(), transaction.getAmount()); } transactionAmount = transactionAmount.minus(transaction.getAmount()); } @@ -442,7 +445,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI } if (transaction.getId() == null && overdraftAmount.isGreaterThanZero()) { transaction.updateOverdraftAmount(overdraftAmount.getAmount()); - } else if (overdraftAmount.isNotEqualTo(Money.of(savingsAccountData.currency(), transaction.getOverdraftAmount()))) { + } else if (overdraftAmount.isNotEqualTo(Money.of(savingsAccountData.getCurrency(), transaction.getOverdraftAmount()))) { SavingsAccountTransactionData accountTransaction = SavingsAccountTransactionData.copyTransaction(transaction); if (transaction.isChargeTransaction()) { Set chargesPaidBy = transaction.getSavingsAccountChargesPaid(); @@ -488,13 +491,13 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI private boolean createWithHoldTransaction(final BigDecimal amount, final LocalDate date, final SavingsAccountData savingsAccountData) { boolean isTaxAdded = false; - if (savingsAccountData.getTaxGroupData() != null && amount.compareTo(BigDecimal.ZERO) > 0) { + if (savingsAccountData.getTaxGroup() != null && amount.compareTo(BigDecimal.ZERO) > 0) { Map taxSplit = TaxUtils.splitTaxData(amount, date, - savingsAccountData.getTaxGroupData().getTaxAssociations().stream().collect(Collectors.toSet()), amount.scale()); + savingsAccountData.getTaxGroup().getTaxAssociations().stream().collect(Collectors.toSet()), amount.scale()); BigDecimal totalTax = TaxUtils.totalTaxDataAmount(taxSplit); if (totalTax.compareTo(BigDecimal.ZERO) > 0) { SavingsAccountTransactionData withholdTransaction = SavingsAccountTransactionData.withHoldTax(savingsAccountData, date, - Money.of(savingsAccountData.currency(), totalTax), taxSplit); + Money.of(savingsAccountData.getCurrency(), totalTax), taxSplit); savingsAccountData.getSavingsAccountTransactionData().add(withholdTransaction); // if (backdatedTxnsAllowedTill) { @@ -530,11 +533,11 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI final SavingsAccountTransactionData transaction = accountTransactionsSorted.get(i); if (transaction.isNotReversed() && !transaction.isReversalTransaction() && !(transaction.isInterestPostingAndNotReversed() || transaction.isOverdraftInterestAndNotReversed())) { - transaction.updateCumulativeBalanceAndDates(MonetaryCurrency.fromCurrencyData(savingsAccountData.currency()), + transaction.updateCumulativeBalanceAndDates(MonetaryCurrency.fromCurrencyData(savingsAccountData.getCurrency()), endOfBalanceDate); // this transactions transaction date is end of balance date for // previous transaction. - endOfBalanceDate = transaction.getTransactionLocalDate().minusDays(1); + endOfBalanceDate = transaction.getTransactionDate().minusDays(1); } } } @@ -544,7 +547,7 @@ public class SavingsAccountInterestPostingServiceImpl implements SavingsAccountI } private boolean withHoldTax(final SavingsAccountData savingsAccountData) { - return savingsAccountData.withHoldTax(); + return savingsAccountData.isWithHoldTax(); } public DepositAccountType depositAccountType(final SavingsAccountData savingsAccountData) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java index 10c8a1cc2..a6fd7cb16 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java @@ -1118,7 +1118,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead ClientData client = null; if (clientId != null) { client = this.clientReadPlatformService.retrieveOne(clientId); - officeId = client.officeId(); + officeId = client.getOfficeId(); } GroupGeneralData group = null; @@ -1196,7 +1196,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead String clientName = null; if (client != null) { - clientName = client.displayName(); + clientName = client.getDisplayName(); } String groupName = null; @@ -1617,8 +1617,8 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead Long clientId = null; String clientName = null; if (this.client != null) { - clientId = this.client.id(); - clientName = this.client.displayName(); + clientId = this.client.getId(); + clientName = this.client.getDisplayName(); } Long groupId = null; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java index 021870c76..a8d90b00f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java @@ -672,7 +672,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi LOG.info("Interest Posting Ends within {}", endPosting - startPosting); if (!backdatedTxnsAllowedTill) { - List transactions = savingsAccountData.getTransactions(); + List transactions = savingsAccountData.getSavingsAccountTransactionData(); for (SavingsAccountTransactionData accountTransaction : transactions) { if (accountTransaction.getId() == null) { savingsAccountData.setNewSavingsAccountTransactionData(accountTransaction); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountApplicationTimelineData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountApplicationTimelineData.java index 04612791d..ba88f75ec 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountApplicationTimelineData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountApplicationTimelineData.java @@ -20,8 +20,11 @@ package org.apache.fineract.portfolio.shareaccounts.data; import java.io.Serializable; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; -@SuppressWarnings("unused") +@RequiredArgsConstructor +@Getter public class ShareAccountApplicationTimelineData implements Serializable { private final LocalDate submittedOnDate; @@ -77,33 +80,4 @@ public class ShareAccountApplicationTimelineData implements Serializable { approvedByFirstname, approvedByLastname, activatedOnDate, activatedByUsername, activatedByFirstname, activatedByLastname, closedOnDate, closedByUsername, closedByFirstname, closedByLastname); } - - public ShareAccountApplicationTimelineData(final LocalDate submittedOnDate, final String submittedByUsername, - final String submittedByFirstname, final String submittedByLastname, final LocalDate rejectedOnDate, - final String rejectedByUsername, final String rejectedByFirstname, final String rejectedByLastname, - final LocalDate approvedOnDate, final String approvedByUsername, final String approvedByFirstname, - final String approvedByLastname, final LocalDate activatedOnDate, final String activatedByUsername, - final String activatedByFirstname, final String activatedByLastname, final LocalDate closedOnDate, - final String closedByUsername, final String closedByFirstname, final String closedByLastname) { - this.submittedOnDate = submittedOnDate; - this.submittedByUsername = submittedByUsername; - this.submittedByFirstname = submittedByFirstname; - this.submittedByLastname = submittedByLastname; - this.rejectedDate = rejectedOnDate; - this.rejectedByUsername = rejectedByUsername; - this.rejectedByFirstname = rejectedByFirstname; - this.rejectedByLastname = rejectedByLastname; - this.approvedDate = approvedOnDate; - this.approvedByUsername = approvedByUsername; - this.approvedByFirstname = approvedByFirstname; - this.approvedByLastname = approvedByLastname; - this.activatedDate = activatedOnDate; - this.activatedByUsername = activatedByUsername; - this.activatedByFirstname = activatedByFirstname; - this.activatedByLastname = activatedByLastname; - this.closedDate = closedOnDate; - this.closedByUsername = closedByUsername; - this.closedByFirstname = closedByFirstname; - this.closedByLastname = closedByLastname; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountChargeData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountChargeData.java index ae3c2f9c6..03b23fd6c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountChargeData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountChargeData.java @@ -21,11 +21,12 @@ package org.apache.fineract.portfolio.shareaccounts.data; import java.io.Serializable; import java.math.BigDecimal; import java.util.Collection; +import lombok.Getter; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.organisation.monetary.data.CurrencyData; import org.apache.fineract.portfolio.charge.data.ChargeData; -@SuppressWarnings("unused") +@Getter public class ShareAccountChargeData implements Serializable { private final Long id; @@ -105,8 +106,4 @@ public class ShareAccountChargeData implements Serializable { this.chargeOptions = chargeOptions; this.isActive = isActive; } - - private BigDecimal getAmountOrPercentage() { - return this.chargeCalculationType != null && this.chargeCalculationType.getId().intValue() > 1 ? this.percentage : this.amount; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountData.java index be2fd079b..2cd96a4bd 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountData.java @@ -22,6 +22,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; import java.util.Collection; +import lombok.Getter; import org.apache.fineract.accounting.glaccount.data.GLAccountData; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.organisation.monetary.data.CurrencyData; @@ -31,7 +32,7 @@ import org.apache.fineract.portfolio.charge.data.ChargeData; import org.apache.fineract.portfolio.products.data.ProductData; import org.apache.fineract.portfolio.savings.data.SavingsAccountData; -@SuppressWarnings("unused") +@Getter public class ShareAccountData implements Serializable, AccountData { private Long id; @@ -145,10 +146,6 @@ public class ShareAccountData implements Serializable, AccountData { this.clientSavingsAccounts = null; } - public Integer getRowIndex() { - return rowIndex; - } - // Data for template private Collection productOptions; private Collection chargeOptions; @@ -248,14 +245,6 @@ public class ShareAccountData implements Serializable, AccountData { this.currentMarketPrice = currenMarketPrice; } - public Long getProductId() { - return this.productId; - } - - public Long getClientId() { - return this.clientId; - } - public static ShareAccountData template(ShareAccountData data, Collection productOptions, Collection chargeOptions, Collection clientSavingsAccounts, Collection lockinPeriodFrequencyTypeOptions, @@ -298,14 +287,6 @@ public class ShareAccountData implements Serializable, AccountData { clientSavingsAccounts, lockinPeriodFrequencyTypeOptions, minimumActivePeriodFrequencyTypeOption, currenMarketPrice); } - public Long getId() { - return this.id; - } - - public Collection getPurchasedShares() { - return this.purchasedShares; - } - public void setCurrentMarketPrice(final BigDecimal currentMarketPrice) { this.currentMarketPrice = currentMarketPrice; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountDividendData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountDividendData.java index 97241dccc..a955639c0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountDividendData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountDividendData.java @@ -21,9 +21,12 @@ package org.apache.fineract.portfolio.shareaccounts.data; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.data.EnumOptionData; -@SuppressWarnings("unused") +@Getter +@RequiredArgsConstructor public class ShareAccountDividendData implements Serializable { private final Long id; @@ -51,14 +54,4 @@ public class ShareAccountDividendData implements Serializable { this.savingsTransactionId = savingsTransactionId; this.postedDate = null; } - - public ShareAccountDividendData(final Long id, final LocalDate postedDate, final ShareAccountData accountData, final BigDecimal amount, - final EnumOptionData status, final Long savingsTransactionId) { - this.id = id; - this.accountData = accountData; - this.amount = amount; - this.status = status; - this.savingsTransactionId = savingsTransactionId; - this.postedDate = postedDate; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountStatusEnumData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountStatusEnumData.java index 43b55eba7..bb7e11af5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountStatusEnumData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountStatusEnumData.java @@ -19,11 +19,14 @@ package org.apache.fineract.portfolio.shareaccounts.data; import java.io.Serializable; +import lombok.Getter; +import lombok.RequiredArgsConstructor; /** * Immutable data object represent savings account status enumerations. */ -@SuppressWarnings("unused") +@Getter +@RequiredArgsConstructor public class ShareAccountStatusEnumData implements Serializable { private final Long id; @@ -35,20 +38,4 @@ public class ShareAccountStatusEnumData implements Serializable { private final boolean rejected; private final boolean active; private final boolean closed; - - public ShareAccountStatusEnumData(final Long id, final String code, final String value, final boolean submittedAndPendingApproval, - final boolean approved, final boolean rejected, final boolean active, final boolean closed) { - this.id = id; - this.code = code; - this.value = value; - this.submittedAndPendingApproval = submittedAndPendingApproval; - this.approved = approved; - this.rejected = rejected; - this.active = active; - this.closed = closed; - } - - public Long id() { - return this.id; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountTransactionData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountTransactionData.java index db58e2c4f..6e54df6aa 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountTransactionData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/data/ShareAccountTransactionData.java @@ -21,9 +21,12 @@ package org.apache.fineract.portfolio.shareaccounts.data; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.data.EnumOptionData; -@SuppressWarnings("unused") +@Getter +@RequiredArgsConstructor public class ShareAccountTransactionData implements Serializable { private final Long id; @@ -46,38 +49,4 @@ public class ShareAccountTransactionData implements Serializable { private final BigDecimal amountPaid; - public ShareAccountTransactionData(final Long id, final Long accountId, final LocalDate purchasedDate, final Long numberOfShares, - final BigDecimal purchasedPrice, final EnumOptionData status, final EnumOptionData type, final BigDecimal amount, - final BigDecimal chargeAmount, final BigDecimal amountPaid) { - this.id = id; - this.accountId = accountId; - this.purchasedDate = purchasedDate; - this.numberOfShares = numberOfShares; - this.purchasedPrice = purchasedPrice; - this.status = status; - this.type = type; - this.amount = amount; - this.chargeAmount = chargeAmount; - this.amountPaid = amountPaid; - } - - public LocalDate getPurchasedDate() { - return this.purchasedDate; - } - - public Long getNumberOfShares() { - return this.numberOfShares; - } - - public BigDecimal getPurchasedPrice() { - return this.purchasedPrice; - } - - public EnumOptionData getStatus() { - return this.status; - } - - public EnumOptionData getType() { - return this.type; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java index f2ccb0989..085b2b50d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java @@ -121,14 +121,14 @@ public class ShareAccountReadPlatformServiceImpl implements ShareAccountReadPlat final Collection minimumActivePeriodFrequencyTypeOptions = this.shareProductDropdownReadPlatformService .retrieveMinimumActivePeriodFrequencyTypeOptions(); final Collection clientSavingsAccounts = this.savingsAccountReadPlatformService - .retrieveActiveForLookup(clientId, DepositAccountType.SAVINGS_DEPOSIT, productData.getCurrency().code()); - toReturn = new ShareAccountData(client.id(), client.displayName(), productData.getCurrency(), charges, marketPrice, + .retrieveActiveForLookup(clientId, DepositAccountType.SAVINGS_DEPOSIT, productData.getCurrency().getCode()); + toReturn = new ShareAccountData(client.getId(), client.getDisplayName(), productData.getCurrency(), charges, marketPrice, minimumActivePeriodFrequencyTypeOptions, lockinPeriodFrequencyTypeOptions, clientSavingsAccounts, - productData.getNominaltShares()); + productData.getNominalShares()); } else { Collection productOptions = service.retrieveAllForLookup(); final Collection chargeOptions = this.chargeReadPlatformService.retrieveSharesApplicableCharges(); - toReturn = new ShareAccountData(client.id(), client.displayName(), productOptions, chargeOptions); + toReturn = new ShareAccountData(client.getId(), client.getDisplayName(), productOptions, chargeOptions); } return toReturn; } @@ -139,7 +139,7 @@ public class ShareAccountReadPlatformServiceImpl implements ShareAccountReadPlat if (marketDataSet != null && !marketDataSet.isEmpty()) { LocalDate currentDate = DateUtils.getBusinessLocalDate(); for (ShareProductMarketPriceData data : marketDataSet) { - LocalDate futureDate = data.getStartDate(); + LocalDate futureDate = data.getFromDate(); if (currentDate.isAfter(futureDate)) { marketValue = data.getShareValue(); } @@ -170,7 +170,7 @@ public class ShareAccountReadPlatformServiceImpl implements ShareAccountReadPlat .retrieveLockinPeriodFrequencyTypeOptions(); final Collection minimumActivePeriodFrequencyTypeOptions = lockinPeriodFrequencyTypeOptions; final Collection clientSavingsAccounts = this.savingsAccountReadPlatformService - .retrieveActiveForLookup(data.getClientId(), DepositAccountType.SAVINGS_DEPOSIT, productData.getCurrency().code()); + .retrieveActiveForLookup(data.getClientId(), DepositAccountType.SAVINGS_DEPOSIT, productData.getCurrency().getCode()); Collection productOptions = service.retrieveAllForLookup(); final Collection chargeOptions = this.chargeReadPlatformService.retrieveSharesApplicableCharges(); data = ShareAccountData.template(data, productOptions, chargeOptions, clientSavingsAccounts, lockinPeriodFrequencyTypeOptions, diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductData.java index 0a4038cf6..e2f5021a8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductData.java @@ -22,6 +22,7 @@ import java.math.BigDecimal; import java.util.Collection; import java.util.List; import java.util.Map; +import lombok.Getter; import org.apache.fineract.accounting.common.AccountingRuleType; import org.apache.fineract.accounting.glaccount.data.GLAccountData; import org.apache.fineract.accounting.producttoaccountmapping.data.ChargeToGLAccountMapper; @@ -31,6 +32,7 @@ import org.apache.fineract.organisation.monetary.data.CurrencyData; import org.apache.fineract.portfolio.charge.data.ChargeData; import org.apache.fineract.portfolio.products.data.ProductData; +@Getter public final class ShareProductData implements ProductData { private final Long id; @@ -244,86 +246,6 @@ public final class ShareProductData implements ProductData { } - public Long getId() { - return this.id; - } - - public String getName() { - return this.name; - } - - public String getShortName() { - return this.shortName; - } - - public String getDescription() { - return this.description; - } - - public String getExternalId() { - return this.externalId; - } - - public CurrencyData getCurrency() { - return this.currency; - } - - public Long getTotalShares() { - return this.totalShares; - } - - public Long getTotalSharesIssued() { - return this.totalSharesIssued; - } - - public BigDecimal getUnitPrice() { - return this.unitPrice; - } - - public BigDecimal getShareCapital() { - return this.shareCapital; - } - - public Long getMinimumShares() { - return this.minimumShares; - } - - public Long getNominaltShares() { - return this.nominalShares; - } - - public Long getMaximumShares() { - return this.maximumShares; - } - - public Collection getMarketPrice() { - return this.marketPrice; - } - - public Boolean getAllowDividendCalculationForInactiveClients() { - return this.allowDividendCalculationForInactiveClients; - } - - public EnumOptionData getLockPeriod() { - return this.lockPeriodTypeEnum; - } - - public EnumOptionData getMinimumActivePeriodForDividends() { - return this.minimumActivePeriodForDividendsTypeEnum; - } - - public Collection getCurrencyOptions() { - return currencyOptions; - } - - public Collection getChargeOptions() { - return chargeOptions; - } - - public Integer getMinimumActivePeriod() { - return this.minimumActivePeriod; - } - public boolean hasAccountingEnabled() { return this.accountingRule.getId() > AccountingRuleType.NONE.getValue(); } @@ -331,8 +253,4 @@ public final class ShareProductData implements ProductData { public int accountingRuleTypeId() { return this.accountingRule.getId().intValue(); } - - public EnumOptionData getAccountingRule() { - return this.accountingRule; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductMarketPriceData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductMarketPriceData.java index 7c941a94b..64ca9ec27 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductMarketPriceData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/data/ShareProductMarketPriceData.java @@ -20,30 +20,15 @@ package org.apache.fineract.portfolio.shareproducts.data; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +@RequiredArgsConstructor +@Getter public class ShareProductMarketPriceData { private final Long id; - private final LocalDate fromDate; - private final BigDecimal shareValue; - public ShareProductMarketPriceData(final Long id, final LocalDate fromDate, final BigDecimal shareValue) { - this.id = id; - this.fromDate = fromDate; - this.shareValue = shareValue; - } - - public Long getId() { - return this.id; - } - - public LocalDate getStartDate() { - return this.fromDate; - } - - public BigDecimal getShareValue() { - return this.shareValue; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java index c728fae46..5d4d7f355 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/domain/ShareProduct.java @@ -277,13 +277,13 @@ public class ShareProduct extends AbstractAuditableCustom { if (marketPrice != null && marketPrice.size() > 0) { for (ShareProductMarketPriceData data : marketPrice) { if (data.getId() == null) { - ShareProductMarketPrice entity = new ShareProductMarketPrice(data.getStartDate(), data.getShareValue()); + ShareProductMarketPrice entity = new ShareProductMarketPrice(data.getFromDate(), data.getShareValue()); entity.setShareProduct(this); marketPriceTemp.add(entity); } else { for (ShareProductMarketPrice priceData : this.marketPrice) { if (priceData.getId().equals(data.getId())) { - priceData.setStartDate(data.getStartDate()); + priceData.setStartDate(data.getFromDate()); priceData.setShareValue(data.getShareValue()); marketPriceTemp.add(priceData); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductDividendAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductDividendAssembler.java index 91942d2ef..ed7e15cdc 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductDividendAssembler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductDividendAssembler.java @@ -55,8 +55,8 @@ public class ShareProductDividendAssembler { final LocalDate dividendPeriodStartDate, final LocalDate dividendPeriodEndDate) { ShareProductData product = (ShareProductData) this.shareProductReadPlatformService.retrieveOne(productId, false); - MonetaryCurrency currency = new MonetaryCurrency(product.getCurrency().code(), product.getCurrency().decimalPlaces(), - product.getCurrency().currencyInMultiplesOf()); + MonetaryCurrency currency = new MonetaryCurrency(product.getCurrency().getCode(), product.getCurrency().getDecimalPlaces(), + product.getCurrency().getInMultiplesOf()); Collection shareAccountDatas = this.shareAccountReadPlatformService.retrieveAllShareAccountDataForDividends( productId, product.getAllowDividendCalculationForInactiveClients(), dividendPeriodStartDate); if (shareAccountDatas == null || shareAccountDatas.isEmpty()) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java index 93c38ca68..708edb187 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java @@ -24,34 +24,25 @@ import java.time.LocalDate; import java.util.Collection; import java.util.List; import java.util.Map; +import lombok.Getter; import org.apache.fineract.accounting.glaccount.data.GLAccountData; import org.apache.fineract.infrastructure.core.data.EnumOptionData; +@Getter public final class TaxComponentData implements Serializable { - @SuppressWarnings("unused") private final Long id; - @SuppressWarnings("unused") private final String name; - @SuppressWarnings("unused") private final BigDecimal percentage; - @SuppressWarnings("unused") private final EnumOptionData debitAccountType; - @SuppressWarnings("unused") private final GLAccountData debitAccount; - @SuppressWarnings("unused") private final EnumOptionData creditAccountType; - @SuppressWarnings("unused") private final GLAccountData creditAccount; - @SuppressWarnings("unused") private final LocalDate startDate; - @SuppressWarnings("unused") private final Collection taxComponentHistories; // template options - @SuppressWarnings("unused") private final Map> glAccountOptions; - @SuppressWarnings("unused") private final Collection glAccountTypeOptions; public static TaxComponentData instance(final Long id, final String name, final BigDecimal percentage, @@ -144,10 +135,6 @@ public final class TaxComponentData implements Serializable { return percentage; } - public BigDecimal getPercentage() { - return this.percentage; - } - private boolean occursOnDayFrom(final LocalDate target) { return target != null && target.isAfter(startDate()); } @@ -156,13 +143,7 @@ public final class TaxComponentData implements Serializable { LocalDate startDate = null; if (this.startDate != null) { startDate = this.startDate; - // startDate = LocalDate.ofInstant(this.startDate.toInstant(), DateUtils.getDateTimeZoneOfTenant()); } return startDate; } - - public GLAccountData getCreditAcount() { - return this.creditAccount; - } - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxDetailsData.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxDetailsData.java index d0cdb5dfa..9184475aa 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxDetailsData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/data/TaxDetailsData.java @@ -19,31 +19,18 @@ package org.apache.fineract.portfolio.tax.data; import java.math.BigDecimal; -import org.apache.fineract.organisation.monetary.domain.Money; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +@Getter +@AllArgsConstructor +@NoArgsConstructor public class TaxDetailsData { private TaxComponentData taxComponent; + @Setter private BigDecimal amount; - - protected TaxDetailsData() {} - - public TaxDetailsData(final TaxComponentData taxComponent, final BigDecimal amount) { - this.taxComponent = taxComponent; - this.amount = amount; - } - - public TaxComponentData getTaxComponent() { - return this.taxComponent; - } - - public BigDecimal getAmount() { - return this.amount; - } - - public void updateAmount(Money amount) { - this.amount = amount.getAmount(); - } - } diff --git a/fineract-provider/src/test/java/org/apache/fineract/commands/provider/CommandHandlerProviderStepDefinitions.java b/fineract-provider/src/test/java/org/apache/fineract/commands/provider/CommandHandlerProviderStepDefinitions.java index 1d9d804d9..dc865c20a 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/commands/provider/CommandHandlerProviderStepDefinitions.java +++ b/fineract-provider/src/test/java/org/apache/fineract/commands/provider/CommandHandlerProviderStepDefinitions.java @@ -46,7 +46,7 @@ public class CommandHandlerProviderStepDefinitions implements En { }); Then("The command ID matches {long}", (Long id) -> { - assertEquals(id, result.commandId()); + assertEquals(id, result.getCommandId()); }); } } diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapperTest.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapperTest.java new file mode 100644 index 000000000..07207adcd --- /dev/null +++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/support/AvroDateTimeMapperTest.java @@ -0,0 +1,99 @@ +/** + * 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.infrastructure.event.external.service.serialization.mapper.support; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import org.junit.jupiter.api.Test; + +class AvroDateTimeMapperTest { + + private AvroDateTimeMapper underTest = new AvroDateTimeMapper(); + + @Test + public void testMapOffsetDateTimeShouldReturnNullIfNullGiven() { + // given + // when + String result = underTest.mapOffsetDateTime(null); + // then + assertThat(result).isNull(); + } + + @Test + public void testMapOffsetDateTimeShouldReturnStringInIsoOffsetDateTimeFormat() { + // given + String expected = "2022-09-01T14:10:21.000000123+02:00"; + OffsetDateTime source = OffsetDateTime.of(2022, 9, 1, 14, 10, 21, 123, ZoneOffset.of("+02:00")); + // when + String result = underTest.mapOffsetDateTime(source); + // then + assertThat(result).isEqualTo(expected); + OffsetDateTime parsedDateTime = OffsetDateTime.parse(result, DateTimeFormatter.ISO_OFFSET_DATE_TIME); + assertThat(parsedDateTime).isEqualTo(source); + } + + @Test + public void testMapLocalDateTimeShouldReturnNullIfNullGiven() { + // given + // when + String result = underTest.mapLocalDateTime(null); + // then + assertThat(result).isNull(); + } + + @Test + public void testMapLocalDateTimeShouldReturnStringInIsoLocalDateTimeFormat() { + // given + String expected = "2022-09-01T14:10:21.000000123"; + LocalDateTime source = LocalDateTime.of(2022, 9, 1, 14, 10, 21, 123); + // when + String result = underTest.mapLocalDateTime(source); + // then + assertThat(result).isEqualTo(expected); + LocalDateTime parsedDateTime = LocalDateTime.parse(result, DateTimeFormatter.ISO_LOCAL_DATE_TIME); + assertThat(parsedDateTime).isEqualTo(source); + } + + @Test + public void testMapLocalDateShouldReturnNullIfNullGiven() { + // given + // when + String result = underTest.mapLocalDate(null); + // then + assertThat(result).isNull(); + } + + @Test + public void testMapLocalDateShouldReturnStringInIsoLocalDateFormat() { + // given + String expected = "2022-09-01"; + LocalDate source = LocalDate.of(2022, 9, 1); + // when + String result = underTest.mapLocalDate(source); + // then + assertThat(result).isEqualTo(expected); + LocalDate parsedDateTime = LocalDate.parse(result, DateTimeFormatter.ISO_LOCAL_DATE); + assertThat(parsedDateTime).isEqualTo(source); + } +}