From commits-return-7215-archive-asf-public=cust-asf.ponee.io@fineract.apache.org Sun Jan 19 18:58:36 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 60909180677 for ; Sun, 19 Jan 2020 19:58:34 +0100 (CET) Received: (qmail 20159 invoked by uid 500); 19 Jan 2020 18:58:33 -0000 Mailing-List: contact commits-help@fineract.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@fineract.apache.org Delivered-To: mailing list commits@fineract.apache.org Received: (qmail 20148 invoked by uid 99); 19 Jan 2020 18:58:33 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 19 Jan 2020 18:58:33 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 5294E819D0; Sun, 19 Jan 2020 18:58:33 +0000 (UTC) Date: Sun, 19 Jan 2020 18:58:35 +0000 To: "commits@fineract.apache.org" Subject: [fineract] 03/03: remove all trailing spaces in Java files (FINERACT-821) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit From: vorburger@apache.org In-Reply-To: <157946031197.12262.14853010808981849390@gitbox.apache.org> References: <157946031197.12262.14853010808981849390@gitbox.apache.org> X-Git-Host: gitbox.apache.org X-Git-Repo: fineract X-Git-Refname: refs/heads/develop X-Git-Reftype: branch X-Git-Rev: dd7503f296a9b3a44f35804021eeff7f1ed5c5c5 X-Git-NotificationType: diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated Message-Id: <20200119185833.5294E819D0@gitbox.apache.org> This is an automated email from the ASF dual-hosted git repository. vorburger pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract.git commit dd7503f296a9b3a44f35804021eeff7f1ed5c5c5 Author: Michael Vorburger AuthorDate: Sun Jan 12 18:10:04 2020 +0100 remove all trailing spaces in Java files (FINERACT-821) find . -type f -name "*.java" -exec sed -i 's/ *$//' '{}' ';' --- .../AccountNumberPreferencesTest.java | 32 +-- .../fineract/integrationtests/BatchApiTest.java | 22 +- .../BatchRequestsIntegrationTest.java | 6 +- .../integrationtests/CenterIntegrationTest.java | 6 +- .../ClientSavingsIntegrationTest.java | 94 +++---- .../fineract/integrationtests/ClientTest.java | 8 +- .../integrationtests/FixedDepositTest.java | 50 ++-- ...restChargedFromDateSameAsDisbursalDateTest.java | 14 +- .../integrationtests/GlobalConfigurationTest.java | 2 +- .../GroupSavingsIntegrationTest.java | 8 +- .../integrationtests/HookIntegrationTest.java | 2 +- .../LoanDisbursalDateValidationTest.java | 10 +- .../LoanDisbursementDetailsIntegrationTest.java | 40 +-- .../LoanRepaymentRescheduleAtDisbursementTest.java | 46 ++-- .../LoanRescheduleRequestTest.java | 102 +++---- .../LoanReschedulingWithinCenterTest.java | 16 +- .../PasswordPreferencesIntegrationTest.java | 4 +- .../integrationtests/RecurringDepositTest.java | 44 +-- .../SkipRepaymentOnMonthFirstTest.java | 6 +- .../fineract/integrationtests/SystemCodeTest.java | 2 +- .../integrationtests/common/BatchHelper.java | 46 ++-- .../integrationtests/common/CalendarHelper.java | 2 +- .../integrationtests/common/CenterDomain.java | 2 +- .../integrationtests/common/CenterHelper.java | 8 +- .../integrationtests/common/ClientChargesTest.java | 12 +- .../integrationtests/common/ClientHelper.java | 30 +-- .../common/GlobalConfigurationHelper.java | 4 +- .../integrationtests/common/HolidayHelper.java | 8 +- .../integrationtests/common/HookHelper.java | 16 +- .../common/LoanRescheduleRequestHelper.java | 24 +- .../common/PasswordPreferencesHelper.java | 2 +- .../integrationtests/common/PaymentTypeHelper.java | 2 +- .../common/ProvisioningIntegrationTest.java | 24 +- .../common/accounting/AccountHelper.java | 4 +- .../common/accounting/GLAccountBuilder.java | 2 +- .../common/charges/ChargesHelper.java | 28 +- .../FixedDepositAccountStatusChecker.java | 2 +- .../fixeddeposit/FixedDepositProductHelper.java | 6 +- .../common/loans/LoanApplicationTestBuilder.java | 2 +- .../common/loans/LoanDisbursementTestBuilder.java | 12 +- .../common/loans/LoanProductTestBuilder.java | 10 +- .../common/loans/LoanTransactionHelper.java | 46 ++-- .../common/provisioning/ProvisioningHelper.java | 2 +- .../ProvisioningTransactionHelper.java | 28 +- .../RecurringDepositAccountHelper.java | 2 +- .../RecurringDepositAccountStatusChecker.java | 2 +- .../RecurringDepositProductHelper.java | 2 +- .../common/savings/AccountTransferHelper.java | 2 +- .../common/savings/SavingsAccountHelper.java | 18 +- .../common/savings/SavingsStatusChecker.java | 14 +- .../common/shares/DividendsIntegrationTests.java | 32 +-- .../common/shares/ShareAccountHelper.java | 62 ++--- .../shares/ShareAccountIntegrationTests.java | 38 +-- .../shares/ShareDividendsTransactionHelper.java | 8 +- .../common/shares/ShareProductHelper.java | 62 ++--- .../shares/ShareProductTransactionHelper.java | 6 +- .../system/AccountNumberPreferencesHelper.java | 8 +- .../AccountNumberPreferencesTestBuilder.java | 4 +- .../integrationtests/common/system/CodeHelper.java | 6 +- .../loanaccount/guarantor/GuarantorTest.java | 4 +- .../guarantor/GuarantorTestBuilder.java | 2 +- ...VariableInstallmentsDecliningBalanceHelper.java | 30 +-- .../VariableInstallmentsFlatHelper.java | 30 +-- .../VariableInstallmentsIntegrationTest.java | 92 +++---- .../VariableIntallmentsTransactionHelper.java | 14 +- .../fineract/ServerWithMariaDB4jApplication.java | 6 +- .../accrual/api/AccrualAccountingConstants.java | 2 +- .../accounting/closure/data/GLClosureData.java | 2 +- .../AccountingDropdownReadPlatformService.java | 2 +- .../accounting/glaccount/data/GLAccountData.java | 2 +- .../exception/GLAccountDisableException.java | 2 +- .../accounting/journalentry/api/DateParam.java | 2 +- .../api/JournalEntriesApiResource.java | 2 +- .../journalentry/data/JournalEntryData.java | 2 +- .../journalentry/domain/JournalEntry.java | 2 +- .../domain/JournalEntryRepository.java | 4 +- .../DefineOpeningBalanceCommandHandler.java | 2 +- .../service/AccountingProcessorHelper.java | 26 +- .../AccrualBasedAccountingProcessorForLoan.java | 32 +-- ...edAccountingProcessorForClientTransactions.java | 2 +- .../CashBasedAccountingProcessorForLoan.java | 38 +-- .../CashBasedAccountingProcessorForShares.java | 4 +- .../JournalEntryReadPlatformServiceImpl.java | 2 +- ...ournalEntryRunningBalanceUpdateServiceImpl.java | 6 +- .../service/JournalEntryWritePlatformService.java | 4 +- ...EntryWritePlatformServiceJpaRepositoryImpl.java | 4 +- ...tToGLAccountMappingFromApiJsonDeserializer.java | 20 +- .../LoanProductToGLAccountMappingHelper.java | 2 +- .../service/ProductToGLAccountMappingHelper.java | 10 +- ...oductToGLAccountMappingReadPlatformService.java | 2 +- ...ToGLAccountMappingWritePlatformServiceImpl.java | 2 +- .../SavingsProductToGLAccountMappingHelper.java | 4 +- .../ShareProductToGLAccountMappingHelper.java | 2 +- .../constant/ProvisioningEntriesApiConstants.java | 6 +- .../data/LoanProductProvisioningEntryData.java | 22 +- .../provisioning/data/ProvisioningEntryData.java | 18 +- .../domain/LoanProductProvisioningEntry.java | 2 +- .../provisioning/domain/ProvisioningEntry.java | 20 +- .../domain/ProvisioningEntryRepository.java | 4 +- ...eateProvisioningEntryRequestCommandHandler.java | 2 +- .../ProvisioningEntriesReadPlatformService.java | 12 +- ...ProvisioningEntriesReadPlatformServiceImpl.java | 6 +- .../ProvisioningEntriesWritePlatformService.java | 6 +- ...triesWritePlatformServiceJpaRepositoryImpl.java | 10 +- .../accounting/rule/data/AccountingRuleData.java | 2 +- .../fineract/adhocquery/api/AdHocApiResource.java | 8 +- .../adhocquery/api/AdHocJsonInputParams.java | 2 +- .../apache/fineract/adhocquery/data/AdHocData.java | 6 +- .../apache/fineract/adhocquery/domain/AdHoc.java | 22 +- .../adhocquery/service/AdHocDataValidator.java | 6 +- .../service/AdHocReadPlatformService.java | 2 +- .../service/AdHocReadPlatformServiceImpl.java | 4 +- .../AdHocScheduledJobRunnerServiceImpl.java | 12 +- .../service/AdHocWritePlatformService.java | 2 +- ...AdHocWritePlatformServiceJpaRepositoryImpl.java | 4 +- .../fineract/batch/api/BatchApiResource.java | 10 +- .../fineract/batch/command/CommandContext.java | 8 +- .../fineract/batch/command/CommandStrategy.java | 6 +- .../batch/command/CommandStrategyProvider.java | 8 +- .../internal/ActivateClientCommandStrategy.java | 6 +- .../command/internal/ApplyLoanCommandStrategy.java | 4 +- .../internal/ApplySavingsCommandStrategy.java | 4 +- .../internal/ApproveLoanCommandStrategy.java | 8 +- .../internal/CollectChargesCommandStrategy.java | 4 +- .../internal/CreateChargeCommandStrategy.java | 4 +- .../internal/CreateClientCommandStrategy.java | 4 +- .../internal/DisburseLoanCommandStrategy.java | 10 +- .../command/internal/UnknownCommandStrategy.java | 2 +- .../internal/UpdateClientCommandStrategy.java | 4 +- .../apache/fineract/batch/domain/BatchRequest.java | 32 +-- .../fineract/batch/domain/BatchResponse.java | 22 +- .../org/apache/fineract/batch/domain/Header.java | 14 +- .../fineract/batch/exception/ErrorHandler.java | 10 +- .../apache/fineract/batch/exception/ErrorInfo.java | 18 +- .../serialization/BatchRequestJsonHelper.java | 6 +- .../fineract/batch/service/BatchApiService.java | 8 +- .../batch/service/BatchApiServiceImpl.java | 8 +- .../fineract/batch/service/ResolutionHelper.java | 14 +- .../fineract/commands/domain/CommandSource.java | 14 +- .../fineract/commands/domain/CommandWrapper.java | 4 +- ...onAsCommandIsNotApprovedByCheckerException.java | 4 +- .../service/AuditReadPlatformServiceImpl.java | 6 +- .../commands/service/CommandProcessingService.java | 2 +- .../commands/service/CommandWrapperBuilder.java | 50 ++-- .../SynchronousCommandProcessingService.java | 2 +- .../data/AccountNumberFormatDataValidator.java | 2 +- .../domain/EntityAccountType.java | 6 +- ...ormatWritePlatformServiceJpaRepositoryImpl.java | 2 +- .../populator/AbstractWorkbookPopulator.java | 6 +- .../bulkimport/populator/ExtrasSheetPopulator.java | 6 +- .../bulkimport/populator/GroupSheetPopulator.java | 6 +- .../populator/LoanProductSheetPopulator.java | 8 +- .../bulkimport/populator/OfficeSheetPopulator.java | 4 +- .../populator/SharedProductsSheetPopulator.java | 2 +- .../centers/CentersWorkbookPopulator.java | 30 +-- .../chartofaccounts/ChartOfAccountsWorkbook.java | 2 +- .../client/ClientPersonWorkbookPopulator.java | 2 +- .../populator/group/GroupsWorkbookPopulator.java | 32 +-- .../guarantor/GuarantorWorkbookPopulator.java | 26 +- .../JournalEntriesWorkbookPopulator.java | 16 +- .../BulkImportWorkbookPopulatorServiceImpl.java | 4 +- .../service/BulkImportWorkbookServiceImpl.java | 2 +- .../service/RuntimeDelegatingCacheManager.java | 2 +- .../campaigns/constants/CampaignType.java | 2 +- .../campaigns/email/ScheduledEmailConstants.java | 28 +- .../email/data/EmailCampaignValidator.java | 12 +- .../email/data/EmailConfigurationData.java | 12 +- .../email/data/ScheduledEmailEnumerations.java | 18 +- .../campaigns/email/domain/EmailConfiguration.java | 12 +- .../campaigns/email/domain/EmailMessage.java | 14 +- .../domain/ScheduledEmailAttachmentFileFormat.java | 30 +-- ...cheduledEmailStretchyReportParamDateOption.java | 26 +- .../EmailConfigurationSMTPUsernameNotValid.java | 2 +- ...ailCampaignWritePlatformCommandHandlerImpl.java | 4 +- .../EmailConfigurationReadPlatformService.java | 2 +- .../EmailConfigurationReadPlatformServiceImpl.java | 26 +- .../email/service/EmailReadPlatformService.java | 10 +- .../service/EmailReadPlatformServiceImpl.java | 6 +- .../campaigns/helper/SmsConfigUtils.java | 4 +- .../sms/constants/SmsCampaignEnumerations.java | 4 +- .../campaigns/sms/data/SmsCampaignData.java | 12 +- .../campaigns/sms/data/SmsProviderData.java | 10 +- .../campaigns/sms/domain/SmsCampaign.java | 16 +- .../sms/domain/SmsCampaignRepository.java | 4 +- .../sms/serialization/SmsCampaignValidator.java | 8 +- .../sms/service/SmsCampaignDomainServiceImpl.java | 68 ++--- ...SmsCampaignDropdownReadPlatformServiceImpl.java | 2 +- .../SmsCampaignReadPlatformServiceImpl.java | 4 +- .../service/SmsCampaignWritePlatformService.java | 2 +- .../SmsCampaignWritePlatformServiceJpaImpl.java | 20 +- .../infrastructure/codes/CodeConstants.java | 2 +- .../codes/api/CodeValuesApiResource.java | 6 +- .../infrastructure/codes/data/CodeValueData.java | 18 +- .../fineract/infrastructure/codes/domain/Code.java | 2 +- .../infrastructure/codes/domain/CodeValue.java | 10 +- .../codes/domain/CodeValueRepository.java | 2 +- .../codes/domain/CodeValueRepositoryWrapper.java | 6 +- .../exception/CodeValueNotFoundException.java | 2 +- .../service/CodeValueReadPlatformService.java | 6 +- .../service/CodeValueReadPlatformServiceImpl.java | 2 +- .../api/GlobalConfigurationApiResource.java | 2 +- .../data/GlobalConfigurationDataValidator.java | 2 +- .../data/GlobalConfigurationPropertyData.java | 6 +- .../domain/ConfigurationDomainService.java | 14 +- .../domain/ConfigurationDomainServiceJpa.java | 6 +- .../domain/ExternalServicePropertiesPK.java | 6 +- .../domain/GlobalConfigurationProperty.java | 10 +- ...GlobalConfigurationPropertyCannotBeModfied.java | 2 +- .../service/ConfigurationReadPlatformService.java | 2 +- .../ConfigurationReadPlatformServiceImpl.java | 10 +- .../service/ExternalServicesConstants.java | 8 +- ...ernalServicesPropertiesReadPlatformService.java | 2 +- ...lServicesPropertiesReadPlatformServiceImpl.java | 2 +- ...ationWritePlatformServiceJpaRepositoryImpl.java | 2 +- .../core/api/ApiParameterHelper.java | 2 +- .../infrastructure/core/api/JsonCommand.java | 20 +- .../infrastructure/core/api/JsonQuery.java | 2 +- .../infrastructure/core/boot/JDBCDriverConfig.java | 14 +- .../core/boot/WebXmlOauthConfiguration.java | 4 +- .../core/boot/db/DataSourceConfiguration.java | 4 +- .../core/data/CommandProcessingResultBuilder.java | 4 +- .../core/data/DataValidatorBuilder.java | 16 +- .../infrastructure/core/data/EnumOptionData.java | 2 +- .../core/data/PaginationParameters.java | 8 +- .../core/domain/AbstractAuditableCustom.java | 20 +- .../domain/FineractPlatformTenantConnection.java | 44 +-- .../infrastructure/core/domain/JdbcSupport.java | 6 +- .../core/domain/MySQLDictionaryCustom.java | 2 +- .../AccessDeniedExceptionMapper.java | 2 +- .../BadCredentialsExceptionMapper.java | 2 +- .../InvalidTenantIdentifierExceptionMapper.java | 2 +- .../NoAuthorizationExceptionMapper.java | 2 +- .../PlatformApiDataValidationExceptionMapper.java | 2 +- .../PlatformDataIntegrityExceptionMapper.java | 2 +- .../PlatformDomainRuleExceptionMapper.java | 2 +- .../PlatformInternalServerExceptionMapper.java | 2 +- .../PlatformResourceNotFoundExceptionMapper.java | 2 +- .../PlatformServiceUnavailableExceptionMapper.java | 2 +- .../UnrecognizedQueryParamExceptionMapper.java | 2 +- .../CommandProcessingResultJsonSerializer.java | 4 +- .../core/serialization/CommandSerializer.java | 4 +- ...hPrettyPrintingOffJsonSerializerGoogleGson.java | 4 +- ...thPrettyPrintingOnJsonSerializerGoogleGson.java | 4 +- .../serialization/FromApiJsonDeserializer.java | 2 +- .../serialization/FromCommandJsonDeserializer.java | 2 +- .../core/serialization/FromJsonHelper.java | 2 +- .../core/serialization/JsonParserHelper.java | 10 +- ...AbandonedConnectionCleanupShutdownListener.java | 4 +- .../service/GmailBackedPlatformEmailService.java | 4 +- .../core/service/RoutingDataSource.java | 4 +- .../service/RoutingDataSourceServiceFactory.java | 4 +- .../core/service/SearchParameters.java | 18 +- .../core/service/ThreadLocalContextUtil.java | 6 +- .../TomcatJdbcDataSourcePerTenantService.java | 8 +- .../api/CreditBureauConfigurationAPI.java | 6 +- .../domain/CreditBureauLoanProductMapping.java | 26 +- .../domain/OrganisationCreditBureau.java | 2 +- ...CreditBureauCommandFromApiJsonDeserializer.java | 22 +- ...uLoanProductCommandFromApiJsonDeserializer.java | 46 ++-- ...LoanProductMappingWritePlatformServiceImpl.java | 4 +- ...ationCreditBureauWritePlatflormServiceImpl.java | 2 +- .../dataqueries/data/DatatableData.java | 2 +- .../infrastructure/dataqueries/domain/Report.java | 4 +- .../dataqueries/domain/ReportParameterUsage.java | 2 +- .../domain/ReportParameterUsageRepository.java | 2 +- .../domain/ReportRepositoryWrapper.java | 10 +- .../dataqueries/service/ReadReportingService.java | 2 +- .../service/ReadReportingServiceImpl.java | 16 +- .../service/ReadWriteNonCoreDataServiceImpl.java | 16 +- .../documentmanagement/api/ImagesApiResource.java | 2 +- .../contentrepository/ContentRepositoryUtils.java | 8 +- .../FileSystemContentRepository.java | 2 +- .../contentrepository/S3ContentRepository.java | 4 +- .../service/ImageReadPlatformServiceImpl.java | 2 +- .../data/FineractEntityAccessData.java | 8 +- .../data/FineractEntityToEntityMappingData.java | 2 +- .../entityaccess/domain/FineractEntity.java | 8 +- .../entityaccess/domain/FineractEntityAccess.java | 24 +- .../domain/FineractEntityAccessType.java | 18 +- .../domain/FineractEntityRelation.java | 32 +-- .../FineractEntityRelationRepositoryWrapper.java | 4 +- .../FineractEntityToEntityMappingRepository.java | 6 +- .../entityaccess/domain/FineractEntityType.java | 16 +- ...FineractEntityAccessConfigurationException.java | 2 +- .../FineractEntityAccessNotFoundException.java | 2 +- .../NotOfficeSpecificProductException.java | 2 +- .../CreateEntityToEntityMappingCommandHandler.java | 2 +- .../UpdateEntityToEntityMappingCommandHandler.java | 2 +- .../FineractEntityAccessReadServiceImpl.java | 16 +- .../service/FineractEntityAccessUtil.java | 24 +- .../service/FineractEntityAccessWriteService.java | 2 +- .../FineractEntityAccessWriteServiceImpl.java | 2 +- .../fineract/infrastructure/gcm/GcmConstants.java | 14 +- .../gcm/api/DeviceRegistrationApiResource.java | 6 +- .../infrastructure/gcm/domain/Message.java | 12 +- .../infrastructure/gcm/domain/Notification.java | 8 +- .../gcm/domain/NotificationConfigurationData.java | 8 +- .../fineract/infrastructure/gcm/domain/Result.java | 10 +- .../fineract/infrastructure/gcm/domain/Sender.java | 6 +- .../hooks/domain/HookConfiguration.java | 2 +- .../hooks/processor/data/SmsProviderData.java | 8 +- .../infrastructure/jobs/annotation/CronTarget.java | 2 +- .../infrastructure/jobs/service/JobName.java | 2 +- .../jobs/service/SchedulerJobListener.java | 6 +- .../service/SchedulerJobRunnerReadServiceImpl.java | 2 +- .../jobs/service/SchedulerTriggerListener.java | 2 +- .../ReportMailingJobConstants.java | 26 +- .../api/ReportMailingJobApiResource.java | 50 ++-- .../api/ReportMailingJobRunHistoryApiResource.java | 16 +- .../data/ReportMailingJobConfigurationData.java | 16 +- .../data/ReportMailingJobData.java | 66 ++--- .../ReportMailingJobEmailAttachmentFileFormat.java | 58 ++-- .../data/ReportMailingJobEmailData.java | 6 +- .../data/ReportMailingJobPreviousRunStatus.java | 26 +- .../data/ReportMailingJobRunHistoryData.java | 16 +- ...ortMailingJobStretchyReportParamDateOption.java | 50 ++-- .../data/ReportMailingJobTimelineData.java | 4 +- .../reportmailingjob/domain/ReportMailingJob.java | 298 ++++++++++----------- .../domain/ReportMailingJobConfiguration.java | 16 +- .../ReportMailingJobConfigurationRepository.java | 8 +- .../ReportMailingJobEmailAttachmentFileFormat.java | 34 +-- .../domain/ReportMailingJobRepository.java | 2 +- .../domain/ReportMailingJobRepositoryWrapper.java | 16 +- .../domain/ReportMailingJobRunHistory.java | 36 +-- ...rtMailingJobConfigurationNotFoundException.java | 2 +- .../ReportMailingJobNotFoundException.java | 2 +- .../CreateReportMailingJobCommandHandler.java | 2 +- .../DeleteReportMailingJobCommandHandler.java | 2 +- .../UpdateReportMailingJobCommandHandler.java | 2 +- .../reportmailingjob/helper/IPv4Helper.java | 52 ++-- ...MailingJobConfigurationReadPlatformService.java | 10 +- ...ingJobConfigurationReadPlatformServiceImpl.java | 18 +- .../service/ReportMailingJobEmailService.java | 2 +- .../service/ReportMailingJobEmailServiceImpl.java | 78 +++--- .../ReportMailingJobReadPlatformService.java | 20 +- .../ReportMailingJobReadPlatformServiceImpl.java | 46 ++-- ...ortMailingJobRunHistoryReadPlatformService.java | 4 +- ...ailingJobRunHistoryReadPlatformServiceImpl.java | 26 +- .../ReportMailingJobWritePlatformServiceImpl.java | 212 +++++++-------- .../util/ReportMailingJobDateUtil.java | 56 ++-- .../validation/ReportMailingJobValidator.java | 166 ++++++------ .../security/api/UserDetailsApiResource.java | 2 +- .../exception/ForcePasswordResetException.java | 2 +- .../exception/InvalidTenantIdentiferException.java | 4 +- .../TenantAwareBasicAuthenticationFilter.java | 12 +- .../filter/TenantAwareTenantIdentifierFilter.java | 10 +- .../CustomAuthenticationFailureHandler.java | 2 +- .../security/service/JdbcTenantDetailsService.java | 2 +- .../security/service/PlatformSecurityContext.java | 4 +- .../security/utils/SQLInjectionValidator.java | 10 +- .../security/vote/SelfServiceUserAccessVote.java | 4 +- .../sms/data/SmsMessageApiReportResourceData.java | 28 +- .../sms/data/SmsMessageApiResponseData.java | 26 +- .../sms/data/SmsMessageDeliveryReportData.java | 32 +-- .../infrastructure/sms/domain/SmsMessage.java | 8 +- .../sms/domain/SmsMessageStatusType.java | 2 +- .../SmsMessageScheduledJobServiceImpl.java | 6 +- .../sms/service/SmsReadPlatformServiceImpl.java | 8 +- .../survey/service/ReadSurveyServiceImpl.java | 2 +- .../data/InteropQuoteResponseData.java | 2 +- .../apache/fineract/mix/service/XBRLBuilder.java | 2 +- .../config/MessagingConfiguration.java | 20 +- .../notification/data/NotificationData.java | 2 +- .../notification/data/TopicSubscriberData.java | 6 +- .../apache/fineract/notification/domain/Topic.java | 16 +- .../notification/domain/TopicSubscriber.java | 6 +- .../notification/eventandlistener/SpringEvent.java | 6 +- .../eventandlistener/SpringEventListener.java | 8 +- .../eventandlistener/SpringEventPublisher.java | 2 +- .../service/NotificationDomainServiceImpl.java | 110 ++++---- .../notification/service/TopicDomainService.java | 18 +- .../service/TopicDomainServiceImpl.java | 68 ++--- .../service/TopicReadPlatformService.java | 6 +- .../service/TopicReadPlatformServiceImpl.java | 10 +- .../TopicSubscriberReadPlatformService.java | 4 +- .../TopicSubscriberReadPlatformServiceImpl.java | 4 +- .../TopicSubscriberWritePlatformService.java | 2 +- ...riberWritePlatformServiceJpaRepositoryImpl.java | 4 +- .../service/TopicWritePlatformService.java | 4 +- ...TopicWritePlatformServiceJpaRepositoryImpl.java | 2 +- .../holiday/api/HolidaysApiResource.java | 2 +- .../holiday/data/HolidayDataValidator.java | 4 +- .../organisation/holiday/domain/Holiday.java | 12 +- .../holiday/domain/RescheduleType.java | 6 +- .../holiday/service/HolidayEnumerations.java | 6 +- .../service/HolidayReadPlatformService.java | 2 +- .../service/HolidayReadPlatformServiceImpl.java | 4 +- .../organisation/holiday/service/HolidayUtil.java | 2 +- .../ApplicationCurrencyRepositoryWrapper.java | 2 +- .../organisation/monetary/domain/MoneyHelper.java | 2 +- .../organisation/office/domain/Office.java | 4 +- .../office/domain/OfficeRepositoryWrapper.java | 2 +- .../OrganisationCurrencyRepositoryWrapper.java | 2 +- ...fficeWritePlatformServiceJpaRepositoryImpl.java | 4 +- .../api/ProvisioningCriteriaApiResource.java | 12 +- .../data/ProvisioningCriteriaData.java | 2 +- .../data/ProvisioningCriteriaDefinitionData.java | 4 +- .../domain/LoanProductProvisionCriteria.java | 8 +- .../provisioning/domain/ProvisioningCriteria.java | 16 +- .../domain/ProvisioningCriteriaDefinition.java | 12 +- ...eProvisioningCategoryRequestCommandHandler.java | 4 +- ...eProvisioningCategoryRequestCommandHandler.java | 4 +- ...isioningCategoryDefinitionJsonDeserializer.java | 6 +- ...isioningCriteriaDefinitionJsonDeserializer.java | 10 +- .../ProvisioningCategoryWritePlatformService.java | 4 +- ...egoryWritePlatformServiceJpaRepositoryImpl.java | 2 +- .../service/ProvisioningCriteriaAssembler.java | 8 +- .../ProvisioningCriteriaReadPlatformService.java | 6 +- ...rovisioningCriteriaReadPlatformServiceImpl.java | 8 +- .../ProvisioningCriteriaWritePlatformService.java | 4 +- ...teriaWritePlatformServiceJpaRepositoryImpl.java | 14 +- .../StaffCommandFromApiJsonDeserializer.java | 26 +- .../staff/service/StaffReadPlatformService.java | 2 +- .../service/StaffReadPlatformServiceImpl.java | 32 +-- .../organisation/teller/api/TellerApiResource.java | 2 +- .../organisation/teller/data/CashierData.java | 32 +-- .../teller/data/CashierTransactionData.java | 46 ++-- .../data/CashierTransactionTypeTotalsData.java | 6 +- .../data/CashierTransactionsWithSummaryData.java | 24 +- .../organisation/teller/data/TellerData.java | 10 +- .../organisation/teller/domain/Cashier.java | 54 ++-- .../teller/domain/CashierTransaction.java | 50 ++-- .../organisation/teller/domain/CashierTxnType.java | 24 +- .../organisation/teller/domain/Teller.java | 28 +- .../teller/domain/TellerRepositoryWrapper.java | 6 +- .../organisation/teller/domain/TellerStatus.java | 4 +- .../exception/CashierExistForTellerException.java | 2 +- .../AllocateCashToCashierCommandHandler.java | 2 +- .../AllocateCashierToTellerCommandHandler.java | 2 +- .../DeleteCashierAllocationCommandHandler.java | 2 +- .../SettleCashFromCashierCommandHandler.java | 2 +- .../UpdateCashierAllocationCommandHandler.java | 2 +- .../TellerManagementReadPlatformServiceImpl.java | 8 +- .../teller/service/TellerWritePlatformService.java | 4 +- .../service/TellerWritePlatformServiceJpaImpl.java | 14 +- .../workingdays/data/WorkingDaysData.java | 4 +- .../domain/RepaymentRescheduleType.java | 2 +- .../workingdays/domain/WorkingDays.java | 6 +- .../WorkingDaysReadPlatformServiceImpl.java | 2 +- .../workingdays/service/WorkingDaysUtil.java | 6 +- .../account/api/AccountTransfersApiResource.java | 4 +- .../account/data/PortfolioAccountDTO.java | 6 +- .../account/data/StandingInstructionDTO.java | 2 +- .../account/data/StandingInstructionData.java | 2 +- .../domain/AccountTransferStandingInstruction.java | 6 +- .../domain/StandingInstructionRepository.java | 8 +- .../AccountTransfersReadPlatformService.java | 2 +- .../AccountTransfersWritePlatformService.java | 2 +- .../AccountTransfersWritePlatformServiceImpl.java | 6 +- .../PortfolioAccountReadPlatformServiceImpl.java | 36 +-- ...gInstructionHistoryReadPlatformServiceImpl.java | 2 +- ...tandingInstructionWritePlatformServiceImpl.java | 2 +- .../data/AccountSummaryCollectionData.java | 8 +- .../data/LoanAccountSummaryData.java | 2 +- .../data/SavingsAccountSummaryData.java | 2 +- .../data/ShareAccountSummaryData.java | 6 +- ...etailsReadPlatformServiceJpaRepositoryImpl.java | 26 +- .../accounts/api/AccountsApiResource.java | 22 +- .../accounts/constants/AccountsApiConstants.java | 2 +- .../constants/ShareAccountApiConstants.java | 16 +- .../portfolio/address/data/AddressData.java | 2 +- .../fineract/portfolio/address/domain/Address.java | 8 +- .../service/AddressWritePlatformServiceImpl.java | 4 +- .../portfolio/calendar/data/CalendarData.java | 6 +- .../calendar/data/CalendarHistoryDataWrapper.java | 10 +- .../portfolio/calendar/domain/Calendar.java | 12 +- .../calendar/domain/CalendarFrequencyType.java | 4 +- .../portfolio/calendar/domain/CalendarHistory.java | 2 +- .../domain/CalendarInstanceRepository.java | 8 +- .../domain/CalendarInstanceRepositoryWrapper.java | 2 +- .../calendar/domain/CalendarRepositoryWrapper.java | 2 +- .../CalendarCommandFromApiJsonDeserializer.java | 6 +- .../calendar/service/CalendarEnumerations.java | 2 +- .../service/CalendarReadPlatformServiceImpl.java | 12 +- .../portfolio/calendar/service/CalendarUtils.java | 28 +- ...endarWritePlatformServiceJpaRepositoryImpl.java | 34 +-- .../fineract/portfolio/charge/data/ChargeData.java | 2 +- .../fineract/portfolio/charge/domain/Charge.java | 4 +- .../portfolio/charge/domain/ChargeAppliesTo.java | 2 +- .../charge/domain/ChargeCalculationType.java | 8 +- .../charge/domain/ChargeRepositoryWrapper.java | 2 +- .../portfolio/charge/domain/ChargeTimeType.java | 6 +- ...geDefinitionCommandFromApiJsonDeserializer.java | 10 +- .../service/ChargeDropdownReadPlatformService.java | 4 +- .../ChargeDropdownReadPlatformServiceImpl.java | 6 +- .../charge/service/ChargeEnumerations.java | 6 +- .../charge/service/ChargeReadPlatformService.java | 24 +- .../service/ChargeReadPlatformServiceImpl.java | 2 +- .../portfolio/client/api/ClientApiConstants.java | 16 +- .../api/ClientFamilyMembersApiResources.java | 50 ++-- .../portfolio/client/api/ClientsApiResource.java | 4 +- .../fineract/portfolio/client/data/ClientData.java | 4 +- .../portfolio/client/data/ClientDataValidator.java | 66 ++--- .../client/data/ClientFamilyMembersData.java | 20 +- .../portfolio/client/data/ClientNonPersonData.java | 6 +- .../client/domain/AccountNumberGenerator.java | 12 +- .../fineract/portfolio/client/domain/Client.java | 44 +-- .../client/domain/ClientEnumerations.java | 6 +- .../client/domain/ClientFamilyMembers.java | 52 ++-- .../domain/ClientFamilyMembersRepository.java | 2 +- .../portfolio/client/domain/ClientIdentifier.java | 8 +- .../portfolio/client/domain/ClientNonPerson.java | 68 ++--- .../client/domain/ClientNonPersonRepository.java | 4 +- .../domain/ClientNonPersonRepositoryWrapper.java | 8 +- .../portfolio/client/domain/ClientRepository.java | 2 +- .../client/domain/ClientRepositoryWrapper.java | 6 +- .../portfolio/client/domain/ClientStatus.java | 6 +- .../portfolio/client/domain/ClientTransaction.java | 8 +- .../portfolio/client/domain/LegalForm.java | 18 +- ...ClientNonPersonNotFoundByClientIdException.java | 2 +- .../ClientNonPersonNotFoundException.java | 4 +- .../client/exception/ClientNotFoundException.java | 4 +- .../AddClientFamilyMemberCommandHandler.java | 8 +- .../DeleteClientFamilyMemberCommandHandler.java | 6 +- .../client/handler/RejectClientCommandHandler.java | 4 +- .../UpdateClientFamilyMemberCommandHandler.java | 6 +- .../UpdateClientSavingsAccountCommandHandler.java | 2 +- .../handler/WithdrawClientCommandHandler.java | 2 +- ...FamilyMemberCommandFromApiJsonDeserializer.java | 166 ++++++------ ...hargeWritePlatformServiceJpaRepositoryImpl.java | 6 +- .../ClientFamilyMembersReadPlatformService.java | 4 +- ...ClientFamilyMembersReadPlatformServiceImpl.java | 26 +- .../ClientFamilyMembersWritePlatformService.java | 6 +- ...lientFamilyMembersWritePlatformServiceImpl.java | 240 ++++++++--------- .../client/service/ClientReadPlatformService.java | 2 +- .../client/service/ClientWritePlatformService.java | 2 +- .../portfolio/client/service/LoanStatusMapper.java | 2 +- .../service/CollateralReadPlatformService.java | 2 +- .../collectionsheet/CollectionSheetConstants.java | 2 +- .../IndividualCollectionSheetLoanFlatData.java | 2 +- .../collectionsheet/data/JLGClientData.java | 12 +- .../collectionsheet/data/JLGGroupData.java | 6 +- .../collectionsheet/data/LoanDueData.java | 2 +- .../collectionsheet/data/SavingsDueData.java | 6 +- .../CollectionSheetReadPlatformServiceImpl.java | 16 +- .../portfolio/common/domain/DayOfWeekType.java | 8 +- .../portfolio/common/domain/DaysInMonthType.java | 2 +- .../portfolio/common/domain/DaysInYearType.java | 2 +- .../portfolio/common/domain/NthDayType.java | 10 +- .../common/domain/PeriodFrequencyType.java | 6 +- .../common/service/BusinessEventListner.java | 2 +- .../service/BusinessEventNotifierService.java | 2 +- .../service/BusinessEventNotifierServiceImpl.java | 8 +- .../common/service/CommonEnumerations.java | 2 +- .../floatingrates/domain/FloatingRatePeriod.java | 4 +- .../domain/FloatingRateRepository.java | 2 +- .../serialization/FloatingRateDataValidator.java | 8 +- .../fineract/portfolio/group/data/CenterData.java | 2 +- .../portfolio/group/data/GroupGeneralData.java | 2 +- .../portfolio/group/data/GroupTimelineData.java | 2 +- .../fineract/portfolio/group/domain/Group.java | 24 +- .../portfolio/group/domain/GroupRepository.java | 2 +- .../group/domain/GroupRepositoryWrapper.java | 2 +- .../serialization/GroupingTypesDataValidator.java | 6 +- .../service/CenterReadPlatformServiceImpl.java | 6 +- .../service/GroupReadPlatformServiceImpl.java | 2 +- ...TypesWritePlatformServiceJpaRepositoryImpl.java | 4 +- .../InterestIncentiveApiConstants.java | 2 +- .../data/InterestRateChartData.java | 2 +- .../data/InterestRateChartDataValidator.java | 4 +- .../data/InterestRateChartRepository.java | 2 +- .../data/InterestRateChartRepositoryWrapper.java | 2 +- .../InterestRateChartSlabRepositoryWrapper.java | 4 +- .../domain/InterestRateChartSlabComparator.java | 2 +- .../InterestRateChartSlabNotFoundException.java | 2 +- .../InterestRateChartReadPlatformService.java | 16 +- .../InterestRateChartReadPlatformServiceImpl.java | 2 +- .../loanaccount/api/LoanApiConstants.java | 2 +- .../api/LoanDisbursementDetailApiResource.java | 6 +- .../loanaccount/api/LoansApiResource.java | 10 +- .../loanaccount/data/DisbursementData.java | 2 +- .../loanaccount/data/LoanAccountData.java | 16 +- .../data/LoanApplicationTimelineData.java | 2 +- .../portfolio/loanaccount/data/LoanChargeData.java | 2 +- .../loanaccount/data/LoanChargePaidDetail.java | 8 +- .../data/LoanInterestRecalculationData.java | 2 +- .../loanaccount/data/LoanScheduleAccrualData.java | 6 +- .../loanaccount/data/LoanSummaryData.java | 2 +- .../loanaccount/data/LoanTermVariationsData.java | 2 +- .../data/LoanTermVariationsDataWrapper.java | 14 +- .../loanaccount/data/LoanTransactionData.java | 26 +- .../loanaccount/data/LoanTransactionEnumData.java | 4 +- .../loanaccount/data/PaidInAdvanceData.java | 8 +- .../loanaccount/data/ScheduleGeneratorDTO.java | 12 +- .../domain/ChangedTransactionDetail.java | 4 +- .../portfolio/loanaccount/domain/Loan.java | 108 ++++---- .../domain/LoanAccountDomainService.java | 6 +- .../domain/LoanAccountDomainServiceJpa.java | 34 +-- .../portfolio/loanaccount/domain/LoanCharge.java | 26 +- .../loanaccount/domain/LoanChargePaidBy.java | 2 +- .../domain/LoanDisbursementDetails.java | 2 +- .../loanaccount/domain/LoanInstallmentCharge.java | 10 +- .../domain/LoanInterestRecalculationDetails.java | 2 +- .../domain/LoanOfficerAssignmentHistory.java | 2 +- .../domain/LoanRepaymentScheduleInstallment.java | 24 +- .../loanaccount/domain/LoanRepository.java | 4 +- .../loanaccount/domain/LoanRepositoryWrapper.java | 20 +- ...oanRescheduleRequestToTermVariationMapping.java | 10 +- .../portfolio/loanaccount/domain/LoanSummary.java | 12 +- .../loanaccount/domain/LoanTermVariationType.java | 8 +- .../loanaccount/domain/LoanTermVariations.java | 16 +- .../loanaccount/domain/LoanTrancheCharge.java | 10 +- .../domain/LoanTrancheDisbursementCharge.java | 14 +- .../loanaccount/domain/LoanTransaction.java | 10 +- .../loanaccount/domain/LoanTransactionType.java | 2 +- ...tLoanRepaymentScheduleTransactionProcessor.java | 22 +- .../LoanRepaymentScheduleTransactionProcessor.java | 2 +- ...eLoanRepaymentScheduleTransactionProcessor.java | 6 +- ...eLoanRepaymentScheduleTransactionProcessor.java | 4 +- ...yLoanRepaymentScheduleTransactionProcessor.java | 6 +- ...ILoanRepaymentScheduleTransactionProcessor.java | 8 +- .../exception/DateMismatchException.java | 6 +- .../InvalidPaidInAdvanceAmountException.java | 2 +- ...sbursalAndFirstRepaymentViolationException.java | 2 +- .../UndoLastTrancheDisbursementException.java | 2 +- .../loanaccount/guarantor/GuarantorConstants.java | 4 +- .../exception/InvalidGuarantorException.java | 2 +- .../service/GuarantorDomainServiceImpl.java | 10 +- .../service/GuarantorReadPlatformService.java | 4 +- .../service/GuarantorReadPlatformServiceImpl.java | 2 +- .../UpdateLoanDisbuseDateCommandHandler.java | 2 +- .../loanschedule/data/LoanScheduleDTO.java | 4 +- .../loanschedule/data/LoanScheduleData.java | 2 +- .../loanschedule/data/LoanScheduleParams.java | 2 +- .../loanschedule/data/LoanSchedulePeriodData.java | 2 +- .../loanschedule/data/OverdueLoanScheduleData.java | 2 +- .../domain/AbstractLoanScheduleGenerator.java | 96 +++---- .../loanschedule/domain/AprCalculator.java | 6 +- ...liningBalanceInterestLoanScheduleGenerator.java | 10 +- .../domain/DefaultScheduledDateGenerator.java | 24 +- .../loanschedule/domain/FinanicalFunctions.java | 6 +- .../domain/FlatInterestLoanScheduleGenerator.java | 4 +- .../loanschedule/domain/LoanApplicationTerms.java | 66 ++--- .../loanschedule/domain/LoanScheduleModel.java | 6 +- .../domain/LoanScheduleModelPeriod.java | 4 +- .../service/LoanScheduleAssembler.java | 24 +- .../RescheduleLoansApiConstants.java | 6 +- .../api/RescheduleLoansApiResource.java | 8 +- .../data/LoanRescheduleRequestData.java | 6 +- .../data/LoanRescheduleRequestDataValidator.java | 20 +- .../data/LoanRescheduleRequestEnumerations.java | 14 +- .../data/LoanRescheduleRequestStatusEnumData.java | 2 +- .../data/LoanRescheduleRequestTimelineData.java | 18 +- .../domain/LoanRescheduleModalPeriod.java | 8 +- .../domain/LoanRescheduleRequest.java | 144 +++++----- .../LoanRescheduleRequestNotFoundException.java | 10 +- ...ApproveLoanRescheduleRequestCommandHandler.java | 4 +- .../CreateLoanRescheduleRequestCommandHandler.java | 4 +- .../RejectLoanRescheduleRequestCommandHandler.java | 4 +- .../LoanReschedulePreviewPlatformService.java | 2 +- .../LoanReschedulePreviewPlatformServiceImpl.java | 6 +- .../LoanRescheduleRequestReadPlatformService.java | 12 +- ...anRescheduleRequestReadPlatformServiceImpl.java | 12 +- .../LoanRescheduleRequestWritePlatformService.java | 4 +- ...nRescheduleRequestWritePlatformServiceImpl.java | 14 +- ...alculateLoanScheduleQueryFromApiJsonHelper.java | 2 +- .../LoanApplicationCommandFromApiJsonHelper.java | 12 +- .../serialization/LoanEventApiJsonValidator.java | 18 +- ...ationWritePlatformServiceJpaRepositoryImpl.java | 18 +- .../loanaccount/service/LoanAssembler.java | 4 +- .../loanaccount/service/LoanChargeAssembler.java | 2 +- .../service/LoanChargeReadPlatformService.java | 2 +- .../service/LoanReadPlatformService.java | 4 +- .../service/LoanReadPlatformServiceImpl.java | 4 +- .../loanaccount/service/LoanUtilService.java | 14 +- .../LoanWritePlatformServiceJpaRepositoryImpl.java | 50 ++-- .../loanproduct/LoanProductConstants.java | 12 +- .../loanproduct/api/LoanProductsApiResource.java | 2 +- .../portfolio/loanproduct/data/LoanOverdueDTO.java | 2 +- .../loanproduct/data/LoanProductData.java | 14 +- .../loanproduct/domain/AmortizationMethod.java | 2 +- .../InterestRecalculationCompoundingMethod.java | 2 +- .../domain/InterestRecalculationPeriodMethod.java | 2 +- .../loanproduct/domain/LendingStrategy.java | 2 +- .../portfolio/loanproduct/domain/LoanProduct.java | 20 +- .../domain/LoanProductFloatingRates.java | 8 +- .../domain/LoanProductGuaranteeDetails.java | 2 +- .../LoanProductInterestRecalculationDetails.java | 6 +- ...oductMinimumRepaymentScheduleRelatedDetail.java | 28 +- .../domain/LoanProductRelatedDetail.java | 18 +- .../domain/LoanTransactionProcessingStrategy.java | 2 +- ...nnotBeModifiedDueToNonClosedLoansException.java | 2 +- .../exception/NotInMinMaxRangeException.java | 2 +- .../serialization/LoanProductDataValidator.java | 10 +- .../service/LoanDropdownReadPlatformService.java | 8 +- .../service/LoanProductReadPlatformService.java | 2 +- .../LoanProductReadPlatformServiceImpl.java | 14 +- ...oductWritePlatformServiceJpaRepositoryImpl.java | 10 +- .../fineract/portfolio/meeting/domain/Meeting.java | 4 +- .../meeting/domain/MeetingRepositoryWrapper.java | 2 +- ...etingWritePlatformServiceJpaRepositoryImpl.java | 12 +- .../fineract/portfolio/note/domain/Note.java | 14 +- .../fineract/portfolio/note/domain/NoteType.java | 2 +- .../portfolio/paymenttype/domain/PaymentType.java | 2 +- .../domain/PaymentTypeRepositoryWrapper.java | 2 +- .../exception/PaymentTypeNotFoundException.java | 4 +- .../products/api/ProductsApiResource.java | 4 +- .../products/constants/ProductsApiConstants.java | 2 +- .../service/ProductReadPlatformService.java | 2 +- .../savings/SavingsAccountTransactionType.java | 4 +- .../portfolio/savings/SavingsApiConstants.java | 4 +- .../SavingsInterestCalculationDaysInYearType.java | 2 +- .../savings/SavingsInterestCalculationType.java | 6 +- .../api/FixedDepositAccountsApiResource.java | 4 +- .../api/SavingsAccountTransactionsApiResource.java | 4 +- .../savings/data/DepositAccountDataValidator.java | 4 +- .../portfolio/savings/data/DepositProductData.java | 2 +- .../savings/data/DepositProductDataValidator.java | 4 +- .../savings/data/FixedDepositAccountData.java | 4 +- .../savings/data/FixedDepositProductData.java | 2 +- .../savings/data/RecurringDepositProductData.java | 2 +- .../savings/data/SavingsAccountChargeData.java | 8 +- .../portfolio/savings/data/SavingsAccountData.java | 22 +- .../savings/data/SavingsAccountDataValidator.java | 12 +- .../savings/data/SavingsAccountTransactionDTO.java | 6 +- .../data/SavingsAccountTransactionData.java | 4 +- .../SavingsAccountTransactionDataValidator.java | 8 +- .../data/SavingsAccountTransactionEnumData.java | 6 +- .../portfolio/savings/data/SavingsProductData.java | 12 +- .../savings/data/SavingsProductDataValidator.java | 16 +- .../savings/domain/DepositAccountAssembler.java | 4 +- .../domain/DepositAccountDomainService.java | 2 +- .../domain/DepositAccountDomainServiceJpa.java | 18 +- .../domain/DepositAccountRecurringDetail.java | 2 +- .../domain/DepositAccountTermAndPreClosure.java | 2 +- .../savings/domain/FixedDepositAccount.java | 4 +- .../savings/domain/RecurringDepositAccount.java | 14 +- .../RecurringDepositScheduleInstallment.java | 4 +- .../portfolio/savings/domain/SavingsAccount.java | 58 ++-- .../savings/domain/SavingsAccountCharge.java | 6 +- .../domain/SavingsAccountDomainServiceJpa.java | 2 +- .../savings/domain/SavingsAccountRepository.java | 2 +- .../domain/SavingsAccountRepositoryWrapper.java | 16 +- .../domain/SavingsAccountSubStatusEnum.java | 4 +- .../savings/domain/SavingsAccountSummary.java | 4 +- .../savings/domain/SavingsAccountTransaction.java | 20 +- .../portfolio/savings/domain/SavingsHelper.java | 18 +- .../domain/SavingsOfficerAssignmentHistory.java | 2 +- .../portfolio/savings/domain/SavingsProduct.java | 20 +- .../savings/domain/SavingsProductAssembler.java | 2 +- .../domain/interest/AnnualCompoundingPeriod.java | 4 +- .../domain/interest/BiAnnualCompoundingPeriod.java | 4 +- .../savings/domain/interest/CompoundingPeriod.java | 2 +- .../savings/domain/interest/EndOfDayBalance.java | 6 +- .../domain/interest/MonthlyCompoundingPeriod.java | 4 +- .../savings/domain/interest/PostingPeriod.java | 30 +-- .../interest/QuarterlyCompoundingPeriod.java | 4 +- .../exception/PostInterestAsOnDateException.java | 12 +- ...vingsAccountInterestAsOnDateCommandHandler.java | 6 +- ...ntInterestRateChartReadPlatformServiceImpl.java | 6 +- .../DepositAccountReadPlatformServiceImpl.java | 8 +- ...countWritePlatformServiceJpaRepositoryImpl.java | 18 +- ...ocessWritePlatformServiceJpaRepositoryImpl.java | 2 +- .../DepositsDropdownReadPlatformService.java | 4 +- .../DepositsDropdownReadPlatformServiceImpl.java | 4 +- .../service/SavingsAccountReadPlatformService.java | 6 +- .../SavingsAccountReadPlatformServiceImpl.java | 66 ++--- .../SavingsAccountWritePlatformService.java | 2 +- ...countWritePlatformServiceJpaRepositoryImpl.java | 16 +- ...ocessWritePlatformServiceJpaRepositoryImpl.java | 6 +- .../savings/service/SavingsEnumerations.java | 4 +- .../SavingsProductReadPlatformServiceImpl.java | 6 +- .../savings/service/SavingsSchedularService.java | 2 +- .../portfolio/search/api/SearchApiResource.java | 2 +- .../search/data/AdHocQuerySearchConstants.java | 2 +- .../portfolio/search/data/SearchConditions.java | 2 +- .../fineract/portfolio/search/data/SearchData.java | 2 +- .../service/SearchReadPlatformServiceImpl.java | 14 +- .../self/account/data/SelfAccountTemplateData.java | 2 +- .../data/SelfAccountTransferDataValidator.java | 4 +- ...elfBeneficiariesTPTReadPlatformServiceImpl.java | 4 +- .../self/client/api/SelfClientsApiResource.java | 6 +- .../service/AppuserClientMapperReadService.java | 2 +- .../AppuserClientMapperReadServiceImpl.java | 2 +- .../self/loanaccount/api/SelfLoansApiResource.java | 24 +- .../self/pockets/domain/PocketRepository.java | 2 +- .../service/AccountEntityServiceFactory.java | 4 +- .../self/registration/SelfServiceApiConstants.java | 2 +- .../self/runreport/SelfRunReportApiResource.java | 2 +- .../savings/data/SelfSavingsDataValidator.java | 4 +- ...ShareAccountsMapperReadPlatformServiceImpl.java | 2 +- .../data/ShareAccountApplicationTimelineData.java | 10 +- .../shareaccounts/data/ShareAccountChargeData.java | 4 +- .../shareaccounts/data/ShareAccountData.java | 6 +- .../data/ShareAccountDividendData.java | 2 +- .../data/ShareAccountStatusEnumData.java | 2 +- .../data/ShareAccountTransactionData.java | 6 +- .../data/ShareAccountTransactionEnumData.java | 2 +- .../domain/PurchasedSharesStatusType.java | 4 +- .../shareaccounts/domain/ShareAccount.java | 30 +-- .../domain/ShareAccountChargePaidBy.java | 24 +- .../domain/ShareAccountRepositoryWrapper.java | 4 +- .../domain/ShareAccountTransaction.java | 72 ++--- .../IssueableSharesExceededException.java | 2 +- .../ActivateShareAccountCommandHandler.java | 2 +- .../ApplyAddtionalSharesCommandHandler.java | 2 +- .../ApproveAddtionalSharesCommandHandler.java | 2 +- .../handler/ApproveShareAccountCommandHandler.java | 2 +- .../handler/CloseShareAccountCommandHandler.java | 2 +- .../handler/CreateShareAccountCommandHandler.java | 2 +- .../handler/RedeemSharesCommandHandler.java | 2 +- .../RejectAddtionalSharesCommandHandler.java | 2 +- .../handler/RejectShareAccountCommandHandler.java | 2 +- .../UndoApproveShareAccountCommandHandler.java | 2 +- .../handler/UpdateShareAccountCommandHandler.java | 2 +- .../serialization/ShareAccountDataSerializer.java | 62 ++--- .../PurchasedSharesReadPlatformServiceImpl.java | 8 +- .../ShareAccountChargeReadPlatformServiceImpl.java | 2 +- .../service/ShareAccountCommandsServiceImpl.java | 6 +- ...hareAccountDividendReadPlatformServiceImpl.java | 2 +- .../service/ShareAccountReadPlatformService.java | 2 +- .../ShareAccountReadPlatformServiceImpl.java | 8 +- .../service/ShareAccountSchedularService.java | 2 +- .../service/ShareAccountWritePlatformService.java | 12 +- ...countWritePlatformServiceJpaRepositoryImpl.java | 26 +- .../shareaccounts/service/SharesEnumerations.java | 4 +- .../data/ShareProductMarketPriceData.java | 8 +- .../shareproducts/domain/ShareProduct.java | 14 +- .../domain/ShareProductMarketPrice.java | 22 +- .../domain/ShareProductRepositoryWrapper.java | 8 +- .../handler/CreateShareProductCommandHandler.java | 2 +- .../handler/UpdateShareProductCommandHandler.java | 2 +- .../serialization/ShareProductDataSerializer.java | 14 +- .../service/ShareProductDividendAssembler.java | 6 +- ...hareProductDividendReadPlatformServiceImpl.java | 2 +- .../ShareProductDropdownReadPlatformService.java | 2 +- ...oductWritePlatformServiceJpaRepositoryImpl.java | 4 +- .../portfolio/tax/domain/TaxComponent.java | 8 +- .../portfolio/tax/domain/TaxComponentHistory.java | 8 +- .../transfer/data/TransfersDataValidator.java | 2 +- ...nsferWritePlatformServiceJpaRepositoryImpl.java | 8 +- .../apache/fineract/spm/api/SpmApiResource.java | 4 +- .../apache/fineract/spm/data/ScorecardValue.java | 8 +- .../org/apache/fineract/spm/domain/Survey.java | 2 +- .../fineract/spm/repository/SurveyRepository.java | 2 +- .../spm/service/ScorecardReadPlatformService.java | 6 +- .../apache/fineract/spm/service/SpmService.java | 14 +- .../fineract/spm/util/SurveyApiConstants.java | 8 +- .../org/apache/fineract/spm/util/SurveyMapper.java | 2 +- .../template/service/TemplateMergeService.java | 12 +- .../useradministration/api/RolesApiResource.java | 4 +- .../useradministration/data/AppUserData.java | 6 +- .../useradministration/domain/AppUser.java | 18 +- .../domain/AppUserClientMapping.java | 8 +- .../domain/AppUserRepositoryWrapper.java | 4 +- .../fineract/useradministration/domain/Role.java | 2 +- .../useradministration/domain/RoleRepository.java | 4 +- .../exception/RoleNotFoundException.java | 2 +- .../exception/UserNotFoundException.java | 2 +- .../service/AppUserReadPlatformService.java | 2 +- .../service/AppUserReadPlatformServiceImpl.java | 8 +- ...pUserWritePlatformServiceJpaRepositoryImpl.java | 12 +- .../service/RoleReadPlatformServiceImpl.java | 2 +- .../RoleWritePlatformServiceJpaRepositoryImpl.java | 12 +- .../service/UserDataValidator.java | 8 +- .../org/apache/fineract/batch/BatchBuilder.java | 2 +- .../spring/SpringConfigurationTest.java | 2 +- .../core/boot/tests/SpringBootServerLoginTest.java | 2 +- .../apache/fineract/notification/TopicTest.java | 34 +-- ...nRepaymentScheduleTransactionProcessorTest.java | 2 +- .../loanaccount/LoanScheduleTestDataHelper.java | 8 +- .../loanaccount/LoanTransactionBuilder.java | 6 +- 862 files changed, 4984 insertions(+), 4984 deletions(-) diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java index a75bfa4..26d4aa6 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java @@ -86,7 +86,7 @@ public class AccountNumberPreferencesTest { private Integer groupID; private Integer centerId; private String groupAccountNo; - + @Before public void setup() { Utils.initializeRESTAssured(); @@ -191,17 +191,17 @@ public class AccountNumberPreferencesTest { this.savingsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createSavingsAccountNumberPreference( this.responseSpec, "resourceId"); System.out.println("Successfully created account number preferences for Savings (ID: " + this.savingsAccountNumberPreferenceId); - + this.groupsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createGroupsAccountNumberPreference( this.responseSpec, "resourceId"); System.out.println("Successfully created account number preferences for Groups (ID: " + this.groupsAccountNumberPreferenceId); - + this.centerAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createCenterAccountNumberPreference( this.responseSpec, "resourceId"); System.out.println("Successfully created account number preferences for Center (ID: " + this.centerAccountNumberPreferenceId); this.accountNumberPreferencesHelper.verifyCreationOfAccountNumberPreferences(this.clientAccountNumberPreferenceId, - this.loanAccountNumberPreferenceId, this.savingsAccountNumberPreferenceId, this.groupsAccountNumberPreferenceId, + this.loanAccountNumberPreferenceId, this.savingsAccountNumberPreferenceId, this.groupsAccountNumberPreferenceId, this.centerAccountNumberPreferenceId, this.responseSpec, this.requestSpec); this.createAccountNumberPreferenceInvalidData("1000", "1001"); @@ -278,7 +278,7 @@ public class AccountNumberPreferencesTest { this.createAndValidateClientWithoutAccountPreference(); } } - + private void createAndValidateGroup(Boolean isAccountPreferenceSetUp) { this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); this.groupID = GroupHelper.createGroup(this.requestSpec, this.responseSpec); @@ -286,25 +286,25 @@ public class AccountNumberPreferencesTest { this.groupID = GroupHelper.activateGroup(this.requestSpec, this.responseSpec, groupID.toString()); GroupHelper.verifyGroupActivatedOnServer(this.requestSpec, this.responseSpec, groupID, true); - + final String GROUP_URL = "/fineract-provider/api/v1/groups/" + this.groupID + "?" + Utils.TENANT_IDENTIFIER; this.groupAccountNo = Utils.performServerGet(requestSpec, responseSpec, GROUP_URL, "accountNo"); - + if (isAccountPreferenceSetUp) { String groupsPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference( this.groupsAccountNumberPreferenceId, "prefixType.value"); - + if (groupsPrefixName.equals(this.officeName)) { - + final String groupOfficeName = Utils.performServerGet(requestSpec, responseSpec, GROUP_URL, "officeName"); - + this.validateAccountNumberLengthAndStartsWithPrefix(this.groupAccountNo, groupOfficeName); } } else { validateAccountNumberLengthAndStartsWithPrefix(this.groupAccountNo, null); } } - + private void createAndValidateCenter(Boolean isAccountPreferenceSetUp) { this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); Integer officeId = new OfficeHelper(requestSpec, responseSpec).createOffice("01 July 2007"); @@ -314,21 +314,21 @@ public class AccountNumberPreferencesTest { CenterDomain center = CenterHelper.retrieveByID(centerId, requestSpec, responseSpec); Assert.assertNotNull(center); Assert.assertTrue(center.getName().equals(name)); - + if (isAccountPreferenceSetUp) { String centerPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference( this.centerAccountNumberPreferenceId, "prefixType.value"); final String CENTER_URL = "/fineract-provider/api/v1/centers/" + this.centerId + "?" + Utils.TENANT_IDENTIFIER; - + if (centerPrefixName.equals(this.officeName)) { - final String centerOfficeName = Utils.performServerGet(requestSpec, responseSpec, CENTER_URL, "officeName"); + final String centerOfficeName = Utils.performServerGet(requestSpec, responseSpec, CENTER_URL, "officeName"); this.validateAccountNumberLengthAndStartsWithPrefix(center.getAccountNo(), centerOfficeName); } - } else { + } else { validateAccountNumberLengthAndStartsWithPrefix(center.getAccountNo(), null); } } - + private void createAndValidateClientWithoutAccountPreference() { this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java index 38f89e9..57f16e5 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchApiTest.java @@ -49,9 +49,9 @@ import com.jayway.restassured.specification.ResponseSpecification; * {@link org.apache.fineract.batch.command.CommandStrategyProvider}. This tests * the response provided by commandStrategy by injecting it with a * {@code BatchRequest}. - * + * * @author RishabhShukla - * + * * @see org.apache.fineract.integrationtests.common.BatchHelper * @see org.apache.fineract.batch.domain.BatchRequest */ @@ -81,7 +81,7 @@ public class BatchApiTest { * Tests for the unimplemented command Strategies by returning 501 status * code. For a unknownRequest a statusCode 501 is returned back with * response. - * + * * @see org.apache.fineract.batch.command.internal.UnknownCommandStrategy */ @Test @@ -104,7 +104,7 @@ public class BatchApiTest { * Tests for the successful response for a createClient request from * createClientCommand. A successful response with statusCode '200' is * returned back. - * + * * @see org.apache.fineract.batch.command.internal.CreateClientCommandStrategy */ @Test @@ -125,7 +125,7 @@ public class BatchApiTest { * fails. If Query Parameter 'enclosingTransaction' is set to 'true' and if * one of the request in BatchRequest fails then all transactions are rolled * back. - * + * * @see org.apache.fineract.batch.command.internal.CreateClientCommandStrategy * @see org.apache.fineract.batch.api.BatchApiResource * @see org.apache.fineract.batch.service.BatchApiService @@ -167,7 +167,7 @@ public class BatchApiTest { * Tests that a client information was successfully updated through * updateClientCommand. A 'changes' parameter is returned in the response * after successful update of client information. - * + * * @see org.apache.fineract.batch.command.internal.UpdateClientCommandStrategy */ @Test @@ -202,7 +202,7 @@ public class BatchApiTest { * 200(OK) status. It creates a new client and apply a loan to that client. * This also verifies the successful resolution of dependencies among two * requests. - * + * * @see org.apache.fineract.batch.command.internal.ApplyLoanCommandStrategy */ @Test @@ -251,7 +251,7 @@ public class BatchApiTest { * Tests that a new savings accounts was applied to an existing client and a * 200(OK) status was returned. It first creates a new client and a savings * product, then uses the cliendId and ProductId to apply a savings account. - * + * * @see org.apache.fineract.batch.command.internal.ApplySavingsCommandStrategy */ @Test @@ -294,7 +294,7 @@ public class BatchApiTest { * Collected properly 200(OK) status was returned for successful responses. * It first creates a new client and apply a loan, then creates a new charge * for the create loan and then fetches all the applied charges - * + * * @see org.apache.fineract.batch.command.internal.CollectChargesCommandStrategy * @see org.apache.fineract.batch.command.internal.CreateChargeCommandStrategy */ @@ -409,7 +409,7 @@ public class BatchApiTest { * Test for the successful activation of a pending client using * 'ActivateClientCommandStrategy'. A '200' status code is expected on * successful activation. - * + * * @see org.apache.fineract.batch.command.internal.ActivateClientCommandStrategy */ @Test @@ -439,7 +439,7 @@ public class BatchApiTest { * Test for the successful approval and disbursal of a loan using * 'ApproveLoanCommandStrategy' and 'DisburseLoanCommandStrategy'. A '200' * status code is expected on successful activation. - * + * * @see org.apache.fineract.batch.command.internal.ApproveLoanCommandStrategy * @see org.apache.fineract.batch.command.internal.DisburseLoanCommandStrategy */ diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java index ad1f61b..4a77522 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java @@ -43,7 +43,7 @@ import com.jayway.restassured.specification.ResponseSpecification; * Test class for testing the integration of Batch API with custom batch * requests and various user defined workflow. Like in the case of mifos * community-app - * + * * @author Rishabh Shukla */ public class BatchRequestsIntegrationTest { @@ -70,12 +70,12 @@ public class BatchRequestsIntegrationTest { @Test /** - * Tests that a loan is successfully applied to client members of a group. + * Tests that a loan is successfully applied to client members of a group. * Firstly, it'll create a few new clients and then will add those clients * to the group. Then a few loans will be created and one of those loans * will be chosen at random and similarily a few of the created clients will * be chosen on random. Now, the selected loan will be applied to these - * clients through Batch - API ApplyLoanCommandStrategy. + * clients through Batch - API ApplyLoanCommandStrategy. */ public void shouldReturnOkStatusForLoansAppliedToSelectedClients() { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java index 80e51cc..b1f2b83 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java @@ -239,7 +239,7 @@ public class CenterIntegrationTest { final Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec); CenterHelper.verifyCenterCreatedOnServer(this.requestSpec, this.responseSpec, groupID); - + final HashMap assignStaffToCenterResponseMap = (HashMap) CenterHelper.assignStaff(this.requestSpec, this.responseSpec, groupID.toString(), staffId.longValue()); @@ -248,7 +248,7 @@ public class CenterIntegrationTest { Assert.assertNotNull(centerWithStaffAssigned); Assert.assertTrue(centerWithStaffAssigned.getId().intValue() == groupID); Assert.assertTrue(centerWithStaffAssigned.getStaffId().intValue() == staffId); - + final HashMap unassignStaffToCenterResponseMap = (HashMap) CenterHelper.unassignStaff(this.requestSpec, this.responseSpec, groupID.toString(), staffId.longValue()); @@ -257,7 +257,7 @@ public class CenterIntegrationTest { Assert.assertNotNull(centerWithStaffUnssigned); Assert.assertTrue(centerWithStaffUnssigned.getId().intValue() == groupID); Assert.assertTrue(centerWithStaffUnssigned.getStaffId() == null); - + } } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java index 3bb0f4a..ef427da 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java @@ -108,11 +108,11 @@ public class ClientSavingsIntegrationTest { this.savingsAccountHelper.postInterestForSavings(savingsId); summary = this.savingsAccountHelper.getSavingsSummary(savingsId); Assert.assertFalse(summaryBefore.equals(summary)); - + final Object savingsInterest = this.savingsAccountHelper.getSavingsInterest(savingsId); // verifySavingsInterest(savingsInterest); } - + @Test public void testSavingsAccountWithMinBalanceForInterestCalculation() { this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); @@ -703,7 +703,7 @@ public class ClientSavingsIntegrationTest { /*** * Activate the application and verify account status - * + * * @param activationDate * this value is every time first day of previous month */ @@ -735,7 +735,7 @@ public class ClientSavingsIntegrationTest { /*** * Perform Deposit transaction on last day of month and verify account * balance. - * + * * @param transactionDate * this value is every time last day of previous month */ @@ -785,7 +785,7 @@ public class ClientSavingsIntegrationTest { assertEquals("validation.msg.savingsaccount.close.results.in.balance.not.zero", savingsAccountErrorData.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); } - + @SuppressWarnings("unchecked") @Test public void testSavingsAccountPostInterestOnLastDayWithOverdraft() { @@ -845,7 +845,7 @@ public class ClientSavingsIntegrationTest { /*** * Activate the application and verify account status - * + * * @param activationDate * this value is every time first day of previous month */ @@ -876,7 +876,7 @@ public class ClientSavingsIntegrationTest { /*** * Perform Deposit transaction on last day of month and verify account * balance. - * + * * @param transactionDate * this value is every time last day of previous month */ @@ -1120,7 +1120,7 @@ public class ClientSavingsIntegrationTest { .println("-----Post Interest As on Successfully Worked----------"); } - + @SuppressWarnings("unchecked") @Test public void testSavingsAccountPostInterestOnLastDayWithdrawalWithOverdraft() { @@ -1180,7 +1180,7 @@ public class ClientSavingsIntegrationTest { /*** * Activate the application and verify account status - * + * * @param activationDate * this value is every time first day of previous month */ @@ -1219,11 +1219,11 @@ public class ClientSavingsIntegrationTest { balance -= new Float(WITHDRAW_AMOUNT); assertEquals("Verifying Withdrawal Amount", new Float(WITHDRAW_AMOUNT), withdrawTransaction.get("amount")); assertEquals("Verifying Balance after Withdrawal", balance, withdrawTransaction.get("runningBalance")); - + /*** * Perform Deposit transaction on last day of month and verify account * balance. - * + * * @param transactionDate * this value is every time last day of previous month */ @@ -1462,7 +1462,7 @@ public class ClientSavingsIntegrationTest { System.out .println("-----Post Interest As on Successfully Worked----------"); } - + @SuppressWarnings("unchecked") @Test public void testSavingsAccountPostInterestWithOverdraft() { @@ -1523,7 +1523,7 @@ public class ClientSavingsIntegrationTest { /*** * Activate the application and verify account status - * + * * @param activationDate * this value is every time first day of previous month */ @@ -1555,7 +1555,7 @@ public class ClientSavingsIntegrationTest { /*** * Perform Deposit transaction on last day of month and verify account * balance. - * + * * @param transactionDate * this value is every time last day of previous month */ @@ -1619,7 +1619,7 @@ public class ClientSavingsIntegrationTest { final String INTEREST_POSTING_DATE = dateFormat.format(interestPostingDate.getTime()); final String TODYS_POSTING_DATE = dateFormat.format(todysDate.getTime()); String withdrawBalance = "true"; - + if (TODYS_POSTING_DATE.equalsIgnoreCase(INTEREST_POSTING_DATE)) { final SavingsAccountHelper validationErrorHelper = new SavingsAccountHelper(this.requestSpec, responseSpec); @@ -1687,11 +1687,11 @@ public class ClientSavingsIntegrationTest { final Integer lastDayOfMonth = todaysDate.getActualMaximum(Calendar.DAY_OF_MONTH); todaysDate.set(Calendar.DAY_OF_MONTH, lastDayOfMonth); final String TRANSACTION_DATE = dateFormat.format(todaysDate.getTime()); - + Calendar postedDate = Calendar.getInstance(); postedDate.set(Calendar.DAY_OF_MONTH, 1); - - final String POSTED_TRANSACTION_DATE = dateFormat.format(postedDate.getTime()); + + final String POSTED_TRANSACTION_DATE = dateFormat.format(postedDate.getTime()); Calendar postedLastDate = Calendar.getInstance(); int countOfDate=postedDate.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println("count Of Date---> "+countOfDate); @@ -1700,7 +1700,7 @@ public class ClientSavingsIntegrationTest { /*** * Activate the application and verify account status - * + * * @param activationDate * this value is every time first day of previous month */ @@ -1732,7 +1732,7 @@ public class ClientSavingsIntegrationTest { /*** * Perform Deposit transaction on last day of month and verify account * balance. - * + * * @param transactionDate * this value is every time last day of previous month */ @@ -1750,8 +1750,8 @@ public class ClientSavingsIntegrationTest { HashMap accountDetails = this.savingsAccountHelper.getSavingsDetails(savingsId); summary = (HashMap) accountDetails.get("summary"); Float actualInterestPosted = Float.valueOf(summary.get("totalInterestPosted").toString()); - - + + /*** * Calculate expected interest to be posted, interest should be posted * for one day only because deposit transaction happened on last day of @@ -1773,14 +1773,14 @@ public class ClientSavingsIntegrationTest { decimalFormat.applyPattern("#.###"); interestPosted = new Float(decimalFormat.format(interestPosted)); actualInterestPosted = new Float(decimalFormat.format(actualInterestPosted)); - assertEquals("Verifying interest posted", interestPosted, actualInterestPosted); + assertEquals("Verifying interest posted", interestPosted, actualInterestPosted); System.out.println("------Post Interest As On Successful Worked--------"); - + this.savingsAccountHelper.postInterestAsOnSavings(savingsId, POSTED_LAST_TRANSACTION_DATE); HashMap accountLastDetails = this.savingsAccountHelper.getSavingsDetails(savingsId); summary = (HashMap) accountLastDetails.get("summary"); Float actualLastInterestPosted = Float.valueOf(summary.get("totalInterestPosted").toString()); - + final Float nominalLastAnnualInterest = Float.valueOf(accountDetails.get("nominalAnnualInterestRate").toString()); final HashMap interestLastCalculationDaysInYearType = (HashMap) accountDetails.get("interestCalculationDaysInYearType"); final Integer daysLastInYear = Integer.valueOf(interestCalculationDaysInYearType.get("id").toString()); @@ -1788,18 +1788,18 @@ public class ClientSavingsIntegrationTest { double perLastDay = (double) 1 / (daysInYear); double interestLastPerDay = interestLastRateInFraction * perLastDay; Float interestLastPosted = (float) (interestLastPerDay * balance * 1); - + DecimalFormat decimalLastFormat = new DecimalFormat("", new DecimalFormatSymbols(Locale.US)); decimalLastFormat.applyPattern("#.###"); interestLastPosted = new Float(decimalLastFormat.format(interestLastPosted)); actualInterestPosted = new Float(decimalFormat.format(actualInterestPosted)); - assertEquals("Verifying interest posted", interestLastPosted, actualInterestPosted); + assertEquals("Verifying interest posted", interestLastPosted, actualInterestPosted); System.out.println("------Post Interest As On Successful Worked--------"); - + } - - - + + + @Test public void testSavingsAccount_WITH_WITHHOLD_TAX() { this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); @@ -1897,7 +1897,7 @@ public class ClientSavingsIntegrationTest { Assert.assertEquals(expected, actual, 1); } - + @Test public void testSavingsAccount_DormancyTracking() { this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); @@ -1913,7 +1913,7 @@ public class ClientSavingsIntegrationTest { final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE, minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance, allowOverdraft, String.valueOf(taxGroupId), true); Assert.assertNotNull(savingsProductID); - + final Integer savingsChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getSavingsNoActivityFeeJSON()); Assert.assertNotNull(savingsChargeId); @@ -1961,14 +1961,14 @@ public class ClientSavingsIntegrationTest { TRANSACTION_DATE, CommonConstants.RESPONSE_RESOURCE_ID); transactionDate = transactionDate.minusDays(30); } - + SchedulerJobHelper jobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec); try { jobHelper.executeJob("Update Savings Dormant Accounts"); } catch (InterruptedException e) { e.printStackTrace(); } - + //VERIFY WITHIN PROVIDED RANGE DOESN'T INACTIVATE savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsList.get(0)); SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap); @@ -2010,7 +2010,7 @@ public class ClientSavingsIntegrationTest { chargeAmt = 100f; balance -= chargeAmt; assertEquals("Verifying account Balance", balance, summary.get("accountBalance")); - + TRANSACTION_DATE = formatter.print(new LocalDate()); depositTransactionId = (Integer) this.savingsAccountHelper.depositToSavingsAccount(savingsList.get(2), DEPOSIT_AMOUNT, TRANSACTION_DATE, CommonConstants.RESPONSE_RESOURCE_ID); @@ -2018,7 +2018,7 @@ public class ClientSavingsIntegrationTest { SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap); savingsStatusHashMap = SavingsStatusChecker.getSubStatusOfSavings(this.requestSpec, this.responseSpec, savingsList.get(2)); SavingsStatusChecker.verifySavingsSubStatusNone(savingsStatusHashMap); - + //VERIFY ESCHEAT DUE TO OLD TRANSACTION savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsList.get(3)); SavingsStatusChecker.verifySavingsAccountIsClosed(savingsStatusHashMap); @@ -2026,7 +2026,7 @@ public class ClientSavingsIntegrationTest { SavingsStatusChecker.verifySavingsSubStatusEscheat(savingsStatusHashMap); summary = this.savingsAccountHelper.getSavingsSummary(savingsList.get(3)); assertEquals("Verifying account Balance", 2900f, summary.get("accountBalance")); - + //VERIFY ESCHEAT DUE NO TRANSACTION FROM ACTIVATION savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsList.get(4)); SavingsStatusChecker.verifySavingsAccountIsClosed(savingsStatusHashMap); @@ -2034,17 +2034,17 @@ public class ClientSavingsIntegrationTest { SavingsStatusChecker.verifySavingsSubStatusEscheat(savingsStatusHashMap); summary = this.savingsAccountHelper.getSavingsSummary(savingsList.get(4)); assertEquals("Verifying account Balance", 900f, summary.get("accountBalance")); - + //VERIFY NON ACTIVE ACCOUNTS ARE NOT AFFECTED savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsList.get(5)); SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap); savingsStatusHashMap = SavingsStatusChecker.getSubStatusOfSavings(this.requestSpec, this.responseSpec, savingsList.get(5)); SavingsStatusChecker.verifySavingsSubStatusNone(savingsStatusHashMap); - + } - + private HashMap activateSavingsAccount(final Integer savingsId, final String activationDate) { final HashMap status = this.savingsAccountHelper.activateSavingsAccount(savingsId, activationDate); return status; @@ -2057,7 +2057,7 @@ public class ClientSavingsIntegrationTest { return createSavingsProduct(requestSpec, responseSpec, minOpenningBalance, minBalanceForInterestCalculation, minRequiredBalance, enforceMinRequiredBalance, allowOverdraft, taxGroupId, false); } - + private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String minOpenningBalance, String minBalanceForInterestCalculation, String minRequiredBalance, String enforceMinRequiredBalance, final boolean allowOverdraft, final String taxGroupId, boolean withDormancy) { @@ -2085,7 +2085,7 @@ public class ClientSavingsIntegrationTest { .withMinimumOpenningBalance(minOpenningBalance).withWithHoldTax(taxGroupId).build(); return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec); } - + private Integer createTaxGroup(final String percentage){ final Integer liabilityAccountId = null; final Integer taxComponentId = TaxComponentHelper.createTaxComponent(this.requestSpec, this.responseSpec, percentage, liabilityAccountId); @@ -2098,11 +2098,11 @@ public class ClientSavingsIntegrationTest { * System.out.println( * "--------------------VERIFYING THE BALANCE, INTEREST --------------------------" * ); - * + * * assertEquals("Verifying Interest Calculation", new Float("238.3399"), * savingsInterest); } */ - + @SuppressWarnings("unchecked") @Test public void testSavingsAccountBlockStatus() { @@ -2162,7 +2162,7 @@ public class ClientSavingsIntegrationTest { SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_ERROR); assertEquals("error.msg.savings.account.debit.transaction.not.allowed", error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - + depositTransactionId = (Integer) this.savingsAccountHelper.depositToSavingsAccount(savingsId, DEPOSIT_AMOUNT, SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_RESOURCE_ID); depositTransaction = this.savingsAccountHelper.getSavingsTransaction(savingsId, depositTransactionId); @@ -2183,7 +2183,7 @@ public class ClientSavingsIntegrationTest { CommonConstants.RESPONSE_ERROR); assertEquals("error.msg.savings.account.credit.transaction.not.allowed", error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - + withdrawTransactionId = (Integer) this.savingsAccountHelper.withdrawalFromSavingsAccount(savingsId, WITHDRAW_AMOUNT, SavingsAccountHelper.TRANSACTION_DATE, CommonConstants.RESPONSE_RESOURCE_ID); withdrawTransaction = this.savingsAccountHelper.getSavingsTransaction(savingsId, withdrawTransactionId); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientTest.java index 7e6664d..b07a2db 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientTest.java @@ -78,10 +78,10 @@ public class ClientTest { ClientStatusChecker.verifyClientWithdrawn(clientStatusHashMap); } - + @Test public void testClientAsPersonStatus() { - + this.clientHelper = new ClientHelper(this.requestSpec, this.responseSpec); final Integer clientId = ClientHelper.createClientAsPerson(this.requestSpec, this.responseSpec); Assert.assertNotNull(clientId); @@ -111,10 +111,10 @@ public class ClientTest { ClientStatusChecker.verifyClientWithdrawn(clientStatusHashMap); } - + @Test public void testClientAsEntityStatus() { - + this.clientHelper = new ClientHelper(this.requestSpec, this.responseSpec); final Integer clientId = ClientHelper.createClientAsEntity(this.requestSpec, this.responseSpec); Assert.assertNotNull(clientId); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java index 0b01f96..49f527d 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java @@ -244,7 +244,7 @@ public class FixedDepositTest { this.responseSpec, fixedDepositAccountId.toString()); FixedDepositAccountStatusChecker.verifyFixedDepositAccountIsPrematureClosed(fixedDepositAccountStatusHashMap); - + /*** * Verify journal entry transactions for preclosure transaction */ @@ -257,8 +257,8 @@ public class FixedDepositTest { JournalEntry.TransactionType.DEBIT)); } - - + + @Test public void testFixedDepositAccountWithPrematureClosureTypeWithdrawal_WITH_HOLD_TAX() { this.fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec, this.responseSpec); @@ -391,11 +391,11 @@ public class FixedDepositTest { HashMap accountDetails = this.fixedDepositAccountHelper.getFixedDepositAccountById(this.requestSpec, this.responseSpec, fixedDepositAccountId); Float maturityAmount = Float.valueOf(accountDetails.get("maturityAmount").toString()); - + HashMap summary = (HashMap) accountDetails.get("summary"); Assert.assertNotNull(summary.get("totalWithholdTax")); Float withHoldTax = (Float) summary.get("totalWithholdTax"); - + this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, CLOSED_ON_DATE, new JournalEntry(maturityAmount, JournalEntry.TransactionType.CREDIT)); this.journalEntryHelper.checkJournalEntryForLiabilityAccount(liabilityAccount, CLOSED_ON_DATE, new JournalEntry(maturityAmount, @@ -404,8 +404,8 @@ public class FixedDepositTest { JournalEntry.TransactionType.CREDIT)); } - - + + @Test public void testFixedDepositAccountClosureTypeWithdrawal_WITH_HOLD_TAX() throws InterruptedException { this.fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec, this.responseSpec); @@ -514,20 +514,20 @@ public class FixedDepositTest { /*** * FD account verify whether account is matured */ - + SchedulerJobHelper schedulerJobHelper = new SchedulerJobHelper(requestSpec, responseSpec); String JobName = "Update Deposit Accounts Maturity details"; schedulerJobHelper.executeJob(JobName); - + HashMap accountDetails = this.fixedDepositAccountHelper.getFixedDepositAccountById(this.requestSpec, this.responseSpec, fixedDepositAccountId); - + HashMap summary = (HashMap) accountDetails.get("summary"); Assert.assertNotNull(summary.get("totalWithholdTax")); Float withHoldTax = (Float) summary.get("totalWithholdTax"); this.journalEntryHelper.checkJournalEntryForLiabilityAccount(liabilityAccountForTax, CLOSED_ON_DATE, new JournalEntry(withHoldTax, JournalEntry.TransactionType.CREDIT)); - + fixedDepositAccountStatusHashMap = FixedDepositAccountStatusChecker.getStatusOfFixedDepositAccount(this.requestSpec, this.responseSpec, fixedDepositAccountId.toString()); @@ -535,7 +535,7 @@ public class FixedDepositTest { } - + @Test public void testFixedDepositAccountWithPeriodInterestRateChart() { final String chartToUse = "period"; @@ -544,7 +544,7 @@ public class FixedDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithPeriodInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "period"; @@ -553,7 +553,7 @@ public class FixedDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithPeriodInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "period"; @@ -562,7 +562,7 @@ public class FixedDepositTest { final Float interestRate = new Float(7.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithAmountInterestRateChart() { final String chartToUse = "amount"; @@ -571,7 +571,7 @@ public class FixedDepositTest { final Float interestRate = new Float(7.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithAmountInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "amount"; @@ -580,7 +580,7 @@ public class FixedDepositTest { final Float interestRate = new Float(5.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithAmountInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "amount"; @@ -598,7 +598,7 @@ public class FixedDepositTest { final Float interestRate = new Float(7.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithPeriodAndAmountInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "period_amount"; @@ -607,7 +607,7 @@ public class FixedDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithPeriodAndAmountInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "period_amount"; @@ -616,7 +616,7 @@ public class FixedDepositTest { final Float interestRate = new Float(9.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithAmountAndPeriodInterestRateChart() { final String chartToUse = "amount_period"; @@ -625,7 +625,7 @@ public class FixedDepositTest { final Float interestRate = new Float(8.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithAmountAndPeriodInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "amount_period"; @@ -634,7 +634,7 @@ public class FixedDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testFixedDepositAccountWithAmountAndPeriodInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "amount_period"; @@ -2422,7 +2422,7 @@ public class FixedDepositTest { return FixedDepositProductHelper.createFixedDepositProduct(fixedDepositProductJSON, requestSpec, responseSpec); } - + private Integer createFixedDepositProductWithWithHoldTax(final String validFrom, final String validTo, final String taxGroupId, final String accountingRule, Account... accounts) { System.out.println("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------"); @@ -2437,7 +2437,7 @@ public class FixedDepositTest { .build(validFrom, validTo); return FixedDepositProductHelper.createFixedDepositProduct(fixedDepositProductJSON, requestSpec, responseSpec); } - + private Integer createFixedDepositProduct(final String validFrom, final String validTo, final String accountingRule, final String chartToBePicked, Account... accounts) { System.out.println("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------"); @@ -2561,7 +2561,7 @@ public class FixedDepositTest { Assert.assertEquals(financialActivityId, ((HashMap) mappingDetails.get("financialActivityData")).get("id")); Assert.assertEquals(glAccount.getAccountID(), ((HashMap) mappingDetails.get("glAccountData")).get("id")); } - + private Integer createTaxGroup(final String percentage, final Account liabilityAccountForTax){ final Integer liabilityAccountId = liabilityAccountForTax.getAccountID(); final Integer taxComponentId = TaxComponentHelper.createTaxComponent(this.requestSpec, this.responseSpec, percentage, liabilityAccountId); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigInterestChargedFromDateSameAsDisbursalDateTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigInterestChargedFromDateSameAsDisbursalDateTest.java index ee9bfb5..48b5b8e 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigInterestChargedFromDateSameAsDisbursalDateTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigInterestChargedFromDateSameAsDisbursalDateTest.java @@ -36,11 +36,11 @@ import com.jayway.restassured.specification.ResponseSpecification; public class GlobalConfigInterestChargedFromDateSameAsDisbursalDateTest { - + private ResponseSpecification responseSpec; private RequestSpecification requestSpec; private GlobalConfigurationHelper globalConfigurationHelper; - + @Before public void setup() { Utils.initializeRESTAssured(); @@ -54,20 +54,20 @@ public class GlobalConfigInterestChargedFromDateSameAsDisbursalDateTest { GlobalConfigurationHelper.resetAllDefaultGlobalConfigurations(this.requestSpec, this.responseSpec); GlobalConfigurationHelper.verifyAllDefaultGlobalConfigurations(this.requestSpec, this.responseSpec); } - + @SuppressWarnings( {"static-access", "rawtypes", "unchecked"}) @Test public void testInterestChargedFromDateSameAsDisbursalDate(){ this.globalConfigurationHelper = new GlobalConfigurationHelper(this.requestSpec, this.responseSpec); - + // Retrieving All Global Configuration details final ArrayList globalConfig = this.globalConfigurationHelper .getAllGlobalConfigurations(this.requestSpec, this.responseSpec); Assert.assertNotNull(globalConfig); - + String configName = "interest-charged-from-date-same-as-disbursal-date"; boolean newBooleanValue = true; - + for (Integer configIndex = 0; configIndex < (globalConfig.size()); configIndex++) { if (globalConfig.get(configIndex).get("name") .equals(configName)) { @@ -80,7 +80,7 @@ public class GlobalConfigInterestChargedFromDateSameAsDisbursalDateTest { break; } } - + } } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java index c81b908..f978135 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GlobalConfigurationTest.java @@ -144,7 +144,7 @@ public class GlobalConfigurationTest { Assert.assertEquals("Verifying Is Cache Enabled Global Config after Updation", cacheTypeId, changes.get("cacheType")); } } - + @Test public void testGlobalConfigForcePasswordResetDays() { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupSavingsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupSavingsIntegrationTest.java index 5d458ec..025d49f 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupSavingsIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupSavingsIntegrationTest.java @@ -500,10 +500,10 @@ public class GroupSavingsIntegrationTest { BigDecimal totalWaiveAmount = BigDecimal.valueOf(Double.valueOf((Float) savingsChargeForWaive.get("amount"))); totalWaiveAmount = totalWaiveAmount.add(totalWaiveAmount); assertEquals(totalWaiveAmount.floatValue(), waiveCharge.get("amountWaived")); - + final Integer weeklyFeeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getSavingsWeeklyFeeJSON()); Assert.assertNotNull(weeklyFeeId); - + this.savingsAccountHelper.addChargesForSavings(savingsId, weeklyFeeId, true); charges = this.savingsAccountHelper.getSavingsCharges(savingsId); Assert.assertEquals(3, charges.size()); @@ -530,9 +530,9 @@ public class GroupSavingsIntegrationTest { .plusWeeks((Integer) paidCharge.get("feeInterval")); assertEquals(expectedNextDueDate, nextDueDate); cal = Calendar.getInstance(); - + this.savingsAccountHelper.closeSavingsAccountAndGetBackRequiredField(savingsId, "true", null, sdf.format(cal.getTime())); - + } public static Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java index 3203f4e..3762caf 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java @@ -96,7 +96,7 @@ public class HookIntegrationTest { } } - + @Test public void createUpdateAndDeleteHook(){ final String payloadURL = "http://echo-webhook.herokuapp.com:80/Z7RXoCBdLSFMDrpn?"; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java index 6b9ed26..3e793e5 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java @@ -74,7 +74,7 @@ public class LoanDisbursalDateValidationTest { System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------" + loanProductID); - // APPLY FOR LOAN + // APPLY FOR LOAN final Integer loanID = applyForLoanApplication(clientID, loanProductID, proposedAmount); System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------" + loanID); @@ -93,10 +93,10 @@ public class LoanDisbursalDateValidationTest { // DISBURSE A LOAN @SuppressWarnings("unchecked") List disbursalError = (List) this.loanTransactionHelper.disburseLoan(disbursalDate, loanID, this.responseForbiddenError); - + Assert.assertEquals("error.msg.actual.disbursement.date.does.not.match.with.expected.disbursal.date", - disbursalError.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); - + disbursalError.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)); + } private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, final String proposedAmount) { @@ -112,6 +112,6 @@ public class LoanDisbursalDateValidationTest { return this.loanTransactionHelper.getLoanId(loanApplication); } - + } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java index cecac3d..b5ac265 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java @@ -239,63 +239,63 @@ public class LoanDisbursementDetailsIntegrationTest { * periods){ LoanDisbursementTestBuilder expectedRepaymentSchedule0 = new * LoanDisbursementTestBuilder( "[2015, 6, 1]", 0.0f, 0.0f, null, null, * 5000.0f, null, null, null); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule1 = new * LoanDisbursementTestBuilder( "[2015, 7, 1]", 800.0f, 800.0f, 50.0f, * 750.0f, 4250.0f, 750.0f, 750.0f, "[2015, 6, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule2 = new * LoanDisbursementTestBuilder( "[2015, 8, 1]", 800.0f, 800.0f, 42.5f, * 757.5f, 3492.5f, 757.5f, 757.5f, "[2015, 7, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule3 = new * LoanDisbursementTestBuilder( "[2015, 9, 1]", 0.0f, 0.0f, null, null, * 5000.0f, null, null, null); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule4 = new * LoanDisbursementTestBuilder( "[2015, 9, 1]", 800.0f, 800.0f, 34.92f, * 765.08f, 7727.42f, 765.08f, 765.08f, "[2015, 8, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule5 = new * LoanDisbursementTestBuilder( "[2015, 10, 1]", 800.0f, 800.0f, 77.27f, * 722.73f, 7004.69f, 722.73f, 722.73f, "[2015, 9, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule6 = new * LoanDisbursementTestBuilder( "[2015, 11, 1]", 800.0f, 800.0f, 70.05f, * 729.95f, 6274.74f, 729.95f, 729.95f, "[2015, 10, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule7 = new * LoanDisbursementTestBuilder( "[2015, 12, 1]", 800.0f, 800.0f, 62.75f, * 737.25f, 5537.49f, 737.25f, 737.25f, "[2015, 11, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule8 = new * LoanDisbursementTestBuilder( "[2016, 1, 1]", 800.0f, 800.0f, 55.37f, * 744.63f, 4792.86f, 744.63f, 744.63f, "[2015, 12, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule9 = new * LoanDisbursementTestBuilder( "[2016, 2, 1]", 800.0f, 800.0f, 47.93f, * 752.07f, 4040.79f, 752.07f, 752.07f, "[2016, 1, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule10 = new * LoanDisbursementTestBuilder( "[2016, 3, 1]", 800.0f, 800.0f, 40.41f, * 759.59f, 3281.2f, 759.59f, 759.59f, "[2016, 2, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule11 = new * LoanDisbursementTestBuilder( "[2016, 4, 1]", 800.0f, 800.0f, 32.81f, * 767.19f, 2514.01f, 767.19f, 767.19f, "[2016, 3, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule12 = new * LoanDisbursementTestBuilder( "[2016, 5, 1]", 800.0f, 800.0f, 25.14f, * 774.86f, 1739.15f, 774.86f, 774.86f, "[2016, 4, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule13 = new * LoanDisbursementTestBuilder( "[2016, 6, 1]", 800.0f, 800.0f, 17.39f, * 782.61f, 956.54f, 782.61f, 782.61f, "[2016, 5, 1]"); - * + * * LoanDisbursementTestBuilder expectedRepaymentSchedule14 = new * LoanDisbursementTestBuilder( "[2016, 7, 1]", 966.11f, 966.11f, 9.57f, * 956.54f, 0.0f, 956.54f, 956.54f, "[2016, 6, 1]"); - * + * * ArrayList list = new * ArrayList(); * list.add(expectedRepaymentSchedule0); @@ -313,14 +313,14 @@ public class LoanDisbursementDetailsIntegrationTest { * list.add(expectedRepaymentSchedule12); * list.add(expectedRepaymentSchedule13); * list.add(expectedRepaymentSchedule14); - * + * * for (int i = 0; i < list.size(); i++) { * this.assertRepaymentScheduleValuesWithoutEMI(periods.get(i), list.get(i), * i); } } - * + * * private void assertRepaymentScheduleValuesWithoutEMI(HashMap period, * LoanDisbursementTestBuilder expectedRepaymentSchedule, int position) { - * + * * assertEquals(period.get("dueDate").toString(), * expectedRepaymentSchedule.getDueDate()); * assertEquals(period.get("principalLoanBalanceOutstanding"), @@ -329,9 +329,9 @@ public class LoanDisbursementDetailsIntegrationTest { * expectedRepaymentSchedule.getTotalOriginalDueForPeriod()); * assertEquals(period.get("totalOutstandingForPeriod"), * expectedRepaymentSchedule.getTotalOutstandingForPeriod()); - * + * * if (position != 0 && position != 3) { - * + * * assertEquals(period.get("interestOutstanding"), * expectedRepaymentSchedule.getInterestOutstanding()); * assertEquals(period.get("principalOutstanding"), diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java index f4275da..4946462 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java @@ -51,7 +51,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest { private LoanTransactionHelper loanTransactionHelper; private LoanApplicationApprovalTest loanApplicationApprovalTest; private ResponseSpecification generalResponseSpec; - + @Before public void setup() { Utils.initializeRESTAssured(); @@ -62,60 +62,60 @@ public class LoanRepaymentRescheduleAtDisbursementTest { this.loanApplicationApprovalTest = new LoanApplicationApprovalTest(); this.generalResponseSpec = new ResponseSpecBuilder().build(); } - + @SuppressWarnings("unchecked") @Test public void testLoanRepaymentRescheduleAtDisbursement(){ - + final String approvalAmount = "10000"; final String approveDate = "01 March 2015"; final String expectedDisbursementDate = "01 March 2015"; final String disbursementDate = "01 March 2015"; final String adjustRepaymentDate = "16 March 2015"; - + // CREATE CLIENT final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014"); System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------" + clientID); - // CREATE LOAN MULTIDISBURSAL PRODUCT WITH INTEREST RECALCULATION + // CREATE LOAN MULTIDISBURSAL PRODUCT WITH INTEREST RECALCULATION final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.RBI_INDIA_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE, LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_NUMBER_OF_INSTALLMENTS, LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "0", LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null); - + // CREATE TRANCHES List createTranches = new ArrayList<>(); createTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 March 2015", "5000")); createTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 May 2015", "5000")); - + // APPROVE TRANCHES List approveTranches = new ArrayList<>(); approveTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 March 2015", "5000")); approveTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 May 2015", "5000")); - - // APPLY FOR TRANCHE LOAN WITH INTEREST RECALCULATION + + // APPLY FOR TRANCHE LOAN WITH INTEREST RECALCULATION final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY, new ArrayList(0), createTranches); - + HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID); - + // VALIDATE THE LOAN STATUS LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap); System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------"); loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount, loanID, approveTranches); - + // VALIDATE THE LOAN IS APPROVED LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap); LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap); - + // DISBURSE A FIRST TRANCHE this.loanTransactionHelper.disburseLoanWithRepaymentReschedule(disbursementDate, loanID, adjustRepaymentDate); loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID); - + ArrayList loanRepaymnetSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(requestSpec, generalResponseSpec, loanID); HashMap firstInstallement = loanRepaymnetSchedule.get(1); Map expectedvalues = new HashMap<>(3); @@ -127,14 +127,14 @@ public class LoanRepaymentRescheduleAtDisbursementTest { expectedvalues.put("feeChargesDue", "0"); expectedvalues.put("penaltyChargesDue", "0"); expectedvalues.put("totalDueForPeriod", "884.03"); - + // VALIDATE REPAYMENT SCHEDULE verifyLoanRepaymentSchedule(firstInstallement, expectedvalues); - + } - + private void verifyLoanRepaymentSchedule(final HashMap firstInstallement, final Map expectedvalues) { - + assertEquals(expectedvalues.get("dueDate"), firstInstallement.get("dueDate")); assertEquals(String.valueOf(expectedvalues.get("principalDue")), String.valueOf(firstInstallement.get("principalDue"))); assertEquals(String.valueOf(expectedvalues.get("interestDue")), String.valueOf(firstInstallement.get("interestDue"))); @@ -143,7 +143,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest { assertEquals(String.valueOf(expectedvalues.get("totalDueForPeriod")), String.valueOf(firstInstallement.get("totalDueForPeriod"))); } - + private Integer createLoanProductWithInterestRecalculation(final String repaymentStrategy, final String interestRecalculationCompoundingMethod, final String rescheduleStrategyMethod, final String recalculationRestFrequencyType, final String recalculationRestFrequencyInterval, @@ -160,7 +160,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest { accounts, null, false, recalculationCompoundingFrequencyOnDayType, recalculationCompoundingFrequencyDayOfWeekType, recalculationRestFrequencyOnDayType, recalculationRestFrequencyDayOfWeekType); } - + private Integer createLoanProductWithInterestRecalculation(final String repaymentStrategy, final String interestRecalculationCompoundingMethod, final String rescheduleStrategyMethod, final String recalculationRestFrequencyType, final String recalculationRestFrequencyInterval, @@ -197,7 +197,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest { final String loanProductJSON = builder.build(chargeId); return this.loanTransactionHelper.getLoanProductId(loanProductJSON); } - + private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID, final String disbursementDate, final String repaymentStrategy, final List charges, List tranches) { final String graceOnInterestPayment = null; @@ -205,7 +205,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest { return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate, repaymentStrategy, charges, graceOnInterestPayment, graceOnPrincipalPayment, tranches); } - + private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID, final String disbursementDate, final String repaymentStrategy, final List charges, final String graceOnInterestPayment, final String graceOnPrincipalPayment, List tranches) { @@ -231,7 +231,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest { .build(clientID.toString(), loanProductID.toString(), null); return this.loanTransactionHelper.getLoanId(loanApplicationJSON); } - + private List getDateAsArray(Calendar date, int addPeriod) { return getDateAsArray(date, addPeriod, Calendar.DAY_OF_MONTH); } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java index bfa89dd..a7ad483 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java @@ -39,8 +39,8 @@ import com.jayway.restassured.http.ContentType; import com.jayway.restassured.specification.RequestSpecification; import com.jayway.restassured.specification.ResponseSpecification; -/** - * Test the creation, approval and rejection of a loan reschedule request +/** + * Test the creation, approval and rejection of a loan reschedule request **/ @SuppressWarnings({ "rawtypes" }) public class LoanRescheduleRequestTest { @@ -57,7 +57,7 @@ public class LoanRescheduleRequestTest { private String numberOfRepayments = "12"; private String interestRatePerPeriod = "18"; private String dateString = "4 September 2014"; - + @Before public void initialize() { Utils.initializeRESTAssured(); @@ -68,52 +68,52 @@ public class LoanRescheduleRequestTest { this.loanRescheduleRequestHelper = new LoanRescheduleRequestHelper(this.requestSpec, this.responseSpec); this.generalResponseSpec = new ResponseSpecBuilder().build(); - + // create all required entities this.createRequiredEntities(); } - - /** - * Creates the client, loan product, and loan entities + + /** + * Creates the client, loan product, and loan entities **/ private void createRequiredEntities() { this.createClientEntity(); this.createLoanProductEntity(); this.createLoanEntity(); } - - /** - * create a new client - **/ + + /** + * create a new client + **/ private void createClientEntity() { this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec); - + ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, this.clientId); } - - /** - * create a new loan product + + /** + * create a new loan product **/ private void createLoanProductEntity() { System.out.println("---------------------------------CREATING LOAN PRODUCT------------------------------------------"); - + final String loanProductJSON = new LoanProductTestBuilder() .withPrincipal(loanPrincipalAmount) .withNumberOfRepayments(numberOfRepayments) .withinterestRatePerPeriod(interestRatePerPeriod) .withInterestRateFrequencyTypeAsYear() .build(null); - + this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON); System.out.println("Successfully created loan product (ID: " + this.loanProductId + ")"); } - - /** - * submit a new loan application, approve and disburse the loan + + /** + * submit a new loan application, approve and disburse the loan **/ private void createLoanEntity() { System.out.println("---------------------------------NEW LOAN APPLICATION------------------------------------------"); - + final String loanApplicationJSON = new LoanApplicationTestBuilder() .withPrincipal(loanPrincipalAmount) .withLoanTermFrequency(numberOfRepayments) @@ -130,90 +130,90 @@ public class LoanRescheduleRequestTest { .withPrincipalGrace("2") .withInterestGrace("2") .build(this.clientId.toString(), this.loanProductId.toString(), null); - + this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON); - + System.out.println("Sucessfully created loan (ID: " + this.loanId + ")"); - + this.approveLoanApplication(); this.disburseLoan(); } - - /** - * approve the loan application + + /** + * approve the loan application **/ private void approveLoanApplication() { - + if(this.loanId != null) { this.loanTransactionHelper.approveLoan(this.dateString, this.loanId); System.out.println("Successfully approved loan (ID: " + this.loanId + ")"); } } - - /** - * disburse the newly created loan + + /** + * disburse the newly created loan **/ private void disburseLoan() { - + if(this.loanId != null) { this.loanTransactionHelper.disburseLoan(this.dateString, this.loanId); System.out.println("Successfully disbursed loan (ID: " + this.loanId + ")"); } } - - /** - * create new loan reschedule request + + /** + * create new loan reschedule request **/ private void createLoanRescheduleRequest() { System.out.println("---------------------------------CREATING LOAN RESCHEDULE REQUEST------------------------------------------"); - + final String requestJSON = new LoanRescheduleRequestTestBuilder().build(this.loanId.toString()); - + this.loanRescheduleRequestId = this.loanRescheduleRequestHelper.createLoanRescheduleRequest(requestJSON); this.loanRescheduleRequestHelper.verifyCreationOfLoanRescheduleRequest(this.loanRescheduleRequestId); - + System.out.println("Successfully created loan reschedule request (ID: " + this.loanRescheduleRequestId + ")"); } - + @Test public void testCreateLoanRescheduleRequest() { this.createLoanRescheduleRequest(); } - + @Test public void testRejectLoanRescheduleRequest() { this.createLoanRescheduleRequest(); - + System.out.println("-----------------------------REJECTING LOAN RESCHEDULE REQUEST--------------------------"); - + final String requestJSON = new LoanRescheduleRequestTestBuilder().getRejectLoanRescheduleRequestJSON(); this.loanRescheduleRequestHelper.rejectLoanRescheduleRequest(this.loanRescheduleRequestId, requestJSON); - + final HashMap response = (HashMap) this.loanRescheduleRequestHelper.getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum"); assertTrue((Boolean)response.get("rejected")); - + System.out.println("Successfully rejected loan reschedule request (ID: " + this.loanRescheduleRequestId + ")"); } - + @Test public void testApproveLoanRescheduleRequest() { this.createLoanRescheduleRequest(); - + System.out.println("-----------------------------APPROVING LOAN RESCHEDULE REQUEST--------------------------"); - + final String requestJSON = new LoanRescheduleRequestTestBuilder().getApproveLoanRescheduleRequestJSON(); this.loanRescheduleRequestHelper.approveLoanRescheduleRequest(this.loanRescheduleRequestId, requestJSON); - + final HashMap response = (HashMap) this.loanRescheduleRequestHelper.getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum"); assertTrue((Boolean)response.get("approved")); - + final Integer numberOfRepayments = (Integer) this.loanTransactionHelper.getLoanDetail(requestSpec, generalResponseSpec, loanId, "numberOfRepayments"); final HashMap loanSummary = this.loanTransactionHelper.getLoanSummary(requestSpec, generalResponseSpec, loanId); final Float totalExpectedRepayment = (Float) loanSummary.get("totalExpectedRepayment"); - + assertEquals("NUMBER OF REPAYMENTS SHOULD BE 16, NOT 12", "12", numberOfRepayments.toString()); assertEquals("TOTAL EXPECTED REPAYMENT MUST BE EQUAL TO 118000.0", "118000.0", totalExpectedRepayment.toString()); - + System.out.println("Successfully approved loan reschedule request (ID: " + this.loanRescheduleRequestId + ")"); } } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java index 94cd116..24d1f95 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java @@ -99,7 +99,7 @@ public class LoanReschedulingWithinCenterTest { Integer clientId = createClient(officeId); associateClientsToGroup(groupId, clientId); - + DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy"); dateFormat.setTimeZone(Utils.getTimeZoneOfTenant()); Calendar today = Calendar.getInstance(Utils.getTimeZoneOfTenant()); @@ -114,7 +114,7 @@ public class LoanReschedulingWithinCenterTest { LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE, LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_NUMBER_OF_INSTALLMENTS, LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "0", recalculationRestFrequencyDate, - LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, isMultiTrancheLoan, + LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, isMultiTrancheLoan, null, null); // APPLY FOR TRANCHE LOAN WITH INTEREST RECALCULATION @@ -153,7 +153,7 @@ public class LoanReschedulingWithinCenterTest { Float interestDue = (Float) ((HashMap) loanRepaymnetSchedule.get(2)).get("interestDue"); assertEquals("90.82", String.valueOf(interestDue)); } - + private void associateClientsToGroup(Integer groupId, Integer clientId) { // Associate client to the group GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupId.toString(), clientId.toString()); @@ -225,13 +225,13 @@ public class LoanReschedulingWithinCenterTest { LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE, LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_NUMBER_OF_INSTALLMENTS, LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "0", recalculationRestFrequencyDate, - LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, isMultiTrancheLoan, + LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, isMultiTrancheLoan, null, null); Calendar seondTrancheDate = Calendar.getInstance(Utils.getTimeZoneOfTenant()); seondTrancheDate.add(Calendar.MONTH, 1); String secondDisbursement = dateFormat.format(seondTrancheDate.getTime()) ; - + // CREATE TRANCHES List createTranches = new ArrayList<>(); createTranches.add(this.loanApplicationApprovalTest.createTrancheDetail(disbursementDate, "5000")); @@ -295,8 +295,8 @@ public class LoanReschedulingWithinCenterTest { return createLoanProductWithInterestRecalculation(repaymentStrategy, interestRecalculationCompoundingMethod, rescheduleStrategyMethod, recalculationRestFrequencyType, recalculationRestFrequencyInterval, recalculationRestFrequencyDate, recalculationCompoundingFrequencyType, recalculationCompoundingFrequencyInterval, - recalculationCompoundingFrequencyDate, preCloseInterestCalculationStrategy, accounts, null, false, isMultiTrancheLoan, - recalculationCompoundingFrequencyOnDayType, recalculationCompoundingFrequencyDayOfWeekType, recalculationRestFrequencyOnDayType, + recalculationCompoundingFrequencyDate, preCloseInterestCalculationStrategy, accounts, null, false, isMultiTrancheLoan, + recalculationCompoundingFrequencyOnDayType, recalculationCompoundingFrequencyDayOfWeekType, recalculationRestFrequencyOnDayType, recalculationRestFrequencyDayOfWeekType); } @@ -306,7 +306,7 @@ public class LoanReschedulingWithinCenterTest { final String recalculationRestFrequencyDate, final String recalculationCompoundingFrequencyType, final String recalculationCompoundingFrequencyInterval, final String recalculationCompoundingFrequencyDate, final String preCloseInterestCalculationStrategy, final Account[] accounts, final String chargeId, - boolean isArrearsBasedOnOriginalSchedule, final boolean isMultiTrancheLoan, + boolean isArrearsBasedOnOriginalSchedule, final boolean isMultiTrancheLoan, final Integer recalculationCompoundingFrequencyOnDayType, final Integer recalculationCompoundingFrequencyDayOfWeekType, final Integer recalculationRestFrequencyOnDayType, final Integer recalculationRestFrequencyDayOfWeekType) { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java index 388c13e..27729fd 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java @@ -65,11 +65,11 @@ public class PasswordPreferencesIntegrationTest { System.out.println("---------------------------------PASSWORD PREFERENCE VALIDATED SUCCESSFULLY-----------------------------------------"); } - + @Test public void updateWithInvalidPolicyId() { String invalidValidationPolicyId = "2000"; - final List error = (List) PasswordPreferencesHelper.updateWithInvalidValidationPolicyId(requestSpec, generalResponseSpec, invalidValidationPolicyId, + final List error = (List) PasswordPreferencesHelper.updateWithInvalidValidationPolicyId(requestSpec, generalResponseSpec, invalidValidationPolicyId, CommonConstants.RESPONSE_ERROR); assertEquals("Password Validation Policy with identifier 2000 does not exist", "error.msg.password.validation.policy.id.invalid", error.get(0).get("userMessageGlobalisationCode")); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java index d8678eb..fba781b 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java @@ -478,7 +478,7 @@ public class RecurringDepositTest { this.accountHelper = new AccountHelper(this.requestSpec, this.responseSpec); this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); this.recurringDepositAccountHelper = new RecurringDepositAccountHelper(this.requestSpec, this.responseSpec); - + /*** * Create GL Accounts for product account mapping @@ -611,7 +611,7 @@ public class RecurringDepositTest { Integer transactionIdForPostInterest = this.recurringDepositAccountHelper .postInterestForRecurringDeposit(recurringDepositAccountId); Assert.assertNotNull(transactionIdForPostInterest); - + HashMap accountSummary = this.recurringDepositAccountHelper.getRecurringDepositSummary(recurringDepositAccountId); Float totalInterestPosted = (Float) accountSummary.get("totalInterestPosted"); @@ -694,7 +694,7 @@ public class RecurringDepositTest { this.accountHelper = new AccountHelper(this.requestSpec, this.responseSpec); this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); this.recurringDepositAccountHelper = new RecurringDepositAccountHelper(this.requestSpec, this.responseSpec); - + /*** * Create GL Accounts for product account mapping @@ -810,7 +810,7 @@ public class RecurringDepositTest { */ todaysDate = Calendar.getInstance(); todaysDate.add(Calendar.MONTH, -20); - + for (int i = 0; i < 14; i++) { Integer depositTransactionId = this.recurringDepositAccountHelper.depositToRecurringDepositAccount(recurringDepositAccountId, depositAmount, dateFormat.format(todaysDate.getTime())); @@ -826,20 +826,20 @@ public class RecurringDepositTest { /*** * FD account verify whether account is matured */ - + SchedulerJobHelper schedulerJobHelper = new SchedulerJobHelper(requestSpec, responseSpec); String JobName = "Update Deposit Accounts Maturity details"; schedulerJobHelper.executeJob(JobName); - + HashMap accountDetails = this.recurringDepositAccountHelper.getRecurringDepositAccountById(this.requestSpec, this.responseSpec, recurringDepositAccountId); - + HashMap summary = (HashMap) accountDetails.get("summary"); Assert.assertNotNull(summary.get("totalWithholdTax")); Float withHoldTax = (Float) summary.get("totalWithholdTax"); this.journalEntryHelper.checkJournalEntryForLiabilityAccount(liabilityAccountForTax, CLOSED_ON_DATE, new JournalEntry(withHoldTax, JournalEntry.TransactionType.CREDIT)); - + recurringDepositAccountStatusHashMap = RecurringDepositAccountStatusChecker.getStatusOfRecurringDepositAccount(this.requestSpec, this.responseSpec, recurringDepositAccountId.toString()); @@ -849,7 +849,7 @@ public class RecurringDepositTest { } - + /*** * Test case for Recurring Deposit Account premature closure with * transaction type ReInvest and Cash Based accounting enabled @@ -2882,7 +2882,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithPeriodInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "period"; @@ -2891,7 +2891,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithPeriodInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "period"; @@ -2900,7 +2900,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(7.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithAmountInterestRateChart() { final String chartToUse = "amount"; @@ -2909,7 +2909,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(8.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithAmountInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "amount"; @@ -2918,7 +2918,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(7.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithAmountInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "amount"; @@ -2927,7 +2927,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(5.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithPeriodAndAmountInterestRateChart() { final String chartToUse = "period_amount"; @@ -2936,7 +2936,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(7.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithPeriodAndAmountInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "period_amount"; @@ -2945,7 +2945,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithPeriodAndAmountInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "period_amount"; @@ -2954,7 +2954,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(8.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithAmountAndPeriodInterestRateChart() { final String chartToUse = "amount_period"; @@ -2963,7 +2963,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(8.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithAmountAndPeriodInterestRateChart_AMOUNT_VARIATION() { final String chartToUse = "amount_period"; @@ -2972,7 +2972,7 @@ public class RecurringDepositTest { final Float interestRate = new Float(6.0); testFixedDepositAccountForInterestRate(chartToUse, depositAmount, depositPeriod, interestRate); } - + @Test public void testRecurringDepositAccountWithAmountAndPeriodInterestRateChart_PERIOD_VARIATION() { final String chartToUse = "amount_period"; @@ -3049,7 +3049,7 @@ public class RecurringDepositTest { final String recurringDepositProductJSON = recurringDepositProductHelper.withPeriodRangeChart().build(validFrom, validTo); return RecurringDepositProductHelper.createRecurringDepositProduct(recurringDepositProductJSON, requestSpec, responseSpec); } - + private Integer createRecurringDepositProductWithWithHoldTax(final String validFrom, final String validTo,final String taxGroupId, final String accountingRule, Account... accounts) { System.out.println("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------"); @@ -3186,7 +3186,7 @@ public class RecurringDepositTest { Assert.assertEquals(financialActivityId, ((HashMap) mappingDetails.get("financialActivityData")).get("id")); Assert.assertEquals(glAccount.getAccountID(), ((HashMap) mappingDetails.get("glAccountData")).get("id")); } - + private Integer createTaxGroup(final String percentage, final Account liabilityAccountForTax){ final Integer liabilityAccountId = liabilityAccountForTax.getAccountID(); final Integer taxComponentId = TaxComponentHelper.createTaxComponent(this.requestSpec, this.responseSpec, percentage, liabilityAccountId); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java index a0c4907..d9fb3e0 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java @@ -159,15 +159,15 @@ public class SkipRepaymentOnMonthFirstTest { assertEquals("Checking for Repayment Date for 1st Month", new ArrayList<>(Arrays.asList(2011, 10, 15)), loanSchedule.get(1).get("dueDate")); System.out.println("Repayment Date for 1st Month--" + loanSchedule.get(1).get("dueDate")); - + assertEquals("Checking for Repayment Date for 2nd Month", new ArrayList<>(Arrays.asList(2011, 11, 15)), loanSchedule.get(2).get("dueDate")); System.out.println("Repayment Date for 2nd Month--" + loanSchedule.get(2).get("dueDate")); - + assertEquals("Checking for Repayment Date for 3rd Month", new ArrayList<>(Arrays.asList(2011, 12, 15)), loanSchedule.get(3).get("dueDate")); System.out.println("Repayment Date for 3rd Month--" + loanSchedule.get(3).get("dueDate")); - + assertEquals("Checking for Repayment Date for 4th Month", new ArrayList<>(Arrays.asList(2012, 1, 15)), loanSchedule.get(4).get("dueDate")); System.out.println("Repayment Date for 4th Month--" + loanSchedule.get(4).get("dueDate")); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SystemCodeTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SystemCodeTest.java index 99fe2e9..755c408 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SystemCodeTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SystemCodeTest.java @@ -41,7 +41,7 @@ import com.jayway.restassured.specification.ResponseSpecification; /** * Test for creating, updating, deleting codes and code values - * + * */ @SuppressWarnings({ "rawtypes", "unchecked" }) public class SystemCodeTest { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/BatchHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/BatchHelper.java index 170ede5..0570a7d 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/BatchHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/BatchHelper.java @@ -35,9 +35,9 @@ import com.jayway.restassured.specification.ResponseSpecification; * Helper class for {@link org.apache.fineract.integrationtests.BatchApiTest}. It * takes care of creation of {@code BatchRequest} list and posting this list to * the server. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.integrationtests.BatchApiTest */ public class BatchHelper { @@ -51,7 +51,7 @@ public class BatchHelper { /** * Returns a JSON String for a list of {@code BatchRequest}s - * + * * @param batchRequests * @return JSON String of BatchRequest */ @@ -71,7 +71,7 @@ public class BatchHelper { /** * Returns the converted string response into JSON. - * + * * @param json * @return List */ @@ -83,7 +83,7 @@ public class BatchHelper { * Returns a list of BatchResponse with query parameter enclosing * transaction set to false by posting the jsonified BatchRequest to the * server. - * + * * @param requestSpec * @param responseSpec * @param jsonifiedBatchRequests @@ -99,7 +99,7 @@ public class BatchHelper { * Returns a list of BatchResponse with query parameter enclosing * transaction set to true by posting the jsonified BatchRequest to the * server. - * + * * @param requestSpec * @param responseSpec * @param jsonifiedBatchRequests @@ -114,7 +114,7 @@ public class BatchHelper { /** * Returns a BatchResponse based on the given BatchRequest, by posting the * request to the server. - * + * * @param BatchRequest * @return List */ @@ -139,7 +139,7 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.CreateClientCommandStrategy} * Request as one of the request in Batch. - * + * * @param reqId * @param externalId * @return BatchRequest @@ -202,7 +202,7 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.UpdateClientCommandStrategy} * Request with given requestId and reference. - * + * * @param reqId * @param clientId * @return BatchRequest @@ -224,7 +224,7 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.ApplyLoanCommandStrategy} * Request with given requestId and reference. - * + * * @param requestId * @param reference * @param productId @@ -255,7 +255,7 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.ApplySavingsCommandStrategy} * Request with given requestId and reference. - * + * * @param requestId * @param reference * @param productId @@ -281,7 +281,7 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.CreateChargeCommandStrategy} * Request with given requestId and reference - * + * * @param requestId * @param reference * @return BatchRequest @@ -305,7 +305,7 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.CollectChargesCommandStrategy} * Request with given requestId and reference. - * + * * @param requestId * @param reference * @return BatchRequest @@ -327,8 +327,8 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.ActivateClientCommandStrategy} * Request with given requestId and reference. - * - * + * + * * @param requestId * @param reference * @return BatchRequest @@ -345,13 +345,13 @@ public class BatchHelper { return br; } - + /** * Creates and returns a * {@link org.apache.fineract.batch.command.internal.ApproveLoanCommandStrategy} * Request with given requestId and reference. - * - * + * + * * @param requestId * @param reference * @return BatchRequest @@ -363,7 +363,7 @@ public class BatchHelper { br.setRelativeUrl("loans/$.loanId?command=approve"); br.setReference(reference); br.setMethod("POST"); - br.setBody("{\"locale\": \"en\", \"dateFormat\": \"dd MMMM yyyy\", \"approvedOnDate\": \"12 September 2013\"," + br.setBody("{\"locale\": \"en\", \"dateFormat\": \"dd MMMM yyyy\", \"approvedOnDate\": \"12 September 2013\"," + "\"note\": \"Loan approval note\"}"); return br; @@ -373,8 +373,8 @@ public class BatchHelper { * Creates and returns a * {@link org.apache.fineract.batch.command.internal.DisburseLoanCommandStrategy} * Request with given requestId and reference. - * - * + * + * * @param requestId * @param reference * @return BatchRequest @@ -413,11 +413,11 @@ public class BatchHelper { return br; } - + /** * Checks that the client with given externalId is not created on the * server. - * + * * @param requestSpec * @param responseSpec * @param externalId diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CalendarHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CalendarHelper.java index 1f0e547..da1f14b 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CalendarHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CalendarHelper.java @@ -88,7 +88,7 @@ public class CalendarHelper { final Integer responseCalendarId = from(responseCalendarDetailsinJSON).get("id"); assertEquals("ERROR IN CREATING THE CALENDAR", generatedCalendarId, responseCalendarId); } - + public static Integer createMeetingForGroup(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final Integer groupId, final String startDate, final String frequency, final String interval, final String repeatsOnDay) { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterDomain.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterDomain.java index ae83869..fdbec38 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterDomain.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterDomain.java @@ -195,7 +195,7 @@ public class CenterDomain implements Comparable { public String getHierarchy() { return this.hierarchy; } - + public String getAccountNo(){ return this.accountNo; } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java index f22970c..17531d8 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/CenterHelper.java @@ -97,7 +97,7 @@ public class CenterHelper { hm.put("dateFormat", "dd MMM yyyy"); hm.put("activationDate", activationDate); } - + System.out.println("------------------------CREATING CENTER-------------------------"); return Utils.performServerPost(requestSpec, responseSpec, CREATE_CENTER_URL, new Gson().toJson(hm), "resourceId"); } @@ -183,7 +183,7 @@ public class CenterHelper { } public static String getTestCenterWithStaffAsJSON(final boolean active, final String activationDate, final Integer staffId) { - + Integer id = null; Integer statusid = null; String statuscode = null; @@ -201,7 +201,7 @@ public class CenterHelper { } public static String getTestCenterAsJSON(final boolean active, final String activationDate) { - + Integer id = null; Integer statusid = null; String statuscode = null; @@ -217,7 +217,7 @@ public class CenterHelper { return CenterDomain.jsonRequestToCreateCenter(id, statusid, statuscode, statusvalue, active, activationDate,submittedDate,name, externalId, staffId, officeID, officeName, hierarchy, groupMembers); - + } public static String assignStaffAsJSON(final Long staffId) { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientChargesTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientChargesTest.java index 49359c6..19b3ca5 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientChargesTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientChargesTest.java @@ -34,13 +34,13 @@ import com.jayway.restassured.specification.RequestSpecification; import com.jayway.restassured.specification.ResponseSpecification; /** - * + * * IntegrationTest for ClientCharges. - * + * */ /** * @author lenovo - * + * */ public class ClientChargesTest { @@ -71,7 +71,7 @@ public class ClientChargesTest { * create a charge for loan and try to associate to client created in * the above lines.it will be an invalid scenario the reason is client * is not allowed to have only client charge. - * + * */ final Integer loanChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON()); @@ -159,7 +159,7 @@ public class ClientChargesTest { /** * It checks whether the client charge transaction is reversed or not. - * + * * @param clientId * @param transactionId */ @@ -172,7 +172,7 @@ public class ClientChargesTest { /** * Check whether the outStandingAmount is equal to expected Amount or not * after paying or after waiving off the client charge. - * + * * @param outStandingAmount * @param expectedAmount */ diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientHelper.java index 762211e..4726214 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ClientHelper.java @@ -85,9 +85,9 @@ public class ClientHelper { return Utils.performServerPost(requestSpec, responseSpec, CREATE_CLIENT_URL, getTestClientAsJSON(activationDate, officeId), "clientId"); } - - - + + + public static Integer createClientPending(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { return createClientPending(requestSpec, responseSpec, "04 March 2014"); } @@ -128,12 +128,12 @@ public class ClientHelper { public static Integer createClientAsPerson(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String activationDate, final String officeId) { - + System.out.println("---------------------------------CREATING A CLIENT NON PERSON(ORGANISATION)---------------------------------------------"); return Utils.performServerPost(requestSpec, responseSpec, CREATE_CLIENT_URL, getTestPersonClientAsJSON(activationDate, officeId), "clientId"); } - + public static Integer createClientAsEntity(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { return createClientAsEntity(requestSpec, responseSpec, "04 March 2011"); } @@ -145,10 +145,10 @@ public class ClientHelper { public static Integer createClientAsEntity(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String activationDate, final String officeId) { - + Integer constitutionCodeId = (Integer) CodeHelper.getCodeByName(requestSpec, responseSpec, "Constitution").get("id"); Integer soleProprietorCodeValueId = (Integer) CodeHelper.retrieveOrCreateCodeValue(constitutionCodeId, requestSpec, responseSpec).get("id"); - + System.out.println("---------------------------------CREATING A CLIENT NON PERSON(ORGANISATION)---------------------------------------------"); return Utils.performServerPost(requestSpec, responseSpec, CREATE_CLIENT_URL, getTestEntityClientAsJSON(activationDate, officeId, soleProprietorCodeValueId), "clientId"); @@ -191,7 +191,7 @@ public class ClientHelper { System.out.println("map : " + map); return new Gson().toJson(map); } - + public static String getTestClientAsJSONPending(final String submittedOnDate, final String officeId) { final HashMap map = new HashMap<>(); map.put("officeId", officeId); @@ -248,11 +248,11 @@ public class ClientHelper { map.put("active", "true"); map.put("activationDate", dateOfJoining); map.put("legalFormId", 1); - + System.out.println("map : " + map); return new Gson().toJson(map); } - + public static String getTestEntityClientAsJSON(final String dateOfJoining, final String officeId, final Integer soleProprietorCodeValueId) { final HashMap map = new HashMap<>(); map.put("officeId", officeId); @@ -263,11 +263,11 @@ public class ClientHelper { map.put("active", "true"); map.put("activationDate", dateOfJoining); map.put("legalFormId", 2); - + final HashMap clientNonPersonMap = new HashMap<>(); clientNonPersonMap.put("constitutionId", soleProprietorCodeValueId); map.put("clientNonPersonDetails", clientNonPersonMap); - + System.out.println("map : " + map); return new Gson().toJson(map); } @@ -408,8 +408,8 @@ public class ClientHelper { System.out.println(clientJson); return clientJson; } - - + + private String getWithdrawClientAsJSON() { final HashMap map = new HashMap<>(); @@ -539,7 +539,7 @@ public class ClientHelper { return Utils.performServerPost(this.requestSpec, this.responseSpec, postURLForClient, jsonToBeSent, jsonAttributeToGetBack); } - + private HashMap performClientActions(final String postURLForClient, final String jsonToBeSent, final Integer clientId) { Utils.performServerPost(this.requestSpec, this.responseSpec, postURLForClient, jsonToBeSent, CommonConstants.RESPONSE_STATUS); HashMap response = ClientHelper.getClientStatus(requestSpec, responseSpec, String.valueOf(clientId)); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GlobalConfigurationHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GlobalConfigurationHelper.java index 82fe8c6..dffa316 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GlobalConfigurationHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/GlobalConfigurationHelper.java @@ -362,7 +362,7 @@ public class GlobalConfigurationHelper { return Utils.performServerPut(requestSpec, responseSpec, IS_CACHE_GLOBAL_CONFIG_UPDATE_URL, updateIsCacheEnabledGlobalConfigUpdateAsJSON(cacheType), "changes"); } - + public static Object updatePasswordResetDaysForGlobalConfiguration(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final Integer configId, final String value, final String enabled, final String jsonAttributeToGetBack) { final String UPDATE_URL = "/fineract-provider/api/v1/configurations/" + configId + "?" + Utils.TENANT_IDENTIFIER; @@ -377,7 +377,7 @@ public class GlobalConfigurationHelper { System.out.println("map : " + map); return new Gson().toJson(map); } - + public static String updatePasswordResetDaysGlobalConfigAsJSON(final String value, final String enabled) { final HashMap map = new HashMap<>(); if(value != null){ diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HolidayHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HolidayHelper.java index b1a5e64..14b01c6 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HolidayHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HolidayHelper.java @@ -64,7 +64,7 @@ public class HolidayHelper { System.out.println(HolidayCreateJson); return HolidayCreateJson; } - + public static String getActivateHolidayDataAsJSON() { final HashMap map = new HashMap<>(); String activateHoliday = new Gson().toJson(map); @@ -75,12 +75,12 @@ public class HolidayHelper { public static Integer createHolidays(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { return Utils.performServerPost(requestSpec, responseSpec, CREATE_HOLIDAY_URL, getCreateHolidayDataAsJSON(), "resourceId"); } - + public static Integer activateHolidays(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String holidayID) { - final String ACTIVATE_HOLIDAY_URL = HOLIDAYS_URL + "/" + holidayID + "?command=activate&" + Utils.TENANT_IDENTIFIER; + final String ACTIVATE_HOLIDAY_URL = HOLIDAYS_URL + "/" + holidayID + "?command=activate&" + Utils.TENANT_IDENTIFIER; return Utils.performServerPost(requestSpec, responseSpec, ACTIVATE_HOLIDAY_URL, getActivateHolidayDataAsJSON(), "resourceId"); } - + public static HashMap getHolidayById(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String holidayID) { final String GET_HOLIDAY_BY_ID_URL = HOLIDAYS_URL + "/" + holidayID + "?" + Utils.TENANT_IDENTIFIER; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HookHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HookHelper.java index 2b4f736..5796751 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HookHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/HookHelper.java @@ -29,23 +29,23 @@ import com.jayway.restassured.specification.RequestSpecification; import com.jayway.restassured.specification.ResponseSpecification; public class HookHelper { - + private final RequestSpecification requestSpec; private final ResponseSpecification responseSpec; private static final String CREATE_HOOK_URL = "/fineract-provider/api/v1/hooks?" + Utils.TENANT_IDENTIFIER; - + public HookHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { this.requestSpec = requestSpec; this.responseSpec = responseSpec; } - + public Integer createHook(final String payloadURL) { System.out.println("---------------------------------CREATING A HOOK---------------------------------------------"); return Utils.performServerPost(requestSpec, responseSpec, CREATE_HOOK_URL, getTestHookAsJson(payloadURL), "resourceId"); } - + public String getTestHookAsJson(final String payloadURL) { final HashMap map = new HashMap<>(); map.put("name", "Web"); @@ -64,7 +64,7 @@ public class HookHelper { System.out.println("map : " + map); return new Gson().toJson(map); } - + public Integer updateHook(final String payloadURL, final Long hookId) { System.out.println("---------------------------------UPDATING HOOK---------------------------------------------"); final String UPDATE_HOOK_URL = "/fineract-provider/api/v1/hooks/" + hookId + "?" + Utils.TENANT_IDENTIFIER; @@ -76,14 +76,14 @@ public class HookHelper { final String DELETE_HOOK_URL = "/fineract-provider/api/v1/hooks/" + hookId + "?" + Utils.TENANT_IDENTIFIER; return Utils.performServerDelete(this.requestSpec, this.responseSpec, DELETE_HOOK_URL, "resourceId"); } - + public void verifyHookCreatedOnServer(final Long hookId) { System.out.println("------------------------------CHECK CREATE HOOK DETAILS------------------------------------\n"); final String GET_URL = "/fineract-provider/api/v1/hooks/" + hookId + "?" + Utils.TENANT_IDENTIFIER; final Integer responseHookId = Utils.performServerGet(this.requestSpec, this.responseSpec, GET_URL, "id"); assertEquals(hookId.toString(), responseHookId.toString()); } - + public void verifyUpdateHook(final String updateURL, final Long hookId) { System.out.println("------------------------------CHECK UPDATE HOOK DETAILS------------------------------------\n"); final String GET_URL = "/fineract-provider/api/v1/hooks/" + hookId + "?" + Utils.TENANT_IDENTIFIER; @@ -91,7 +91,7 @@ public class HookHelper { HashMap hash = (HashMap) map.get(1); assertEquals(updateURL, hash.get("fieldValue")); } - + public void verifyDeleteHook(final Long hookId) { System.out.println("------------------------------CHECK DELETE HOOK DETAILS------------------------------------\n"); final String GET_URL = "/fineract-provider/api/v1/hooks/" + hookId + "?" + Utils.TENANT_IDENTIFIER; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/LoanRescheduleRequestHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/LoanRescheduleRequestHelper.java index badcaa4..ddde885 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/LoanRescheduleRequestHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/LoanRescheduleRequestHelper.java @@ -26,40 +26,40 @@ import com.jayway.restassured.specification.ResponseSpecification; public class LoanRescheduleRequestHelper { private final RequestSpecification requestSpec; private final ResponseSpecification responseSpec; - + private static final String LOAN_RESCHEDULE_REQUEST_URL = "/fineract-provider/api/v1/rescheduleloans"; - + public LoanRescheduleRequestHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { this.requestSpec = requestSpec; this.responseSpec = responseSpec; } - + public Integer createLoanRescheduleRequest(final String requestJSON) { - final String URL = LOAN_RESCHEDULE_REQUEST_URL + "?" + Utils.TENANT_IDENTIFIER; + final String URL = LOAN_RESCHEDULE_REQUEST_URL + "?" + Utils.TENANT_IDENTIFIER; return Utils.performServerPost(this.requestSpec, this.responseSpec, URL, requestJSON, "resourceId"); } - + public Integer rejectLoanRescheduleRequest(final Integer requestId, final String requestJSON) { final String URL = LOAN_RESCHEDULE_REQUEST_URL + "/" + requestId + "?" + Utils.TENANT_IDENTIFIER + "&command=reject"; - + return Utils.performServerPost(this.requestSpec, this.responseSpec, URL, requestJSON, "resourceId"); } - + public Integer approveLoanRescheduleRequest(final Integer requestId, final String requestJSON) { final String URL = LOAN_RESCHEDULE_REQUEST_URL + "/" + requestId + "?" + Utils.TENANT_IDENTIFIER + "&command=approve"; - + return Utils.performServerPost(this.requestSpec, this.responseSpec, URL, requestJSON, "resourceId"); } - + public Object getLoanRescheduleRequest(final Integer requestId, final String param) { final String URL = LOAN_RESCHEDULE_REQUEST_URL + "/" + requestId + "?" + Utils.TENANT_IDENTIFIER; - + return Utils.performServerGet(requestSpec, responseSpec, URL, param); } - + public void verifyCreationOfLoanRescheduleRequest(final Integer requestId) { final String URL = LOAN_RESCHEDULE_REQUEST_URL + "/" + requestId + "?" + Utils.TENANT_IDENTIFIER; - + final Integer id = Utils.performServerGet(requestSpec, responseSpec, URL, "id"); assertEquals("ERROR IN CREATING LOAN RESCHEDULE REQUEST", requestId, id); } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PasswordPreferencesHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PasswordPreferencesHelper.java index 52b8c5a..6149ecc 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PasswordPreferencesHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PasswordPreferencesHelper.java @@ -28,7 +28,7 @@ public class PasswordPreferencesHelper { private static final String PASSWORD_PREFERENCES_URL = "/fineract-provider/api/v1/passwordpreferences"; - public static Object updatePasswordPreferences(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, + public static Object updatePasswordPreferences(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, String validationPolicyId) { final String UPDATE_PASSWORD_PREFERENCES_URL = PASSWORD_PREFERENCES_URL + "?" + Utils.TENANT_IDENTIFIER; System.out.println("---------------------------------UPDATE PASSWORD PREFERENCE---------------------------------------------"); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PaymentTypeHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PaymentTypeHelper.java index c6ab35b..e4ce208 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PaymentTypeHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/PaymentTypeHelper.java @@ -64,7 +64,7 @@ public class PaymentTypeHelper { final Integer paymentTypeId) { final String GET_PAYMENTTYPE_URL = PAYMENTTYPE_URL + "/" + paymentTypeId + "?" + Utils.TENANT_IDENTIFIER; System.out.println("---------------------------------GET PAYMENT TYPE---------------------------------------------"); - Object get = Utils.performServerGet(requestSpec, responseSpec, GET_PAYMENTTYPE_URL, ""); + Object get = Utils.performServerGet(requestSpec, responseSpec, GET_PAYMENTTYPE_URL, ""); final String jsonData = new Gson().toJson(get); return new Gson().fromJson(jsonData, new TypeToken() {}.getType()); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ProvisioningIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ProvisioningIntegrationTest.java index b03ce5e..c8bbd02 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ProvisioningIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/ProvisioningIntegrationTest.java @@ -104,7 +104,7 @@ public class ProvisioningIntegrationTest { Map newCriteria = transactionHelper.retrieveProvisioningCriteria(criteriaId) ; validateProvisioningCriteria(requestCriteria, newCriteria) ; - + ArrayList definitions = (ArrayList)newCriteria.get("definitions") ; for(int i = 0 ; i < definitions.size(); i++) { Map criteriadefinition = (Map) definitions.get(i) ; @@ -115,9 +115,9 @@ public class ProvisioningIntegrationTest { Integer criteriaId1 = transactionHelper.updateProvisioningCriteria(criteriaId, updateCriteriaString) ; Map updatedCriteria = transactionHelper.retrieveProvisioningCriteria(criteriaId1) ; validateProvisioningCriteria(newCriteria, updatedCriteria) ; - + transactionHelper.deleteProvisioningCriteria(criteriaId1) ; - + categories = transactionHelper.retrieveAllProvisioningCategories(); liability = accountHelper.createLiabilityAccount() ; expense = accountHelper.createExpenseAccount() ; @@ -129,7 +129,7 @@ public class ProvisioningIntegrationTest { String provisioningEntryJson = ProvisioningHelper.createProvisioningEntryJson(); Integer provisioningEntryId = transactionHelper.createProvisioningEntries(provisioningEntryJson); Assert.assertNotNull(provisioningEntryId); - + transactionHelper.updateProvisioningEntry("recreateprovisioningentry", provisioningEntryId, "") ; transactionHelper.updateProvisioningEntry("createjournalentry", provisioningEntryId, "") ; Map entry = transactionHelper.retrieveProvisioningEntry(provisioningEntryId) ; @@ -139,24 +139,24 @@ public class ProvisioningIntegrationTest { } private void validateProvisioningCriteria(Map requestCriteria, Map newCriteria) { - + //criteria name validation String requestCriteriaName = (String)requestCriteria.get("criteriaName") ; String criteriaName = (String)newCriteria.get("criteriaName") ; Assert.assertEquals(criteriaName, requestCriteriaName) ; - + //loan products validation ArrayList requestProducts = (ArrayList)requestCriteria.get("loanProducts") ; ArrayList products = (ArrayList)newCriteria.get("loanProducts") ; Assert.assertEquals(products.size(), requestProducts.size()) ; - + ArrayList requestedDefinitions = (ArrayList)requestCriteria.get("definitions") ; ArrayList newdefintions = (ArrayList) newCriteria.get("definitions") ; Assert.assertEquals(newdefintions.size(), requestedDefinitions.size()) ; for(int i = 0 ; i < newdefintions.size() ; i++) { Map requestedMap = (Map)requestedDefinitions.get(i) ; Object requestedCategoryId = requestedMap.get("categoryId") ; - boolean found = false ; + boolean found = false ; for(int j = 0 ; j < newdefintions.size(); j++) { Map newMap = (Map)newdefintions.get(j) ; Object newCategoryId = newMap.get("categoryId") ; @@ -175,13 +175,13 @@ public class ProvisioningIntegrationTest { if(!found) Assert.fail("No Category found with Id:"+requestedCategoryId); } } - + private void checkProperty(String propertyName, Map requestMap, Map newMap) { Object requested = requestMap.get(propertyName) ; Object modified = newMap.get(propertyName) ; Assert.assertEquals(requested, modified) ; } - + private Integer createLoanProduct(final boolean multiDisburseLoan, final String accountingRule, final Account... accounts) { System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------"); LoanProductTestBuilder builder = new LoanProductTestBuilder() // @@ -199,7 +199,7 @@ public class ProvisioningIntegrationTest { builder = builder.withInterestCalculationPeriodTypeAsRepaymentPeriod(true); } final String loanProductJSON = builder.build(null); - + return this.loanTransactionHelper.getLoanProductId(loanProductJSON); } @@ -222,7 +222,7 @@ public class ProvisioningIntegrationTest { .withCharges(charges).build(clientID.toString(), loanProductID.toString(), savingsId); return this.loanTransactionHelper.getLoanId(loanApplicationJSON); } - + private boolean isAlreadyProvisioningEntriesCreated() { ProvisioningTransactionHelper transactionHelper = new ProvisioningTransactionHelper(requestSpec, responseSpec); Map entries = transactionHelper.retrieveAllProvisioningEntries() ; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/AccountHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/AccountHelper.java index 3362857..d83ead3 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/AccountHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/AccountHelper.java @@ -67,13 +67,13 @@ public class AccountHelper { liabilityAccountJSON, this.GL_ACCOUNT_ID_RESPONSE); return new Account(accountID, Account.AccountType.LIABILITY); } - + public ArrayList getAccountingWithRunningBalances() { final String GET_RUNNING_BALANCE_URL = "/fineract-provider/api/v1/glaccounts?fetchRunningBalance=true"; final ArrayList accountRunningBalance = Utils.performServerGet(this.requestSpec, this.responseSpec, GET_RUNNING_BALANCE_URL, ""); return accountRunningBalance; } - + public HashMap getAccountingWithRunningBalanceById(final String accountId) { final String GET_RUNNING_BALANCE_URL = "/fineract-provider/api/v1/glaccounts/" + accountId + "?fetchRunningBalance=true"; final HashMap accountRunningBalance = Utils.performServerGet(this.requestSpec, this.responseSpec, GET_RUNNING_BALANCE_URL, ""); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/GLAccountBuilder.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/GLAccountBuilder.java index 0e8467a..be8f27f 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/GLAccountBuilder.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/accounting/GLAccountBuilder.java @@ -61,7 +61,7 @@ public class GLAccountBuilder { accountType = ASSET_ACCOUNT; glCode = Utils.randomStringGenerator("ASSET_", 2); // Add unique timestamp to avoid random collisions - glCode += Calendar.getInstance().getTimeInMillis() + ""; + glCode += Calendar.getInstance().getTimeInMillis() + ""; return this; } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/charges/ChargesHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/charges/ChargesHelper.java index a3a267a..f94592e 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/charges/ChargesHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/charges/ChargesHelper.java @@ -39,7 +39,7 @@ public class ChargesHelper { private static final Integer CHARGE_APPLIES_TO_SAVINGS = 2; private static final Integer CHARGE_APPLIES_TO_CLIENT = 3; private static final Integer CHARGE_APPLIES_TO_SHARES = 4; - + private static final Integer CHARGE_DISBURSEMENT_FEE = 1; private static final Integer CHARGE_SPECIFIED_DUE_DATE = 2; private static final Integer CHARGE_SAVINGS_ACTIVATION_FEE = 3; @@ -53,9 +53,9 @@ public class ChargesHelper { private static final Integer SHAREACCOUNT_ACTIVATION = 13 ; private static final Integer SHARE_PURCHASE = 14 ; private static final Integer SHARE_REDEEM = 15 ; - + private static final Integer CHARGE_SAVINGS_NO_ACTIVITY_FEE = 16; - + private static final Integer CHARGE_CLIENT_SPECIFIED_DUE_DATE = 1; public static final Integer CHARGE_CALCULATION_TYPE_FLAT = 1; @@ -125,7 +125,7 @@ public class ChargesHelper { System.out.println(chargesCreateJson); return chargesCreateJson; } - + public static String getSavingsWeeklyFeeJSON() { final HashMap map = populateDefaultsForSavings(); map.put("chargeTimeType", WEEKLY_FEE); @@ -247,21 +247,21 @@ public class ChargesHelper { System.out.println(chargesCreateJson); return chargesCreateJson; } - + public static String getShareAccountPurchaseChargeJson() { HashMap map = populateDefaultsSharePurchaseFlatCharge() ; String chargesCreateJson = new Gson().toJson(map); System.out.println(chargesCreateJson); return chargesCreateJson; } - + public static String getShareAccountRedeemChargeJson() { HashMap map = populateDefaultsShareRedeemFlatCharge() ; String chargesCreateJson = new Gson().toJson(map); System.out.println(chargesCreateJson); return chargesCreateJson; } - + public static String getLoanOverdueFeeJSON() { final HashMap map = populateDefaultsForLoan(); map.put("penalty", ChargesHelper.penalty); @@ -274,7 +274,7 @@ public class ChargesHelper { System.out.println(chargesCreateJson); return chargesCreateJson; } - + public static String getLoanOverdueFeeJSONWithCalculattionTypePercentage(String penaltyPercentageAmount) { final HashMap map = populateDefaultsForLoan(); map.put("penalty", ChargesHelper.penalty); @@ -299,7 +299,7 @@ public class ChargesHelper { map.put("name", Utils.randomNameGenerator("Charge_Loans_", 6)); return map; } - + public static HashMap populateDefaultsClientCharge() { final HashMap map = new HashMap<>(); map.put("active", ChargesHelper.active); @@ -326,7 +326,7 @@ public class ChargesHelper { map.put("name", Utils.randomNameGenerator("Charge_Share_Activation_", 8)); return map; } - + public static HashMap populateDefaultsSharePurchaseFlatCharge() { final HashMap map = new HashMap<>(); map.put("active", ChargesHelper.active); @@ -339,7 +339,7 @@ public class ChargesHelper { map.put("name", Utils.randomNameGenerator("Charge_Share_Purchase_", 8)); return map; } - + public static HashMap populateDefaultsShareRedeemFlatCharge() { final HashMap map = new HashMap<>(); map.put("active", ChargesHelper.active); @@ -352,7 +352,7 @@ public class ChargesHelper { map.put("name", Utils.randomNameGenerator("Charge_Share_Redeem_", 8)); return map; } - + public static Integer createCharges(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String request) { return Utils.performServerPost(requestSpec, responseSpec, CREATE_CHARGES_URL, request, "resourceId"); @@ -472,7 +472,7 @@ public class ChargesHelper { System.out.println(json); return json; } - + public static String getChargeSpecifiedDueDateJSON() { final HashMap map = populateDefaultsClientCharge(); String chargesCreateJson = new Gson().toJson(map); @@ -482,6 +482,6 @@ public class ChargesHelper { public static String applyCharge(RequestSpecification requestSpec,ResponseSpecification responseSpec, String chargeId,String json) { return Utils.performServerPost(requestSpec, responseSpec, CHARGES_URL + "/" + chargeId + "?" + Utils.TENANT_IDENTIFIER, json,"status"); - + } } \ No newline at end of file diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositAccountStatusChecker.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositAccountStatusChecker.java index c276af5..fad699d 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositAccountStatusChecker.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositAccountStatusChecker.java @@ -87,7 +87,7 @@ public class FixedDepositAccountStatusChecker { assertTrue("ERROR IN PREMATURELY CLOSING THE FIXED DEPOSIT ACCOUNT", getStatus(fixedDepositStatusHashMap, "prematureClosed")); System.out.println(fixedDepositStatusHashMap); } - + public static void verifyFixedDepositAccountIsMatured(HashMap fixedDepositStatusHashMap) { System.out.println("--------------------- VERIFYING FIXED DEPOSIT APPLICATION IS MATURED ---------------------"); assertTrue("ERROR IN MATURITY JOB OF THE FIXED DEPOSIT ACCOUNT", getStatus(fixedDepositStatusHashMap, "matured")); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositProductHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositProductHelper.java index f2bb04d..d917cbc 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositProductHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/fixeddeposit/FixedDepositProductHelper.java @@ -74,7 +74,7 @@ public class FixedDepositProductHelper { private static final String ACCRUAL_UPFRONT = "4"; private static final String WHOLE_TERM = "1"; private static final String TILL_PREMATURE_WITHDRAWAL = "2"; - + private String name = Utils.randomNameGenerator("FIXED_DEPOSIT_PRODUCT_", 6); private String shortName = Utils.randomNameGenerator("", 4); @@ -147,7 +147,7 @@ public class FixedDepositProductHelper { map.put("taxGroupId", taxGroupId); } - + if (this.accountingRule.equals(CASH_BASED)) { map.putAll(getAccountMappingForCashBased()); @@ -389,7 +389,7 @@ public class FixedDepositProductHelper { this.chartSlabs = constructChartSlabWithAmountAndPeriodRange(); return this; } - + public FixedDepositProductHelper withWithHoldTax(final String taxGroupId) { if (taxGroupId != null) { this.withHoldTax = true; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanApplicationTestBuilder.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanApplicationTestBuilder.java index e51b2ca..b88c30b 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanApplicationTestBuilder.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanApplicationTestBuilder.java @@ -303,7 +303,7 @@ public class LoanApplicationTestBuilder { * disbursement with the group meetings (it seems that if we do use this * parameter we should also use calendarID to sync repayment with group * meetings) - * + * * @return */ public LoanApplicationTestBuilder withSyncDisbursementWithMeetin() { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanDisbursementTestBuilder.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanDisbursementTestBuilder.java index 4ba7c06..192de1f 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanDisbursementTestBuilder.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanDisbursementTestBuilder.java @@ -23,7 +23,7 @@ import static org.junit.Assert.assertEquals; import java.util.HashMap; public class LoanDisbursementTestBuilder { - + String dueDate = null; Float totalOriginalDueForPeriod = null; Float totalOutstandingForPeriod = null; @@ -32,8 +32,8 @@ public class LoanDisbursementTestBuilder { Float principalLoanBalanceOutstanding = null; Float principalDue = null; Float principalOriginalDue = null; - String fromDate = null; - + String fromDate = null; + public LoanDisbursementTestBuilder(String dueDate,Float totalOriginalDueForPeriod,Float totalOutstandingForPeriod, Float interestOutstanding, Float principalOutstanding, Float principalLoanBalanceOutstanding, Float principalDue, Float principalOriginalDue, String fromDate) { @@ -45,7 +45,7 @@ public class LoanDisbursementTestBuilder { this.principalLoanBalanceOutstanding = principalLoanBalanceOutstanding; this.principalDue = principalDue; this.principalOriginalDue = principalOriginalDue; - this.fromDate = fromDate; + this.fromDate = fromDate; } public String getDueDate() { @@ -83,7 +83,7 @@ public class LoanDisbursementTestBuilder { public String getFromDate() { return this.fromDate; } - + /*public HashMap build(String dueDate,String totalOriginalDueForPeriod,String totalOutstandingForPeriod, String interestOutstanding, String principalOutstanding, String principalLoanBalanceOutstanding, String principalDue, String principalOriginalDue, String fromDate) { @@ -102,7 +102,7 @@ public class LoanDisbursementTestBuilder { expectedRepaymentSchedule.put("principalOriginalDue", principalOriginalDue); expectedRepaymentSchedule.put("fromDate", fromDate); - + return expectedRepaymentSchedule; }*/ } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanProductTestBuilder.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanProductTestBuilder.java index 63e8075..41014e7 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanProductTestBuilder.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanProductTestBuilder.java @@ -116,7 +116,7 @@ public class LoanProductTestBuilder { private String graceOnInterestPayment = "1"; private JsonObject allowAttributeOverrides = null; private Boolean allowPartialPeriodInterestCalcualtion = false; - + private Boolean allowVariableInstallments = Boolean.FALSE; private Integer minimumGap; private Integer maximumGap; @@ -212,7 +212,7 @@ public class LoanProductTestBuilder { map.put("minimumGap", minimumGap) ; map.put("maximumGap", maximumGap) ; } - map.put("syncExpectedWithDisbursementDate", + map.put("syncExpectedWithDisbursementDate", this.syncExpectedWithDisbursementDate); return new Gson().toJson(map); } @@ -494,16 +494,16 @@ public class LoanProductTestBuilder { this.allowAttributeOverrides = loanProductConfigurableAttributes; return this; } - + public LoanProductTestBuilder withVariableInstallmentsConfig(Boolean allowVariableInstallments, Integer minimumGap, Integer maximumGap) { this.allowVariableInstallments = allowVariableInstallments ; this.minimumGap = minimumGap; this.maximumGap = maximumGap; return this ; } - + public LoanProductTestBuilder withSyncExpectedWithDisbursementDate(Boolean syncExpectedWithDisbursementDate) { - this.syncExpectedWithDisbursementDate = + this.syncExpectedWithDisbursementDate = syncExpectedWithDisbursementDate ; return this ; } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanTransactionHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanTransactionHelper.java index 8ef9b46..854787c 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanTransactionHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/loans/LoanTransactionHelper.java @@ -190,7 +190,7 @@ public class LoanTransactionHelper { public HashMap disburseLoan(final String date, final Integer loanID) { return performLoanTransaction(createLoanOperationURL(DISBURSE_LOAN_COMMAND, loanID), getDisburseLoanAsJSON(date, null)); } - + public HashMap disburseLoanWithRepaymentReschedule(final String date, final Integer loanID, String adjustRepaymentDate) { return performLoanTransaction(createLoanOperationURL(DISBURSE_LOAN_COMMAND, loanID), getDisburseLoanWithRepaymentRescheduleAsJSON(date, null, adjustRepaymentDate)); @@ -203,7 +203,7 @@ public class LoanTransactionHelper { public Object disburseLoan(final String date, final Integer loanID, ResponseSpecification responseValidationError) { return performLoanTransaction(createLoanOperationURL(DISBURSE_LOAN_COMMAND, loanID), getDisburseLoanAsJSON(date, null), responseValidationError); } - + public HashMap disburseLoanToSavings(final String date, final Integer loanID) { return performLoanTransaction(createLoanOperationURL(DISBURSE_LOAN_TO_SAVINGS_COMMAND, loanID), getDisburseLoanAsJSON(date, null)); } @@ -215,7 +215,7 @@ public class LoanTransactionHelper { System.out.println("IN DISBURSE LOAN URL " + url); return performLoanTransaction(createLoanOperationURL(UNDO_DISBURSE_LOAN_COMMAND, loanID), undoDisburseJson); } - + public Float undoLastDisbursal(final Integer loanID) { final String undoLastDisburseJson = "{'note' : 'UNDO LAST DISBURSAL'}"; final String url = createLoanOperationURL(UNDO_LAST_DISBURSE_LOAN_COMMAND, loanID); @@ -267,7 +267,7 @@ public class LoanTransactionHelper { final String ADD_CHARGES_URL = "/fineract-provider/api/v1/loans/" + loanId + "/charges?" + Utils.TENANT_IDENTIFIER; return Utils.performServerPost(this.requestSpec, responseSpecification, ADD_CHARGES_URL, request, ""); } - + public Integer updateChargesForLoan(final Integer loanId, final Integer loanchargeId, final String request) { System.out.println("--------------------------------- ADD CHARGES FOR LOAN --------------------------------"); final String UPDATE_CHARGES_URL = "/fineract-provider/api/v1/loans/" + loanId + "/charges/" + loanchargeId + "?" @@ -312,7 +312,7 @@ public class LoanTransactionHelper { System.out.println("Loan Application disburse request : " + map); return new Gson().toJson(map); } - + private String getDisburseLoanWithRepaymentRescheduleAsJSON(final String actualDisbursementDate, final String transactionAmount, final String adjustRepaymentDate) { final HashMap map = new HashMap<>(); map.put("locale", "en"); @@ -509,7 +509,7 @@ public class LoanTransactionHelper { "changes"); return (HashMap) response.get("status"); } - + private Float performUndoLastLoanDisbursementTransaction(final String postURLForLoanTransaction, final String jsonToBeSent) { final HashMap response = Utils.performServerPost(this.requestSpec, this.responseSpec, postURLForLoanTransaction, jsonToBeSent, @@ -520,10 +520,10 @@ public class LoanTransactionHelper { private Object performLoanTransaction(final String postURLForLoanTransaction, final String jsonToBeSent, final String responseAttribute) { return Utils.performServerPost(this.requestSpec, this.responseSpec, postURLForLoanTransaction, jsonToBeSent, responseAttribute); } - + private Object performLoanTransaction(final String postURLForLoanTransaction, final String jsonToBeSent, ResponseSpecification responseValidationError) { - - return Utils.performServerPost(this.requestSpec, responseValidationError, postURLForLoanTransaction, jsonToBeSent, CommonConstants.RESPONSE_ERROR); + + return Utils.performServerPost(this.requestSpec, responseValidationError, postURLForLoanTransaction, jsonToBeSent, CommonConstants.RESPONSE_ERROR); } public Object adjustLoanTransaction(final Integer loanId, final Integer transactionId, final String date, @@ -635,7 +635,7 @@ public class LoanTransactionHelper { map.put("locale", "en"); return new Gson().toJson(map); } - + public HashMap createTrancheDetail(final String id, final String date, final String amount) { HashMap detail = new HashMap<>(); if(id != null){ @@ -646,30 +646,30 @@ public class LoanTransactionHelper { return detail; } - - public Object editDisbursementDetail(final Integer loanID, final Integer disbursementId, final String approvalAmount, final String expectedDisbursementDate, + + public Object editDisbursementDetail(final Integer loanID, final Integer disbursementId, final String approvalAmount, final String expectedDisbursementDate, final String updatedExpectedDisbursementDate, final String updatedPrincipal, final String jsonAttributeToGetBack) { - - return Utils.performServerPut(this.requestSpec, this.responseSpec, createEditDisbursementURL(loanID, disbursementId), getEditDisbursementsAsJSON(approvalAmount, expectedDisbursementDate, + + return Utils.performServerPut(this.requestSpec, this.responseSpec, createEditDisbursementURL(loanID, disbursementId), getEditDisbursementsAsJSON(approvalAmount, expectedDisbursementDate, updatedExpectedDisbursementDate, updatedPrincipal), jsonAttributeToGetBack); } - + public Object addAndDeleteDisbursementDetail(final Integer loanID, final String approvalAmount, final String expectedDisbursementDate , List disbursementData, final String jsonAttributeToGetBack) { - - return Utils.performServerPut(this.requestSpec, this.responseSpec, createAddAndDeleteDisbursementURL(loanID), + + return Utils.performServerPut(this.requestSpec, this.responseSpec, createAddAndDeleteDisbursementURL(loanID), getAddAndDeleteDisbursementsAsJSON(approvalAmount, expectedDisbursementDate, disbursementData), jsonAttributeToGetBack); } - + private String createEditDisbursementURL(Integer loanID, Integer disbursementId) { return "/fineract-provider/api/v1/loans/" + loanID + "/disbursements/" + disbursementId + "?" + Utils.TENANT_IDENTIFIER; } - + private String createAddAndDeleteDisbursementURL(Integer loanID) { return "/fineract-provider/api/v1/loans/" + loanID + "/disbursements/editDisbursements?" + Utils.TENANT_IDENTIFIER; } - - public static String getEditDisbursementsAsJSON(final String approvalAmount, final String expectedDisbursementDate, + + public static String getEditDisbursementsAsJSON(final String approvalAmount, final String expectedDisbursementDate, final String updatedExpectedDisbursementDate, final String updatedPrincipal) { final HashMap map = new HashMap<>(); map.put("locale", "en"); @@ -682,8 +682,8 @@ public class LoanTransactionHelper { System.out.println(json); return json; } - - public static String getAddAndDeleteDisbursementsAsJSON(final String approvalAmount, final String expectedDisbursementDate, + + public static String getAddAndDeleteDisbursementsAsJSON(final String approvalAmount, final String expectedDisbursementDate, final List disbursementData) { final HashMap map = new HashMap<>(); map.put("locale", "en"); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningHelper.java index e05a7a1..7d11d94 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningHelper.java @@ -56,7 +56,7 @@ public class ProvisioningHelper { String provisioningEntryCreateJson = new Gson().toJson(map); return provisioningEntryCreateJson; } - + public final static String createProvisioningEntryJsonWithJournalsEnabled() { final HashMap map = new HashMap<>(); map.put("createjournalentries", Boolean.TRUE); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningTransactionHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningTransactionHelper.java index 5e7bddb..4baed87 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningTransactionHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/provisioning/ProvisioningTransactionHelper.java @@ -30,63 +30,63 @@ import com.jayway.restassured.specification.ResponseSpecification; public class ProvisioningTransactionHelper { private static final String PROVISIONING_CATEGORY_URL = "/fineract-provider/api/v1/provisioningcategory?" + Utils.TENANT_IDENTIFIER ; - + private static final String CREATE_PROVISIONING_CRITERIA_URL = "/fineract-provider/api/v1/provisioningcriteria?" + Utils.TENANT_IDENTIFIER; private static final String CREATE_PROVISIONING_ENTRY_URL = "/fineract-provider/api/v1/provisioningentries?" + Utils.TENANT_IDENTIFIER; - + private final RequestSpecification requestSpec; private final ResponseSpecification responseSpec; - + public ProvisioningTransactionHelper(RequestSpecification requestSpec, ResponseSpecification responeSpec) { this.requestSpec = requestSpec ; this.responseSpec = responeSpec ; } - + public ArrayList retrieveAllProvisioningCategories() { return Utils.performServerGet(requestSpec, responseSpec, PROVISIONING_CATEGORY_URL, ""); } - + public Integer createProvisioningCriteria(final String provsioningCriteriaJson) { return Utils.performServerPost(this.requestSpec, this.responseSpec, CREATE_PROVISIONING_CRITERIA_URL, provsioningCriteriaJson, "resourceId"); } - + public Map retrieveProvisioningCriteria(final Integer criteriaId) { String url = "/fineract-provider/api/v1/provisioningcriteria/"+criteriaId+"?"+Utils.TENANT_IDENTIFIER ; return Utils.performServerGet(requestSpec, responseSpec, url, ""); } - + public Integer updateProvisioningCriteria(final Integer criteriaId, final String provsioningCriteriaJson) { String url = "/fineract-provider/api/v1/provisioningcriteria/"+criteriaId+"?"+Utils.TENANT_IDENTIFIER ; return Utils.performServerPut(this.requestSpec, this.responseSpec, url, provsioningCriteriaJson, "resourceId"); } - + public Integer deleteProvisioningCriteria(final Integer criteriaId) { String url = "/fineract-provider/api/v1/provisioningcriteria/"+criteriaId+"?"+Utils.TENANT_IDENTIFIER; return Utils.performServerDelete(this.requestSpec, this.responseSpec, url, "resourceId"); } - + public Integer createProvisioningEntries(final String provsioningCriteriaJson) { return Utils.performServerPost(this.requestSpec, this.responseSpec, CREATE_PROVISIONING_ENTRY_URL, provsioningCriteriaJson, "resourceId"); } - + public Integer updateProvisioningEntry(final String command, final Integer entryId, String jsonBody) { String url = "/fineract-provider/api/v1/provisioningentries/" + entryId + "?command=" + command + "&" + Utils.TENANT_IDENTIFIER; return Utils.performServerPost(requestSpec, responseSpec, url, jsonBody, "resourceId") ; } - + public Map retrieveProvisioningEntry(final Integer provisioningEntry) { String url = "/fineract-provider/api/v1/provisioningentries/"+provisioningEntry+"?"+Utils.TENANT_IDENTIFIER; ; return Utils.performServerGet(requestSpec, responseSpec, url, "") ; } - + public Map retrieveProvisioningEntries(final Integer provisioningEntry) { String url = "/fineract-provider/api/v1/provisioningentries/entries?entryId="+provisioningEntry+"&"+Utils.TENANT_IDENTIFIER; ; return Utils.performServerGet(requestSpec, responseSpec, url, "") ; } - + public Map retrieveAllProvisioningEntries() { String url = "/fineract-provider/api/v1/provisioningentries?dateFormat=dd MMMM yyyy"+"&"+"locale=en"+"&"+Utils.TENANT_IDENTIFIER; ; return Utils.performServerGet(requestSpec, responseSpec, url, "") ; } - + } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountHelper.java index d556cd8..905b424 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountHelper.java @@ -504,7 +504,7 @@ public class RecurringDepositAccountHelper { this.interestPostingPeriodType = interestPostingPeriodTypeId; return this; } - + public RecurringDepositAccountHelper withDepositPeriod(final String depositPeriod) { this.depositPeriod = depositPeriod; return this; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountStatusChecker.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountStatusChecker.java index ae8a5a5..51bcf77 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountStatusChecker.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositAccountStatusChecker.java @@ -89,7 +89,7 @@ public class RecurringDepositAccountStatusChecker { getStatus(recurringDepositStatusHashMap, "prematureClosed")); System.out.println(recurringDepositStatusHashMap); } - + public static void verifyRecurringDepositAccountIsMatured(HashMap recurringDepositStatusHashMap) { System.out.println("--------------------- VERIFYING RECURRING DEPOSIT APPLICATION IS MATURED ---------------------"); assertTrue("ERROR IN MATURITY JOB OF THE RECURRING DEPOSIT ACCOUNT", getStatus(recurringDepositStatusHashMap, "matured")); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositProductHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositProductHelper.java index 9114d6b..d83c939 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositProductHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/recurringdeposit/RecurringDepositProductHelper.java @@ -190,7 +190,7 @@ public class RecurringDepositProductHelper { this.chartSlabs = constructChartSlabWithAmountAndPeriodRange(); return this; } - + public RecurringDepositProductHelper withWithHoldTax(final String taxGroupId) { if (taxGroupId != null) { this.withHoldTax = true; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/AccountTransferHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/AccountTransferHelper.java index f1928bf..c348b4f 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/AccountTransferHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/AccountTransferHelper.java @@ -84,7 +84,7 @@ public class AccountTransferHelper { return Utils.performServerPost(this.requestSpec, this.responseSpec, ACCOUNT_TRANSFER_URL + "?" + Utils.TENANT_IDENTIFIER, accountTransferJSON, "savingsId"); } - + public Integer refundLoanByTransfer(final String date, final Integer fromClientId, final Integer fromAccountId, final Integer toClientId, final Integer toAccountId, final String fromAccountType, final String toAccountType, final String transferAmount) { System.out.println("--------------------------------ACCOUNT TRANSFER--------------------------------"); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsAccountHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsAccountHelper.java index 647a178..a8cd381 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsAccountHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsAccountHelper.java @@ -59,7 +59,7 @@ public class SavingsAccountHelper { private static final String WITHDRAW_SAVINGS_COMMAND = "withdrawal"; private static final String MODIFY_TRASACTION_COMMAND = "modify"; private static final String UNDO_TRASACTION_COMMAND = "undo"; - + private static final String BLOCK_SAVINGS_COMMAND = "block"; private static final String UNBLOCK_SAVINGS_COMMAND = "unblock"; private static final String BLOCK_DEBITS_SAVINGS_COMMAND = "blockDebit"; @@ -246,7 +246,7 @@ public class SavingsAccountHelper { performSavingActions(createSavingsCalculateInterestURL(POST_INTEREST_SAVINGS_COMMAND, savingsId), getCalculatedInterestForSavingsApplicationAsJSON(), ""); } - + public void postInterestAsOnSavings(final Integer savingsId, final String today) { System.out.println("--------------------------------- POST INTEREST AS ON FOR SAVINGS --------------------------------"); performSavingActions(createSavingsPostInterestAsOnURL(POST_INTEREST_AS_ON_SAVINGS_COMMAND, savingsId), @@ -287,7 +287,7 @@ public class SavingsAccountHelper { return Utils.performServerDelete(this.requestSpec, this.responseSpec, SAVINGS_ACCOUNT_URL + "/" + savingsId + "/charges/" + chargeId + "?" + Utils.TENANT_IDENTIFIER, CommonConstants.RESPONSE_RESOURCE_ID); } - + public HashMap blockSavings(final Integer savingsID) { System.out.println("---------------------------------- BLOCKING SAVINGS ACCOUNT ----------------------------------"); Boolean isBlock = true; @@ -406,7 +406,7 @@ public class SavingsAccountHelper { System.out.println(savingsAccountCalculatedInterestJson); return savingsAccountCalculatedInterestJson; } - + private String getCalculatedInterestForSavingsApplicationAsJSON(final String today) { final HashMap map = new HashMap<>(); map.put("locale", CommonConstants.locale); @@ -451,11 +451,11 @@ public class SavingsAccountHelper { map.put("closedOnDate", closedOnDate); map.put("withdrawBalance", withdrawBalance); map.put("note", "Close Test"); - + String josn = new Gson().toJson(map); return josn; } - + private String getCloseAccountPostInterestJSON(String withdrawBalance, String closedOnDate) { final HashMap map = new HashMap<>(); map.put("locale", CommonConstants.locale); @@ -464,7 +464,7 @@ public class SavingsAccountHelper { map.put("withdrawBalance", withdrawBalance); map.put("note", "Close Test"); map.put("postInterestValidationOnClosure", "true"); - + String josn = new Gson().toJson(map); return josn; } @@ -485,7 +485,7 @@ public class SavingsAccountHelper { private String createSavingsCalculateInterestURL(final String command, final Integer savingsID) { return SAVINGS_ACCOUNT_URL + "/" + savingsID + "?command=" + command + "&" + Utils.TENANT_IDENTIFIER; } - + private String createSavingsPostInterestAsOnURL(final String command, final Integer savingsID) { return SAVINGS_ACCOUNT_URL + "/" + savingsID + "/transactions/" + "?command=" + command + "&" + Utils.TENANT_IDENTIFIER; } @@ -569,7 +569,7 @@ public class SavingsAccountHelper { return performSavingActions(createSavingsOperationURL(CLOSE_SAVINGS_COMMAND, savingsID), getCloseAccountJSON(withdrawBalance, closedOnDate), jsonAttributeToGetBack); } - + public Object closeSavingsAccountPostInterestAndGetBackRequiredField(final Integer savingsID, String withdrawBalance, final String jsonAttributeToGetBack, final String closedOnDate) { System.out.println("---------------------------------- CLOSE SAVINGS APPLICATION ----------------------------------"); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsStatusChecker.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsStatusChecker.java index afbee0e..dfaed2c 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsStatusChecker.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/savings/SavingsStatusChecker.java @@ -29,7 +29,7 @@ import com.jayway.restassured.specification.ResponseSpecification; @SuppressWarnings("rawtypes") public class SavingsStatusChecker { - + private static final String SAVINGS_ACCOUNT_URL = "/fineract-provider/api/v1/savingsaccounts"; public static void verifySavingsIsApproved(final HashMap savingsStatusHashMap) { @@ -49,19 +49,19 @@ public class SavingsStatusChecker { assertTrue("ERROR IN ACTIVATING THE SAVINGS APPLICATION", getStatus(savingsStatusHashMap, "active")); System.out.println("Savings Application Status:" + savingsStatusHashMap + "\n"); } - + public static void verifySavingsIsRejected(final HashMap savingsStatusHashMap) { System.out.println("\n-------------------------------------- VERIFYING SAVINGS APPLICATION IS REJECTED ------------------------------------"); assertTrue("ERROR IN REJECTING THE SAVINGS APPLICATION", getStatus(savingsStatusHashMap, "rejected")); System.out.println("Savings Application Status:" + savingsStatusHashMap + "\n"); } - + public static void verifySavingsIsWithdrawn(final HashMap savingsStatusHashMap) { System.out.println("\n-------------------------------------- VERIFYING SAVINGS APPLICATION IS WITHDRAWN ------------------------------------"); assertTrue("ERROR IN WITHDRAW THE SAVINGS APPLICATION", getStatus(savingsStatusHashMap, "withdrawnByApplicant")); System.out.println("Savings Application Status:" + savingsStatusHashMap + "\n"); } - + public static void verifySavingsAccountIsClosed(final HashMap savingsStatusHashMap) { System.out.println("\n-------------------------------------- VERIFYING SAVINGS APPLICATION IS CLOSED ------------------------------------"); assertTrue("ERROR IN CLOSING THE SAVINGS APPLICATION", getStatus(savingsStatusHashMap, "closed")); @@ -95,13 +95,13 @@ public class SavingsStatusChecker { assertTrue("UNEXPECTED SAVINGS ACCOUNT SUB STATUS", getStatus(savingsStatusHashMap, "inactive")); System.out.println("Savings Application Sub Status:" + savingsStatusHashMap + "\n"); } - + public static void verifySavingsSubStatusDormant(HashMap savingsStatusHashMap) { System.out.println("\n-------------------------------------- VERIFYING SAVINGS APPLICATION IS ACTIVE ------------------------------------"); assertTrue("UNEXPECTED SAVINGS ACCOUNT SUB STATUS", getStatus(savingsStatusHashMap, "dormant")); System.out.println("Savings Application Sub Status:" + savingsStatusHashMap + "\n"); } - + public static void verifySavingsSubStatusEscheat(HashMap savingsStatusHashMap) { System.out.println("\n-------------------------------------- VERIFYING SAVINGS APPLICATION IS ACTIVE ------------------------------------"); assertTrue("UNEXPECTED SAVINGS ACCOUNT SUB STATUS", getStatus(savingsStatusHashMap, "escheat")); @@ -113,7 +113,7 @@ public class SavingsStatusChecker { assertTrue("UNEXPECTED SAVINGS ACCOUNT SUB STATUS", getStatus(savingsStatusHashMap, "none")); System.out.println("Savings Application Sub Status:" + savingsStatusHashMap + "\n"); } - + public static void verifySavingsSubStatusblock(HashMap savingsStatusHashMap) { System.out.println( "\n-------------------------------------- VERIFYING SAVINGS ACCOUNT IS BLOCKED ------------------------------------"); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/DividendsIntegrationTests.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/DividendsIntegrationTests.java index 5634dce..06e6088 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/DividendsIntegrationTests.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/DividendsIntegrationTests.java @@ -46,7 +46,7 @@ public class DividendsIntegrationTests { private final String[] dates = {"01 Jan 2015", "01 Apr 2015", "01 Oct 2015", "01 Dec 2015", "01 Mar 2016"} ; private final String[] shares = {"100", "200", "300", "100", "500"} ; - + private RequestSpecification requestSpec; private ResponseSpecification responseSpec; @@ -57,7 +57,7 @@ public class DividendsIntegrationTests { this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); } - + @SuppressWarnings("unchecked") @Test public void testCreateDividends() { @@ -78,7 +78,7 @@ public class DividendsIntegrationTests { Assert.assertNotNull(shareAccountId); Map shareAccountData = ShareAccountTransactionHelper .retrieveShareAccount(shareAccountId, requestSpec, responseSpec); - Assert.assertNotNull(shareAccountData); + Assert.assertNotNull(shareAccountData); // Approve share Account Map approveMap = new HashMap<>(); approveMap.put("note", "Share Account Approval Note"); @@ -95,7 +95,7 @@ public class DividendsIntegrationTests { String activateJson = new Gson().toJson(activateMap); ShareAccountTransactionHelper.postCommand("activate", shareAccountId, activateJson, requestSpec, responseSpec); } - + Map dividendsMap = new HashMap<>() ; dividendsMap.put("dividendPeriodStartDate", "01 Jan 2015") ; dividendsMap.put("dividendPeriodEndDate", "01 Apr 2016") ; @@ -104,7 +104,7 @@ public class DividendsIntegrationTests { dividendsMap.put("locale", "en"); String createDividendsJson = new Gson().toJson(dividendsMap); final Integer dividendId = ShareDividendsTransactionHelper.createShareProductDividends(productId, createDividendsJson, requestSpec, responseSpec) ; - + Map productdividends = ShareDividendsTransactionHelper.retrieveAllDividends(productId, requestSpec, responseSpec); Assert.assertEquals("1", String.valueOf(productdividends.get("totalFilteredRecords"))); Map dividend = ((List>)productdividends.get("pageItems")).get(0) ; @@ -121,14 +121,14 @@ public class DividendsIntegrationTests { cal.set(enddateList.get(0), enddateList.get(1) - 1, enddateList.get(2)); Date endDate = cal.getTime(); Assert.assertEquals("01 Apr 2016", simple.format(endDate)); - - - + + + Map dividenddetails = ShareDividendsTransactionHelper.retrieveDividendDetails(productId, dividendId, requestSpec, responseSpec) ; Assert.assertEquals("5", String.valueOf(dividenddetails.get("totalFilteredRecords"))); List> pageItems = (List>)dividenddetails.get("pageItems") ; for(Map dividendData: pageItems) { - Map accountData = (Map) dividendData.get("accountData") ; + Map accountData = (Map) dividendData.get("accountData") ; String accountId = String.valueOf(accountData.get("id")) ; if(String.valueOf(shareAccounts.get(0)).equals(accountId)) { Assert.assertEquals("11320.755", String.valueOf(dividendData.get("amount"))); @@ -144,10 +144,10 @@ public class DividendsIntegrationTests { Map statusMap = (Map) dividendData.get("status") ; Assert.assertEquals("shareAccountDividendStatusType.initiated", String.valueOf(statusMap.get("code"))) ; } - + String jsonString = "" ; ShareDividendsTransactionHelper.postCommand("approve", productId, dividendId, jsonString, requestSpec, responseSpec) ; - + productdividends = ShareDividendsTransactionHelper.retrieveAllDividends(productId, requestSpec, responseSpec); Assert.assertEquals("1", String.valueOf(productdividends.get("totalFilteredRecords"))); dividend = ((List>)productdividends.get("pageItems")).get(0) ; @@ -164,12 +164,12 @@ public class DividendsIntegrationTests { cal.set(enddateList.get(0), enddateList.get(1) - 1, enddateList.get(2)); endDate = cal.getTime(); Assert.assertEquals("01 Apr 2016", simple.format(endDate)); - + dividenddetails = ShareDividendsTransactionHelper.retrieveDividendDetails(productId, dividendId, requestSpec, responseSpec) ; Assert.assertEquals("5", String.valueOf(dividenddetails.get("totalFilteredRecords"))); pageItems = (List>)dividenddetails.get("pageItems") ; for(Map dividendData: pageItems) { - Map accountData = (Map) dividendData.get("accountData") ; + Map accountData = (Map) dividendData.get("accountData") ; String accountId = String.valueOf(accountData.get("id")) ; if(String.valueOf(shareAccounts.get(0)).equals(accountId)) { Assert.assertEquals("11320.755", String.valueOf(dividendData.get("amount"))); @@ -185,14 +185,14 @@ public class DividendsIntegrationTests { Map statusMap = (Map) dividendData.get("status") ; Assert.assertEquals("shareAccountDividendStatusType.initiated", String.valueOf(statusMap.get("code"))) ; } - + } - + private Integer createShareProduct() { String shareProductJson = new ShareProductHelper().build(); return ShareProductTransactionHelper.createShareProduct(shareProductJson, requestSpec, responseSpec); } - + private Integer createShareAccount(final Integer clientId, final Integer productId, final Integer savingsAccountId, String applicationDate, String requestedShares) { String josn = new ShareAccountHelper().withClientId(String.valueOf(clientId)).withProductId(String.valueOf(productId)) diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountHelper.java index 9984656..d39839c 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountHelper.java @@ -29,113 +29,113 @@ import com.google.gson.Gson; public class ShareAccountHelper { private static final String LOCALE = "en_GB"; - + private String clientId ; - + private String productId ; - + private String submittedDate ; - + private String externalId ; - + private String savingsAccountId ; - + private String requestedShares ; - + private String applicationDate ; - + private String allowDividendCalculationForInactiveClients ; - + private String minimumActivePeriod ; - + private String minimumActivePeriodFrequencyType ; - + private String lockinPeriodFrequency ; - + private String lockinPeriodFrequencyType ; - + private List> charges = null ; //chargeId , amount - + public String build() { final HashMap map = new HashMap<>(); map.put("locale", LOCALE); if(this.clientId != null) { - map.put("clientId", this.clientId) ; + map.put("clientId", this.clientId) ; } if(this.productId != null) { map.put("productId", this.productId) ; } map.put("dateFormat", "dd MMMM yyyy"); - + if(this.savingsAccountId != null) { map.put("savingsAccountId", savingsAccountId) ; } - + if(externalId != null) { map.put("externalId", this.externalId) ; } - + if(submittedDate != null) { map.put("submittedDate", this.submittedDate) ; } - + if(applicationDate != null) { map.put("applicationDate", this.applicationDate) ; } - + if(this.requestedShares != null) { map.put("requestedShares", this.requestedShares) ; } - + if(this.allowDividendCalculationForInactiveClients != null) { map.put("allowDividendCalculationForInactiveClients", this.allowDividendCalculationForInactiveClients) ; } - + if(this.charges != null) { map.put("charges", this.charges) ; } - + String shareAccountCreateJson = new Gson().toJson(map); System.out.println(shareAccountCreateJson); return shareAccountCreateJson; } - + public ShareAccountHelper withClientId(final String clientId) { this.clientId = clientId ; return this ; } - + public ShareAccountHelper withProductId(final String productId) { this.productId = productId ; return this ; } - + public ShareAccountHelper withSavingsAccountId(final String savingsAccountId) { this.savingsAccountId = savingsAccountId ; return this ; } - + public ShareAccountHelper withSubmittedDate(final String submittedDate) { this.submittedDate = submittedDate ; return this ; } - + public ShareAccountHelper withRequestedShares(final String requestedShares) { this.requestedShares = requestedShares ; return this ; } - + public ShareAccountHelper withApplicationDate(final String applicationDate) { this.applicationDate = applicationDate ; return this ; } - + public ShareAccountHelper withExternalId(final String externalId) { this.externalId = externalId ; return this ; } - + public ShareAccountHelper withCharges(final List> charges) { this.charges = new ArrayList<>() ; this.charges.addAll(charges) ; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountIntegrationTests.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountIntegrationTests.java index 2a938fe..676b364 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountIntegrationTests.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareAccountIntegrationTests.java @@ -156,7 +156,7 @@ public class ShareAccountIntegrationTests { Map shareAccountData = ShareAccountTransactionHelper .retrieveShareAccount(shareAccountId, requestSpec, responseSpec); Assert.assertNotNull(shareAccountData); - + // Approve share Account Map approveMap = new HashMap<>(); approveMap.put("note", "Share Account Approval Note"); @@ -205,7 +205,7 @@ public class ShareAccountIntegrationTests { Assert.assertEquals("25", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("0", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); } - + @Test @SuppressWarnings("unchecked") public void rejectShareAccount() { @@ -231,7 +231,7 @@ public class ShareAccountIntegrationTests { Map shareAccountData = ShareAccountTransactionHelper .retrieveShareAccount(shareAccountId, requestSpec, responseSpec); Assert.assertNotNull(shareAccountData); - + // Reject share Account Map rejectMap = new HashMap<>(); rejectMap.put("note", "Share Account Rejection Note"); @@ -249,7 +249,7 @@ public class ShareAccountIntegrationTests { Date rejectedDate = cal.getTime(); Date currentTenantDate = DateUtils.getDateOfTenant() ; Assert.assertEquals(simple.format(currentTenantDate), simple.format(rejectedDate)); - + List> transactions = (List>) shareAccountData.get("purchasedShares"); Assert.assertNotNull(transactions); Assert.assertEquals(2, transactions.size()); @@ -280,7 +280,7 @@ public class ShareAccountIntegrationTests { Assert.assertEquals("0", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("0", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); } - + @Test @SuppressWarnings("unchecked") public void testShareAccountUndoApproval() { @@ -307,7 +307,7 @@ public class ShareAccountIntegrationTests { Map shareAccountData = ShareAccountTransactionHelper .retrieveShareAccount(shareAccountId, requestSpec, responseSpec); Assert.assertNotNull(shareAccountData); - + // Approve share Account Map approveMap = new HashMap<>(); approveMap.put("note", "Share Account Approval Note"); @@ -326,18 +326,18 @@ public class ShareAccountIntegrationTests { cal.set(dateList.get(0), dateList.get(1) - 1, dateList.get(2)); Date approvedDate = cal.getTime(); Assert.assertEquals("01 Jan 2016", simple.format(approvedDate)); - + // Undo Approval share Account Map undoApprovalMap = new HashMap<>(); String undoApprovalJson = new Gson().toJson(undoApprovalMap); ShareAccountTransactionHelper.postCommand("undoapproval", shareAccountId, undoApprovalJson, requestSpec, responseSpec); - + shareAccountData = ShareAccountTransactionHelper .retrieveShareAccount(shareAccountId, requestSpec, responseSpec); - + statusMap = (Map) shareAccountData.get("status"); Assert.assertEquals("shareAccountStatusType.submitted.and.pending.approval", String.valueOf(statusMap.get("code"))); - + List> transactions = (List>) shareAccountData.get("purchasedShares"); Assert.assertNotNull(transactions); Assert.assertEquals(2, transactions.size()); @@ -368,7 +368,7 @@ public class ShareAccountIntegrationTests { Assert.assertEquals("0", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("25", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); } - + @SuppressWarnings("unchecked") @Test public void testCreateShareAccountWithCharges() { @@ -453,7 +453,7 @@ public class ShareAccountIntegrationTests { Assert.fail("Other Charge defintion found"); } } - + // Approve share Account Map approveMap = new HashMap<>(); approveMap.put("note", "Share Account Approval Note"); @@ -495,7 +495,7 @@ public class ShareAccountIntegrationTests { Assert.fail("Other Charge defintion found"); } } - + Map activateMap = new HashMap<>(); activateMap.put("dateFormat", "dd MMMM yyyy"); activateMap.put("activatedDate", "01 Jan 2016"); @@ -560,7 +560,7 @@ public class ShareAccountIntegrationTests { Assert.fail("Other Charge defintion found"); } } - + Map summaryMap = (Map) shareAccountData.get("summary"); Assert.assertEquals("30", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("0", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); @@ -634,7 +634,7 @@ public class ShareAccountIntegrationTests { Assert.fail("Other Charge defintion found"); } } - + summaryMap = (Map) shareAccountData.get("summary"); Assert.assertEquals("30", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("15", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); @@ -708,7 +708,7 @@ public class ShareAccountIntegrationTests { Assert.fail("Other Charge defintion found"); } } - + summaryMap = (Map) shareAccountData.get("summary"); Assert.assertEquals("45", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("0", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); @@ -770,7 +770,7 @@ public class ShareAccountIntegrationTests { Assert.fail("Other Charge defintion found"); } } - + summaryMap = (Map) shareAccountData.get("summary"); Assert.assertEquals("45", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("20", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); @@ -832,7 +832,7 @@ public class ShareAccountIntegrationTests { Assert.fail("Other Charge defintion found"); } } - + summaryMap = (Map) shareAccountData.get("summary"); Assert.assertEquals("45", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("0", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); @@ -912,7 +912,7 @@ public class ShareAccountIntegrationTests { summaryMap = (Map) shareAccountData.get("summary"); Assert.assertEquals("30", String.valueOf(summaryMap.get("totalApprovedShares"))); Assert.assertEquals("0", String.valueOf(summaryMap.get("totalPendingForApprovalShares"))); - + //Close Share Account Map closeAccountMap = new HashMap<>(); closeAccountMap.put("note", "Share Account Close Note"); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareDividendsTransactionHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareDividendsTransactionHelper.java index 19a1e26..eadf9d7 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareDividendsTransactionHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareDividendsTransactionHelper.java @@ -31,25 +31,25 @@ public class ShareDividendsTransactionHelper { private static final String SHARE_PRODUCT_URL = "/fineract-provider/api/v1/shareproduct"; private static final String DIVIDEND = "dividend" ; - + public static Integer createShareProductDividends(final Integer productId, final String dividendJson, final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { String url = SHARE_PRODUCT_URL + "/" + productId + "/" + DIVIDEND + "?" + Utils.TENANT_IDENTIFIER ; return Utils.performServerPost(requestSpec, responseSpec, url, dividendJson, "subResourceId"); } - + public static Integer postCommand(final String command, final Integer productId, final Integer dividendId, String jsonBody, final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { String url = SHARE_PRODUCT_URL + "/" + productId + "/"+DIVIDEND + "/"+ dividendId + "?command=" + command + "&" + Utils.TENANT_IDENTIFIER; return Utils.performServerPut(requestSpec, responseSpec, url, jsonBody, "resourceId"); } - + public static Map retrieveDividendDetails(final Integer productId, final Integer dividendId, final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { String url = SHARE_PRODUCT_URL + "/" + productId + "/"+DIVIDEND + "/"+ dividendId +"?" + Utils.TENANT_IDENTIFIER; return Utils.performServerGet(requestSpec, responseSpec, url, ""); } - + public static Map retrieveAllDividends(final Integer productId, final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { String url = SHARE_PRODUCT_URL + "/" + productId + "/"+DIVIDEND +"?" + Utils.TENANT_IDENTIFIER; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductHelper.java index 15edb09..0ccedfc 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductHelper.java @@ -34,14 +34,14 @@ import java.util.Map; public class ShareProductHelper { - + private static final String NONE = "1"; private static final String CASH_BASED = "2"; private static final String LOCALE = "en_GB"; private static final String DIGITS_AFTER_DECIMAL = "4"; private static final String IN_MULTIPLES_OF = "0"; private static final String USD = "USD"; - + private String productName = Utils.randomNameGenerator("SHARE_PRODUCT_", 6); private String shortName = Utils.randomNameGenerator("", 4); private String description = Utils.randomNameGenerator("", 20); @@ -56,14 +56,14 @@ public class ShareProductHelper { private String lockinPeriodFrequency = "1"; private String lockinPeriodFrequencyType = "0"; private String accountingRule = NONE; - + String minimumActivePeriodForDividends = "1"; String minimumactiveperiodFrequencyType = "0"; - + private List> charges = null ; private List> marketPrices = null ; - - + + public String build() { final HashMap map = new HashMap<>(); map.put("name", this.productName); @@ -85,25 +85,25 @@ public class ShareProductHelper { map.put("minimumactiveperiodFrequencyType", this.minimumactiveperiodFrequencyType) ; map.put("lockinPeriodFrequency", this.lockinPeriodFrequency) ; map.put("lockinPeriodFrequencyType", this.lockinPeriodFrequencyType) ; - + if(charges != null) { map.put("chargesSelected", charges) ; } - + if(marketPrices != null) { map.put("marketPricePeriods", marketPrices) ; } - + String shareProductCreateJson = new Gson().toJson(map); System.out.println(shareProductCreateJson); return shareProductCreateJson; } - + public ShareProductHelper withCashBasedAccounting() { this.accountingRule = CASH_BASED ; return this ; } - + public ShareProductHelper withMarketPrice() { this.marketPrices = new ArrayList<>() ; LocalDate currentDate = DateUtils.getLocalDateOfTenant() ; @@ -118,7 +118,7 @@ public class ShareProductHelper { } return this ; } - + public ShareProductHelper withCharges(final ArrayList charges) { if(charges != null && !charges.isEmpty()) { this.charges = new ArrayList<>() ; @@ -137,62 +137,62 @@ public class ShareProductHelper { Assert.assertEquals(this.productName, productName); String shortName = (String)shareProductData.get("shortName") ; Assert.assertEquals(this.shortName, shortName); - + String description = (String)shareProductData.get("description") ; Assert.assertEquals(this.description, description); - + Map currency = (Map)shareProductData.get("currency") ; String currencyCode = currency.get("code") ; Assert.assertEquals(this.currencyCode, currencyCode); - + String digitsAfterDecimal = String.valueOf(currency.get("decimalPlaces")) ; Assert.assertEquals(DIGITS_AFTER_DECIMAL, digitsAfterDecimal); - + String inMultiplesOf = String.valueOf(currency.get("inMultiplesOf")) ; Assert.assertEquals(IN_MULTIPLES_OF, inMultiplesOf); - + String totalShares = String.valueOf(shareProductData.get("totalShares")) ; Assert.assertEquals(this.totalShares, totalShares); - + String sharesIssued = String.valueOf(shareProductData.get("totalSharesIssued")) ; Assert.assertEquals(this.sharesIssued, sharesIssued); - + String unitPrice = String.valueOf(shareProductData.get("unitPrice")) ; Assert.assertEquals(this.unitPrice, unitPrice); - + String minimumShares = String.valueOf(shareProductData.get("minimumShares")) ; Assert.assertEquals(this.minimumShares, minimumShares); - + String nominalShares = String.valueOf(shareProductData.get("nominalShares")) ; Assert.assertEquals(this.nominalShares, nominalShares); - + String maximumShares = String.valueOf(shareProductData.get("maximumShares")) ; Assert.assertEquals(this.maximumShares, maximumShares); - + String allowDividendCalculationForInactiveClients = String.valueOf(shareProductData.get("allowDividendCalculationForInactiveClients")) ; Assert.assertEquals(this.allowDividendCalculationForInactiveClients, allowDividendCalculationForInactiveClients); - + Map accountingRuleMap = (Map) shareProductData.get("accountingRule") ; String accountingRule = String.valueOf(accountingRuleMap.get("id")) ; Assert.assertEquals(this.accountingRule, accountingRule); - + String minimumActivePeriodForDividends = String.valueOf(shareProductData.get("minimumActivePeriod")) ; Assert.assertEquals(this.minimumActivePeriodForDividends, minimumActivePeriodForDividends); - + Map minimumActivePeriodType = (Map) shareProductData.get("minimumActivePeriodForDividendsTypeEnum") ; String minimumactiveperiodFrequencyType = String.valueOf(minimumActivePeriodType.get("id")) ; Assert.assertEquals(this.minimumactiveperiodFrequencyType, minimumactiveperiodFrequencyType); - + String lockinPeriodFrequency = String.valueOf(shareProductData.get("lockinPeriod")) ; Assert.assertEquals(this.lockinPeriodFrequency, lockinPeriodFrequency); - + Map lockinPeriodType = (Map) shareProductData.get("lockPeriodTypeEnum") ; String lockinPeriodFrequencyType = String.valueOf(lockinPeriodType.get("id")) ; Assert.assertEquals(this.lockinPeriodFrequencyType, lockinPeriodFrequencyType); - + //ArrayList> charges = (ArrayList>)shareProductData.get("chargesSelected") ; - + // ArrayList> marketPrices = (ArrayList>)shareProductData.get("marketPricePeriods") ; - + } } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductTransactionHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductTransactionHelper.java index 2c8588f..4f42576 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductTransactionHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/shares/ShareProductTransactionHelper.java @@ -30,18 +30,18 @@ public class ShareProductTransactionHelper { private static final String SHARE_PRODUCT_URL = "/fineract-provider/api/v1/products/share"; private static final String CREATE_SHARE_PRODUCT_URL = SHARE_PRODUCT_URL + "?" + Utils.TENANT_IDENTIFIER; - + public static Integer createShareProduct(final String savingsProductJSON, final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { return Utils.performServerPost(requestSpec, responseSpec, CREATE_SHARE_PRODUCT_URL, savingsProductJSON, "resourceId"); } - + public static Map retrieveShareProduct(final Integer shareProductId, final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { String url = SHARE_PRODUCT_URL+"/"+shareProductId+"?"+Utils.TENANT_IDENTIFIER ; return Utils.performServerGet(requestSpec, responseSpec, url, ""); } - + public static Integer updateShareProduct(final Integer shareProductId, final String provsioningCriteriaJson, final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesHelper.java index 0a95023..0efe77f 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesHelper.java @@ -84,7 +84,7 @@ public class AccountNumberPreferencesHelper { requestJSON, jsonAttributeToGetBack); } - + public Object createGroupsAccountNumberPreference( ResponseSpecification responseSpec, String jsonAttributeToGetBack) { System.out @@ -99,7 +99,7 @@ public class AccountNumberPreferencesHelper { requestJSON, jsonAttributeToGetBack); } - + public Object createCenterAccountNumberPreference( ResponseSpecification responseSpec, String jsonAttributeToGetBack) { System.out @@ -200,13 +200,13 @@ public class AccountNumberPreferencesHelper { + Utils.TENANT_IDENTIFIER; Utils.performServerGet(requestSpec, responseSpec, savingsURL, "id"); - + final String groupsURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + groupsAccountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER; Utils.performServerGet(requestSpec, responseSpec, groupsURL, "id"); - + final String centerURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + centerAccountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java index d10dedd..6d499a5 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java @@ -57,7 +57,7 @@ public class AccountNumberPreferencesTestBuilder { return new Gson().toJson(map); } - + public String groupsBuild() { final HashMap map = new HashMap<>(); map.put("accountType", groupsAccountType); @@ -73,7 +73,7 @@ public class AccountNumberPreferencesTestBuilder { return new Gson().toJson(map); } - + public String invalidDataBuild(String accountType, String prefixType) { final HashMap map = new HashMap<>(); map.put("accountType", accountType); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/CodeHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/CodeHelper.java index f6319a4..6fe58d7 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/CodeHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/system/CodeHelper.java @@ -107,7 +107,7 @@ public class CodeHelper { codeValueId = (Integer) CodeHelper.createCodeValue(requestSpec, responseSpec, codeId, codeValue, codeValuePosition, "subResourceId"); - + } else { return codeValuesList.get(0); } @@ -115,7 +115,7 @@ public class CodeHelper { CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/" + codeValueId.toString() + "?" + Utils.TENANT_IDENTIFIER, ""); - + } public static ArrayList> getAllCodes( @@ -201,7 +201,7 @@ public class CodeHelper { return Utils.performServerGet(requestSpec, responseSpec, CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "?" + Utils.TENANT_IDENTIFIER, jsonAttributeToGetback); - + } public static Object getCodeValueById( diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTest.java index eeeaf58..b070791 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTest.java @@ -504,7 +504,7 @@ public class GuarantorTest { Float externalBalance = new Float(10000); Float selfguarantee = new Float(6000); Float externalguarantee = new Float(7000); - + final Integer selfSavigsId = SavingsAccountHelper.openSavingsAccount(this.requestSpec, this.responseSpec, clientID, String.valueOf(selfBalance)); final Integer externalSavigsId_1 = SavingsAccountHelper.openSavingsAccount(this.requestSpec, this.responseSpec, clientID_external, @@ -562,7 +562,7 @@ public class GuarantorTest { } - + @SuppressWarnings({ "rawtypes", "unchecked" }) @Test public void testGuarantor_WRITE_OFF_LOAN() { diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTestBuilder.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTestBuilder.java index ea62f71..30144ed 100755 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTestBuilder.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/loanaccount/guarantor/GuarantorTestBuilder.java @@ -79,7 +79,7 @@ public class GuarantorTestBuilder { this.guarantorTypeId = GUARANTOR_TYPE_CUSTOMER; return this; } - + public GuarantorTestBuilder externalCustomer() { this.guarantorTypeId = GUARANTOR_TYPE_EXTERNAL; return this; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java index 46be990..30cdcd3 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsDecliningBalanceHelper.java @@ -51,7 +51,7 @@ public class VariableInstallmentsDecliningBalanceHelper { .withAccounting(accountingRule, accounts).build(null); return loanProductJSON ; } - + public static String createLoanProductWithVaribleConfig(final boolean multiDisburseLoan, final String accountingRule, final Account... accounts) { System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------"); final String loanProductJSON = new LoanProductTestBuilder() // @@ -69,7 +69,7 @@ public class VariableInstallmentsDecliningBalanceHelper { .withAccounting(accountingRule, accounts).build(null); return loanProductJSON ; } - + public static String createLoanProductWithVaribleConfigwithEqualPrincipal(final boolean multiDisburseLoan, final String accountingRule, final Account... accounts) { System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------"); final String loanProductJSON = new LoanProductTestBuilder() // @@ -87,7 +87,7 @@ public class VariableInstallmentsDecliningBalanceHelper { .withAccounting(accountingRule, accounts).build(null); return loanProductJSON ; } - + public static String applyForLoanApplication(final Integer clientID, final Integer loanProductID, List charges, final String savingsId, String principal) { System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------"); @@ -107,7 +107,7 @@ public class VariableInstallmentsDecliningBalanceHelper { .withCharges(charges).build(clientID.toString(), loanProductID.toString(), savingsId); return loanApplicationJSON ; } - + public static String applyForLoanApplicationWithEqualPrincipal(final Integer clientID, final Integer loanProductID, List charges, final String savingsId, String principal) { System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------"); @@ -127,7 +127,7 @@ public class VariableInstallmentsDecliningBalanceHelper { .withCharges(charges).build(clientID.toString(), loanProductID.toString(), savingsId); return loanApplicationJSON ; } - + public static String createDeleteVariations(ArrayList deletedInstallments) { Map toReturn = new HashMap<>(); toReturn.put("locale", "en"); @@ -180,7 +180,7 @@ public class VariableInstallmentsDecliningBalanceHelper { String json = new Gson().toJson(toReturn); return json; } - + private static ArrayList createNewInstallments(String date) { ArrayList toReturn = new ArrayList<>(); Map tosend = new HashMap(); @@ -189,7 +189,7 @@ public class VariableInstallmentsDecliningBalanceHelper { toReturn.add(tosend); return toReturn; } - + private static ArrayList createModifyMap(Map firstSchedule) { ArrayList toReturn = new ArrayList<>(); ArrayList dueDate = (ArrayList) firstSchedule.get("dueDate"); @@ -199,7 +199,7 @@ public class VariableInstallmentsDecliningBalanceHelper { toReturn.add(tosend); return toReturn; } - + public static String createAllVariations() { Map toReturn = new HashMap<>(); toReturn.put("locale", "en"); @@ -212,7 +212,7 @@ public class VariableInstallmentsDecliningBalanceHelper { String json = new Gson().toJson(toReturn); return json; } - + public static String createAllVariationsWithEqualPrincipal() { Map toReturn = new HashMap<>(); toReturn.put("locale", "en"); @@ -225,7 +225,7 @@ public class VariableInstallmentsDecliningBalanceHelper { String json = new Gson().toJson(toReturn); return json; } - + private static ArrayList createNewInstallmentsWithPrincipal(String date) { ArrayList toReturn = new ArrayList<>(); Map tosend = new HashMap(); @@ -234,7 +234,7 @@ public class VariableInstallmentsDecliningBalanceHelper { toReturn.add(tosend); return toReturn; } - + private static ArrayList createModifyMapWithPrinciapl(String date) { ArrayList toReturn = new ArrayList<>(); Map tosend = new HashMap(); @@ -250,7 +250,7 @@ public class VariableInstallmentsDecliningBalanceHelper { toReturn.add(tosend); return toReturn; } - + private static ArrayList createModifyMap(String date) { ArrayList toReturn = new ArrayList<>(); Map tosend = new HashMap(); @@ -259,7 +259,7 @@ public class VariableInstallmentsDecliningBalanceHelper { toReturn.add(tosend); return toReturn; } - + public static String createModifiyDateVariations(String[] date, String[] newdate, String[] principal) { Map toReturn = new HashMap<>(); toReturn.put("locale", "en"); @@ -270,7 +270,7 @@ public class VariableInstallmentsDecliningBalanceHelper { String json = new Gson().toJson(toReturn); return json; } - + private static ArrayList createDateModifyMap(String[] date, String[] newdate, String[] installments) { ArrayList toReturn = new ArrayList<>(); for(int i = 0 ; i < date.length; i++) { @@ -280,7 +280,7 @@ public class VariableInstallmentsDecliningBalanceHelper { if(i < installments.length) { tosend.put("installmentAmount", installments[i]) ; } - toReturn.add(tosend); + toReturn.add(tosend); } return toReturn; } diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java index 6385879..1190a4a 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsFlatHelper.java @@ -44,7 +44,7 @@ public class VariableInstallmentsFlatHelper { .withRepaymentAfterEvery("1") // .withRepaymentTypeAsMonth() // .withinterestRatePerPeriod("1") // - .withAmortizationTypeAsEqualPrincipalPayment() + .withAmortizationTypeAsEqualPrincipalPayment() .withInterestTypeAsFlat() // .withTranches(multiDisburseLoan) // .withInterestCalculationPeriodTypeAsRepaymentPeriod(true)// @@ -52,9 +52,9 @@ public class VariableInstallmentsFlatHelper { .withAccounting(accountingRule, accounts).build(null); return loanProductJSON ; } - - - + + + public static String applyForLoanApplication(final Integer clientID, final Integer loanProductID, List charges, final String savingsId, String principal) { System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------"); @@ -74,7 +74,7 @@ public class VariableInstallmentsFlatHelper { .withCharges(charges).build(clientID.toString(), loanProductID.toString(), savingsId); return loanApplicationJSON ; } - + public static String createDeleteVariations(ArrayList deletedInstallments) { Map toReturn = new HashMap<>(); toReturn.put("locale", "en"); @@ -127,7 +127,7 @@ public class VariableInstallmentsFlatHelper { String json = new Gson().toJson(toReturn); return json; } - + private static ArrayList createNewInstallments(String date) { ArrayList toReturn = new ArrayList<>(); Map tosend = new HashMap(); @@ -136,7 +136,7 @@ public class VariableInstallmentsFlatHelper { toReturn.add(tosend); return toReturn; } - + public static String createModifiyDateVariations(String[] date, String[] newdate, String[] principal) { Map toReturn = new HashMap<>(); toReturn.put("locale", "en"); @@ -147,7 +147,7 @@ public class VariableInstallmentsFlatHelper { String json = new Gson().toJson(toReturn); return json; } - + private static ArrayList createDateModifyMap(String[] date, String[] newdate, String[] principal) { ArrayList toReturn = new ArrayList<>(); for(int i = 0 ; i < date.length; i++) { @@ -157,12 +157,12 @@ public class VariableInstallmentsFlatHelper { if(i < principal.length) { tosend.put("principal", principal[i]) ; } - toReturn.add(tosend); + toReturn.add(tosend); } return toReturn; } - - + + private static ArrayList createModifyMap(Map firstSchedule) { ArrayList toReturn = new ArrayList<>(); ArrayList dueDate = (ArrayList) firstSchedule.get("dueDate"); @@ -172,7 +172,7 @@ public class VariableInstallmentsFlatHelper { toReturn.add(tosend); return toReturn; } - + public static String createAllVariations() { Map toReturn = new HashMap<>(); toReturn.put("locale", "en"); @@ -185,7 +185,7 @@ public class VariableInstallmentsFlatHelper { String json = new Gson().toJson(toReturn); return json; } - + private static ArrayList createDeletedMap(String date) { ArrayList toReturn = new ArrayList<>(); Map tosend = new HashMap(); @@ -193,7 +193,7 @@ public class VariableInstallmentsFlatHelper { toReturn.add(tosend); return toReturn; } - + private static ArrayList createModifyMap(String date) { ArrayList toReturn = new ArrayList<>(); Map tosend = new HashMap(); @@ -202,7 +202,7 @@ public class VariableInstallmentsFlatHelper { toReturn.add(tosend); return toReturn; } - + public static String formatDate(ArrayList list) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, (int) list.get(0)); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsIntegrationTest.java index 3c93c52..35d4561 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsIntegrationTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableInstallmentsIntegrationTest.java @@ -39,12 +39,12 @@ import com.jayway.restassured.specification.ResponseSpecification; @SuppressWarnings({"rawtypes", "unchecked"}) public class VariableInstallmentsIntegrationTest { - + private static final String NONE = "1"; private RequestSpecification requestSpec; private ResponseSpecification responseSpec; private LoanTransactionHelper loanTransactionHelper; - + @Before public void setup() { Utils.initializeRESTAssured(); @@ -53,7 +53,7 @@ public class VariableInstallmentsIntegrationTest { this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec); } - + @Test public void testVariableLoanProductCreation() { final String json = VariableInstallmentsDecliningBalanceHelper.createLoanProductWithVaribleConfig(false, NONE); @@ -64,8 +64,8 @@ public class VariableInstallmentsIntegrationTest { Assert.assertEquals(new Integer(5), loanProduct.get("minimumGap")) ; Assert.assertEquals(new Integer(90), loanProduct.get("maximumGap")) ; } - - + + @Test public void testLoanProductCreation() { final String josn = VariableInstallmentsDecliningBalanceHelper.createLoanProductWithoutVaribleConfig(false, NONE); @@ -74,7 +74,7 @@ public class VariableInstallmentsIntegrationTest { Map loanProduct = (Map)loanTransactionHelper.getLoanProductDetail(requestSpec, responseSpec, loanProductID, "") ; Assert.assertTrue(!(Boolean)loanProduct.get("allowVariableInstallments")) ; } - + @Test public void testDeleteInstallmentsWithDecliningBalanceEqualInstallments() { VariableIntallmentsTransactionHelper transactionHelper = new VariableIntallmentsTransactionHelper(requestSpec, responseSpec) ; @@ -95,7 +95,7 @@ public class VariableInstallmentsIntegrationTest { String toDeletedata = VariableInstallmentsDecliningBalanceHelper.createDeleteVariations(toDelete) ; HashMap modifiedReschdule = transactionHelper.validateVariations(toDeletedata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 November 2011", "20 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 November 2011", "20 December 2011", "20 January 2012"}, new String[] {"34675.47", "34675.47", "36756.26"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(toDeletedata, loanID) ; @@ -104,7 +104,7 @@ public class VariableInstallmentsIntegrationTest { periods = (ArrayList)repaymentSchedule.get("periods") ; periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; - + } private void assertAfterSubmit(ArrayList serverData, ArrayList expectedData) { Assert.assertTrue(serverData.size() == expectedData.size()) ; @@ -115,7 +115,7 @@ public class VariableInstallmentsIntegrationTest { Assert.assertTrue(serverMap.get("totalOutstandingForPeriod").toString().equals(expectedMap.get("installmentAmount"))) ; } } - + @Test public void testAddInstallmentsWithDecliningBalanceEqualInstallments() { //31 October 2011 - 5000 @@ -136,7 +136,7 @@ public class VariableInstallmentsIntegrationTest { String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createAddVariations() ; HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "31 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "31 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, new String[] {"21215.84", "5000.0", "26477.31", "26477.31", "25947.7"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; @@ -146,7 +146,7 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + @Test public void testModifyInstallmentWithDecliningBalanceEqualInstallments() { //20 October 2011 - 30000 modify @@ -164,10 +164,10 @@ public class VariableInstallmentsIntegrationTest { Map list = transactionHelper.retrieveSchedule(loanID) ; Map repaymentSchedule = (Map)list.get("repaymentSchedule") ; ArrayList periods = (ArrayList)repaymentSchedule.get("periods") ; - String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createModifiyVariations((Map)periods.get(1)) ; //0th position will have disbursement + String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createModifiyVariations((Map)periods.get(1)) ; //0th position will have disbursement HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, new String[] {"30000.0", "24966.34", "24966.34", "24966.33"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; @@ -176,13 +176,13 @@ public class VariableInstallmentsIntegrationTest { periods = (ArrayList)repaymentSchedule.get("periods") ; periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; - + } - + @Test public void testAllVariationsDecliningBalancewithEqualInstallments() { // Request: Delete 20 December 2011 26,262.38, Modify 20 November 2011 from 26,262.38 to 30000, Add 25 December 2011 5000 - // Result: 20 October 2011 - 26262.38, 20 November 2011 - 30000, 25 December 2011 - 5000, 20 January 2012 - 44077 + // Result: 20 October 2011 - 26262.38, 20 November 2011 - 30000, 25 December 2011 - 5000, 20 January 2012 - 44077 VariableIntallmentsTransactionHelper transactionHelper = new VariableIntallmentsTransactionHelper(requestSpec, responseSpec) ; final String loanProductJson = VariableInstallmentsDecliningBalanceHelper.createLoanProductWithVaribleConfig(false, NONE); Integer loanProductID = this.loanTransactionHelper.getLoanProductId(loanProductJson); @@ -196,11 +196,11 @@ public class VariableInstallmentsIntegrationTest { Map list = transactionHelper.retrieveSchedule(loanID) ; Map repaymentSchedule = (Map)list.get("repaymentSchedule") ; ArrayList periods = (ArrayList)repaymentSchedule.get("periods") ; - - String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createAllVariations() ; //0th position will have disbursement + + String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createAllVariations() ; //0th position will have disbursement HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "25 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "25 December 2011", "20 January 2012"}, new String[] {"26262.38", "30000.0", "5000.0", "44077.0"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; @@ -210,11 +210,11 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + @Test public void testAllVariationsDecliningBalancewithEqualPrincipal() { // Request: Delete 20 December 2011 26,262.38, Modify 20 November 2011 from 26,262.38 to 30000, Add 25 December 2011 5000 - // Result: 20 October 2011 - 27000.0, 20 November 2011 - 31500.0, 25 December 2011 - 6045.16, 20 January 2012 - 40670.97 + // Result: 20 October 2011 - 27000.0, 20 November 2011 - 31500.0, 25 December 2011 - 6045.16, 20 January 2012 - 40670.97 VariableIntallmentsTransactionHelper transactionHelper = new VariableIntallmentsTransactionHelper(requestSpec, responseSpec) ; final String loanProductJson = VariableInstallmentsDecliningBalanceHelper.createLoanProductWithVaribleConfigwithEqualPrincipal(false, NONE); Integer loanProductID = this.loanTransactionHelper.getLoanProductId(loanProductJson); @@ -228,11 +228,11 @@ public class VariableInstallmentsIntegrationTest { Map list = transactionHelper.retrieveSchedule(loanID) ; Map repaymentSchedule = (Map)list.get("repaymentSchedule") ; ArrayList periods = (ArrayList)repaymentSchedule.get("periods") ; - - String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createAllVariationsWithEqualPrincipal() ; //0th position will have disbursement + + String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createAllVariationsWithEqualPrincipal() ; //0th position will have disbursement HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "25 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "25 December 2011", "20 January 2012"}, new String[] {"27000.0", "31500.0", "6045.16", "40670.97"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; @@ -242,7 +242,7 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + @Test public void testModifyDatesWithDecliningBalanceEqualInstallments() { //Modify 20 December 2011:25000 -> 04 January 2012:20000 @@ -258,18 +258,18 @@ public class VariableInstallmentsIntegrationTest { HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID); LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap); //Integer loanID = 57 ; - + Map list = transactionHelper.retrieveSchedule(loanID) ; Map repaymentSchedule = (Map)list.get("repaymentSchedule") ; ArrayList periods = (ArrayList)repaymentSchedule.get("periods") ; // // - String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createModifiyDateVariations(new String[]{"20 December 2011", "20 January 2012"}, new String[]{"04 January 2012", "08 February 2012"}, new String[]{"20000"}) ; //0th position will have disbursement + String addVariationsjsondata = VariableInstallmentsDecliningBalanceHelper.createModifiyDateVariations(new String[]{"20 December 2011", "20 January 2012"}, new String[]{"04 January 2012", "08 February 2012"}, new String[]{"20000"}) ; //0th position will have disbursement HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "04 January 2012", "08 February 2012"}, + ArrayList toVerifyData = VariableInstallmentsDecliningBalanceHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "04 January 2012", "08 February 2012"}, new String[] {"26262.38", "26262.38", "20000.0", "33242.97"}) ; - assertAfterSubmit(newperiods, toVerifyData) ; + assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; list = transactionHelper.retrieveSchedule(loanID) ; repaymentSchedule = (Map)list.get("repaymentSchedule") ; @@ -277,7 +277,7 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + // Interest Type is FLAT @Test public void testDeleteInstallmentsWithInterestTypeFlat() { @@ -298,7 +298,7 @@ public class VariableInstallmentsIntegrationTest { String toDeletedata = VariableInstallmentsFlatHelper.createDeleteVariations(toDelete) ; HashMap modifiedReschdule = transactionHelper.validateVariations(toDeletedata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 November 2011", "20 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 November 2011", "20 December 2011", "20 January 2012"}, new String[] {"36000.0", "36000.0", "36000.0"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(toDeletedata, loanID) ; @@ -308,7 +308,7 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + @Test public void testAddInstallmentsWithInterestTypeFlat() { //31 October 2011 - 5000 @@ -329,7 +329,7 @@ public class VariableInstallmentsIntegrationTest { String addVariationsjsondata = VariableInstallmentsFlatHelper.createAddVariations() ; HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "31 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "31 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, new String[] {"21600.0", "6600.0", "26600.0", "26600.0", "26600.0"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; @@ -339,7 +339,7 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + @Test public void testModifyInstallmentsWithInterestTypeisFlat() { //20 October 2011 - 30000 modify @@ -357,10 +357,10 @@ public class VariableInstallmentsIntegrationTest { Map list = transactionHelper.retrieveSchedule(loanID) ; Map repaymentSchedule = (Map)list.get("repaymentSchedule") ; ArrayList periods = (ArrayList)repaymentSchedule.get("periods") ; - String addVariationsjsondata = VariableInstallmentsFlatHelper.createModifiyVariations((Map)periods.get(1)) ; //0th position will have disbursement + String addVariationsjsondata = VariableInstallmentsFlatHelper.createModifiyVariations((Map)periods.get(1)) ; //0th position will have disbursement HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "20 December 2011", "20 January 2012"}, new String[] {"32000.0", "25333.33", "25333.33", "25333.34"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; @@ -370,11 +370,11 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + @Test public void testAllVariationsWithInterestTypeFlat() { // Request: Delete 20 December 2011 25000.0, Modify 20 November 2011 from 25,000 to 30000, Add 25 December 2011 5000 - // Result: 20 October 2011 - 27000.0, 20 November 2011 - 32000.0, 25 December 2011 - 7000.0, 20 January 2012 - 42000.0 + // Result: 20 October 2011 - 27000.0, 20 November 2011 - 32000.0, 25 December 2011 - 7000.0, 20 January 2012 - 42000.0 VariableIntallmentsTransactionHelper transactionHelper = new VariableIntallmentsTransactionHelper(requestSpec, responseSpec) ; final String loanProductJson = VariableInstallmentsFlatHelper.createLoanProductWithVaribleConfig(false, NONE); Integer loanProductID = this.loanTransactionHelper.getLoanProductId(loanProductJson); @@ -388,11 +388,11 @@ public class VariableInstallmentsIntegrationTest { Map list = transactionHelper.retrieveSchedule(loanID) ; Map repaymentSchedule = (Map)list.get("repaymentSchedule") ; ArrayList periods = (ArrayList)repaymentSchedule.get("periods") ; - - String addVariationsjsondata = VariableInstallmentsFlatHelper.createAllVariations() ; //0th position will have disbursement + + String addVariationsjsondata = VariableInstallmentsFlatHelper.createAllVariations() ; //0th position will have disbursement HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "25 December 2011", "20 January 2012"}, + ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "25 December 2011", "20 January 2012"}, new String[] {"27000.0", "32000.0", "7000.0", "42000.0"}) ; assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; @@ -402,7 +402,7 @@ public class VariableInstallmentsIntegrationTest { periods.remove(0) ; //Repayments Schedule includes disbursement also. So remove this. assertAfterSubmit(periods, toVerifyData) ; } - + @Test public void testModifyDatesWithInterestTypeFlat() { //Modify 20 December 2011:25000 -> 04 January 2012:20000 @@ -418,18 +418,18 @@ public class VariableInstallmentsIntegrationTest { HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID); LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap); //Integer loanID = 67 ; - + Map list = transactionHelper.retrieveSchedule(loanID) ; Map repaymentSchedule = (Map)list.get("repaymentSchedule") ; ArrayList periods = (ArrayList)repaymentSchedule.get("periods") ; // // - String addVariationsjsondata = VariableInstallmentsFlatHelper.createModifiyDateVariations(new String[]{"20 December 2011", "20 January 2012"}, new String[]{"04 January 2012", "08 February 2012"}, new String[]{"20000"}) ; //0th position will have disbursement + String addVariationsjsondata = VariableInstallmentsFlatHelper.createModifiyDateVariations(new String[]{"20 December 2011", "20 January 2012"}, new String[]{"04 January 2012", "08 February 2012"}, new String[]{"20000"}) ; //0th position will have disbursement HashMap modifiedReschdule = transactionHelper.validateVariations(addVariationsjsondata, loanID) ; ArrayList newperiods = (ArrayList) modifiedReschdule.get("periods") ; - ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "04 January 2012", "08 February 2012"}, + ArrayList toVerifyData = VariableInstallmentsFlatHelper.constructVerifyData(new String[] {"20 October 2011", "20 November 2011", "04 January 2012", "08 February 2012"}, new String[] {"27306.45", "27306.45", "22306.45", "32306.46"}) ; - assertAfterSubmit(newperiods, toVerifyData) ; + assertAfterSubmit(newperiods, toVerifyData) ; transactionHelper.submitVariations(addVariationsjsondata, loanID) ; list = transactionHelper.retrieveSchedule(loanID) ; repaymentSchedule = (Map)list.get("repaymentSchedule") ; diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableIntallmentsTransactionHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableIntallmentsTransactionHelper.java index e1ee060..a3942a2 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableIntallmentsTransactionHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/variableinstallments/VariableIntallmentsTransactionHelper.java @@ -31,27 +31,27 @@ import com.jayway.restassured.specification.ResponseSpecification; public class VariableIntallmentsTransactionHelper { private final String URL = "https://localhost:8443/fineract-provider/api/v1/loans/" ; - + private final RequestSpecification requestSpec; private final ResponseSpecification responseSpec; - - public VariableIntallmentsTransactionHelper(final RequestSpecification requestSpec, + + public VariableIntallmentsTransactionHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { this.requestSpec = requestSpec ; this.responseSpec = responseSpec ; } - - + + public Map retrieveSchedule(Integer loanId) { String url = URL+loanId+"?associations=repaymentSchedule&exclude=guarantors&"+Utils.TENANT_IDENTIFIER ; return Utils.performServerGet(requestSpec, responseSpec, url, ""); } - + public HashMap validateVariations(final String exceptions, Integer loanId) { String url = URL+loanId+"/schedule?command=calculateLoanSchedule&"+Utils.TENANT_IDENTIFIER ; return Utils.performServerPost(this.requestSpec, this.responseSpec, url, exceptions, ""); } - + public HashMap submitVariations(final String exceptions, Integer loanId) { String url = URL+loanId+"/schedule?command=addVariations&"+Utils.TENANT_IDENTIFIER ; return Utils.performServerPost(this.requestSpec, this.responseSpec, url, exceptions, ""); diff --git a/fineract-provider/src/main/java/org/apache/fineract/ServerWithMariaDB4jApplication.java b/fineract-provider/src/main/java/org/apache/fineract/ServerWithMariaDB4jApplication.java index aa844cf..53013b8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/ServerWithMariaDB4jApplication.java +++ b/fineract-provider/src/main/java/org/apache/fineract/ServerWithMariaDB4jApplication.java @@ -82,14 +82,14 @@ public class ServerWithMariaDB4jApplication { if (distResource.exists()) { openWebBrowser(distURI); } else if (devResource.exists()) { - openWebBrowser(devURI); + openWebBrowser(devURI); } else { logger.error("Cannot open Fineract UI in browser; not found: " + distResource.toString()); } } - + // TODO Tray Icon stuff; dig out my very own old @see https://github.com/mifos/head/tree/hudsonBuild-MIFOS-5157_Launch4j-EXE_NewDist-squash1/server-jetty/src/main/java/org/mifos/server/tray - + ApplicationExitUtil.waitForKeyPressToCleanlyExit(ctx); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingConstants.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingConstants.java index 5ed32c3..62b3c6b 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingConstants.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/accrual/api/AccrualAccountingConstants.java @@ -27,7 +27,7 @@ public class AccrualAccountingConstants { public static final String accrueTillParamName = "tillDate"; public static final String localeParamName = "locale"; public static final String dateFormatParamName = "dateFormat"; - + public static final String PERIODIC_ACCRUAL_ACCOUNTING_RESOURCE_NAME = "periodicaccrual"; public static final String PERIODIC_ACCRUAL_ACCOUNTING_EXECUTION_ERROR_CODE = "execution.failed"; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/data/GLClosureData.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/data/GLClosureData.java index 73b89c3..93b7565 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/data/GLClosureData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/closure/data/GLClosureData.java @@ -26,7 +26,7 @@ import org.joda.time.LocalDate; /** * Immutable object representing a General Ledger Account - * + * * Note: no getter/setters required as google-gson will produce json from fields * of object. */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/common/AccountingDropdownReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/common/AccountingDropdownReadPlatformService.java index 8c9aa31..9c0f682 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/common/AccountingDropdownReadPlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/common/AccountingDropdownReadPlatformService.java @@ -41,7 +41,7 @@ public interface AccountingDropdownReadPlatformService { public Map> retrieveAccountMappingOptionsForCharges(); public Map> retrieveAccountMappingOptions(); - + public Map> retrieveAccountMappingOptionsForShareProducts(); } \ No newline at end of file diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/data/GLAccountData.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/data/GLAccountData.java index f65936e..6065162 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/data/GLAccountData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/data/GLAccountData.java @@ -30,7 +30,7 @@ import java.util.List; /** * Immutable object representing a General Ledger Account - * + * * Note: no getter/setters required as google-gson will produce json from fields * of object. */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/exception/GLAccountDisableException.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/exception/GLAccountDisableException.java index fbae542..8f56dcf 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/exception/GLAccountDisableException.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/exception/GLAccountDisableException.java @@ -21,7 +21,7 @@ package org.apache.fineract.accounting.glaccount.exception; import org.apache.fineract.infrastructure.core.exception.AbstractPlatformDomainRuleException; /** - * + * * when gl account is attached with any product(loan/saving) then we can not * disable the gl account */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/DateParam.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/DateParam.java index cbc0882..690b99f 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/DateParam.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/DateParam.java @@ -28,7 +28,7 @@ import org.joda.time.LocalDate; /** * Class for parsing dates sent as query parameters - * + * * TODO: Vishwas Should move this class to a more generic package */ public class DateParam { diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java index 4f721bd..dc36585 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/api/JournalEntriesApiResource.java @@ -221,7 +221,7 @@ public class JournalEntriesApiResource { return this.apiJsonSerializerService.serialize(settings, entries, RESPONSE_DATA_PARAMETERS); } - + @GET @Path("openingbalance") @Consumes({ MediaType.APPLICATION_JSON }) diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java index 4c67d99..0388d8d 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/data/JournalEntryData.java @@ -29,7 +29,7 @@ import org.joda.time.LocalDate; /** * Immutable object representing a General Ledger Account - * + * * Note: no getter/setters required as google will produce json from fields of * object. */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java index 447cb13..dda72fb 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java @@ -220,7 +220,7 @@ public class JournalEntry extends AbstractAuditableCustom { return this.entityType; } - + public Long getShareTransactionId() { return this.shareTransactionId; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntryRepository.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntryRepository.java index c280f89..0a19408 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntryRepository.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntryRepository.java @@ -37,8 +37,8 @@ public interface JournalEntryRepository extends JpaRepository findNonReversedContraTansactionIds(@Param("contraId") Long contraId, @Param("officeId") Long officeId); - - @Query("select journalEntry from JournalEntry journalEntry where journalEntry.entityId= :entityId and journalEntry.entityType = :entityType") + + @Query("select journalEntry from JournalEntry journalEntry where journalEntry.entityId= :entityId and journalEntry.entityType = :entityType") List findProvisioningJournalEntriesByEntityId(@Param("entityId") Long entityId, @Param("entityType") Integer entityType) ; @Query("select journalEntry from JournalEntry journalEntry where journalEntry.transactionId= :transactionId and journalEntry.reversed=false and journalEntry.entityType = :entityType") diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/handler/DefineOpeningBalanceCommandHandler.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/handler/DefineOpeningBalanceCommandHandler.java index dd6e298..24899b0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/handler/DefineOpeningBalanceCommandHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/handler/DefineOpeningBalanceCommandHandler.java @@ -29,7 +29,7 @@ import org.springframework.stereotype.Service; @Service @CommandType(entity = "JOURNALENTRY", action = "DEFINEOPENINGBALANCE") public class DefineOpeningBalanceCommandHandler implements NewCommandSourceHandler { - + private final JournalEntryWritePlatformService writePlatformService; @Autowired diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccountingProcessorHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccountingProcessorHelper.java index 47944f2..891f72d 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccountingProcessorHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccountingProcessorHelper.java @@ -340,10 +340,10 @@ public class AccountingProcessorHelper { /** * Convenience method that creates a pair of related Debits and Credits for * Accrual Based accounting. - * + * * The target accounts for debits and credits are switched in case of a * reversal - * + * * @param office * @param accountTypeToBeDebited * Enum of the placeholder GLAccount to be debited @@ -375,10 +375,10 @@ public class AccountingProcessorHelper { /** * Convenience method that creates a pair of related Debits and Credits for * Accrual Based accounting. - * + * * The target accounts for debits and credits are switched in case of a * reversal - * + * * @param office office * @param currencyCode currencyCode * @param accountTypeToBeDebited Enum of the placeholder GLAccount to be debited @@ -435,10 +435,10 @@ public class AccountingProcessorHelper { /** * Convenience method that creates a pair of related Debits and Credits for * Cash Based accounting. - * + * * The target accounts for debits and credits are switched in case of a * reversal - * + * * @param office * @param accountTypeToBeDebited * Enum of the placeholder GLAccount to be debited @@ -470,10 +470,10 @@ public class AccountingProcessorHelper { /** * Convenience method that creates a pair of related Debits and Credits for * Cash Based accounting. - * + * * The target accounts for debits and credits are switched in case of a * reversal - * + * * @param office * @param accountTypeToBeDebited * Enum of the placeholder GLAccount to be debited @@ -562,10 +562,10 @@ public class AccountingProcessorHelper { /** * Convenience method that creates a pair of related Debits and Credits for * Cash Based accounting. - * + * * The target accounts for debits and credits are switched in case of a * reversal - * + * * @param office * @param currencyCode * @param accountTypeToBeDebited Enum of the placeholder GLAccount to be debited @@ -721,10 +721,10 @@ public class AccountingProcessorHelper { /** * Convenience method that creates a pair of related Debits and Credits for * Cash Based accounting. - * + * * The target accounts for debits and credits are switched in case of a * reversal - * + * * @param office office * @param currencyCode currencyCode * @param accountTypeToBeDebited Enum of the placeholder GLAccount to be debited @@ -1041,7 +1041,7 @@ public class AccountingProcessorHelper { "Recent Portfolio changes w.r.t Charges for shares have Broken the accounting code", "Recent Portfolio changes w.r.t Charges for shares have Broken the accounting code"); } } - + private void createDebitJournalEntryForShares(final Office office, final String currencyCode, final GLAccount account, final Long shareAccountId, final String transactionId, final Date transactionDate, final BigDecimal amount) { final boolean manualEntry = false; diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java index 8baa00a..235c5d2 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/AccrualBasedAccountingProcessorForLoan.java @@ -102,7 +102,7 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess /** * Debit loan Portfolio and credit Fund source for Disbursement. - * + * * @param loanDTO * @param loanTransactionDTO * @param office @@ -141,20 +141,20 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess } /** - * + * * Handles repayments using the following posting rules
*
*
- * + * * Principal Repayment: Debits "Fund Source" and Credits * "Loan Portfolio"
- * + * * Interest Repayment:Debits "Fund Source" and and Credits * "Receivable Interest"
- * + * * Fee Repayment:Debits "Fund Source" (or "Interest on Loans" in case * of repayment at disbursement) and and Credits "Receivable Fees"
- * + * * Penalty Repayment: Debits "Fund Source" and and Credits * "Receivable Penalties"
*
@@ -162,24 +162,24 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess *
* Principal Write off: Debits "Losses Written Off" and Credits * "Loan Portfolio"
- * + * * Interest Write off:Debits "Losses Written off" and and Credits * "Receivable Interest"
- * + * * Fee Write off:Debits "Losses Written off" and and Credits * "Receivable Fees"
- * + * * Penalty Write off: Debits "Losses Written off" and and Credits * "Receivable Penalties"
*
*
* In case the loan transaction has been reversed, all debits are turned * into credits and vice versa - * + * * @param loanTransactionDTO * @param loanDTO * @param office - * + * */ private void createJournalEntriesForRepaymentsAndWriteOffs(final LoanDTO loanDTO, final LoanTransactionDTO loanTransactionDTO, final Office office, final boolean writeOff, final boolean isIncomeFromFee) { @@ -320,7 +320,7 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess /** * Create a single Debit to fund source and a single credit to * "Income from Recovery" - * + * * In case the loan transaction is a reversal, all debits are turned into * credits and vice versa */ @@ -347,15 +347,15 @@ public class AccrualBasedAccountingProcessorForLoan implements AccountingProcess /** * Recognize the receivable interest
* Debit "Interest Receivable" and Credit "Income from Interest" - * + * * Fees: Debit Fees Receivable and credit Income from * Fees
- * + * * Penalties: Debit Penalties Receivable and credit Income * from Penalties - * + * * Also handles reversals for both fees and payment applications - * + * * @param loanDTO * @param loanTransactionDTO * @param office diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForClientTransactions.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForClientTransactions.java index 5b8477d..e237dc4 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForClientTransactions.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForClientTransactions.java @@ -55,7 +55,7 @@ public class CashBasedAccountingProcessorForClientTransactions implements Accoun /** * Create a single debit to fund source and multiple credits for the income * account mapped with each charge this payment pays off - * + * * In case the loan transaction is a reversal, all debits are turned into * credits and vice versa */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForLoan.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForLoan.java index 4b1866d..10742a9 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForLoan.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForLoan.java @@ -110,11 +110,11 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF /** * Debit loan Portfolio and credit Fund source for a Disbursement
- * + * * All debits are turned into credits and vice versa in case of disbursement * reversals - * - * + * + * * @param loanDTO * @param loanTransactionDTO * @param office @@ -150,11 +150,11 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF /** * Debit loan Portfolio and credit Fund source for a Disbursement
- * + * * All debits are turned into credits and vice versa in case of disbursement * reversals - * - * + * + * * @param loanDTO * @param loanTransactionDTO * @param office @@ -188,7 +188,7 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF * (loan portfolio for principal repayments, Interest on loans for interest * repayments, Income from fees for fees payment and Income from penalties * for penalty payment) - * + * * In case the loan transaction is a reversal, all debits are turned into * credits and vice versa */ @@ -259,7 +259,7 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF /** * Create a single Debit to fund source and a single credit to * "Income from Recovery" - * + * * In case the loan transaction is a reversal, all debits are turned into * credits and vice versa */ @@ -287,11 +287,11 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF * Credit loan Portfolio and Debit Suspense Account for a Transfer * Initiation. A Transfer acceptance would be treated the opposite i.e Debit * Loan Portfolio and Credit Suspense Account
- * + * * All debits are turned into credits and vice versa in case of Transfer * Initiation disbursals - * - * + * + * * @param loanDTO * @param loanTransactionDTO * @param office @@ -320,7 +320,7 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF null, loanId, transactionId, transactionDate, principalAmount, isReversal); } } - + private void createJournalEntriesForRefundForActiveLoan(LoanDTO loanDTO, LoanTransactionDTO loanTransactionDTO, Office office) { // loan properties final Long loanProductId = loanDTO.getLoanProductId(); @@ -354,11 +354,11 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF if (feesAmount != null && !(feesAmount.compareTo(BigDecimal.ZERO) == 0)) { totalDebitAmount = totalDebitAmount.add(feesAmount); - + List chargePaymentDTOs = new ArrayList<>(); - + for(ChargePaymentDTO chargePaymentDTO : loanTransactionDTO.getFeePayments()) { - chargePaymentDTOs.add(new ChargePaymentDTO(chargePaymentDTO.getChargeId(), chargePaymentDTO.getLoanChargeId(), + chargePaymentDTOs.add(new ChargePaymentDTO(chargePaymentDTO.getChargeId(), chargePaymentDTO.getLoanChargeId(), chargePaymentDTO.getAmount().floatValue() < 0 ? chargePaymentDTO.getAmount().multiply(new BigDecimal(-1)):chargePaymentDTO.getAmount() )); } this.helper.createCreditJournalEntryOrReversalForLoanCharges(office, currencyCode, @@ -369,12 +369,12 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF if (penaltiesAmount != null && !(penaltiesAmount.compareTo(BigDecimal.ZERO) == 0)) { totalDebitAmount = totalDebitAmount.add(penaltiesAmount); List chargePaymentDTOs = new ArrayList<>(); - + for(ChargePaymentDTO chargePaymentDTO : loanTransactionDTO.getPenaltyPayments()) { - chargePaymentDTOs.add(new ChargePaymentDTO(chargePaymentDTO.getChargeId(), chargePaymentDTO.getLoanChargeId(), + chargePaymentDTOs.add(new ChargePaymentDTO(chargePaymentDTO.getChargeId(), chargePaymentDTO.getLoanChargeId(), chargePaymentDTO.getAmount().floatValue() < 0 ? chargePaymentDTO.getAmount().multiply(new BigDecimal(-1)):chargePaymentDTO.getAmount() )); } - + this.helper.createCreditJournalEntryOrReversalForLoanCharges(office, currencyCode, CASH_ACCOUNTS_FOR_LOAN.INCOME_FROM_PENALTIES.getValue(), loanProductId, loanId, transactionId, transactionDate, penaltiesAmount, !isReversal, chargePaymentDTOs); @@ -389,6 +389,6 @@ public class CashBasedAccountingProcessorForLoan implements AccountingProcessorF /*** create a single debit entry (or reversal) for the entire amount **/ this.helper.createDebitJournalEntryOrReversalForLoan(office, currencyCode, CASH_ACCOUNTS_FOR_LOAN.FUND_SOURCE.getValue(), loanProductId, paymentTypeId, loanId, transactionId, transactionDate, totalDebitAmount, !isReversal); - + } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForShares.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForShares.java index cef515e..4ef608d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForShares.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/CashBasedAccountingProcessorForShares.java @@ -123,13 +123,13 @@ public class CashBasedAccountingProcessorForShares implements AccountingProcesso transactionId, transactionDate, amount.subtract(chargeAmount)); this.helper.createCreditJournalEntryForShares(office, currencyCode, CASH_ACCOUNTS_FOR_SHARES.SHARES_REFERENCE.getValue(), shareProductId, paymentTypeId, shareAccountId, transactionId, transactionDate, amount); - + }else{ this.helper.createJournalEntriesForShares(office, currencyCode, CASH_ACCOUNTS_FOR_SHARES.SHARES_SUSPENSE.getValue(), CASH_ACCOUNTS_FOR_SHARES.SHARES_REFERENCE.getValue(), shareProductId, paymentTypeId, shareAccountId, transactionId, transactionDate, amount); } - + } } 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 928ed40..d47210f 100755 --- 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 @@ -362,7 +362,7 @@ public class JournalEntryReadPlatformServiceImpl implements JournalEntryReadPlat if (searchParameters.isOrderByRequested()) { sqlBuilder.append(" order by ").append(searchParameters.getOrderBy()); this.columnValidator.validateSqlInjection(sqlBuilder.toString(), searchParameters.getOrderBy()); - + if (searchParameters.isSortOrderProvided()) { sqlBuilder.append(' ').append(searchParameters.getSortOrder()); this.columnValidator.validateSqlInjection(sqlBuilder.toString(), searchParameters.getOrderBy()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryRunningBalanceUpdateServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryRunningBalanceUpdateServiceImpl.java index dccd7cb..d08e5c7 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryRunningBalanceUpdateServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryRunningBalanceUpdateServiceImpl.java @@ -65,11 +65,11 @@ public class JournalEntryRunningBalanceUpdateServiceImpl implements JournalEntry private final FromJsonHelper fromApiJsonHelper; private final GLJournalEntryMapper entryMapper = new GLJournalEntryMapper(); - - // if a limit is not added to the running balance select statements below and the resultset is more than 400,000, + + // if a limit is not added to the running balance select statements below and the resultset is more than 400,000, // the script will eat up all of the server memory private final String selectRunningBalanceSqlLimit = "limit 0, 10000"; - + private final String officeRunningBalanceSql = "select je.office_running_balance as runningBalance,je.account_id as accountId from acc_gl_journal_entry je " + "inner join (select max(id) as id from acc_gl_journal_entry where office_id=? and entry_date < ? group by account_id,entry_date) je2 " + "inner join (select max(entry_date) as date from acc_gl_journal_entry where office_id=? and entry_date < ? group by account_id) je3 " diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformService.java index 89c9364..261a0a3 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformService.java @@ -39,12 +39,12 @@ public interface JournalEntryWritePlatformService { void createJournalEntriesForClientTransactions(Map accountingBridgeData); CommandProcessingResult defineOpeningBalance(JsonCommand command); - + public String revertProvisioningJournalEntries(final Date reversalTransactionDate, final Long entityId, final Integer entityType) ; public String createProvisioningJournalEntries(ProvisioningEntry entry) ; void createJournalEntriesForShares(Map accountingBridgeData); - + void revertShareAccountJournalEntries(final ArrayList transactionId, final Date transactionDate); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformServiceJpaRepositoryImpl.java index 8fc62d9..e1a1437 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformServiceJpaRepositoryImpl.java @@ -323,7 +323,7 @@ public class JournalEntryWritePlatformServiceJpaRepositoryImpl implements Journa final boolean useDefaultComment = StringUtils.isBlank(reversalComment); validateCommentForReversal(reversalComment); - + //Before reversal validate accounting closure is done for that branch or not. final Date journalEntriesTransactionDate = journalEntries.get(0).getTransactionDate(); final GLClosure latestGLClosureByBranch = this.glClosureRepository.getLatestGLClosureByBranch(officeId); @@ -563,7 +563,7 @@ public class JournalEntryWritePlatformServiceJpaRepositoryImpl implements Journa } } } - + private void validateBusinessRulesForJournalEntries(final JournalEntryCommand command) { /** check if date of Journal entry is valid ***/ final LocalDate entryLocalDate = command.getTransactionDate(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/serialization/ProductToGLAccountMappingFromApiJsonDeserializer.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/serialization/ProductToGLAccountMappingFromApiJsonDeserializer.java index 7a0f91b..78acef6 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/serialization/ProductToGLAccountMappingFromApiJsonDeserializer.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/serialization/ProductToGLAccountMappingFromApiJsonDeserializer.java @@ -48,27 +48,27 @@ import com.google.gson.JsonElement; /** * TODO Vishwas find a better approach for validation - * + * * Currently, validation of the passed in JSON is done before calling save or * update method on the target resource (in our case the loan Product) - * + * * However, in the case of a loan product it would be difficult to validate the * passed in JSON for valid {@link LoanProduct} to {@link GLAccount} mappings * during update because of the following scenario - * + * * The accounting rule type may be changed in the update command, so we would * have to validate if all required account heads for a particular account type * have been passed in (would be different for CASH and Accrual based). However, * till we have access to the domain object it would not be possible to detect * if an accounting rule has actually been changed - * + * * Hence, method {@link #validateForLoanProductCreate(String)} from this class * is called separately for validation only if an accounting rule change is * detected by {@link ProductToGLAccountMappingWritePlatformService} - * + * * Also, the class is probably named wrong (*FromApiJsonDeserializer) should * probably be named as (*Validator) instead - * + * */ @Component public final class ProductToGLAccountMappingFromApiJsonDeserializer { @@ -207,7 +207,7 @@ public final class ProductToGLAccountMappingFromApiJsonDeserializer { SAVINGS_PRODUCT_ACCOUNTING_PARAMS.INCOME_FROM_PENALTIES.getValue(), element); baseDataValidator.reset().parameter(SAVINGS_PRODUCT_ACCOUNTING_PARAMS.INCOME_FROM_PENALTIES.getValue()) .value(incomeFromPenaltyId).notNull().integerGreaterThanZero(); - + final Boolean isDormancyTrackingActive = this.fromApiJsonHelper.extractBooleanNamed(isDormancyTrackingActiveParamName, element); if(null != isDormancyTrackingActive && isDormancyTrackingActive){ final Long escheatLiabilityId = this.fromApiJsonHelper.extractLongNamed( @@ -258,17 +258,17 @@ public final class ProductToGLAccountMappingFromApiJsonDeserializer { SHARES_PRODUCT_ACCOUNTING_PARAMS.SHARES_REFERENCE.getValue(), element); baseDataValidator.reset().parameter(SHARES_PRODUCT_ACCOUNTING_PARAMS.SHARES_REFERENCE.getValue()) .value(shareReferenceId).notNull().integerGreaterThanZero(); - + final Long shareSuspenseId = this.fromApiJsonHelper.extractLongNamed( SHARES_PRODUCT_ACCOUNTING_PARAMS.SHARES_SUSPENSE.getValue(), element); baseDataValidator.reset().parameter(SHARES_PRODUCT_ACCOUNTING_PARAMS.SHARES_SUSPENSE.getValue()) .value(shareSuspenseId).notNull().integerGreaterThanZero(); - + final Long incomeFromFeeAccountId = this.fromApiJsonHelper.extractLongNamed( SHARES_PRODUCT_ACCOUNTING_PARAMS.INCOME_FROM_FEES.getValue(), element); baseDataValidator.reset().parameter(SHARES_PRODUCT_ACCOUNTING_PARAMS.INCOME_FROM_FEES.getValue()) .value(incomeFromFeeAccountId).notNull().integerGreaterThanZero(); - + final Long shareEquityId = this.fromApiJsonHelper.extractLongNamed( SHARES_PRODUCT_ACCOUNTING_PARAMS.SHARES_EQUITY.getValue(), element); baseDataValidator.reset().parameter(SHARES_PRODUCT_ACCOUNTING_PARAMS.SHARES_EQUITY.getValue()) diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/LoanProductToGLAccountMappingHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/LoanProductToGLAccountMappingHelper.java index 2021f81..79ce0f5 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/LoanProductToGLAccountMappingHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/LoanProductToGLAccountMappingHelper.java @@ -212,7 +212,7 @@ public class LoanProductToGLAccountMappingHelper extends ProductToGLAccountMappi /** * Examines and updates each account mapping for given loan product with * changes passed in from the Json element - * + * * @param loanProductId * @param changes * @param element diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java index 864497c..79bc991 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java @@ -129,7 +129,7 @@ public class ProductToGLAccountMappingHelper { /** * Saves the payment type to Fund source mappings for a particular * product/product type (also populates the changes array if passed in) - * + * * @param command * @param element * @param productId @@ -156,7 +156,7 @@ public class ProductToGLAccountMappingHelper { /** * Saves the Charge to Income / Liability account mappings for a particular * product/product type (also populates the changes array if passed in) - * + * * @param command * @param element * @param productId @@ -242,7 +242,7 @@ public class ProductToGLAccountMappingHelper { * as a part of Jsoncommand)
* Create new mappings for charges that are passed in as a part of * the Jsoncommand but not already present - * + * **/ else { for (final ProductToGLAccountMapping chargeToIncomeAccountMapping : existingChargeToIncomeAccountMappings) { @@ -328,7 +328,7 @@ public class ProductToGLAccountMappingHelper { * as a part of Jsoncommand)
* Create new mappings for payment types that are passed in as a * part of the Jsoncommand but not already present - * + * **/ else { for (final ProductToGLAccountMapping existingPaymentChannelToFundSourceMapping : existingPaymentChannelToFundSourceMappings) { @@ -417,7 +417,7 @@ public class ProductToGLAccountMappingHelper { /** * Fetches account with a particular Id and throws and Exception it is not * of the expected Account Category ('ASSET','liability' etc) - * + * * @param paramName * @param expectedAccountType * @param accountId diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformService.java index 0ce6232..8e791a2 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformService.java @@ -41,7 +41,7 @@ public interface ProductToGLAccountMappingReadPlatformService { public List fetchFeeToIncomeAccountMappingsForSavingsProduct(final Long savingsProductId); public List fetchPenaltyToIncomeAccountMappingsForSavingsProduct(final Long savingsProductId); - + public Map fetchAccountMappingDetailsForShareProduct(final Long productId, final Integer accountingType); public List fetchPaymentTypeToFundSourceMappingsForShareProduct(final Long productId); diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingWritePlatformServiceImpl.java index 8b1e504..82eff12 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingWritePlatformServiceImpl.java @@ -225,7 +225,7 @@ public class ProductToGLAccountMappingWritePlatformServiceImpl implements Produc this.savingsProductToGLAccountMappingHelper.saveSavingsToLiabilityAccountMapping(element, SAVINGS_PRODUCT_ACCOUNTING_PARAMS.TRANSFERS_SUSPENSE.getValue(), savingProductId, CASH_ACCOUNTS_FOR_SAVINGS.TRANSFERS_SUSPENSE.getValue()); - + final Boolean isDormancyTrackingActive = this.fromApiJsonHelper.extractBooleanNamed(isDormancyTrackingActiveParamName, element); if(null != isDormancyTrackingActive && isDormancyTrackingActive){ this.savingsProductToGLAccountMappingHelper.saveSavingsToLiabilityAccountMapping(element, diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java index f888e60..5f1dc5e 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java @@ -103,7 +103,7 @@ public class SavingsProductToGLAccountMappingHelper extends ProductToGLAccountMa createOrmergeProductToAccountMappingChanges(element, paramName, productId, accountTypeId, changes, GLAccountType.LIABILITY, PortfolioProductType.SAVING); } - + /*** Abstractions for payments channel related to savings products ***/ public void savePaymentChannelToFundSourceMappings(final JsonCommand command, final JsonElement element, final Long productId, @@ -179,7 +179,7 @@ public class SavingsProductToGLAccountMappingHelper extends ProductToGLAccountMa /** * Examines and updates each account mapping for given loan product with * changes passed in from the Json element - * + * * @param savingsProductId * @param changes * @param element diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ShareProductToGLAccountMappingHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ShareProductToGLAccountMappingHelper.java index 489532f..8ed0767 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ShareProductToGLAccountMappingHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ShareProductToGLAccountMappingHelper.java @@ -157,7 +157,7 @@ public class ShareProductToGLAccountMappingHelper extends ProductToGLAccountMapp /** * Examines and updates each account mapping for given loan product with * changes passed in from the Json element - * + * * @param sharesProductId * @param changes * @param element diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/constant/ProvisioningEntriesApiConstants.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/constant/ProvisioningEntriesApiConstants.java index 5149c84..165a947 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/constant/ProvisioningEntriesApiConstants.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/constant/ProvisioningEntriesApiConstants.java @@ -25,11 +25,11 @@ import java.util.Set; public interface ProvisioningEntriesApiConstants { public final static String JSON_DATE_PARAM = "date" ; - + public final static String JSON_DATEFORMAT_PARAM = "dateFormat" ; - + public final static String JSON_LOCALE_PARAM = "locale" ; - + public final static String JSON_CREATEJOURNALENTRIES_PARAM = "createjournalentries" ; public final static String PROVISIONINGENTRY_PARAM = "provisioningentry"; diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java index eb8743e..da8d6ee 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/LoanProductProvisioningEntryData.java @@ -27,17 +27,17 @@ public class LoanProductProvisioningEntryData { private final Long officeId; private final String officeName ; - + private final String currencyCode; private final Long productId; private final String productName ; - + private final Long categoryId; private final String categoryName ; - + private final Long overdueInDays; private final BigDecimal percentage; @@ -45,21 +45,21 @@ public class LoanProductProvisioningEntryData { private final BigDecimal balance; private final BigDecimal amountreserved ; - + private final Long liablityAccount; private final String liabilityAccountCode ; - + private final String liabilityAccountName ; - + private final Long expenseAccount; private final String expenseAccountCode ; - + private final String expenseAccountName ; - + private final Long criteriaId ; - + public LoanProductProvisioningEntryData(final Long historyId, final Long officeId, final String currencyCode, final Long productId, final Long categoryId, final Long overdueInDays, final BigDecimal percentage, final BigDecimal balance, Long liablityAccount, Long expenseAccount, final Long criteriaId) { @@ -85,7 +85,7 @@ public class LoanProductProvisioningEntryData { } public LoanProductProvisioningEntryData(final Long historyId, final Long officeId, final String officeName, final String currencyCode, final Long productId, - final String productName, final Long categoryId, final String categoryName, final Long overdueInDays, final BigDecimal amountReserved, + final String productName, final Long categoryId, final String categoryName, final Long overdueInDays, final BigDecimal amountReserved, Long liablityAccount, String liabilityAccountglCode, String liabilityAccountName, Long expenseAccount, String expenseAccountglCode, String expenseAccountName, final Long criteriaId) { this.historyId = historyId; this.officeId = officeId; @@ -146,7 +146,7 @@ public class LoanProductProvisioningEntryData { public String getCurrencyCode() { return this.currencyCode; } - + public Long getCriteriaId() { return this.criteriaId ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java index 4fe18b7..df16b93 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/data/ProvisioningEntryData.java @@ -26,23 +26,23 @@ import java.util.Date; public class ProvisioningEntryData { private Long id ; - + private Boolean journalEntry ; - + private Long createdById ; - + private String createdUser ; Date createdDate ; - + Long modifiedById ; - + private String modifiedUser ; private BigDecimal reservedAmount ; - + private Collection provisioningEntries ; - + public ProvisioningEntryData(final Long id, final Collection provisioningEntries) { this.provisioningEntries = provisioningEntries ; this.id = id ; @@ -59,7 +59,7 @@ public class ProvisioningEntryData { this.createdDate = createdDate ; this.reservedAmount = totalReservedAmount ; } - + public void setEntries(Collection provisioningEntries) { this.provisioningEntries = provisioningEntries ; } @@ -67,7 +67,7 @@ public class ProvisioningEntryData { public Long getId() { return this.id ; } - + public Date getCreatedDate() { return this.createdDate ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java index 21ba3bc..8ad80ef 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/LoanProductProvisioningEntry.java @@ -100,7 +100,7 @@ public class LoanProductProvisioningEntry extends AbstractPersistableCustom { @Column(name = "journal_entry_created") private Boolean isJournalEntryCreated; - + @OneToMany(cascade = CascadeType.ALL, mappedBy = "entry", orphanRemoval = true, fetch=FetchType.EAGER) private Set provisioningEntries = new HashSet<>(); - + @OneToOne @JoinColumn(name = "createdby_id") private AppUser createdBy; @@ -64,9 +64,9 @@ public class ProvisioningEntry extends AbstractPersistableCustom { private Date lastModifiedDate; protected ProvisioningEntry() { - + } - + public ProvisioningEntry(AppUser createdBy, Date createdDate, AppUser lastModifiedBy, Date lastModifiedDate, Set provisioningEntries ) { this.provisioningEntries = provisioningEntries ; this.createdBy = createdBy ; @@ -74,22 +74,22 @@ public class ProvisioningEntry extends AbstractPersistableCustom { this.lastModifiedBy = lastModifiedBy ; this.lastModifiedDate = lastModifiedDate ; } - + public void setProvisioningEntries(Collection provisioningEntries) { - if(this.provisioningEntries == null) this.provisioningEntries = new HashSet<>(); + if(this.provisioningEntries == null) this.provisioningEntries = new HashSet<>(); this.provisioningEntries.addAll(provisioningEntries) ; } - + public Collection getLoanProductProvisioningEntries() { return this.provisioningEntries ; } - + public void setJournalEntryCreated(Boolean bool) { this.isJournalEntryCreated = bool ; } - + public Date getCreatedDate() { return this.createdDate ; } - + } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntryRepository.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntryRepository.java index 323a747..2e69d88 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntryRepository.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/domain/ProvisioningEntryRepository.java @@ -27,10 +27,10 @@ import org.springframework.data.repository.query.Param; public interface ProvisioningEntryRepository extends JpaRepository, JpaSpecificationExecutor { - //OPENJPA throws error if we use entry + //OPENJPA throws error if we use entry @Query("select entry1 from ProvisioningEntry entry1 where entry1.createdDate = :createdDate") ProvisioningEntry findByProvisioningEntryDate(@Param("createdDate") Date createdDate); - + @Query("select entry1 from ProvisioningEntry entry1 where entry1.createdDate = (select max(entry2.createdDate) from ProvisioningEntry entry2 where entry2.isJournalEntryCreated=true)") ProvisioningEntry findExistingProvisioningEntryWithJournalEntries() ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/handler/ReCreateProvisioningEntryRequestCommandHandler.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/handler/ReCreateProvisioningEntryRequestCommandHandler.java index 1156333..1fe504f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/handler/ReCreateProvisioningEntryRequestCommandHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/handler/ReCreateProvisioningEntryRequestCommandHandler.java @@ -32,7 +32,7 @@ import org.springframework.transaction.annotation.Transactional; public class ReCreateProvisioningEntryRequestCommandHandler implements NewCommandSourceHandler { private final ProvisioningEntriesWritePlatformService provisioningEntriesWritePlatformService ; - + @Autowired public ReCreateProvisioningEntryRequestCommandHandler( final ProvisioningEntriesWritePlatformService provisioningEntriesWritePlatformService) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformService.java index 310a031..928e138 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformService.java @@ -30,16 +30,16 @@ import org.apache.fineract.infrastructure.core.service.SearchParameters; public interface ProvisioningEntriesReadPlatformService { public Collection retrieveLoanProductsProvisioningData(Date date) ; - + public ProvisioningEntryData retrieveProvisioningEntryData(Long entryId) ; - + public Page retrieveAllProvisioningEntries(Integer offset, Integer limit) ; - + public ProvisioningEntryData retrieveProvisioningEntryData(String date) ; - + public ProvisioningEntryData retrieveProvisioningEntryDataByCriteriaId(Long criteriaId) ; - + public ProvisioningEntryData retrieveExistingProvisioningIdDateWithJournals() ; - + public Page retrieveProvisioningEntries(SearchParameters searchParams) ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java index 5ed3cb0..d06f5bb 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java @@ -225,12 +225,12 @@ public class ProvisioningEntriesReadPlatformServiceImpl implements ProvisioningE sqlBuilder.append(mapper.getSchema()); sqlBuilder.append(" order by entry.created_date"); if(limit != null ) { - sqlBuilder.append(" limit ").append(limit); + sqlBuilder.append(" limit ").append(limit); } if(offset != null) { - sqlBuilder.append(" offset ").append(offset); + sqlBuilder.append(" offset ").append(offset); } - + final String sqlCountRows = "SELECT FOUND_ROWS()"; Object[] whereClauseItemsitems = new Object[] {}; return this.provisioningEntryDataPaginationHelper.fetchPage(this.jdbcTemplate, sqlCountRows, sqlBuilder.toString(), diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformService.java index 3bdebac..196bf5b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformService.java @@ -25,10 +25,10 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; public interface ProvisioningEntriesWritePlatformService { CommandProcessingResult createProvisioningEntries(JsonCommand command); - + CommandProcessingResult reCreateProvisioningEntries(Long provisioningEntryId, JsonCommand command) ; - + CommandProcessingResult createProvisioningJournalEntries(Long provisioningEntryId, JsonCommand command); - + void generateLoanLossProvisioningAmount() ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java index e43451e..86a38ee 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl.java @@ -79,7 +79,7 @@ public class ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements private final JournalEntryWritePlatformService journalEntryWritePlatformService; private final ProvisioningEntriesDefinitionJsonDeserializer fromApiJsonDeserializer; private final FromJsonHelper fromApiJsonHelper; - + @Autowired public ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl( final ProvisioningEntriesReadPlatformService provisioningEntriesReadPlatformService, @@ -120,11 +120,11 @@ public class ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements existingEntryData.getId(), PortfolioProductType.PROVISIONING.getValue()); } if(requestedEntry.getLoanProductProvisioningEntries() == null || requestedEntry.getLoanProductProvisioningEntries().size() == 0) { - requestedEntry.setJournalEntryCreated(Boolean.FALSE); + requestedEntry.setJournalEntryCreated(Boolean.FALSE); }else { requestedEntry.setJournalEntryCreated(Boolean.TRUE); } - + this.provisioningEntryRepository.save(requestedEntry); this.journalEntryWritePlatformService.createProvisioningJournalEntries(requestedEntry); } @@ -156,7 +156,7 @@ public class ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements Date currentDate = DateUtils.getLocalDateOfTenant().toDate() ; boolean addJournalEntries = true; try { - Collection criteriaCollection = this.provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias() ; + Collection criteriaCollection = this.provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias() ; if(criteriaCollection == null || criteriaCollection.size() == 0){ return ; //FIXME: Do we need to throw NoProvisioningCriteriaDefinitionFound()? @@ -171,7 +171,7 @@ public class ProvisioningEntriesWritePlatformServiceJpaRepositoryImpl implements Date createdDate = parseDate(command); boolean addJournalEntries = isJournalEntriesRequired(command); try { - Collection criteriaCollection = this.provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias() ; + Collection criteriaCollection = this.provisioningCriteriaReadPlatformService.retrieveAllProvisioningCriterias() ; if(criteriaCollection == null || criteriaCollection.size() == 0){ throw new NoProvisioningCriteriaDefinitionFound() ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java index 1acd5a1..320e203 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/rule/data/AccountingRuleData.java @@ -29,7 +29,7 @@ import org.apache.fineract.organisation.office.data.OfficeData; /** * Immutable object representing a General Ledger Account - * + * * Note: no getter/setters required as google-gson will produce json from fields * of object. */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java index 2fbc7cc..3eb1d11 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocApiResource.java @@ -62,9 +62,9 @@ public class AdHocApiResource { /** * The set of parameters that are supported in response for {@link AdhocData} - */ + */ private final Set RESPONSE_DATA_PARAMETERS = new HashSet<>(Arrays.asList("id", "name", "query", "tableName","tableField","isActive","createdBy","createdOn","createdById","updatedById","updatedOn","email")); - + private final PlatformSecurityContext context; private final AdHocReadPlatformService adHocReadPlatformService; private final DefaultToApiJsonSerializer toApiJsonSerializer; @@ -87,7 +87,7 @@ public class AdHocApiResource { @Consumes({ MediaType.APPLICATION_JSON }) @Produces({ MediaType.APPLICATION_JSON }) public String retrieveAll(@Context final UriInfo uriInfo) { - + this.context.authenticatedUser(); final Collection adhocs = this.adHocReadPlatformService.retrieveAllAdHocQuery(); final ApiRequestJsonSerializationSettings settings = this.apiRequestParameterHelper.process(uriInfo.getQueryParameters()); @@ -149,7 +149,7 @@ public class AdHocApiResource { } /** * Delete AdHocQuery - * + * * @param adHocId * @return */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocJsonInputParams.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocJsonInputParams.java index a797a0f..a20b110 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocJsonInputParams.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/api/AdHocJsonInputParams.java @@ -22,7 +22,7 @@ import java.util.HashSet; import java.util.Set; /*** - * Enum of all parameters passed in while creating/updating a AdHocQuery + * Enum of all parameters passed in while creating/updating a AdHocQuery ***/ public enum AdHocJsonInputParams { ID("id"), NAME("name"),QUERY("query"),TABLENAME("tableName"), TABLEFIELDS("tableFields"), ISACTIVE("isActive"), diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/data/AdHocData.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/data/AdHocData.java index f0b2174..69d56ba 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/data/AdHocData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/data/AdHocData.java @@ -28,7 +28,7 @@ import java.util.stream.Collectors; /** * Immutable data object represent note or case information AdHocData - * + * */ public class AdHocData { @@ -53,12 +53,12 @@ public class AdHocData { @SuppressWarnings("unused") private final Long createdById; @SuppressWarnings("unused") - private final Long updatedById; + private final Long updatedById; @SuppressWarnings("unused") private final DateTime updatedOn; @SuppressWarnings("unused") private final String createdBy; - + private final List reportRunFrequencies; private final Long reportRunFrequency; diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java index fab80d3..19ae048 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/domain/AdHoc.java @@ -40,17 +40,17 @@ public class AdHoc extends AbstractAuditableCustom { @Column(name = "name", length = 100) private String name; - + @Column(name = "query", length = 2000) private String query; - + @Column(name = "table_name", length = 100) private String tableName; - - + + @Column(name = "table_fields", length = 2000) private String tableFields; - + @Column(name = "email", length = 500) private String email; @@ -62,7 +62,7 @@ public class AdHoc extends AbstractAuditableCustom { @Column(name = "IsActive", nullable = false) private boolean isActive = false; - + private AdHoc(final String name, final String query,final String tableName,final String tableFields ,final String email, final Long reportRunFrequency, final Long reportRunEvery, final boolean isActive) { this.name = StringUtils.defaultIfEmpty(name, null); this.query=StringUtils.defaultIfEmpty(query,null); @@ -72,13 +72,13 @@ public class AdHoc extends AbstractAuditableCustom { this.reportRunFrequency = reportRunFrequency; this.reportRunEvery = reportRunEvery; this.isActive = BooleanUtils.toBooleanDefaultIfNull(isActive, false); - + } public static AdHoc fromJson(final JsonCommand command) { final String name = command.stringValueOfParameterNamed(AdHocJsonInputParams.NAME.getValue()); - + String commandQuery=command.stringValueOfParameterNamed(AdHocJsonInputParams.QUERY.getValue()); - + SQLInjectionValidator.validateAdhocQuery(commandQuery); final String query = commandQuery; final String tableName = command.stringValueOfParameterNamed(AdHocJsonInputParams.TABLENAME.getValue()); @@ -89,7 +89,7 @@ public class AdHoc extends AbstractAuditableCustom { final boolean isActive = command.booleanPrimitiveValueOfParameterNamed(AdHocJsonInputParams.ISACTIVE.getValue()); return new AdHoc(name,query,tableName,tableFields, email, reportRunFrequency, reportRunEvery, isActive); } - + public Map update(final JsonCommand command) { final Map actualChanges = new LinkedHashMap<>(7); @@ -145,7 +145,7 @@ public class AdHoc extends AbstractAuditableCustom { } return actualChanges; } - + public String getName() { return name; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocDataValidator.java index 9cb13e8..1a909d8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocDataValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocDataValidator.java @@ -72,10 +72,10 @@ public final class AdHocDataValidator { final String description = this.fromApiJsonHelper.extractStringNamed("query", element); baseDataValidator.reset().parameter("query").value(description).notBlank().notExceedingLengthOf(2000); - + final String tableName = this.fromApiJsonHelper.extractStringNamed("tableName", element); baseDataValidator.reset().parameter("tableName").value(tableName).notBlank().notExceedingLengthOf(100); - + final String tableFields = this.fromApiJsonHelper.extractStringNamed("tableFields", element); baseDataValidator.reset().parameter("tableFields").value(tableFields).notBlank().notExceedingLengthOf(1000); @@ -141,7 +141,7 @@ public final class AdHocDataValidator { final Integer isActive = this.fromApiJsonHelper.extractIntegerNamed("isActive", element, Locale.getDefault()); baseDataValidator.reset().parameter("isActive").value(isActive).notNull().inMinMaxRange(1, 2); }*/ - + throwExceptionIfValidationWarningsExist(dataValidationErrors); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformService.java index 414a2b2..3529f10 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformService.java @@ -30,5 +30,5 @@ public interface AdHocReadPlatformService { AdHocData retrieveOne(Long adHocId); AdHocData retrieveNewAdHocDetails(); - + } \ No newline at end of file diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformServiceImpl.java index 996554d..c82d9ce 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocReadPlatformServiceImpl.java @@ -100,7 +100,7 @@ public class AdHocReadPlatformServiceImpl implements AdHocReadPlatformService { + " r.report_run_frequency_code, r.report_run_every, r.last_run, " + " r.created_date as createdDate, r.createdby_id as createdById,cb.username as createdBy,r.lastmodifiedby_id as updatedById ,r.lastmodified_date as updatedOn " + " from m_adhoc r left join m_appuser cb on cb.id=r.createdby_id left join m_appuser mb on mb.id=r.lastmodifiedby_id"; - + } } @@ -109,5 +109,5 @@ public class AdHocReadPlatformServiceImpl implements AdHocReadPlatformService { return AdHocData.template(); } - + } \ No newline at end of file diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocScheduledJobRunnerServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocScheduledJobRunnerServiceImpl.java index 728c33d..fc8c124 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocScheduledJobRunnerServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocScheduledJobRunnerServiceImpl.java @@ -45,14 +45,14 @@ public class AdHocScheduledJobRunnerServiceImpl implements AdHocScheduledJobRunn private final static Logger logger = LoggerFactory.getLogger(AdHocScheduledJobRunnerServiceImpl.class); private final AdHocReadPlatformService adHocReadPlatformService; private final JdbcTemplate jdbcTemplate; - + @Autowired public AdHocScheduledJobRunnerServiceImpl(final RoutingDataSource dataSource, final AdHocReadPlatformService adHocReadPlatformService ) { this.jdbcTemplate = new JdbcTemplate(dataSource); this.adHocReadPlatformService = adHocReadPlatformService; - + } @Transactional @@ -113,13 +113,13 @@ public class AdHocScheduledJobRunnerServiceImpl implements AdHocScheduledJobRunn } else { logger.info(ThreadLocalContextUtil.getTenant().getName() + ": Skipping execution of " + adhoc.getName() + ", scheduled for execution on " + next); } - }); + }); }else{ logger.info(ThreadLocalContextUtil.getTenant().getName() + "Nothing to update "); } - - - + + + } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformService.java index 23427fc..ae467a1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformService.java @@ -26,7 +26,7 @@ public interface AdHocWritePlatformService { CommandProcessingResult createAdHocQuery(JsonCommand command); CommandProcessingResult updateAdHocQuery(Long adHocId, JsonCommand command); - + CommandProcessingResult deleteAdHocQuery(Long adHocId); CommandProcessingResult disableAdHocQuery(Long adHocId); diff --git a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformServiceJpaRepositoryImpl.java index 2d202e0..c573b9a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocWritePlatformServiceJpaRepositoryImpl.java @@ -42,7 +42,7 @@ public class AdHocWritePlatformServiceJpaRepositoryImpl implements AdHocWritePla private final PlatformSecurityContext context; private final AdHocRepository adHocRepository; private final AdHocDataValidator adHocCommandFromApiJsonDeserializer; - + @Autowired public AdHocWritePlatformServiceJpaRepositoryImpl(final PlatformSecurityContext context, final AdHocRepository adHocRepository, @@ -50,7 +50,7 @@ public class AdHocWritePlatformServiceJpaRepositoryImpl implements AdHocWritePla this.context = context; this.adHocRepository = adHocRepository; this.adHocCommandFromApiJsonDeserializer = adHocCommandFromApiJsonDeserializer; - + } @Transactional diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java index c8e6800..514d29d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/api/BatchApiResource.java @@ -50,9 +50,9 @@ import org.springframework.stereotype.Component; * forwarded to BatchApiService which finally returns a list of * {@link org.apache.fineract.batch.domain.BatchResponse} type which is then * serialized into JSON response by this Resource class. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.service.BatchApiService * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse @@ -70,11 +70,11 @@ public class BatchApiResource { private final ToApiJsonSerializer toApiJsonSerializer; private final BatchApiService service; private final BatchRequestJsonHelper batchRequestJsonHelper; - + /** * Constructs a 'BatchApiService' with context, toApiJsonSerializer, service * and batchRequestJsonHelper. - * + * * @param context * @param toApiJsonSerializer * @param service @@ -93,7 +93,7 @@ public class BatchApiResource { /** * Rest assured POST method to get {@link BatchRequest} and returns back the * consolidated {@link BatchResponse} - * + * * @param jsonRequestString * @param enclosingTransaction * @param uriInfo diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandContext.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandContext.java index 298f2a8..0e2a279 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandContext.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandContext.java @@ -22,16 +22,16 @@ package org.apache.fineract.batch.command; * Provides an object to {@link org.apache.fineract.batch.service.BatchApiService} * to get the proper commandStrategy for each request in BatchRequest. It uses * Builder pattern to create object of this type. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.service.BatchApiService */ public class CommandContext { /** * Static Builder class to provide a Build method for CommandContext. - * + * * @author Rishabh Shukla */ public static class Builder { @@ -72,7 +72,7 @@ public class CommandContext { * keys in the available commandStrategies. It take CommandContext object as * parameter which contains a 'resource' member as a regex key for available * commandStrategies. - * + * * @param other * @return boolean */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategy.java index 2b77408..c582708 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategy.java @@ -26,9 +26,9 @@ import org.apache.fineract.batch.domain.BatchResponse; /** * An interface for various Command Strategies. It contains a single function * which returns appropriate response from a particular command strategy. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.internal.UnknownCommandStrategy */ public interface CommandStrategy { @@ -38,7 +38,7 @@ public interface CommandStrategy { * {@link org.apache.fineract.batch.domain.BatchResponse}. This takes * {@link org.apache.fineract.batch.domain.BatchRequest} as it's single * argument and provides appropriate response. - * + * * @param batchRequest * @param uriInfo * @return BatchResponse diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java index 8a95fd8..c4fcbd0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyProvider.java @@ -28,9 +28,9 @@ import org.springframework.stereotype.Component; /** * Provides an appropriate CommandStrategy using the 'method' and 'resourceUrl'. * CommandStrategy bean is created using Spring Application Context. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.internal.UnknownCommandStrategy */ @Component @@ -44,7 +44,7 @@ public class CommandStrategyProvider { * type. It also initialize commandStrategies using init() function by * filling it with available CommandStrategies in * {@link org.apache.fineract.batch.command.internal}. - * + * * @param applicationContext */ @Autowired @@ -60,7 +60,7 @@ public class CommandStrategyProvider { * Returns an appropriate commandStrategy after determining it using the * CommandContext of the request. If no such Strategy is found then a * default strategy is returned back. - * + * * @param commandContext * @return CommandStrategy * @see org.apache.fineract.batch.command.internal.UnknownCommandStrategy diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java index c64b73f..48834a9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ActivateClientCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.client.api.ClientsApiResource} and map * those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse @@ -62,7 +62,7 @@ public class ActivateClientCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - + final String[] pathParameters = request.getRelativeUrl().split("/"); Long clientId = Long.parseLong(pathParameters[1].substring(0, pathParameters[1].indexOf("?"))); diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplyLoanCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplyLoanCommandStrategy.java index 4901d29..cc68047 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplyLoanCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplyLoanCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.loanaccount.api.LoansApiResource} and map those * errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplySavingsCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplySavingsCommandStrategy.java index 36456b3..f0a7b5c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplySavingsCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApplySavingsCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * gets back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.savings.api.SavingsAccountsApiResource} and * map those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java index bd7ef14..8fa00f2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/ApproveLoanCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.loanaccount.api.LoansApiResource} and map * those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse @@ -62,14 +62,14 @@ public class ApproveLoanCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - + final String[] pathParameters = request.getRelativeUrl().split("/"); Long loanId = Long.parseLong(pathParameters[1].substring(0, pathParameters[1].indexOf("?"))); // Try-catch blocks to map exceptions to appropriate status codes try { - // Calls 'approve' function from 'LoansApiResource' to approve a loan + // Calls 'approve' function from 'LoansApiResource' to approve a loan responseBody = loansApiResource.stateTransitions(loanId, "approve", request.getBody()); response.setStatusCode(200); diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java index 37294ab..dc8b795 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CollectChargesCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * gets back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.loanaccount.api.LoanChargesApiResource} and map * those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java index eaa264d..80ee880 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateChargeCommandStrategy.java @@ -36,9 +36,9 @@ import org.springframework.stereotype.Component; * gets back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.loanaccount.api.LoanChargesApiResource} and map * those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateClientCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateClientCommandStrategy.java index cb4993e..af0bc0c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateClientCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateClientCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.client.api.ClientsApiResource} and map * those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java index bcff2e9..409f0a0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/DisburseLoanCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.loanaccount.api.LoansApiResource} and map * those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse @@ -62,18 +62,18 @@ public class DisburseLoanCommandStrategy implements CommandStrategy { response.setRequestId(request.getRequestId()); response.setHeaders(request.getHeaders()); - + final String[] pathParameters = request.getRelativeUrl().split("/"); Long loanId = Long.parseLong(pathParameters[1].substring(0, pathParameters[1].indexOf("?"))); // Try-catch blocks to map exceptions to appropriate status codes try { - // Calls 'disburse' function from 'LoansApiResource' to disburse a loan + // Calls 'disburse' function from 'LoansApiResource' to disburse a loan responseBody = loansApiResource.stateTransitions(loanId, "disburse", request.getBody()); response.setStatusCode(200); - + // Sets the body of the response after the successful disbursal of the loan response.setBody(responseBody); diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UnknownCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UnknownCommandStrategy.java index 5edd010..369dd88 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UnknownCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UnknownCommandStrategy.java @@ -29,7 +29,7 @@ import org.springframework.stereotype.Component; * Provides a default CommandStrategy by implementing * {@link org.apache.fineract.batch.command.CommandStrategy} in case there is no * appropriate command strategy with requested 'method' and 'resoureUrl'. - * + * * @author Rishabh Shukla */ @Component diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UpdateClientCommandStrategy.java b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UpdateClientCommandStrategy.java index 82cdc53..6ec26dc 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UpdateClientCommandStrategy.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/UpdateClientCommandStrategy.java @@ -37,9 +37,9 @@ import org.springframework.stereotype.Component; * back the response. This class will also catch any errors raised by * {@link org.apache.fineract.portfolio.client.api.ClientsApiResource} and map * those errors to appropriate status codes in BatchResponse. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchRequest.java b/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchRequest.java index 9a7fc5d..b5a48ec 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchRequest.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchRequest.java @@ -25,9 +25,9 @@ import java.util.Set; * API. A requestId is also included as data field which takes care of * dependency issues among various requests. This class also provides getter and * setter functions to access Batch Request data fields. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.api.BatchApiResource * @see Header */ @@ -43,7 +43,7 @@ public class BatchRequest { /** * Constructs a 'BatchRequest' with requestId, relativeUrl, method, headers, * reference and body of the incoming request. - * + * * @param requestId * of HTTP request. * @param relativeUrl @@ -56,7 +56,7 @@ public class BatchRequest { * of HTTP request. * @param body * of HTTP request. - * + * * @see Header */ public BatchRequest(Long requestId, String relativeUrl, String method, Set
headers, Long reference, String body) { @@ -78,7 +78,7 @@ public class BatchRequest { /** * Returns the value of 'requestId' of an object of this class. - * + * * @return requestId of the HTTP request. */ public Long getRequestId() { @@ -87,7 +87,7 @@ public class BatchRequest { /** * Sets the value of 'requestId' of an object of this class. - * + * * @param requestId */ public void setRequestId(Long requestId) { @@ -96,7 +96,7 @@ public class BatchRequest { /** * Returns the value of 'relativeUrl' of an object of this class. - * + * * @return relativeUrl of the HTTP request. */ public String getRelativeUrl() { @@ -105,7 +105,7 @@ public class BatchRequest { /** * Sets the value of 'relativeUrl' of an object of this class. - * + * * @param relativeUrl */ public void setRelativeUrl(String relativeUrl) { @@ -114,7 +114,7 @@ public class BatchRequest { /** * Returns the value of 'method' of an object of this class. - * + * * @return method of the HTTP request. */ public String getMethod() { @@ -123,7 +123,7 @@ public class BatchRequest { /** * Sets the value of 'method' of the object of this class. - * + * * @param method */ public void setMethod(String method) { @@ -133,7 +133,7 @@ public class BatchRequest { /** * Returns the values of 'headers' of {@link Header} type of an object of * this class. - * + * * @return headers of the HTTP request. * @see Header */ @@ -144,7 +144,7 @@ public class BatchRequest { /** * Sets the values of 'headers' of {@link Header} type of an object of this * class. - * + * * @param headers * @see Header */ @@ -154,7 +154,7 @@ public class BatchRequest { /** * Returns the value of 'reference' of an object of this class - * + * * @return reference of the HTTP request */ public Long getReference() { @@ -163,7 +163,7 @@ public class BatchRequest { /** * Sets the value of 'reference' of an object of this class. - * + * * @param reference */ public void setReference(Long reference) { @@ -172,7 +172,7 @@ public class BatchRequest { /** * Returns the value of 'body' of an object of this class. - * + * * @return body of the HTTP request. */ public String getBody() { @@ -181,7 +181,7 @@ public class BatchRequest { /** * Sets the value of 'body' of an object of this class. - * + * * @param body */ public void setBody(String body) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchResponse.java b/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchResponse.java index 439e99b..faf83b6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchResponse.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/domain/BatchResponse.java @@ -25,9 +25,9 @@ import java.util.Set; * Batch API. It contains all the information about a particular HTTP response * in the Batch Response. Getter and Setter functions are also included to * access response data fields. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.api.BatchApiResource * @see org.apache.fineract.batch.service.BatchApiService * @see Header @@ -42,7 +42,7 @@ public class BatchResponse { /** * Constructs a 'BatchResponse' with requestId, statusCode, headers and body * of the HTTP requests. - * + * * @param requestId * @param statusCode * @param headers @@ -65,7 +65,7 @@ public class BatchResponse { /** * Returns the 'requestId' of an object of this class. - * + * * @return requestId of the HTTP request. */ public Long getRequestId() { @@ -74,7 +74,7 @@ public class BatchResponse { /** * Sets the value of 'requestId' of an object of this class. - * + * * @param requestId */ public void setRequestId(Long requestId) { @@ -83,7 +83,7 @@ public class BatchResponse { /** * Returns the 'statusCode' of an object of this class. - * + * * @return statusCode of the HTTP request. */ public Integer getStatusCode() { @@ -92,7 +92,7 @@ public class BatchResponse { /** * Sets the value of 'statusCode' of an object of this class. - * + * * @param statusCode */ public void setStatusCode(Integer statusCode) { @@ -101,7 +101,7 @@ public class BatchResponse { /** * Returns the 'headers' of {@link Header} type of an object of this class. - * + * * @return headers of the HTTP request. * @see Header */ @@ -112,7 +112,7 @@ public class BatchResponse { /** * Sets the value of 'headers' of {@link Header} type of an object of this * class. - * + * * @param headers * of {@link Header} Type * @see Header @@ -123,7 +123,7 @@ public class BatchResponse { /** * Returns the 'body' of an object of this class. - * + * * @return body of the HTTP request. */ public String getBody() { @@ -132,7 +132,7 @@ public class BatchResponse { /** * Sets the value of 'body' of an object of this class. - * + * * @param body */ public void setBody(String body) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/domain/Header.java b/fineract-provider/src/main/java/org/apache/fineract/batch/domain/Header.java index 992f5ec..a3c029e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/domain/Header.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/domain/Header.java @@ -22,9 +22,9 @@ package org.apache.fineract.batch.domain; * Provides an object to handle HTTP headers as name and value pairs for Batch * API. It is used in {@link BatchRequest} and {@link BatchResponse} to store * the information regarding the headers in incoming and outgoing JSON Strings. - * + * * @author Rishabh Shukla - * + * * @see BatchRequest * @see BatchResponse */ @@ -35,7 +35,7 @@ public class Header { /** * Constructs a 'Header' with the name and value of HTTP headers. - * + * * @param name * of the HTTP header. * @param value @@ -55,7 +55,7 @@ public class Header { /** * Returns the 'name' data field of the object of this class. - * + * * @return name data field of this class */ public String getName() { @@ -64,7 +64,7 @@ public class Header { /** * Sets 'name' data field of this class. - * + * * @param name */ public void setName(String name) { @@ -73,7 +73,7 @@ public class Header { /** * Returns the 'value' data field of the object of this class. - * + * * @return value data field of this class */ public String getValue() { @@ -82,7 +82,7 @@ public class Header { /** * Sets 'value' data field of this class. - * + * * @param value */ public void setValue(String value) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorHandler.java b/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorHandler.java index 0730d84..d5646b9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorHandler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorHandler.java @@ -44,9 +44,9 @@ import com.google.gson.GsonBuilder; * class uses various subclasses of RuntimeException to check the kind of * exception raised and provide appropriate status and error codes for each one * of the raised exception. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.command.CommandStrategy * @see org.apache.fineract.batch.command.internal.CreateClientCommandStrategy */ @@ -64,7 +64,7 @@ public class ErrorHandler extends RuntimeException { /** * Returns an object of ErrorInfo type containing the information regarding * the raised error. - * + * * @param exception * @return ErrorInfo */ @@ -110,14 +110,14 @@ public class ErrorHandler extends RuntimeException { final String errorBody = jsonHelper.toJson(mapper.toResponse((LinkedAccountRequiredException) exception).getEntity()); return new ErrorInfo(403, 3002, errorBody); - + } else if (exception instanceof MultiDisbursementDataRequiredException) { final PlatformDomainRuleExceptionMapper mapper = new PlatformDomainRuleExceptionMapper(); final String errorBody = jsonHelper.toJson(mapper.toResponse((MultiDisbursementDataRequiredException) exception).getEntity()); return new ErrorInfo(403, 3003, errorBody); - + } else if (exception instanceof TransactionException) { return new ErrorInfo(400, 4001, "{\"Exception\": " + exception.getMessage()+"}"); diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorInfo.java b/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorInfo.java index 1f320f6..f1d34f0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorInfo.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/exception/ErrorInfo.java @@ -21,9 +21,9 @@ package org.apache.fineract.batch.exception; /** * Provides members to hold the basic information about the exceptions raised in * commandStrategy classes. - * + * * @author Rishabh Shukla - * + * * @see ErrorHandler */ public final class ErrorInfo { @@ -34,7 +34,7 @@ public final class ErrorInfo { /** * Constructor to initialize the members of this class. - * + * * @param statusCode * @param errorCode * @param message @@ -55,7 +55,7 @@ public final class ErrorInfo { /** * Getter method to provide the statusCode for an object of this type. - * + * * @return Integer */ public Integer getStatusCode() { @@ -64,7 +64,7 @@ public final class ErrorInfo { /** * Setter method to set the statusCode for an object of this type. - * + * * @param statusCode */ public void setStatusCode(final Integer statusCode) { @@ -73,7 +73,7 @@ public final class ErrorInfo { /** * Getter method to provide the errorCode for an object of this type. - * + * * @return Integer */ public Integer getErrorCode() { @@ -82,7 +82,7 @@ public final class ErrorInfo { /** * Setter method to set the errorCode for an object of this type. - * + * * @param errorCode */ public void setErrorCode(final Integer errorCode) { @@ -92,7 +92,7 @@ public final class ErrorInfo { /** * Getter method to provide the message of the error for an object of this * type. - * + * * @return String */ public String getMessage() { @@ -101,7 +101,7 @@ public final class ErrorInfo { /** * Setter method to set the message of the error for an object of this type. - * + * * @param message */ public void setMessage(final String message) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/serialization/BatchRequestJsonHelper.java b/fineract-provider/src/main/java/org/apache/fineract/batch/serialization/BatchRequestJsonHelper.java index c0fd136..229f7f8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/serialization/BatchRequestJsonHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/serialization/BatchRequestJsonHelper.java @@ -32,9 +32,9 @@ import com.google.gson.reflect.TypeToken; * {@link org.apache.fineract.infrastructure.core.serialization.FromJsonHelper} to * de-serialize the incoming String into a JSON List of type * {@link org.apache.fineract.batch.domain.BatchRequest} - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.infrastructure.core.serialization.FromJsonHelper */ @@ -44,7 +44,7 @@ public class BatchRequestJsonHelper extends FromJsonHelper { /** * Returns a list of batchRequests after de-serializing it from the input * JSON string. - * + * * @param json * @return List<BatchRequest> */ diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiService.java b/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiService.java index 29aeb0b..c1ca205 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiService.java @@ -28,9 +28,9 @@ import org.apache.fineract.batch.domain.BatchResponse; /** * Provides an interface for service class, that implements the method to handle * separate Batch Requests. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse * @see BatchApiServiceImpl @@ -42,7 +42,7 @@ public interface BatchApiService { * by getting the appropriate CommandStrategy for every * {@link org.apache.fineract.batch.domain.BatchRequest}. It will be used when * the Query Parameter "enclosingTransaction "is set to 'false'. - * + * * @param requestList * @param uriInfo * @return List<BatchResponse> @@ -56,7 +56,7 @@ public interface BatchApiService { * the Query Parameter "enclosingTransaction "is set to 'true'. If one or * more of the requests are not completed properly then whole of the * transaction will be rolled back properly. - * + * * @param requestList * @param uriInfo * @return List<BatchResponse> diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java index a5be4d1..cafe3eb 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/service/BatchApiServiceImpl.java @@ -50,9 +50,9 @@ import com.google.gson.Gson; * Implementation for {@link BatchApiService} to iterate through all the * incoming requests and obtain the appropriate CommandStrategy from * CommandStrategyProvider. - * + * * @author Rishabh Shukla - * + * * @see org.apache.fineract.batch.domain.BatchRequest * @see org.apache.fineract.batch.domain.BatchResponse * @see org.apache.fineract.batch.command.CommandStrategyProvider @@ -67,7 +67,7 @@ public class BatchApiServiceImpl implements BatchApiService { /** * Constructs a 'BatchApiServiceImpl' with an argument of * {@link org.apache.fineract.batch.command.CommandStrategyProvider} type. - * + * * @param strategyProvider * @param resolutionHelper * @param transactionTemplate @@ -84,7 +84,7 @@ public class BatchApiServiceImpl implements BatchApiService { * Returns the response list by getting a proper * {@link org.apache.fineract.batch.command.CommandStrategy}. execute() method * of acquired commandStrategy is then provided with the separate Request. - * + * * @param requestList * @param uriInfo * @return List diff --git a/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java b/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java index 25932b4..c6cdc94 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/batch/service/ResolutionHelper.java @@ -37,7 +37,7 @@ import com.jayway.jsonpath.JsonModel; * Provides methods to create dependency map among the various batchRequests. It * also provides method that takes care of dependency resolution among related * requests. - * + * * @author Rishabh Shukla * @see BatchApiServiceImpl */ @@ -46,9 +46,9 @@ public class ResolutionHelper { /** * Provides a Node like object for the request tree. - * + * * @author Rishabh shukla - * + * */ public class BatchRequestNode { @@ -89,7 +89,7 @@ public class ResolutionHelper { * dependency relations among them. Each different list is identified with a * "Key" which is the "requestId" of the request at topmost level in * dependency hierarchy of that particular list. - * + * * @param batchRequests * @return List<ArrayList<BatchRequestNode>> */ @@ -126,7 +126,7 @@ public class ResolutionHelper { * and the response of the request it is dependent upon as its arguments and * change the body or relativeUrl of the request according to parent * Request. - * + * * @param request * @param parentResponse * @return BatchRequest @@ -164,9 +164,9 @@ public class ResolutionHelper { queryParams = relativeUrl.substring(relativeUrl.indexOf("?")); relativeUrl = relativeUrl.substring(0, relativeUrl.indexOf("?")); } - + final String[] parameters = relativeUrl.split("/"); - + for (String parameter : parameters) { if (parameter.contains("$.")) { final String resParamValue = responseJsonModel.get(parameter).toString(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java b/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java index 06b04b1..a0055fb 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandSource.java @@ -92,13 +92,13 @@ public class CommandSource extends AbstractPersistableCustom { @Column(name = "product_id") private Long productId; - + @Column(name = "transaction_id", length = 100) private String transactionId; - + @Column(name="creditbureau_id") private Long creditBureauId; - + @Column(name="organisation_creditbureau_id") private Long organisationCreditBureauId; @@ -126,21 +126,21 @@ public class CommandSource extends AbstractPersistableCustom { return this.creditBureauId; } - + public void setCreditBureauId(Long creditBureauId) { this.creditBureauId = creditBureauId; } - + public Long getOrganisationCreditBureauId() { return this.organisationCreditBureauId; } - + public void setOrganisationCreditBureauId(Long OrganisationCreditBureauId) { this.organisationCreditBureauId = OrganisationCreditBureauId; } - + public void markAsChecked(final AppUser checker, final DateTime checkedOnDate) { this.checker = checker; this.checkedOnDate = checkedOnDate.toDate(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandWrapper.java b/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandWrapper.java index 4590ba2..a9cc534 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandWrapper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/domain/CommandWrapper.java @@ -130,11 +130,11 @@ public class CommandWrapper { this.creditBureauId=creditBureauId; this.organisationCreditBureauId=organisationCreditBureauId; } - + public Long getCreditBureauId() { return this.creditBureauId; } - + public Long getOrganisationCreditBureauId() { return this.organisationCreditBureauId; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/exception/RollbackTransactionAsCommandIsNotApprovedByCheckerException.java b/fineract-provider/src/main/java/org/apache/fineract/commands/exception/RollbackTransactionAsCommandIsNotApprovedByCheckerException.java index c0b44bd..71fea23 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/exception/RollbackTransactionAsCommandIsNotApprovedByCheckerException.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/exception/RollbackTransactionAsCommandIsNotApprovedByCheckerException.java @@ -25,10 +25,10 @@ public class RollbackTransactionAsCommandIsNotApprovedByCheckerException extends /** * When maker-checker is configured globally and also for the current * transaction. - * + * * An initial save determines if there are any integrity rule or data * problems. - * + * * If there isn't... and the transaction is from a maker... then this roll * back is issued and the commandSourceResult is used to write the audit * entry. 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 c308998..581c6d0 100755 --- 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 @@ -207,7 +207,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { String updatedExtraCriteria = ""; if (StringUtils.isNotBlank(extraCriteria)) { - updatedExtraCriteria = " where (" + extraCriteria + ")"; + updatedExtraCriteria = " where (" + extraCriteria + ")"; } final AuditMapper rm = new AuditMapper(); @@ -259,7 +259,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { final AuditMapper rm = new AuditMapper(); String sql = "select " + rm.schema(includeJson, hierarchy); - + Boolean isLimitedChecker = false; if (useType.equals("makerchecker")) { if (currentUser.hasNotPermissionForAnyOf("ALL_FUNCTIONS", "CHECKER_SUPER_USER")) { @@ -275,7 +275,7 @@ public class AuditReadPlatformServiceImpl implements AuditReadPlatformService { sql += extraCriteria; if(isExtraCritereaIncluded){ this.columnValidator.validateSqlInjection(sql, extraCriteria); - } + } logger.info("sql: " + sql); return this.jdbcTemplate.query(sql, rm, new Object[] {}); diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandProcessingService.java b/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandProcessingService.java index 01a7a72..e510cbc 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandProcessingService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandProcessingService.java @@ -29,7 +29,7 @@ public interface CommandProcessingService { CommandProcessingResult processAndLogCommand(CommandWrapper wrapper, JsonCommand command, boolean isApprovedByChecker); CommandProcessingResult logCommand(CommandSource commandSourceResult); - + boolean validateCommand(final CommandWrapper commandWrapper,final AppUser user); } \ No newline at end of file diff --git a/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java b/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java index daee081..72bb97a 100755 --- a/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java +++ b/fineract-provider/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java @@ -44,14 +44,14 @@ public class CommandWrapperBuilder { private Long templateId; private Long creditBureauId; private Long organisationCreditBureauId; - + public CommandWrapper build() { return new CommandWrapper(this.officeId, this.groupId, this.clientId, this.loanId, this.savingsId, this.actionName, this.entityName, this.entityId, this.subentityId, this.href, this.json, this.transactionId, this.productId, this.templateId,this.creditBureauId,this.organisationCreditBureauId); } - + public CommandWrapperBuilder updateCreditBureau() { this.actionName = "UPDATE"; this.entityName = "ORGANISATIONCREDITBUREAU"; @@ -59,7 +59,7 @@ public class CommandWrapperBuilder { this.href = "/creditBureauConfiguration/template"; return this; } - + public CommandWrapperBuilder updateCreditBureauLoanProductMapping() { this.actionName = "UPDATE"; this.entityName = "CREDITBUREAU_LOANPRODUCT_MAPPING"; @@ -67,7 +67,7 @@ public class CommandWrapperBuilder { this.href = "/creditBureauConfiguration/template"; return this; } - + public CommandWrapperBuilder addOrganisationCreditBureau(final long organisationCreditBureauId) { this.actionName = "CREATE"; this.entityName = "ORGANISATIONCREDITBUREAU"; @@ -76,7 +76,7 @@ public class CommandWrapperBuilder { this.organisationCreditBureauId=organisationCreditBureauId; return this; } - + public CommandWrapperBuilder createCreditBureauLoanProductMapping(final long CreditBureauId) { this.actionName = "CREATE"; this.entityName = "CREDITBUREAU_LOANPRODUCT_MAPPING"; @@ -85,7 +85,7 @@ public class CommandWrapperBuilder { this.creditBureauId=CreditBureauId; return this; } - + public CommandWrapperBuilder addClientAddress(final long clientId,final long addressTypeId) { this.actionName = "CREATE"; this.entityName = "ADDRESS"; @@ -94,7 +94,7 @@ public class CommandWrapperBuilder { this.clientId=clientId; return this; } - + public CommandWrapperBuilder updateClientAddress(final long clientId) { this.actionName = "UPDATE"; this.entityName = "ADDRESS"; @@ -102,8 +102,8 @@ public class CommandWrapperBuilder { this.clientId=clientId; return this; } - - + + public CommandWrapperBuilder addFamilyMembers(final long clientId) { this.actionName = "CREATE"; this.entityName = "FAMILYMEMBERS"; @@ -111,7 +111,7 @@ public class CommandWrapperBuilder { this.clientId=clientId; return this; } - + public CommandWrapperBuilder updateFamilyMembers(final long familyMemberId) { this.actionName = "UPDATE"; this.entityName = "FAMILYMEMBERS"; @@ -119,7 +119,7 @@ public class CommandWrapperBuilder { this.entityId=familyMemberId; return this; } - + public CommandWrapperBuilder deleteFamilyMembers(final long familyMemberId) { this.actionName = "DELETE"; this.entityName = "FAMILYMEMBERS"; @@ -127,7 +127,7 @@ public class CommandWrapperBuilder { this.entityId=familyMemberId; return this; } - + public CommandWrapperBuilder withLoanId(final Long withLoanId) { this.loanId = withLoanId; return this; @@ -2310,7 +2310,7 @@ public class CommandWrapperBuilder { this.href = "/savingsaccounts/" + accountId + "?commad=unassignSavingsOfficer"; return this; } - + public CommandWrapperBuilder SavingsInterestPostingAsOnDate(final Long accountId) { this.actionName = "POSTINTERESTASONDATE"; this.entityName = "SAVINGSACCOUNT"; @@ -2761,7 +2761,7 @@ public class CommandWrapperBuilder { this.href = "/shareproduct/" + productId + "/dividend/" + dividendId; return this; } - + public CommandWrapperBuilder deleteShareProductDividendPayoutCommand(final Long productId, final Long dividendId) { this.entityName = "SHAREPRODUCT"; this.actionName = "DELETE_DIVIDEND"; @@ -2769,7 +2769,7 @@ public class CommandWrapperBuilder { this.href = "/shareproduct/" + productId + "/dividend/" + dividendId; return this; } - + public CommandWrapperBuilder createAccountCommand(String accountType, final Long accountId, String command) { this.entityName = accountType.toUpperCase()+"ACCOUNT" ; this.actionName = command.toUpperCase(); @@ -2777,7 +2777,7 @@ public class CommandWrapperBuilder { this.href = "/accounts/" + accountType+"/"+accountId+"?command="+command; return this; } - + public CommandWrapperBuilder createTaxComponent() { this.actionName = "CREATE"; this.entityName = "TAXCOMPONENT"; @@ -2809,7 +2809,7 @@ public class CommandWrapperBuilder { this.href = "/taxes/group/" + taxGroupId; return this; } - + public CommandWrapperBuilder updateWithHoldTax(final Long accountId) { this.actionName = "UPDATEWITHHOLDTAX"; this.entityName = "SAVINGSACCOUNT"; @@ -2867,7 +2867,7 @@ public class CommandWrapperBuilder { this.href = "/reportmailingjobs"; return this; } - + public CommandWrapperBuilder updateReportMailingJob(final String entityName, final Long entityId) { this.actionName = "UPDATE"; this.entityName = entityName; @@ -2875,7 +2875,7 @@ public class CommandWrapperBuilder { this.href = "/reportmailingjobs/" + entityId; return this; } - + public CommandWrapperBuilder deleteReportMailingJob(final String entityName, final Long entityId) { this.actionName = "DELETE"; this.entityName = entityName; @@ -2883,7 +2883,7 @@ public class CommandWrapperBuilder { this.href = "/reportmailingjobs/" + entityId; return this; } - + public CommandWrapperBuilder createSmsCampaign() { this.actionName = "CREATE"; this.entityName = "SMSCAMPAIGN"; @@ -2891,7 +2891,7 @@ public class CommandWrapperBuilder { this.href = "/smscampaigns"; return this; } - + public CommandWrapperBuilder updateSmsCampaign(final Long resourceId) { this.actionName = "UPDATE"; this.entityName = "SMSCAMPAIGN"; @@ -2899,7 +2899,7 @@ public class CommandWrapperBuilder { this.href = "/smscampaigns/"+resourceId; return this; } - + public CommandWrapperBuilder activateSmsCampaign(final Long resourceId) { this.actionName = "ACTIVATE"; this.entityName = "SMSCAMPAIGN"; @@ -2922,7 +2922,7 @@ public class CommandWrapperBuilder { this.href = "/smscampaigns/"+resourceId + "?command=reactivate"; return this; } - + public CommandWrapperBuilder deleteSmsCampaign(final Long resourceId) { this.actionName = "DELETE"; this.entityName = "SMSCAMPAIGN"; @@ -3133,14 +3133,14 @@ public class CommandWrapperBuilder { this.href = "/twofactor/configure"; return this; } - + public CommandWrapperBuilder linkAccountsToPocket() { this.actionName = PocketApiConstants.linkAccountsActionName; this.entityName = PocketApiConstants.pocketEntityName; this.href = "/self/pocket?command="+PocketApiConstants.linkAccountsToPocketCommandParam; return this; } - + public CommandWrapperBuilder delinkAccountsFromPocket() { this.actionName = PocketApiConstants.delinkAccountsActionName; this.entityName = PocketApiConstants.pocketEntityName; 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 64fa25d..fd940b6 100755 --- 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 @@ -212,7 +212,7 @@ public class SynchronousCommandProcessingService implements CommandProcessingSer final String authToken = ThreadLocalContextUtil.getAuthToken(); final String tenantIdentifier = ThreadLocalContextUtil.getTenant().getTenantIdentifier(); - final AppUser appUser = this.context.authenticatedUser(CommandWrapper.wrap(actionName, + final AppUser appUser = this.context.authenticatedUser(CommandWrapper.wrap(actionName, entityName, null, null)); final HookEventSource hookEventSource = new HookEventSource(entityName, actionName); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java index da719a2..33f1382 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/data/AccountNumberFormatDataValidator.java @@ -125,7 +125,7 @@ public class AccountNumberFormatDataValidator { case CENTER: validAccountNumberPrefixes = AccountNumberFormatEnumerations.accountNumberPrefixesForCenters; break; - + case GROUP: validAccountNumberPrefixes = AccountNumberFormatEnumerations.accountNumberPrefixesForGroups; break; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/EntityAccountType.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/EntityAccountType.java index 47835f3..de58ecb 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/EntityAccountType.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/domain/EntityAccountType.java @@ -22,7 +22,7 @@ import java.util.HashMap; import java.util.Map; public enum EntityAccountType { - CLIENT(1, "accountType.client"), LOAN(2, "accountType.loan"), SAVINGS(3, "accountType.savings"), CENTER(4, "accountType.center"), + CLIENT(1, "accountType.client"), LOAN(2, "accountType.loan"), SAVINGS(3, "accountType.savings"), CENTER(4, "accountType.center"), GROUP(5, "accountType.group"), SHARES(6, "accountType.shares"); private final Integer value; @@ -90,11 +90,11 @@ public enum EntityAccountType { public boolean isSavingsAccount() { return this.value.equals(EntityAccountType.SAVINGS.getValue()); } - + public Boolean isCenterAccount(){ return this.value.equals(EntityAccountType.CENTER.getValue()); } - + public Boolean isGroupAccount(){ return this.value.equals(EntityAccountType.GROUP.getValue()); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatWritePlatformServiceJpaRepositoryImpl.java index 98e39d3..d2f83d3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatWritePlatformServiceJpaRepositoryImpl.java @@ -137,7 +137,7 @@ public class AccountNumberFormatWritePlatformServiceJpaRepositoryImpl implements .build(); } - + /* * Guaranteed to throw an exception no matter what the data integrity issue * is. 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 7d9d9e0..b5d4b84 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 @@ -86,11 +86,11 @@ public abstract class AbstractWorkbookPopulator implements WorkbookPopulator { throw new IllegalArgumentException("ParseException"); } } - + protected void writeBigDecimal(int colIndex, Row row, BigDecimal value) { row.createCell(colIndex).setCellValue(((value != null) ? value.doubleValue() : 0)); } - + protected void setOfficeDateLookupTable(Sheet sheet, List offices, int officeNameCol, int activationDateCol,String dateFormat) { if(offices!=null){ @@ -152,7 +152,7 @@ public abstract class AbstractWorkbookPopulator implements WorkbookPopulator { if (group.getActivationDate() != null) { date = inputFormat.parse(group.getActivationDate().toString()); writeDate(activationDateCol, row, outputFormat.format(date), dateCellStyle, dateFormat); - } + } } } 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 2da7881..21fa068 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 @@ -41,7 +41,7 @@ public class ExtrasSheetPopulator extends AbstractWorkbookPopulator { private static final int CURRENCY_CODE_COL = 4; private static final int CURRENCY_NAME_COL = 5; - + public ExtrasSheetPopulator(List funds, List paymentTypes, List currencies) { this.funds = funds; @@ -111,6 +111,6 @@ public class ExtrasSheetPopulator extends AbstractWorkbookPopulator { return currencies.size(); } - - + + } \ No newline at end of file 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 d5c601d..d8c985e 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 @@ -34,7 +34,7 @@ import java.util.Map; public class GroupSheetPopulator extends AbstractWorkbookPopulator { private List groups; private List offices; - + private Map> officeToGroups; private Map officeNameToBeginEndIndexesOfGroups; private Map groupNameToGroupId; @@ -91,10 +91,10 @@ public class GroupSheetPopulator extends AbstractWorkbookPopulator { startIndex = rowIndex+1; writeString(OFFICE_NAME_COL, row, office.name()); ArrayList groupsList = new ArrayList<>(); - + if(officeToGroups.containsKey(office.name().trim().replaceAll("[ )(]", "_"))) groupsList = officeToGroups.get(office.name().trim().replaceAll("[ )(]", "_")); - + if(!groupsList.isEmpty()) { for(String groupName : groupsList) { writeString(GROUP_NAME_COL, row, groupName); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/LoanProductSheetPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/LoanProductSheetPopulator.java index bca076d..d2a05cf 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/LoanProductSheetPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/LoanProductSheetPopulator.java @@ -31,7 +31,7 @@ import java.util.List; public class LoanProductSheetPopulator extends AbstractWorkbookPopulator { private List products; - + private static final int ID_COL = 0; private static final int NAME_COL = 1; private static final int FUND_NAME_COL = 2; @@ -58,8 +58,8 @@ public class LoanProductSheetPopulator extends AbstractWorkbookPopulator { private static final int START_DATE_COL = 23; private static final int CLOSE_DATE_COL = 24; - - + + public LoanProductSheetPopulator(List products) { this.products = products; } @@ -191,7 +191,7 @@ public class LoanProductSheetPopulator extends AbstractWorkbookPopulator { } public List getProducts(){ return products; - + } public Integer getProductsSize() { return products.size(); 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 9d689dc..a9518af 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 @@ -70,7 +70,7 @@ public class OfficeSheetPopulator extends AbstractWorkbookPopulator { public List getOffices() { return offices; } - + public List getOfficeNames() { List officeNames=new ArrayList<>(); for (OfficeData office : offices) { @@ -78,5 +78,5 @@ public class OfficeSheetPopulator extends AbstractWorkbookPopulator { } return officeNames; } - + } \ No newline at end of file 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 33fbd8f..592ee75 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 @@ -53,7 +53,7 @@ public class SharedProductsSheetPopulator extends AbstractWorkbookPopulator { public SharedProductsSheetPopulator(List shareProductDataList,List chargesForShares) { this.sharedProductDataList=shareProductDataList; this.chargesForSharedProducts=chargesForShares; - + } @Override 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 3382f36..e1ad658 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 @@ -58,7 +58,7 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { setLookupTable(centerSheet,dateFormat); setRules(centerSheet,dateFormat); } - + private void setLayout(Sheet worksheet) { Row rowHeader = worksheet.createRow(0); @@ -113,7 +113,7 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { row = centerSheet.createRow(rowIndex); writeInt(CenterConstants.LOOKUP_REPEAT_MONTHLY_COL, row, rowIndex); } - for(rowIndex = 1; rowIndex <= 3; rowIndex++) + for(rowIndex = 1; rowIndex <= 3; rowIndex++) writeInt(CenterConstants.LOOKUP_REPEAT_NORMAL_COL, centerSheet.getRow(rowIndex), rowIndex); String[] days = new String[]{ @@ -127,7 +127,7 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { for(rowIndex = 1; rowIndex <= 7; rowIndex++) writeString(CenterConstants.LOOKUP_IF_REPEAT_WEEKLY_COL, centerSheet.getRow(rowIndex), days[rowIndex-1]); - + } private void setRules(Sheet worksheet,String dateFormat) { CellRangeAddressList officeNameRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), CenterConstants.OFFICE_NAME_COL,CenterConstants. OFFICE_NAME_COL); @@ -140,12 +140,12 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { CellRangeAddressList repeatsRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), CenterConstants.FREQUENCY_COL, CenterConstants.FREQUENCY_COL); CellRangeAddressList repeatsEveryRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), CenterConstants.INTERVAL_COL,CenterConstants. INTERVAL_COL); CellRangeAddressList repeatsOnRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), CenterConstants.REPEATS_ON_DAY_COL,CenterConstants. REPEATS_ON_DAY_COL); - - + + DataValidationHelper validationHelper = new HSSFDataValidationHelper((HSSFSheet)worksheet); List offices = officeSheetPopulator.getOffices(); setNames(worksheet, offices); - + DataValidationConstraint officeNameConstraint = validationHelper.createFormulaListConstraint("Office"); DataValidationConstraint staffNameConstraint = validationHelper. @@ -180,7 +180,7 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { DataValidation repeatsValidation = validationHelper.createValidation(repeatsConstraint, repeatsRange); DataValidation repeatsEveryValidation = validationHelper.createValidation(repeatsEveryConstraint, repeatsEveryRange); DataValidation repeatsOnValidation = validationHelper.createValidation(repeatsOnConstraint, repeatsOnRange); - + worksheet.addValidationData(activeValidation); worksheet.addValidationData(officeValidation); @@ -193,14 +193,14 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { worksheet.addValidationData(repeatsEveryValidation); worksheet.addValidationData(repeatsOnValidation); } - + private void setNames(Sheet worksheet, List offices) { Workbook centerWorkbook = worksheet.getWorkbook(); Name officeCenter = centerWorkbook.createName(); officeCenter.setNameName("Office"); officeCenter.setRefersToFormula(TemplatePopulateImportConstants.OFFICE_SHEET_NAME +"!$B$2:$B$" + (offices.size() + 1)); - - + + //Repeat constraint names Name repeatsDaily = centerWorkbook.createName(); repeatsDaily.setNameName("Daily"); @@ -217,8 +217,8 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { Name repeatsOnWeekly = centerWorkbook.createName(); repeatsOnWeekly.setNameName("Weekly_Days"); repeatsOnWeekly.setRefersToFormula(TemplatePopulateImportConstants.CENTER_SHEET_NAME+"!$IV$2:$IV$8"); - - + + //Staff Names for each office for(Integer i = 0; i < offices.size(); i++) { Integer[] officeNameToBeginEndIndexesOfStaff = personnelSheetPopulator.getOfficeNameToBeginEndIndexesOfStaff().get(i); @@ -228,8 +228,8 @@ public class CentersWorkbookPopulator extends AbstractWorkbookPopulator { loanOfficerName.setRefersToFormula(TemplatePopulateImportConstants.STAFF_SHEET_NAME+"!$B$" + officeNameToBeginEndIndexesOfStaff[0] + ":$B$" + officeNameToBeginEndIndexesOfStaff[1]); } } - + } - - + + } \ No newline at end of file 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 f65be13..b4b71a9 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 @@ -215,7 +215,7 @@ public class ChartOfAccountsWorkbook extends AbstractWorkbookPopulator { chartOfAccountsSheet.setColumnWidth(ChartOfAcountsConstants.LOOKUP_ACCOUNT_ID_COL,TemplatePopulateImportConstants.MEDIUM_COL_SIZE); chartOfAccountsSheet.setColumnWidth(ChartOfAcountsConstants.LOOKUP_TAG_COL,TemplatePopulateImportConstants.SMALL_COL_SIZE); chartOfAccountsSheet.setColumnWidth(ChartOfAcountsConstants.LOOKUP_TAG_ID_COL,TemplatePopulateImportConstants.SMALL_COL_SIZE); - + writeString(ChartOfAcountsConstants.ACCOUNT_TYPE_COL,rowHeader,"Account Type*"); writeString(ChartOfAcountsConstants.GL_CODE_COL,rowHeader,"GL Code *"); writeString(ChartOfAcountsConstants.ACCOUNT_USAGE_COL,rowHeader,"Account Usage *"); 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 69d1119..caf8e38 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 @@ -354,7 +354,7 @@ public class ClientPersonWorkbookPopulator extends AbstractWorkbookPopulator { countryGroup.setNameName("Country"); countryGroup.setRefersToFormula(TemplatePopulateImportConstants.CLIENT_PERSON_SHEET_NAME+"!$AQ$2:$AQ$" + (countryCodeValues.size() + 1)); - + for (Integer i = 0; i < offices.size(); i++) { Integer[] officeNameToBeginEndIndexesOfStaff = personnelSheetPopulator.getOfficeNameToBeginEndIndexesOfStaff().get(i); 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 cfb58af..79759c8 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 @@ -116,7 +116,7 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { row = groupSheet.createRow(rowIndex); writeInt(GroupConstants.LOOKUP_REPEAT_MONTHLY_COL, row, rowIndex); } - for(rowIndex = 1; rowIndex <= 3; rowIndex++) + for(rowIndex = 1; rowIndex <= 3; rowIndex++) writeInt(GroupConstants.LOOKUP_REPEAT_NORMAL_COL, groupSheet.getRow(rowIndex), rowIndex); String[] days = new String[]{ TemplatePopulateImportConstants.MONDAY, @@ -126,10 +126,10 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { TemplatePopulateImportConstants.FRIDAY, TemplatePopulateImportConstants.SATURDAY, TemplatePopulateImportConstants.SUNDAY}; - for(rowIndex = 1; rowIndex <= 7; rowIndex++) + for(rowIndex = 1; rowIndex <= 7; rowIndex++) writeString(GroupConstants.LOOKUP_IF_REPEAT_WEEKLY_COL, groupSheet.getRow(rowIndex), days[rowIndex-1]); } - + private void setRules(Sheet worksheet,String dateFormat){ CellRangeAddressList officeNameRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), GroupConstants.OFFICE_NAME_COL, GroupConstants.OFFICE_NAME_COL); @@ -153,11 +153,11 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { GroupConstants.INTERVAL_COL,GroupConstants. INTERVAL_COL); CellRangeAddressList repeatsOnRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), GroupConstants.REPEATS_ON_DAY_COL, GroupConstants.REPEATS_ON_DAY_COL); - + DataValidationHelper validationHelper = new HSSFDataValidationHelper((HSSFSheet)worksheet); List offices = officeSheetPopulator.getOffices(); setNames(worksheet, offices); - + DataValidationConstraint centerNameConstraint = validationHelper.createFormulaListConstraint("INDIRECT(CONCATENATE(\"Center_\",$B1))"); DataValidationConstraint officeNameConstraint = validationHelper.createFormulaListConstraint("Office"); DataValidationConstraint staffNameConstraint = validationHelper.createFormulaListConstraint("INDIRECT(CONCATENATE(\"Staff_\",$B1))"); @@ -178,7 +178,7 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { TemplatePopulateImportConstants.FREQUENCY_YEARLY}); DataValidationConstraint repeatsEveryConstraint = validationHelper.createFormulaListConstraint("INDIRECT($K1)"); DataValidationConstraint repeatsOnConstraint = validationHelper.createFormulaListConstraint("INDIRECT(CONCATENATE($K1,\"_DAYS\"))"); - + DataValidation centerValidation=validationHelper.createValidation(centerNameConstraint, centerNameRange); DataValidation officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange); DataValidation staffValidation = validationHelper.createValidation(staffNameConstraint, staffNameRange); @@ -190,7 +190,7 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { DataValidation repeatsValidation = validationHelper.createValidation(repeatsConstraint, repeatsRange); DataValidation repeatsEveryValidation = validationHelper.createValidation(repeatsEveryConstraint, repeatsEveryRange); DataValidation repeatsOnValidation = validationHelper.createValidation(repeatsOnConstraint, repeatsOnRange); - + worksheet.addValidationData(centerValidation); worksheet.addValidationData(activeValidation); worksheet.addValidationData(officeValidation); @@ -203,14 +203,14 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { worksheet.addValidationData(repeatsEveryValidation); worksheet.addValidationData(repeatsOnValidation); } - + private void setNames(Sheet worksheet, List offices) { Workbook centerWorkbook = worksheet.getWorkbook(); Name officeCenter = centerWorkbook.createName(); officeCenter.setNameName("Office"); officeCenter.setRefersToFormula(TemplatePopulateImportConstants.OFFICE_SHEET_NAME+"!$B$2:$B$" + (offices.size() + 1)); - - + + //Repeat constraint names Name repeatsDaily = centerWorkbook.createName(); repeatsDaily.setNameName("Daily"); @@ -227,11 +227,11 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { Name repeatsOnWeekly = centerWorkbook.createName(); repeatsOnWeekly.setNameName("Weekly_Days"); repeatsOnWeekly.setRefersToFormula(TemplatePopulateImportConstants.GROUP_SHEET_NAME+"!$IV$2:$IV$8"); - - - //Staff Names for each office & center Names for each office + + + //Staff Names for each office & center Names for each office for(Integer i = 0; i < offices.size(); i++) { - Integer[] officeNameToBeginEndIndexesOfCenters =centerSheetPopulator.getOfficeNameToBeginEndIndexesOfCenters().get(i); + Integer[] officeNameToBeginEndIndexesOfCenters =centerSheetPopulator.getOfficeNameToBeginEndIndexesOfCenters().get(i); Integer[] officeNameToBeginEndIndexesOfStaff = personnelSheetPopulator.getOfficeNameToBeginEndIndexesOfStaff().get(i); Name loanOfficerName = centerWorkbook.createName(); @@ -248,7 +248,7 @@ public class GroupsWorkbookPopulator extends AbstractWorkbookPopulator { "!$B$" + officeNameToBeginEndIndexesOfCenters[0] + ":$B$" + officeNameToBeginEndIndexesOfCenters[1]); } } - + } - + } \ No newline at end of file diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/guarantor/GuarantorWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/guarantor/GuarantorWorkbookPopulator.java index ec02065..2f8dccc 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/guarantor/GuarantorWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/guarantor/GuarantorWorkbookPopulator.java @@ -113,7 +113,7 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { writeString(GuarantorConstants.LOOKUP_ACCOUNT_NO_COL, rowHeader, "Lookup Loan Account"); writeString(GuarantorConstants.LOOKUP_SAVINGS_CLIENT_NAME_COL, rowHeader, "Savings Lookup Client"); writeString(GuarantorConstants.LOOKUP_SAVINGS_ACCOUNT_NO_COL, rowHeader, "Savings Lookup Account"); - + } private void populateSavingsTable(Sheet addGuarantorSheet,String dateFormat) { Workbook workbook = addGuarantorSheet.getWorkbook(); @@ -189,11 +189,11 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { GuarantorConstants.GUARANTO_TYPE_COL, GuarantorConstants.GUARANTO_TYPE_COL); CellRangeAddressList guranterRelationshipTypeRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), GuarantorConstants.CLIENT_RELATIONSHIP_TYPE_COL, GuarantorConstants.CLIENT_RELATIONSHIP_TYPE_COL); - + DataValidationHelper validationHelper = new HSSFDataValidationHelper((HSSFSheet)worksheet); - + setNames(worksheet); - + DataValidationConstraint officeNameConstraint = validationHelper.createFormulaListConstraint("Office"); DataValidationConstraint clientNameConstraint = validationHelper.createFormulaListConstraint("INDIRECT(CONCATENATE(\"Client_\",$A1))"); DataValidationConstraint accountNumberConstraint = validationHelper.createFormulaListConstraint("INDIRECT(CONCATENATE(\"Account_\",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($B1,\" \",\"_\"),\"(\",\"_\"),\")\",\"_\")))"); @@ -204,7 +204,7 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { DataValidationConstraint guarantorRelationshipConstraint = validationHelper.createFormulaListConstraint("GuarantorRelationship"); DataValidationConstraint entityofficeNameConstraint = validationHelper.createFormulaListConstraint("Office"); DataValidationConstraint entityclientNameConstraint = validationHelper.createFormulaListConstraint("INDIRECT(CONCATENATE(\"Client_\",$F1))"); - + DataValidation officeValidation = validationHelper.createValidation(officeNameConstraint, officeNameRange); DataValidation clientValidation = validationHelper.createValidation(clientNameConstraint, clientNameRange); DataValidation accountNumberValidation = validationHelper.createValidation(accountNumberConstraint, accountNumberRange); @@ -213,8 +213,8 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { DataValidation guarantorRelationshipValidation=validationHelper.createValidation(guarantorRelationshipConstraint,guranterRelationshipTypeRange); DataValidation entityofficeValidation = validationHelper.createValidation(entityofficeNameConstraint, entityofficeNameRange); DataValidation entityclientValidation = validationHelper.createValidation(entityclientNameConstraint, entityclientNameRange); - - + + worksheet.addValidationData(officeValidation); worksheet.addValidationData(clientValidation); worksheet.addValidationData(accountNumberValidation); @@ -223,12 +223,12 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { worksheet.addValidationData(entityofficeValidation); worksheet.addValidationData(entityclientValidation); worksheet.addValidationData(savingsaccountNumberValidation); - + } private void setNames(Sheet worksheet) { Workbook addGurarantorWorkbook = worksheet.getWorkbook(); ArrayList officeNames = new ArrayList(officeSheetPopulator.getOfficeNames()); - + //Office Names Name officeGroup = addGurarantorWorkbook.createName(); officeGroup.setNameName("Office"); @@ -238,7 +238,7 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { Name guarantorRelationshipsGroup = addGurarantorWorkbook.createName(); guarantorRelationshipsGroup.setNameName("GuarantorRelationship"); guarantorRelationshipsGroup.setRefersToFormula(TemplatePopulateImportConstants.GUARANTOR_SHEET_NAME+"!$CH$2:$CH$" + (guarantorRelationshipTypes.size() + 1)); - + //Clients Named after Offices for(Integer i = 0; i < officeNames.size(); i++) { Integer[] officeNameToBeginEndIndexesOfClients = clientSheetPopulator.getOfficeNameToBeginEndIndexesOfClients().get(i); @@ -249,7 +249,7 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { ":$B$" + officeNameToBeginEndIndexesOfClients[1]); } } - + //Counting clients with active loans and starting and end addresses of cells HashMap clientNameToBeginEndIndexes = new HashMap(); ArrayList clientsWithActiveLoans = new ArrayList(); @@ -272,7 +272,7 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { clientNameToBeginEndIndexes.put(clientName, new Integer[]{startIndex, endIndex}); } } - + //Account Number Named after Clients for(int j = 0; j < clientsWithActiveLoans.size(); j++) { Name name = addGurarantorWorkbook.createName(); @@ -308,7 +308,7 @@ public class GuarantorWorkbookPopulator extends AbstractWorkbookPopulator { name.setRefersToFormula(TemplatePopulateImportConstants.GUARANTOR_SHEET_NAME+"!$CG$" + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[0] + ":$CG$" + clientNameToBeginEndIndexes.get(clientsWithActiveSavings.get(j))[1]); } - + } } \ No newline at end of file diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/journalentry/JournalEntriesWorkbookPopulator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/journalentry/JournalEntriesWorkbookPopulator.java index 64a63b4..0f14d2a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/journalentry/JournalEntriesWorkbookPopulator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/populator/journalentry/JournalEntriesWorkbookPopulator.java @@ -34,7 +34,7 @@ import java.util.ArrayList; public class JournalEntriesWorkbookPopulator extends AbstractWorkbookPopulator { - + private OfficeSheetPopulator officeSheetPopulator; private GlAccountSheetPopulator glAccountSheetPopulator; private ExtrasSheetPopulator extrasSheetPopulator; @@ -56,7 +56,7 @@ public class JournalEntriesWorkbookPopulator extends AbstractWorkbookPopulator { setDefaults(addJournalEntriesSheet); setLayout(addJournalEntriesSheet); } - + private void setLayout(Sheet worksheet) { Row rowHeader = worksheet.createRow(TemplatePopulateImportConstants.ROWHEADER_INDEX); rowHeader.setHeight(TemplatePopulateImportConstants.ROW_HEADER_HEIGHT); @@ -95,9 +95,9 @@ public class JournalEntriesWorkbookPopulator extends AbstractWorkbookPopulator { // TODO Auto-generated method stub } - + private void setRules(Sheet worksheet) { - + CellRangeAddressList officeNameRange = new CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), JournalEntryConstants.OFFICE_NAME_COL,JournalEntryConstants. OFFICE_NAME_COL); @@ -152,7 +152,7 @@ public class JournalEntriesWorkbookPopulator extends AbstractWorkbookPopulator { worksheet.addValidationData(glaccountCreditValidation); worksheet.addValidationData(glaccountDebitValidation); } - + private void setNames(Sheet worksheet) { Workbook addJournalEntriesWorkbook = worksheet.getWorkbook(); ArrayList officeNames = new ArrayList<>(officeSheetPopulator.getOfficeNames()); @@ -178,7 +178,7 @@ public class JournalEntriesWorkbookPopulator extends AbstractWorkbookPopulator { glaccountGroup.setRefersToFormula(TemplatePopulateImportConstants.GL_ACCOUNTS_SHEET_NAME+"!$B$2:$B$" + (glAccountSheetPopulator.getGlAccountNamesSize() + 1)); } - + private void setDefaults(Sheet worksheet) { for (Integer rowNo = 1; rowNo < 1000; rowNo++) { Row row = worksheet.createRow(rowNo); @@ -186,6 +186,6 @@ public class JournalEntriesWorkbookPopulator extends AbstractWorkbookPopulator { } - - + + } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookPopulatorServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookPopulatorServiceImpl.java index a95e240..4b984b8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookPopulatorServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookPopulatorServiceImpl.java @@ -116,7 +116,7 @@ public class BulkImportWorkbookPopulatorServiceImpl implements BulkImportWorkboo private final ChargeReadPlatformService chargeReadPlatformService; private final DepositProductReadPlatformService depositProductReadPlatformService; private final RoleReadPlatformService roleReadPlatformService; - + @Autowired public BulkImportWorkbookPopulatorServiceImpl(final PlatformSecurityContext context, final OfficeReadPlatformService officeReadPlatformService, @@ -324,7 +324,7 @@ private WorkbookPopulator populateCenterWorkbook(Long officeId,Long staffId){ SearchParameters searchParameters = SearchParameters.from(null, officeId, null, null, null); centers = (List)centerReadPlatformService.retrieveAll(searchParameters,null); } - + return centers; } private List fetchClients(Long officeId) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java index a99dd90..e8b86f5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java @@ -103,7 +103,7 @@ public class BulkImportWorkbookServiceImpl implements BulkImportWorkbookService // extension we use this fix. throw new GeneralPlatformDomainRuleException("error.msg.invalid.file.extension", "Uploaded file extension is not recognized."); - + } Workbook workbook = new HSSFWorkbook(clonedInputStreamWorkbook); GlobalEntityType entityType=null; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/service/RuntimeDelegatingCacheManager.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/service/RuntimeDelegatingCacheManager.java index 9f21a5c..9fbcce3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/service/RuntimeDelegatingCacheManager.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/cache/service/RuntimeDelegatingCacheManager.java @@ -38,7 +38,7 @@ import org.springframework.stereotype.Component; /** * At present this implementation of {@link CacheManager} just delegates to the * real {@link CacheManager} to use. - * + * * By default it is {@link NoOpCacheManager} but we can change that by checking * some persisted configuration in the database on startup and allow user to * switch implementation through UI/API diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/constants/CampaignType.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/constants/CampaignType.java index 421882a..f9a3295 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/constants/CampaignType.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/constants/CampaignType.java @@ -54,7 +54,7 @@ public enum CampaignType { } return type; } - + public static EnumOptionData campaignType(final Integer campaignTypeId) { return campaignType(CampaignType.fromInt(campaignTypeId)); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/ScheduledEmailConstants.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/ScheduledEmailConstants.java index 294a298..359b340 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/ScheduledEmailConstants.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/ScheduledEmailConstants.java @@ -27,11 +27,11 @@ public class ScheduledEmailConstants { // define the API resource entity name public static final String SCHEDULED_EMAIL_ENTITY_NAME = "SCHEDULEDEMAIL"; - + // general API resource request parameter constants public static final String LOCALE_PARAM_NAME = "locale"; public static final String DATE_FORMAT_PARAM_NAME = "dateFormat"; - + // parameter constants for create/update entity API request public static final String NAME_PARAM_NAME = "name"; public static final String DESCRIPTION_PARAM_NAME = "description"; @@ -44,7 +44,7 @@ public class ScheduledEmailConstants { public static final String STRETCHY_REPORT_ID_PARAM_NAME = "stretchyReportId"; public static final String STRETCHY_REPORT_PARAM_MAP_PARAM_NAME = "stretchyReportParamMap"; public static final String IS_ACTIVE_PARAM_NAME = "isActive"; - + // other parameter constants public static final String ID_PARAM_NAME = "id"; public static final String EMAIL_ATTACHMENT_FILE_FORMAT_PARAM_NAME = "emailAttachmentFileFormat"; @@ -55,29 +55,29 @@ public class ScheduledEmailConstants { public static final String PREVIOUS_RUN_ERROR_MESSAGE = "previousRunErrorMessage"; public static final String NUMBER_OF_RUNS = "numberOfRuns"; public static final String STRETCHY_REPORT_PARAM_NAME = "stretchyReport"; - + // list of permitted parameters for the create report mailing job request public static final Set CREATE_REQUEST_PARAMETERS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(LOCALE_PARAM_NAME, DATE_FORMAT_PARAM_NAME, - NAME_PARAM_NAME, DESCRIPTION_PARAM_NAME, RECURRENCE_PARAM_NAME, EMAIL_RECIPIENTS_PARAM_NAME, EMAIL_SUBJECT_PARAM_NAME, - EMAIL_MESSAGE_PARAM_NAME, EMAIL_ATTACHMENT_FILE_FORMAT_ID_PARAM_NAME, STRETCHY_REPORT_ID_PARAM_NAME, + NAME_PARAM_NAME, DESCRIPTION_PARAM_NAME, RECURRENCE_PARAM_NAME, EMAIL_RECIPIENTS_PARAM_NAME, EMAIL_SUBJECT_PARAM_NAME, + EMAIL_MESSAGE_PARAM_NAME, EMAIL_ATTACHMENT_FILE_FORMAT_ID_PARAM_NAME, STRETCHY_REPORT_ID_PARAM_NAME, STRETCHY_REPORT_PARAM_MAP_PARAM_NAME, IS_ACTIVE_PARAM_NAME, START_DATE_TIME_PARAM_NAME))); - + // list of permitted parameters for the update report mailing job request public static final Set UPDATE_REQUEST_PARAMETERS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(LOCALE_PARAM_NAME, DATE_FORMAT_PARAM_NAME, - NAME_PARAM_NAME, DESCRIPTION_PARAM_NAME, RECURRENCE_PARAM_NAME, EMAIL_RECIPIENTS_PARAM_NAME, EMAIL_SUBJECT_PARAM_NAME, - EMAIL_MESSAGE_PARAM_NAME, EMAIL_ATTACHMENT_FILE_FORMAT_ID_PARAM_NAME, STRETCHY_REPORT_ID_PARAM_NAME, + NAME_PARAM_NAME, DESCRIPTION_PARAM_NAME, RECURRENCE_PARAM_NAME, EMAIL_RECIPIENTS_PARAM_NAME, EMAIL_SUBJECT_PARAM_NAME, + EMAIL_MESSAGE_PARAM_NAME, EMAIL_ATTACHMENT_FILE_FORMAT_ID_PARAM_NAME, STRETCHY_REPORT_ID_PARAM_NAME, STRETCHY_REPORT_PARAM_MAP_PARAM_NAME, IS_ACTIVE_PARAM_NAME, START_DATE_TIME_PARAM_NAME))); - + // list of parameters that represent the properties of a report mailing job public static final Set REPORT_MAILING_JOB_DATA_PARAMETERS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(ID_PARAM_NAME, NAME_PARAM_NAME, - DESCRIPTION_PARAM_NAME, RECURRENCE_PARAM_NAME, EMAIL_RECIPIENTS_PARAM_NAME, EMAIL_SUBJECT_PARAM_NAME, EMAIL_MESSAGE_PARAM_NAME, - EMAIL_ATTACHMENT_FILE_FORMAT_PARAM_NAME, STRETCHY_REPORT_PARAM_NAME, STRETCHY_REPORT_PARAM_MAP_PARAM_NAME, IS_ACTIVE_PARAM_NAME, - START_DATE_TIME_PARAM_NAME, PREVIOUS_RUN_DATE_TIME_PARAM_NAME, NEXT_RUN_DATE_TIME_PARAM_NAME, PREVIOUS_RUN_STATUS, + DESCRIPTION_PARAM_NAME, RECURRENCE_PARAM_NAME, EMAIL_RECIPIENTS_PARAM_NAME, EMAIL_SUBJECT_PARAM_NAME, EMAIL_MESSAGE_PARAM_NAME, + EMAIL_ATTACHMENT_FILE_FORMAT_PARAM_NAME, STRETCHY_REPORT_PARAM_NAME, STRETCHY_REPORT_PARAM_MAP_PARAM_NAME, IS_ACTIVE_PARAM_NAME, + START_DATE_TIME_PARAM_NAME, PREVIOUS_RUN_DATE_TIME_PARAM_NAME, NEXT_RUN_DATE_TIME_PARAM_NAME, PREVIOUS_RUN_STATUS, PREVIOUS_RUN_ERROR_LOG, PREVIOUS_RUN_ERROR_MESSAGE, NUMBER_OF_RUNS))); - + // report mailing job configuration names public static final String GMAIL_SMTP_SERVER = "GMAIL_SMTP_SERVER"; public static final String GMAIL_SMTP_PORT = "GMAIL_SMTP_PORT"; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignValidator.java index 2d42cc1..8eff9f5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignValidator.java @@ -37,7 +37,7 @@ import java.util.*; @Component public class EmailCampaignValidator { - + public static final String RESOURCE_NAME = "email"; public static final String campaignName = "campaignName"; @@ -89,18 +89,18 @@ public class EmailCampaignValidator { final Type typeOfMap = new TypeToken>() {}.getType(); this.fromApiJsonHelper.checkForUnsupportedParameters(typeOfMap, json, EmailCampaignValidator.supportedParams); - + final JsonElement element = this.fromApiJsonHelper.parse(json); final List dataValidationErrors = new ArrayList(); final DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors) .resource(EmailCampaignValidator.RESOURCE_NAME); - + final String campaignName = this.fromApiJsonHelper.extractStringNamed(EmailCampaignValidator.campaignName,element); baseDataValidator.reset().parameter(EmailCampaignValidator.campaignName).value(campaignName).notBlank().notExceedingLengthOf(100); - - + + final Long campaignType = this.fromApiJsonHelper.extractLongNamed(EmailCampaignValidator.campaignType,element); baseDataValidator.reset().parameter(EmailCampaignValidator.campaignType).value(campaignType).notNull().integerGreaterThanZero(); @@ -117,7 +117,7 @@ public class EmailCampaignValidator { final String emailSubject = this.fromApiJsonHelper.extractStringNamed(EmailCampaignValidator.emailSubject, element); baseDataValidator.reset().parameter(EmailCampaignValidator.emailSubject).value(emailSubject).notBlank().notExceedingLengthOf(50); - + final String emailMessage = this.fromApiJsonHelper.extractStringNamed(EmailCampaignValidator.emailMessage, element); baseDataValidator.reset().parameter(EmailCampaignValidator.emailMessage).value(emailMessage).notBlank().notExceedingLengthOf(480); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java index 794669b..8026823 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java @@ -24,19 +24,19 @@ package org.apache.fineract.infrastructure.campaigns.email.data; public class EmailConfigurationData { @SuppressWarnings("unused") private final Long id; - + private final String name; - + private final String value; - - /** + + /** * @return an instance of the EmailConfigurationData class **/ public static EmailConfigurationData instance(Long id, String name, String value) { return new EmailConfigurationData(id, name, value); } - - /** + + /** * EmailConfigurationData constructor **/ private EmailConfigurationData(Long id, String name, String value) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/ScheduledEmailEnumerations.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/ScheduledEmailEnumerations.java index d2843a3..0907cb2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/ScheduledEmailEnumerations.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/ScheduledEmailEnumerations.java @@ -26,31 +26,31 @@ public class ScheduledEmailEnumerations { public static EnumOptionData emailAttachementFileFormat(final Integer emailAttachementFileFormatId) { return emailAttachementFileFormat(ScheduledEmailAttachmentFileFormat.instance(emailAttachementFileFormatId)); } - + public static EnumOptionData emailAttachementFileFormat(final String emailAttachementFileFormatString) { return emailAttachementFileFormat(ScheduledEmailAttachmentFileFormat.instance(emailAttachementFileFormatString)); } - + public static EnumOptionData emailAttachementFileFormat(final ScheduledEmailAttachmentFileFormat emailAttachementFileFormat) { EnumOptionData enumOptionData = null; - + if (emailAttachementFileFormat != null) { - enumOptionData = new EnumOptionData(emailAttachementFileFormat.getId().longValue(), emailAttachementFileFormat.getCode(), + enumOptionData = new EnumOptionData(emailAttachementFileFormat.getId().longValue(), emailAttachementFileFormat.getCode(), emailAttachementFileFormat.getValue()); } - + return enumOptionData; } - + public static EnumOptionData stretchyReportDateOption(final ScheduledEmailStretchyReportParamDateOption reportMailingJobStretchyReportParamDateOption) { EnumOptionData enumOptionData = null; - + if (reportMailingJobStretchyReportParamDateOption != null) { - enumOptionData = new EnumOptionData(reportMailingJobStretchyReportParamDateOption.getId().longValue(), + enumOptionData = new EnumOptionData(reportMailingJobStretchyReportParamDateOption.getId().longValue(), reportMailingJobStretchyReportParamDateOption.getCode(), reportMailingJobStretchyReportParamDateOption.getValue()); } - + return enumOptionData; } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java index 2fb4a98..adcab48 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java @@ -29,23 +29,23 @@ import javax.persistence.Table; public class EmailConfiguration extends AbstractPersistableCustom { @Column(name = "name", nullable = false) private String name; - + @Column(name = "value", nullable = false) private String value; - - /** + + /** * EmailConfiguration constructor **/ protected EmailConfiguration() {} - - /** + + /** * EmailConfiguration constructor **/ public EmailConfiguration(String name, String value) { this.name = name; this.value = value; } - + public void setValue(String value) { this.value = value; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java index d514950..9edbcdb 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java @@ -79,7 +79,7 @@ public class EmailMessage extends AbstractPersistableCustom { final String emailAddress, final String campaignName) { return new EmailMessage(group, client, staff,emailCampaign,EmailMessageStatusType.PENDING, emailSubject, message, emailAddress,campaignName); } - + public static EmailMessage instance(final Group group, final Client client, final Staff staff, final EmailCampaign emailCampaign, final EmailMessageStatusType statusType, final String emailSubject, final String message, final String sourceAddress, final String emailAddress, final String campaignName) { return new EmailMessage(group, client, staff,emailCampaign, statusType, emailSubject, message, emailAddress, campaignName); @@ -115,20 +115,20 @@ public class EmailMessage extends AbstractPersistableCustom { return actualChanges; } - + public Group getGroup() { return group; } - + public Client getClient() { return client; } - + public Staff getStaff() { return staff; } - + public Integer getStatusType() { return statusType; } @@ -137,11 +137,11 @@ public class EmailMessage extends AbstractPersistableCustom { public String getEmailAddress() {return this.emailAddress;} public String getEmailSubject() {return emailSubject; } - + public String getMessage() { return message; } - + public void setStatusType(final Integer statusType) { this.statusType = statusType; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailAttachmentFileFormat.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailAttachmentFileFormat.java index 677555a..295a89f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailAttachmentFileFormat.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailAttachmentFileFormat.java @@ -33,53 +33,53 @@ public enum ScheduledEmailAttachmentFileFormat { this.code = code; this.id = id; } - + public static ScheduledEmailAttachmentFileFormat instance(final String value) { ScheduledEmailAttachmentFileFormat emailAttachmentFileFormat = INVALID; - + switch (value) { case "xls": emailAttachmentFileFormat = XLS; break; - + case "pdf": emailAttachmentFileFormat = PDF; break; - + case "csv": emailAttachmentFileFormat = CSV; break; - + default: break; } - + return emailAttachmentFileFormat; } - + public static ScheduledEmailAttachmentFileFormat instance(final Integer id) { ScheduledEmailAttachmentFileFormat emailAttachmentFileFormat = INVALID; - + switch (id) { case 1: emailAttachmentFileFormat = XLS; break; - + case 2: emailAttachmentFileFormat = PDF; break; - + case 3: emailAttachmentFileFormat = CSV; break; - + default: break; } - + return emailAttachmentFileFormat; } - + /** * @return the code */ @@ -100,8 +100,8 @@ public enum ScheduledEmailAttachmentFileFormat { public Integer getId() { return id; } - - /** + + /** * @return list of valid ScheduledEmailAttachmentFileFormat ids **/ public static Object[] validValues() { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailStretchyReportParamDateOption.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailStretchyReportParamDateOption.java index 39b6e9b..fb9f2ce 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailStretchyReportParamDateOption.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/ScheduledEmailStretchyReportParamDateOption.java @@ -38,55 +38,55 @@ public enum ScheduledEmailStretchyReportParamDateOption { this.code = code; this.id = id; } - + /** * @param value * @return */ public static ScheduledEmailStretchyReportParamDateOption instance(final String value) { ScheduledEmailStretchyReportParamDateOption scheduledEmailStretchyReportParamDateOption = INVALID; - + switch (value) { case "today": scheduledEmailStretchyReportParamDateOption = TODAY; break; - + // case "yesterday": // scheduledEmailStretchyReportParamDateOption = YESTERDAY; // break; - + case "tomorrow": scheduledEmailStretchyReportParamDateOption = TOMORROW; break; } - + return scheduledEmailStretchyReportParamDateOption; } - + /** * @param id * @return */ public static ScheduledEmailStretchyReportParamDateOption instance(final Integer id) { ScheduledEmailStretchyReportParamDateOption scheduledEmailStretchyReportParamDateOption = INVALID; - + switch (id) { case 1: scheduledEmailStretchyReportParamDateOption = TODAY; break; - + // case 2: // scheduledEmailStretchyReportParamDateOption = YESTERDAY; // break; - + case 3: scheduledEmailStretchyReportParamDateOption = TOMORROW; break; } - + return scheduledEmailStretchyReportParamDateOption; } - + /** * @return the code */ @@ -107,8 +107,8 @@ public enum ScheduledEmailStretchyReportParamDateOption { public Integer getId() { return id; } - - /** + + /** * @return list of valid ScheduledEmailAttachmentFileFormat values **/ public static Object[] validValues() { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/exception/EmailConfigurationSMTPUsernameNotValid.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/exception/EmailConfigurationSMTPUsernameNotValid.java index 34aab28..55b46c0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/exception/EmailConfigurationSMTPUsernameNotValid.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/exception/EmailConfigurationSMTPUsernameNotValid.java @@ -22,7 +22,7 @@ import org.apache.fineract.infrastructure.core.exception.AbstractPlatformDomainR public class EmailConfigurationSMTPUsernameNotValid extends AbstractPlatformDomainRuleException { - + public EmailConfigurationSMTPUsernameNotValid(final String smtpUsername) { super("error.msg.email.configuration.smtpusername.not.valid", "SMTP username configuration with email " + "'"+smtpUsername+"'" + " is not a valid email address "); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java index d1cbd2c..30569fa 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java @@ -699,7 +699,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai /** * This generates the the report and converts it to a file by passing the * parameters below - * + * * @param emailCampaign * @param emailAttachmentFileFormat * @param reportParams @@ -744,7 +744,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai /** * This matches the the actual values to the key in the report stretchy * parameters map - * + * * @param stretchyParams * @param client * @return diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformService.java index a8f3c48..b92715b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformService.java @@ -23,7 +23,7 @@ import org.apache.fineract.infrastructure.campaigns.email.data.EmailConfiguratio import java.util.Collection; public interface EmailConfigurationReadPlatformService { - + Collection retrieveAll(); EmailConfigurationData retrieveOne(String name); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java index 8efd5e7..bd915e8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java @@ -34,45 +34,45 @@ import java.util.Collection; @Service public class EmailConfigurationReadPlatformServiceImpl implements EmailConfigurationReadPlatformService { - + private final JdbcTemplate jdbcTemplate; private final EmailConfigurationRowMapper emailConfigurationRowMapper; - + @Autowired public EmailConfigurationReadPlatformServiceImpl(final RoutingDataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); this.emailConfigurationRowMapper = new EmailConfigurationRowMapper(); - + } - + private static final class EmailConfigurationRowMapper implements RowMapper { - + final String schema; - + public EmailConfigurationRowMapper() { final StringBuilder sql = new StringBuilder(300); sql.append("cnf.id as id, "); sql.append("cnf.name as name, "); sql.append("cnf.value as value "); sql.append("from scheduled_email_configuration cnf"); - + this.schema = sql.toString(); } - + public String schema() { return this.schema; } @Override public EmailConfigurationData mapRow(ResultSet rs, @SuppressWarnings("unused") int rowNum) throws SQLException { - + final Long id = JdbcSupport.getLong(rs, "id"); final String name = rs.getString("name"); final String value = rs.getString("value"); - + return EmailConfigurationData.instance(id, name, value); } - + } @Override @@ -89,9 +89,9 @@ public class EmailConfigurationReadPlatformServiceImpl implements EmailConfigura return this.jdbcTemplate.queryForObject(sql, this.emailConfigurationRowMapper, name); } - + catch(final EmptyResultDataAccessException e) { - + throw new EmailConfigurationNotFoundException(name); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformService.java index 961f969..90fe842 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformService.java @@ -31,16 +31,16 @@ public interface EmailReadPlatformService { Collection retrieveAll(); EmailData retrieveOne(Long resourceId); - + Collection retrieveAllPending(final SearchParameters searchParameters); - + Collection retrieveAllSent(final SearchParameters searchParameters); - + Collection retrieveAllDelivered(Integer limit); - + Collection retrieveAllFailed(final SearchParameters searchParameters); Page retrieveEmailByStatus(Integer limit, Integer status, Date dateFrom, Date dateTo); - + List retrieveExternalIdsOfAllSent(Integer limit); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java index 39b6a10..3a40072 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java @@ -81,7 +81,7 @@ public class EmailReadPlatformServiceImpl implements EmailReadPlatformService { public String schema() { return this.schema; } - + public String tableName() { return "scheduled_email_messages_outbound"; } @@ -128,7 +128,7 @@ public class EmailReadPlatformServiceImpl implements EmailReadPlatformService { throw new EmailNotFoundException(resourceId); } } - + @Override public Collection retrieveAllPending(final SearchParameters searchParameters) { final String sqlPlusLimit = (searchParameters.getLimit() > 0) ? " limit 0, " + searchParameters.getLimit() : ""; @@ -152,7 +152,7 @@ public class EmailReadPlatformServiceImpl implements EmailReadPlatformService { final String sqlPlusLimit = (limit > 0) ? " limit 0, " + limit : ""; final String sql = "select external_id from " + this.emailRowMapper.tableName() + " where status_enum = " + EmailMessageStatusType.SENT.getValue() + sqlPlusLimit; - + return this.jdbcTemplate.queryForList(sql, Long.class); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/helper/SmsConfigUtils.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/helper/SmsConfigUtils.java index 8772e21..d6ff576 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/helper/SmsConfigUtils.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/helper/SmsConfigUtils.java @@ -40,7 +40,7 @@ public class SmsConfigUtils { @Autowired private ExternalServicesPropertiesReadPlatformService propertiesReadPlatformService; - + //This method will return uri and HttpEntry objects with keys as uri and entity public Map getMessageGateWayRequestURI(final String apiEndPoint, String apiQueueResourceDatas) { Map httpRequestdetails = new HashMap<>(); @@ -72,5 +72,5 @@ public class SmsConfigUtils { return httpRequestdetails; } - + } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/constants/SmsCampaignEnumerations.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/constants/SmsCampaignEnumerations.java index bbe504e..8454c4e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/constants/SmsCampaignEnumerations.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/constants/SmsCampaignEnumerations.java @@ -29,7 +29,7 @@ import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType; public class SmsCampaignEnumerations { - + public static EnumOptionData smscampaignTriggerType(final SmsCampaignTriggerType type) { EnumOptionData optionData = new EnumOptionData(SmsCampaignTriggerType.INVALID.getValue().longValue(), SmsCampaignTriggerType.INVALID.getCode(), "Invalid"); @@ -89,7 +89,7 @@ public class SmsCampaignEnumerations { if(!periodFrequencyType.getValue().equals(PeriodFrequencyType.INVALID.getValue())) { final EnumOptionData optionData = new EnumOptionData(periodFrequencyType.getValue().longValue(), periodFrequencyType.getCode(), periodFrequencyType.toString()); - optionDatas.add(optionData); + optionDatas.add(optionData); } } return optionDatas; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsCampaignData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsCampaignData.java index b3bd3ec..a796608 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsCampaignData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsCampaignData.java @@ -45,7 +45,7 @@ public class SmsCampaignData { private final String recurrence; private final Long providerId; private final boolean isNotification; - + private final Collection smsProviderOptions; @@ -62,16 +62,16 @@ public class SmsCampaignData { private final Collection frequencyTypeOptions; private final Collection periodFrequencyOptions; - + private SmsCampaignData(final Long id, final String campaignName, final EnumOptionData campaignType, final EnumOptionData triggerType, - final Long runReportId, + final Long runReportId, final String reportName, final String paramValue, final EnumOptionData campaignStatus, final String message, final DateTime nextTriggerDate, final LocalDate lastTriggerDate, final SmsCampaignTimeLine smsCampaignTimeLine, final DateTime recurrenceStartDate, final String recurrence, final Long providerId, final Collection businessRulesOptions, final Collection smsProviderOptions, final Collection campaignTypeOptions, - final Collection triggerTypeOptions, final Collection months, - final Collection weekDays, final Collection frequencyTypeOptions, + final Collection triggerTypeOptions, final Collection months, + final Collection weekDays, final Collection frequencyTypeOptions, final Collection periodFrequencyOptions, final boolean isNotification) { this.id = id; this.campaignName = campaignName; @@ -108,7 +108,7 @@ public class SmsCampaignData { } public static SmsCampaignData instance(final Long id, final String campaignName, final EnumOptionData campaignType, - final EnumOptionData triggerType, + final EnumOptionData triggerType, final Long runReportId, final String reportName, final String paramValue, final EnumOptionData campaignStatus, final String message, final DateTime nextTriggerDate, final LocalDate lastTriggerDate, final SmsCampaignTimeLine smsCampaignTimeLine, final DateTime recurrenceStartDate, final String recurrence, diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsProviderData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsProviderData.java index 9ae9768..a7fcfe2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsProviderData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/data/SmsProviderData.java @@ -23,16 +23,16 @@ public class SmsProviderData { private Long id; private String tenantId; - + private String phoneNo; - + private String providerAppKey; private String providerName; private String providerDescription; - public SmsProviderData(final Long id, final String providerAppKey, final String providerName, final String providerDescription, final String tenantId, + public SmsProviderData(final Long id, final String providerAppKey, final String providerName, final String providerDescription, final String tenantId, final String phoneNo) { this.id = id; this.providerAppKey = providerAppKey; @@ -41,9 +41,9 @@ public class SmsProviderData { this.tenantId = tenantId; this.phoneNo = phoneNo; } - + public SmsProviderData() { - + } public Long getId() { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java index 91c8b71..5fb0598 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaign.java @@ -63,10 +63,10 @@ public class SmsCampaign extends AbstractPersistableCustom { @Column(name = "campaign_type", nullable = false) private Integer campaignType ; //defines email or sms, etc.. - + @Column(name = "campaign_trigger_type", nullable = false) private Integer triggerType; //defines direct, scheduled, transaction - + @Column(name = "provider_id", nullable = true)//null for notifications private Long providerId; // defined provider details @@ -124,13 +124,13 @@ public class SmsCampaign extends AbstractPersistableCustom { @Column(name = "is_visible", nullable = true) private boolean isVisible; - + @Column(name = "is_notification", nullable = true) private boolean isNotification; public SmsCampaign() {} - private SmsCampaign(final String campaignName, final Integer campaignType, + private SmsCampaign(final String campaignName, final Integer campaignType, final Integer triggerType, final Report businessRuleId, final Long providerId, final String paramValue, final String message, final LocalDate submittedOnDate, final AppUser submittedBy, final String recurrence, final LocalDateTime localDateTime, final boolean isNotification) { @@ -168,7 +168,7 @@ public class SmsCampaign extends AbstractPersistableCustom { if(!isNotification){ providerId = command.longValueOfParameterNamed(SmsCampaignValidator.providerId); } - + final String paramValue = command.jsonFragment(SmsCampaignValidator.paramValue); final String message = command.stringValueOfParameterNamed(SmsCampaignValidator.message); @@ -177,7 +177,7 @@ public class SmsCampaign extends AbstractPersistableCustom { submittedOnDate = command.localDateValueOfParameterNamed(SmsCampaignValidator.submittedOnDateParamName); } String recurrence = null; - + LocalDateTime recurrenceStartDate = new LocalDateTime(); if (SmsCampaignTriggerType.fromInt(triggerType.intValue()).isSchedule()) { @@ -584,6 +584,6 @@ public class SmsCampaign extends AbstractPersistableCustom { public void setNotification(boolean isNotification) { this.isNotification = isNotification; } - - + + } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaignRepository.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaignRepository.java index cb1cf1c..6b339cf 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaignRepository.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/domain/SmsCampaignRepository.java @@ -32,11 +32,11 @@ public interface SmsCampaignRepository extends JpaRepository, Collection findByCampaignTypeAndTriggerTypeAndStatus(final Integer campaignType, final Integer triggerType, final Integer status); - + Collection findByTriggerTypeAndStatus(final Integer triggerType, final Integer status); Collection findByTriggerType(final Integer triggerType) ; - + @Query("SELECT campaign FROM SmsCampaign campaign WHERE campaign.paramValue LIKE :reportPattern AND campaign.triggerType=:triggerType AND campaign.status=300") List findActiveSmsCampaigns(@Param("reportPattern") final String reportPattern, @Param("triggerType") final Integer triggerType) ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/serialization/SmsCampaignValidator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/serialization/SmsCampaignValidator.java index e48e968..9bd5f22 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/serialization/SmsCampaignValidator.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/serialization/SmsCampaignValidator.java @@ -146,7 +146,7 @@ public class SmsCampaignValidator { final Long runReportId = this.fromApiJsonHelper.extractLongNamed(SmsCampaignValidator.runReportId, element); baseDataValidator.reset().parameter(SmsCampaignValidator.runReportId).value(runReportId).notNull().integerGreaterThanZero(); - + final String message = this.fromApiJsonHelper.extractStringNamed(SmsCampaignValidator.message, element); baseDataValidator.reset().parameter(SmsCampaignValidator.message).value(message).notBlank().notExceedingLengthOf(480); @@ -166,7 +166,7 @@ public class SmsCampaignValidator { element); baseDataValidator.reset().parameter(SmsCampaignValidator.submittedOnDateParamName).value(submittedOnDate).notNull(); } - + if (this.fromApiJsonHelper.parameterExists(SmsCampaignValidator.isNotificationParamName, element)) { final Boolean isNotification = this.fromApiJsonHelper.extractBooleanNamed(SmsCampaignValidator.isNotificationParamName, element); @@ -320,7 +320,7 @@ public class SmsCampaignValidator { private void throwExceptionIfValidationWarningsExist(final List dataValidationErrors) { if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException(dataValidationErrors); } } - + public boolean isValidNotificationOrSms(Client client, SmsCampaign smsCampaign, Object mobileNo) { if (smsCampaign.isNotification()) { if (client != null) { @@ -332,5 +332,5 @@ public class SmsCampaignValidator { } return (mobileNo != null); } - + } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java index a6644f5..34097fa 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java @@ -67,9 +67,9 @@ import org.springframework.stereotype.Service; public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { private static final Logger logger = LoggerFactory.getLogger(SmsCampaignDomainServiceImpl.class); - + //private final static int POOL_SIZE = 5 ; - + private final SmsCampaignRepository smsCampaignRepository; private final SmsMessageRepository smsMessageRepository; private final OfficeRepository officeRepository; @@ -77,9 +77,9 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { private final SmsCampaignWritePlatformService smsCampaignWritePlatformCommandHandler; private final GroupRepository groupRepository; - private final SmsMessageScheduledJobService smsMessageScheduledJobService; + private final SmsMessageScheduledJobService smsMessageScheduledJobService; private final SmsCampaignValidator smsCampaignValidator; - + @Autowired public SmsCampaignDomainServiceImpl(final SmsCampaignRepository smsCampaignRepository, final SmsMessageRepository smsMessageRepository, final BusinessEventNotifierService businessEventNotifierService, final OfficeRepository officeRepository, @@ -138,9 +138,9 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { this.smsCampaignWritePlatformCommandHandler.insertDirectCampaignIntoSmsOutboundTable(client, campaign); } } - + } - + private void notifyClientRejected(final Client client) { List smsCampaigns = retrieveSmsCampaigns("Client Rejected"); if(smsCampaigns.size()>0){ @@ -148,9 +148,9 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { this.smsCampaignWritePlatformCommandHandler.insertDirectCampaignIntoSmsOutboundTable(client, campaign); } } - + } - + private void notifySavingsAccountActivated(final SavingsAccount savingsAccount) { List smsCampaigns = retrieveSmsCampaigns("Savings Activated"); if (smsCampaigns.size() > 0) { @@ -172,7 +172,7 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { } } - + private void sendSmsForLoanRepayment(LoanTransaction loanTransaction) { List smsCampaigns = retrieveSmsCampaigns("Loan Repayment"); if (smsCampaigns.size() > 0) { @@ -302,7 +302,7 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { } } } - + private List retrieveSmsCampaigns(String paramValue){ List smsCampaigns = smsCampaignRepository.findActiveSmsCampaigns("%"+paramValue+"%", SmsCampaignTriggerType.TRIGGERED.getValue()); return smsCampaigns; @@ -335,21 +335,21 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { smsParams.put("loanId",loan.getId()); smsParams.put("LoanAccountId", loan.getAccountNumber()); smsParams.put("officeId", client.getOffice().getId()); - + if(client.getStaff() != null) { smsParams.put("loanOfficerId", client.getStaff().getId()); }else { smsParams.put("loanOfficerId", -1); } - + smsParams.put("repaymentAmount", loanTransaction.getAmount(loan.getCurrency())); smsParams.put("RepaymentDate", loanTransaction.getCreatedDateTime().toLocalDate().toString(dateFormatter)); smsParams.put("RepaymentTime", loanTransaction.getCreatedDateTime().toLocalTime().toString(timeFormatter)); - + if(loanTransaction.getPaymentDetail() != null) { smsParams.put("receiptNumber", loanTransaction.getPaymentDetail().getReceiptNumber()); }else { - smsParams.put("receiptNumber", -1); + smsParams.put("receiptNumber", -1); } return smsParams; } @@ -357,7 +357,7 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { private HashMap processSavingsTransactionDataForSms(final SavingsAccountTransaction savingsAccountTransaction, Client client){ // {{savingsId}} {{id}} {{firstname}} {{middlename}} {{lastname}} {{FullName}} {{mobileNo}} {{savingsAccountId}} {{depositAmount}} {{balance}} - + //transactionDate HashMap smsParams = new HashMap(); SavingsAccount savingsAccount = savingsAccountTransaction.getSavingsAccount() ; @@ -376,21 +376,21 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { smsParams.put("officeId", client.getOffice().getId()); smsParams.put("transactionDate", savingsAccountTransaction.getTransactionLocalDate().toString(dateFormatter)) ; smsParams.put("savingsTransactionId", savingsAccountTransaction.getId()) ; - + if(client.getStaff() != null) { smsParams.put("loanOfficerId", client.getStaff().getId()); }else { smsParams.put("loanOfficerId", -1); } - + if(savingsAccountTransaction.getPaymentDetail() != null) { smsParams.put("receiptNumber", savingsAccountTransaction.getPaymentDetail().getReceiptNumber()); }else { - smsParams.put("receiptNumber", -1); + smsParams.put("receiptNumber", -1); } return smsParams; } - + private abstract class SmsBusinessEventAdapter implements BusinessEventListner { @Override @@ -398,7 +398,7 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { //Nothing to do } } - + private class SendSmsOnLoanApproved extends SmsBusinessEventAdapter{ @Override @@ -434,18 +434,18 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { } } } - + private class ClientActivatedListener extends SmsBusinessEventAdapter { @Override public void businessEventWasExecuted(Map businessEventEntity) { Object entity = businessEventEntity.get(BusinessEventNotificationConstants.BUSINESS_ENTITY.CLIENT); if(entity instanceof Client) { - notifyClientActivated((Client)entity); + notifyClientActivated((Client)entity); } } } - + private class ClientRejectedListener extends SmsBusinessEventAdapter { @Override @@ -454,10 +454,10 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { if(entity instanceof Client) { notifyClientRejected((Client)entity); } - + } } - + private class SavingsAccountActivatedListener extends SmsBusinessEventAdapter{ @Override @@ -466,10 +466,10 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { if(entity instanceof SavingsAccount) { notifySavingsAccountActivated((SavingsAccount)entity); } - + } } - + private class SavingsAccountRejectedListener extends SmsBusinessEventAdapter { @Override @@ -480,11 +480,11 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { } } } - + private class SavingsAccountTransactionListener extends SmsBusinessEventAdapter { final boolean isDeposit ; - + public SavingsAccountTransactionListener(final boolean isDeposit) { this.isDeposit = isDeposit ; } @@ -497,15 +497,15 @@ public class SmsCampaignDomainServiceImpl implements SmsCampaignDomainService { } } } - + /*private abstract class Task implements Runnable { - + protected final FineractPlatformTenant tenant; - + protected final String reportName ; - + private final Object entity ; - + public Task(final FineractPlatformTenant tenant, final String reportName, final Object entity) { this.tenant = tenant; this.reportName = reportName ; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDropdownReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDropdownReadPlatformServiceImpl.java index 69536f8..524b998 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDropdownReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDropdownReadPlatformServiceImpl.java @@ -49,7 +49,7 @@ public class SmsCampaignDropdownReadPlatformServiceImpl implements SmsCampaignDr private final RestTemplate restTemplate; private final SmsConfigUtils smsConfigUtils ; - + @Autowired public SmsCampaignDropdownReadPlatformServiceImpl(final SmsConfigUtils smsConfigUtils) { this.restTemplate = new RestTemplate(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java index 5e15272..fa05934 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignReadPlatformServiceImpl.java @@ -64,7 +64,7 @@ public class SmsCampaignReadPlatformServiceImpl implements SmsCampaignReadPlatfo @Autowired public SmsCampaignReadPlatformServiceImpl(final RoutingDataSource dataSource, - SmsCampaignDropdownReadPlatformService smsCampaignDropdownReadPlatformService, + SmsCampaignDropdownReadPlatformService smsCampaignDropdownReadPlatformService, final CalendarDropdownReadPlatformService calendarDropdownReadPlatformService) { this.jdbcTemplate = new JdbcTemplate(dataSource); businessRuleMapper = new BusinessRuleMapper(); @@ -193,7 +193,7 @@ public class SmsCampaignReadPlatformServiceImpl implements SmsCampaignReadPlatfo return smsBusinessRulesDataList; } } - + private static final class SmsCampaignMapper implements RowMapper { final String schema; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformService.java index b045a93..2050050 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformService.java @@ -53,7 +53,7 @@ public interface SmsCampaignWritePlatformService { public void storeTemplateMessageIntoSmsOutBoundTable() throws JobExecutionException; public void insertDirectCampaignIntoSmsOutboundTable(final Client client, final SmsCampaign smsCampaign) ; - + public void insertDirectCampaignIntoSmsOutboundTable(final SavingsAccount savingsAccount, final SmsCampaign smsCampaign) ; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformServiceJpaImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformServiceJpaImpl.java index 96a0db3..ffe52eb 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformServiceJpaImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignWritePlatformServiceJpaImpl.java @@ -113,7 +113,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP private final DeviceRegistrationRepositoryWrapper deviceRegistrationRepository; private final SmsMessageScheduledJobService smsMessageScheduledJobService; - + @Autowired public SmsCampaignWritePlatformServiceJpaImpl(final PlatformSecurityContext context, final SmsCampaignRepository smsCampaignRepository, final SmsCampaignValidator smsCampaignValidator, final ReportRepository reportRepository, @@ -260,7 +260,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP HashMap campaignParams = new ObjectMapper().readValue(smsCampaign.getParamValue(), new TypeReference>() {}); campaignParams.put("loanId", loan.getId().toString()); - + HashMap queryParamForRunReport = new ObjectMapper().readValue(smsCampaign.getParamValue(), new TypeReference>() {}); queryParamForRunReport.put("loanId", loan.getId().toString()); @@ -277,7 +277,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP for (Client client : clientSet) { campaignParams.put("clientId", client.getId().toString()); queryParamForRunReport.put("clientId", client.getId().toString()); - + List> runReportObject = this.getRunReportByServiceImpl(campaignParams.get("reportName"), queryParamForRunReport); @@ -285,7 +285,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP for (HashMap entry : runReportObject) { String textMessage = this.compileSmsTemplate(smsCampaign.getMessage(), smsCampaign.getCampaignName(), entry); Object mobileNo = entry.get("mobileNo"); - + if (this.smsCampaignValidator.isValidNotificationOrSms(client, smsCampaign, mobileNo)) { String mobileNumber = null; if(mobileNo != null){ @@ -319,10 +319,10 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP campaignParams.put("clientId", client.getId().toString()); HashMap queryParamForRunReport = new ObjectMapper().readValue(smsCampaign.getParamValue(), new TypeReference>() {}); - + campaignParams.put("clientId", client.getId().toString()); queryParamForRunReport.put("clientId", client.getId().toString()); - + List> runReportObject = this .getRunReportByServiceImpl(campaignParams.get("reportName"), queryParamForRunReport); @@ -355,7 +355,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP logger.error(e.getMessage()) ; } } - + @Override public void insertDirectCampaignIntoSmsOutboundTable(final SavingsAccount savingsAccount, final SmsCampaign smsCampaign) { try { @@ -365,7 +365,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP HashMap queryParamForRunReport = new ObjectMapper().readValue(smsCampaign.getParamValue(), new TypeReference>() {}); queryParamForRunReport.put("savingsId", savingsAccount.getId().toString()); - + Client client = savingsAccount.getClient() ; List> runReportObject = this .getRunReportByServiceImpl(campaignParams.get("reportName"), queryParamForRunReport); @@ -399,7 +399,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP logger.error(e.getMessage()) ; } } - + private void updateTriggerDates(Long campaignId) { final SmsCampaign smsCampaign = this.smsCampaignRepository.findById(campaignId) .orElseThrow(() -> new SmsCampaignNotFound(campaignId)); @@ -687,7 +687,7 @@ public class SmsCampaignWritePlatformServiceJpaImpl implements SmsCampaignWriteP } return today; } - + // private String formatDestinationPhoneNumber(String phoneNumber, String countryCallingCode) { // StringBuilder formatedPhoneNumber = new StringBuilder("+"); // diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/CodeConstants.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/CodeConstants.java index 182c4d8..e117294 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/CodeConstants.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/CodeConstants.java @@ -28,7 +28,7 @@ public class CodeConstants { * value ***/ public static enum CODEVALUE_JSON_INPUT_PARAMS { - CODEVALUE_ID("id"), NAME("name"), POSITION("position"), DESCRIPTION("description"), IS_ACTIVE("isActive"), + CODEVALUE_ID("id"), NAME("name"), POSITION("position"), DESCRIPTION("description"), IS_ACTIVE("isActive"), IS_MANDATORY("isMandatory"); private final String value; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodeValuesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/codes/api/CodeValuesApiResource.java index b7e03a5..0beced3 100644 ... 26250 lines suppressed ...