profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/thesmallstar/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Manthan Surkar thesmallstar Razorpay Indian Institute of Information Technology, Allahabad http://www.truetricks.com GSoC'21 mentor, GSoC'20 @apache | Former Overall Coordinator @GeekHaven

Cynthesize/cynthesize-frontend 65

Frontend written in JS and deployed GraphQL for Cynthesize. Development build: https://cynthesize-develop.netlify.com

harchani-ritik/Rakshak 6

Project for SIH internals IIITA.

MiKinshu/SIH2020_PJ240_BitsPlease_RAKSHAK_COEP 2

This is our entry for the SIH finals for the Nodal centre COEP Pune.

abhiandthetruth/DigiKaksha 1

A digital classroom

thesmallstar/Blockchain-NodeJs 1

Blockchain-NodeJs

thesmallstar/CheckMate 1

checking automatiion

push eventapache/fineract

Renovate Bot

commit sha 8e0c9276545ba7bdb86096d57ec715ee7cf455f7

chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9

view details

Manthan Surkar

commit sha 83aec2fafb8b840f0f860ff574a82546914c400a

Merge pull request #1853 from renovate-bot/renovate/com.puppycrawl.tools-checkstyle-9.x chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9

view details

push time in 21 days

PR merged apache/fineract

chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9 renovate

WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
com.puppycrawl.tools:checkstyle (source) 8.45.1 -> 9.0 age adoption passing confidence

Configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.

This PR has been generated by WhiteSource Renovate. View repository job log here.

+1 -1

1 comment

1 changed file

renovate-bot

pr closed time in 21 days

pull request commentapache/fineract

chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9

Tests green, merging.

renovate-bot

comment created time in 21 days

push eventapache/fineract

Renovate Bot

commit sha 2220f14b9c231b3b13c207c73ff55a2778c3b3f2

chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.61

view details

Manthan Surkar

commit sha 8d6f6eecd24454db4f682217a493d0f5e2a1e81b

Merge pull request #1854 from renovate-bot/renovate/aws-java-sdk-monorepo chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.61

view details

push time in 21 days

PR merged apache/fineract

chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.61 renovate

WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
com.amazonaws:aws-java-sdk-s3 (source) 1.12.40 -> 1.12.61 age adoption passing confidence

Release Notes

<details> <summary>aws/aws-sdk-java</summary>

v1.12.61

Compare Source

AWS Certificate Manager Private Certificate Authority

  • Features

    • Private Certificate Authority Service now allows customers to enable an online certificate status protocol (OCSP) responder service on their private certificate authorities. Customers can also optionally configure a custom CNAME for their OCSP responder.

AWS S3 Control

  • Features

    • S3 Multi-Region Access Points provide a single global endpoint to access a data set that spans multiple S3 buckets in different AWS Regions.

AWS SecurityHub

  • Features

    • New ASFF Resources: AwsAutoScalingLaunchConfiguration, AwsEc2VpnConnection, AwsEcrContainerImage. Added KeyRotationStatus to AwsKmsKey. Added AccessControlList, BucketLoggingConfiguration,BucketNotificationConfiguration and BucketNotificationConfiguration to AwsS3Bucket.

AWS Transfer Family

  • Features

    • AWS Transfer Family introduces Managed Workflows for creating, executing, monitoring, and standardizing post file transfer processing

Access Analyzer

  • Features

    • Updates service API, documentation, and paginators to support multi-region access points from Amazon S3.

Amazon Elastic Block Store

  • Features

    • Documentation updates for Amazon EBS direct APIs.

Amazon Elastic File System

  • Features

    • Adds support for EFS Intelligent-Tiering, which uses EFS Lifecycle Management to monitor file access patterns and is designed to automatically transition files to and from your corresponding Infrequent Access (IA) storage classes.

Amazon FSx

  • Features

    • Announcing Amazon FSx for NetApp ONTAP, a new service that provides fully managed shared storage in the AWS Cloud with the data access and management capabilities of ONTAP.

Amazon Lex Model Building Service

  • Features

    • Lex now supports Korean (ko-KR) locale.

Amazon QuickSight

  • Features

    • This release adds support for referencing parent datasets as sources in a child dataset.

Amazon S3

  • Features

    • Adds a warning message that multi-region access point ARNs are not supported for AWS Java SDK v1

Schemas

  • Features

    • This update include the support for Schema Discoverer to discover the events sent to the bus from another account. The feature will be enabled by default when discoverer is created or updated but can also be opt-in or opt-out by specifying the value for crossAccount.

v1.12.60

Compare Source

AWS CloudTrail

  • Features

    • Documentation updates for CloudTrail

AWS Config

  • Features

    • Documentation updates for config

AWS MediaTailor

  • Features

    • This release adds support for wall clock programs in LINEAR channels.

AWS Service Catalog App Registry

  • Features

    • Introduction of GetAssociatedResource API and GetApplication response extension for Resource Groups support.

Amazon Elastic Compute Cloud

  • Features

    • Added LaunchTemplate support for the IMDS IPv6 endpoint

v1.12.59

Compare Source

AWS Compute Optimizer

  • Features

    • Documentation updates for Compute Optimizer

AWS DynamoDB Document

  • Bugfixes

    • Switches filterexpression and projectionexpression arguments in two Index query() methods so that underlying implementation gets expected arguments

AWS IoT

  • Features

    • Added Create/Update/Delete/Describe/List APIs for a new IoT resource named FleetMetric. Added a new Fleet Indexing query API named GetBucketsAggregation. Added a new field named DisconnectedReason in Fleet Indexing query response. Updated their related documentations.

Amazon MemoryDB

  • Features

    • Documentation updates for MemoryDB

Amazon Polly

  • Features

    • Amazon Polly adds new South African English voice - Ayanda. Ayanda is available as Neural voice only.

Amazon Simple Queue Service

  • Features

    • Amazon SQS adds a new queue attribute, RedriveAllowPolicy, which includes the dead-letter queue redrive permission parameters. It defines which source queues can specify dead-letter queues as a JSON object.

v1.12.58

Compare Source

AWS CloudFormation

  • Features

    • AWS CloudFormation allows you to iteratively develop your applications when failures are encountered without rolling back successfully provisioned resources. By specifying stack failure options, you can troubleshoot resources in a CREATE_FAILED or UPDATE_FAILED status.

AWS CodeBuild

  • Features

    • Documentation updates for CodeBuild

AWS Key Management Service

  • Features

    • This release has changes to KMS nomenclature to remove the word master from both the "Customer master key" and "CMK" abbreviation and replace those naming conventions with "KMS key".

Amazon Kinesis Firehose

  • Features

    • This release adds the Dynamic Partitioning feature to Kinesis Data Firehose service for S3 destinations.

v1.12.57

Compare Source

Amazon EMR

  • Features

    • Amazon EMR now supports auto-terminating idle EMR clusters. You can specify the idle timeout value when enabling auto-termination for both running and new clusters and Amazon EMR automatically terminates the cluster when idle timeout kicks in.

Amazon Elastic Compute Cloud

  • Features

    • This release adds the BootMode flag to the ImportImage API and showing the detected BootMode of an ImportImage task.

Amazon Simple Storage Service

  • Features

    • Documentation updates for Amazon S3.

v1.12.56

Compare Source

AWS Compute Optimizer

  • Features

    • Adds support for 1) the AWS Graviton (AWS_ARM64) recommendation preference for Amazon EC2 instance and Auto Scaling group recommendations, and 2) the ability to get the enrollment statuses for all member accounts of an organization.

Amazon Elastic Compute Cloud

  • Features

    • Support added for resizing VPC prefix lists

Amazon Rekognition

  • Features

    • This release added new attributes to Rekognition RecognizeCelebities and GetCelebrityInfo API operations.

Amazon Transcribe Service

  • Features

    • This release adds support for batch transcription in six new languages - Afrikaans, Danish, Mandarin Chinese (Taiwan), New Zealand English, South African English, and Thai.

v1.12.55

Compare Source

AWS DataSync

  • Features

    • Added include filters to CreateTask and UpdateTask, and added exclude filters to StartTaskExecution, giving customers more granular control over how DataSync transfers files, folders, and objects.

Amazon CloudWatch Events

  • Features

    • AWS CWEvents adds an enum of EXTERNAL for EcsParameters LaunchType for PutTargets API

Amazon Elastic Compute Cloud

  • Features

    • Support added for IMDS IPv6 endpoint

Amazon EventBridge

  • Features

    • AWS EventBridge adds an enum of EXTERNAL for EcsParameters LaunchType for PutTargets API

Firewall Management Service

  • Features

    • AWS Firewall Manager now supports triggering resource cleanup workflow when account or resource goes out of policy scope for AWS WAF, Security group, AWS Network Firewall, and Amazon Route 53 Resolver DNS Firewall policies.

v1.12.54

Compare Source

AWS Elemental MediaConvert

  • Features

    • AWS Elemental MediaConvert SDK has added MBAFF encoding support for AVC video and the ability to pass encryption context from the job settings to S3.

AWS IoT Data Plane

  • Features

    • Updated Publish with support for new Retain flag and added two new API operations: GetRetainedMessage, ListRetainedMessages.

Amazon Polly

  • Features

    • Amazon Polly adds new New Zealand English voice - Aria. Aria is available as Neural voice only.

Amazon Simple Systems Manager (SSM)

  • Features

    • Updated Parameter Store property for logging improvements.

Amazon Transcribe Service

  • Features

    • This release adds support for feature tagging with Amazon Transcribe batch jobs.

v1.12.53

Compare Source

AWS Backup

  • Features

    • AWS Backup - Features: Evaluate your backup activity and generate audit reports.

AWS Database Migration Service

  • Features

    • Amazon AWS DMS service now support Redis target endpoint migration. Now S3 endpoint setting is capable to setup features which are used to be configurable only in extract connection attributes.

AWS Glue

  • Features

    • Add support for Custom Blueprints

AWS IoT SiteWise

  • Features

    • Documentation updates for AWS IoT SiteWise

Amazon API Gateway

  • Features

    • Adding some of the pending releases (1) Adding WAF Filter to GatewayResponseType enum (2) Ensuring consistent error model for all operations (3) Add missing BRE to GetVpcLink operation

Amazon Data Lifecycle Manager

  • Features

    • Added AMI deprecation support for Amazon Data Lifecycle Manager EBS-backed AMI policies.

Amazon Fraud Detector

  • Features

    • Updated an element of the DescribeModelVersion API response (LogitMetrics -> logOddsMetrics) for clarity. Added new exceptions to several APIs to protect against unlikely scenarios.

v1.12.52

Compare Source

AWS RoboMaker

  • Features

    • Documentation updates for RoboMaker

Amazon Comprehend

  • Features

    • Add tagging support for Comprehend async inference job.

Amazon Elastic Compute Cloud

  • Features

    • encryptionInTransitSupported added to DescribeInstanceTypes API

Amazon Elastic Kubernetes Service

  • Features

    • Adds support for EKS add-ons "preserve" flag, which allows customers to maintain software on their EKS clusters after removing it from EKS add-ons management.

v1.12.51

Compare Source

Amazon Appflow

  • Features

    • This release adds support for SAPOData connector and extends Veeva connector for document extraction.

Amazon Elastic Compute Cloud

  • Features

    • The ImportImage API now supports the ability to create AMIs with AWS-managed licenses for Microsoft SQL Server for both Windows and Linux.

Amazon MemoryDB

  • Features

    • AWS MemoryDB SDK now supports all APIs for newly launched MemoryDB service.

Application Auto Scaling

  • Features

    • This release extends Application Auto Scaling support for replication group of Amazon ElastiCache Redis clusters. Auto Scaling monitors and automatically expands node group count and number of replicas per node group when a critical usage threshold is met or according to customer-defined schedule.

v1.12.50

Compare Source

AWS CodeBuild

  • Features

    • CodeBuild now allows you to make the build results for your build projects available to the public without requiring access to an AWS account.

Amazon Route 53

  • Features

    • Documentation updates for route53

Amazon Route 53 Resolver

  • Features

    • Documentation updates for Route 53 Resolver

Amazon SageMaker Runtime

  • Features

    • Amazon SageMaker Runtime now supports InvokeEndpointAsync to asynchronously invoke endpoints that were created with the AsyncInferenceConfig object in the EndpointConfig. Asynchronous invocations support larger payload sizes in Amazon S3 and longer processing times.

Amazon SageMaker Service

  • Features

    • Amazon SageMaker now supports Asynchronous Inference endpoints. Adds PlatformIdentifier field that allows Notebook Instance creation with different platform selections. Increases the maximum number of containers in multi-container endpoints to 15. Adds more instance types to InstanceType field.

v1.12.49

Compare Source

AWS Cloud9

  • Features

    • Added DryRun parameter to CreateEnvironmentEC2 API. Added ManagedCredentialsActions parameter to UpdateEnvironment API

AWS Cost Explorer Service

  • Features

    • This release is a new feature for Cost Categories: Split charge rules. Split charge rules enable you to allocate shared costs between your cost category values.

Amazon CloudDirectory

  • Features

    • Documentation updates for clouddirectory

Amazon CloudWatch Logs

  • Features

    • Documentation-only update for CloudWatch Logs

Amazon Elastic Compute Cloud

  • Features

    • This release adds support for EC2 ED25519 key pairs for authentication

v1.12.48

Compare Source

AWS CodeBuild

  • Features

    • CodeBuild now allows you to select how batch build statuses are sent to the source provider for a project.

AWS Config

  • Features

    • Update ResourceType enum with values for Backup Plan, Selection, Vault, RecoveryPoint; ECS Cluster, Service, TaskDefinition; EFS AccessPoint, FileSystem; EKS Cluster; ECR Repository resources

AWS Directory Service

  • Features

    • This release adds support for describing client authentication settings.

AWS IoT SiteWise

  • Features

    • AWS IoT SiteWise added query window for the interpolation interval. AWS IoT SiteWise computes each interpolated value by using data points from the timestamp of each interval minus the window to the timestamp of each interval plus the window.

AWS License Manager

  • Features

    • AWS License Manager now allows end users to call CheckoutLicense API using new CheckoutType PERPETUAL. Perpetual checkouts allow sellers to check out a quantity of entitlements to be drawn down for consumption.

Amazon Simple Storage Service

  • Features

    • Documentation updates for Amazon S3

v1.12.47

Compare Source

Amazon Connect Customer Profiles

  • Features

    • This release introduces Standard Profile Objects, namely Asset and Case which contain values populated by data from third party systems and belong to a specific profile. This release adds an optional parameter, ObjectFilter to the ListProfileObjects API in order to search for these Standard Objects.

Amazon EMR

  • Features

    • Amazon EMR customers can now specify custom AMIs at the instance level in their clusters. This allows using custom AMIs in clusters that have instances with different instruction set architectures, e.g. m5.xlarge (x86) and m6g.xlarge (ARM).

Amazon ElastiCache

  • Features

    • This release adds ReplicationGroupCreateTime field to ReplicationGroup which indicates the UTC time when ElastiCache ReplicationGroup is created

Amazon QuickSight

  • Features

    • Documentation updates for QuickSight.

v1.12.46

Compare Source

AWS Glue DataBrew

  • Features

    • This SDK release adds support for the output of a recipe job results to Tableau Hyper format.

AWS Lambda

  • Features

    • Lambda Python 3.9 runtime launch

Amazon API Gateway

  • Features

    • Adding support for ACM imported or private CA certificates for mTLS enabled domain names

Amazon SageMaker Service

  • Features

    • Amazon SageMaker Autopilot adds new metrics for all candidate models generated by Autopilot experiments.

AmazonApiGatewayV2

  • Features

    • Adding support for ACM imported or private CA certificates for mTLS enabled domain names

v1.12.45

Compare Source

AWS CodeBuild

  • Features

    • CodeBuild now allows you to make the build results for your build projects available to the public without requiring access to an AWS account.

AWS SDK for Java

  • Bugfixes

    • Use full jitter and update base delay for STANDARD retry mode defaults

AWS Snow Device Management

  • Features

    • AWS Snow Family customers can remotely monitor and operate their connected AWS Snowcone devices.

Amazon EC2 Container Service

  • Features

    • Documentation updates for ECS.

Amazon Elastic Block Store

  • Features

    • Documentation updates for Amazon EBS direct APIs.

Amazon Route 53

  • Features

    • Documentation updates for route53

AmazonNimbleStudio

  • Features

    • Add new attribute 'ownedBy' in Streaming Session APIs. 'ownedBy' represents the AWS SSO Identity Store User ID of the owner of the Streaming Session resource.

v1.12.44

Compare Source

Amazon Chime

  • Features

    • Add support for "auto" in Region field of StartMeetingTranscription API request.

v1.12.43

Compare Source

AWS WAFV2

  • Features

    • This release adds APIs to support versioning feature of AWS WAF Managed rule groups

Amazon Rekognition

  • Features

    • This release adds support for four new types of segments (opening credits, content segments, slates, and studio logos), improved accuracy for credits and shot detection and new filters to control black frame detection.

Amazon Simple Systems Manager (SSM)

  • Features

    • Documentation updates for AWS Systems Manager.

v1.12.42

Compare Source

Amazon Athena

  • Features

    • Documentation updates for Athena.

Amazon Chime SDK Identity

  • Features

    • The Amazon Chime SDK Identity APIs allow software developers to create and manage unique instances of their messaging applications.

Amazon Chime SDK Messaging

  • Features

    • The Amazon Chime SDK Messaging APIs allow software developers to send and receive messages in custom messaging applications.

Amazon Connect Service

  • Features

    • This release adds support for agent status and hours of operation. For details, see the Release Notes in the Amazon Connect Administrator Guide.

Amazon Lightsail

  • Features

    • This release adds support to track when a bucket access key was last used.

Synthetics

  • Features

    • Documentation updates for Visual Monitoring feature and other doc ticket fixes.

v1.12.41

Compare Source

Amazon Lex Model Building V2

  • Features

    • Customers can now toggle the active field on prompts and responses.

Auto Scaling

  • Features

    • EC2 Auto Scaling adds configuration checks and Launch Template validation to Instance Refresh.

</details>


Configuration

📅 Schedule: "monthly" (UTC).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.

This PR has been generated by WhiteSource Renovate. View repository job log here.

+1 -1

1 comment

1 changed file

renovate-bot

pr closed time in 21 days

pull request commentapache/fineract

chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.61

Tests green, merging.

renovate-bot

comment created time in 21 days

push eventapache/fineract

BLasan

commit sha 141108ec8747cb5f3ad359af4d3aa3082f21e8ed

Feat: Collateral Module

view details

Manthan Surkar

commit sha fc0dff93a163d769808d6bfb9790df3357bc9d79

Merge pull request #1770 from BLasan/collateral-module Feat: Collateral module

view details

push time in 21 days

PR merged apache/fineract

Reviewers
Feat: Collateral module

Description

See Issue-1357

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • [x] Write the commit message as per https://github.com/apache/fineract/#pull-requests

  • [x] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

  • [x] Create/update unit or integration tests for verifying the changes made.

  • [x] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

  • [x] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

  • [x] Submission is not a "code dump". (Large changes can be made "in repository" via a branch. Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

+5787 -332

14 comments

113 changed files

BLasan

pr closed time in 21 days

pull request commentapache/fineract

Feat: Collateral module

@ptuomola @xurror @luckyman20 @awasum Giving another day to this, just in case you have any suggestions. WIll merge tomorrow.

Thanks, everyone for the review, merging this now.

BLasan

comment created time in 21 days

pull request commentapache/fineract

Feat: Collateral module

@ptuomola @xurror @luckyman20 @awasum Giving another day to this, just in case you have any suggestions. WIll merge tomorrow.

BLasan

comment created time in 23 days

PullRequestReviewEvent

pull request commentapache/fineract

Feat: Collateral module

@bharathc27 has approved this change, we also have swagger API notations added. The PR consists of integration tests and unit test cases. Can you please help with the review? @awasum @ptuomola @xurror

Got this PR overviewed by @xurror, since this is a large PR, will wait for a day more to merge this. Please add any inputs if you have any @awasum @ptuomola @vorburger I Will merge this tomorrow if not issues, thanks for all reviewers :D

BLasan

comment created time in 25 days

Pull request review commentapache/fineract

Feat: Collateral module

+/**+ * Licensed to the Apache Software Foundation (ASF) under one+ * or more contributor license agreements. See the NOTICE file+ * distributed with this work for additional information+ * regarding copyright ownership. The ASF licenses this file+ * to you under the Apache License, Version 2.0 (the+ * "License"); you may not use this file except in compliance+ * with the License. You may obtain a copy of the License at+ *+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Unless required by applicable law or agreed to in writing,+ * software distributed under the License is distributed on an+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY+ * KIND, either express or implied. See the License for the+ * specific language governing permissions and limitations+ * under the License.+ */+package org.apache.fineract.portfolio.collateralmanagement.service;++import com.google.gson.JsonElement;+import java.math.BigDecimal;+import java.util.ArrayList;+import java.util.List;+import org.apache.fineract.infrastructure.core.api.JsonCommand;+import org.apache.fineract.infrastructure.core.data.ApiParameterError;+import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;+import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;+import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;+import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;+import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;+import org.apache.fineract.organisation.monetary.domain.ApplicationCurrency;+import org.apache.fineract.organisation.monetary.domain.ApplicationCurrencyRepository;+import org.apache.fineract.portfolio.collateralmanagement.api.CollateralAPIConstants;+import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement;+import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain;+import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementRepositoryWrapper;+import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralCannotBeDeletedException;+import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralNotFoundException;+import org.springframework.beans.factory.annotation.Autowired;+import org.springframework.stereotype.Service;+import org.springframework.transaction.annotation.Transactional;++@Service+public class CollateralManagementWritePlatformServiceImpl implements CollateralManagementWritePlatformService {++    private final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper;+    private final ApplicationCurrencyRepository applicationCurrencyRepository;+    private final FromJsonHelper fromApiJsonHelper;++    @Autowired+    public CollateralManagementWritePlatformServiceImpl(final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper,+            final ApplicationCurrencyRepository applicationCurrencyRepository, final FromJsonHelper fromApiJsonHelper) {+        this.collateralManagementRepositoryWrapper = collateralManagementRepositoryWrapper;+        this.applicationCurrencyRepository = applicationCurrencyRepository;+        this.fromApiJsonHelper = fromApiJsonHelper;+    }++    @Transactional+    @Override+    public CommandProcessingResult createCollateral(final JsonCommand jsonCommand) {++        /**+         * TODO: Authenticate User+         */+        validateForCreation(jsonCommand);+        final String currencyParamName = jsonCommand+                .stringValueOfParameterNamed(CollateralAPIConstants.CollateralManagementJSONInputParams.CURRENCY.getValue());+        final ApplicationCurrency applicationCurrency = this.applicationCurrencyRepository.findOneByCode(currencyParamName);++        /**+         * TODO: Check if application currency is empty.+         */

check this two todos

BLasan

comment created time in a month

PullRequestReviewEvent

Pull request review commentapache/fineract

Feat: Collateral module

 public LoanTransaction makeRepayment(final Loan loan, final CommandProcessingRes                 isRecoveryRepayment, isAccountTransfer, holidayDetailDto, isHolidayValidationDone, false);     } +    @Transactional+    @Override+    public void updateLoanCollateralTransaction(Set<LoanCollateralManagement> loanCollateralManagementSet) {+        this.loanCollateralManagementRepository.saveAll(loanCollateralManagementSet);+    }++    @Transactional+    @Override+    public void updateLoanCollateralStatus(Set<LoanCollateralManagement> loanCollateralManagementSet, Integer isReleased) {+        for (LoanCollateralManagement loanCollateralManagement : loanCollateralManagementSet) {+            loanCollateralManagement.setIsReleased(isReleased);+        }+        this.loanCollateralManagementRepository.saveAll(loanCollateralManagementSet);+    }++    // @Override+    // public BigDecimal getTotalQuantity(Loan loan) {+    // return this.loanCollateralManagementRepository.getTotalQuantity(loan);+    // }

?

BLasan

comment created time in a month

PullRequestReviewEvent

Pull request review commentapache/fineract

Feat: Collateral module

 public void makeRefund(final LoanTransaction loanTransaction, final LoanLifecycl             final String errorMessage = "Transfer funds is allowed only for loan accounts with overpaid status ";             throw new InvalidLoanStateTransitionException("transaction", "is.not.a.overpaid.loan", errorMessage);         }++        // // Update the transaction in loan collateral module.+        // Set<LoanCollateralManagement> loanCollateralManagements =+        // loanTransaction.getLoan().getLoanCollateralManagements();+        // for (LoanCollateralManagement loanCollateralManagement: loanCollateralManagements) {+        // loanCollateralManagement.setLoanTransactionData(loanTransaction);+        // }+

?

BLasan

comment created time in a month

PullRequestReviewEvent

Pull request review commentapache/fineract

Feat: Collateral module

 private Loan(final String accountNo, final Client client, final Group group, fin             this.charges = null;             this.summary = new LoanSummary();         }-        if (collateral != null && !collateral.isEmpty()) {-            this.collateral = associateWithThisLoan(collateral);++        /**+         * TODO: Apply for group loan creation.+         */

?

BLasan

comment created time in a month

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentapache/fineract

Feat: Collateral module

 public void validateForCreate(final String json, final boolean isMeetingMandator             }         } -        // collateral-        final String collateralParameterName = "collateral";-        if (element.isJsonObject() && this.fromApiJsonHelper.parameterExists(collateralParameterName, element)) {-            final JsonObject topLevelJsonElement = element.getAsJsonObject();-            final Locale locale = this.fromApiJsonHelper.extractLocaleParameter(topLevelJsonElement);-            if (topLevelJsonElement.get("collateral").isJsonArray()) {--                final Type collateralParameterTypeOfMap = new TypeToken<Map<String, Object>>() {}.getType();-                final Set<String> supportedParameters = new HashSet<>(Arrays.asList("id", "type", "value", "description"));-                final JsonArray array = topLevelJsonElement.get("collateral").getAsJsonArray();-                for (int i = 1; i <= array.size(); i++) {-                    final JsonObject collateralItemElement = array.get(i - 1).getAsJsonObject();--                    final String collateralJson = this.fromApiJsonHelper.toJson(collateralItemElement);-                    this.fromApiJsonHelper.checkForUnsupportedParameters(collateralParameterTypeOfMap, collateralJson, supportedParameters);--                    final Long collateralTypeId = this.fromApiJsonHelper.extractLongNamed("type", collateralItemElement);-                    baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("type", i).value(collateralTypeId).notNull()-                            .integerGreaterThanZero();+        // // collateral+        // final String collateralParameterName = "collateral";+        // if (element.isJsonObject() && this.fromApiJsonHelper.parameterExists(collateralParameterName, element)) {+        // final JsonObject topLevelJsonElement = element.getAsJsonObject();+        // final Locale locale = this.fromApiJsonHelper.extractLocaleParameter(topLevelJsonElement);+        // if (topLevelJsonElement.get("collateral").isJsonArray()) {+        //+        // final Type collateralParameterTypeOfMap = new TypeToken<Map<String, Object>>() {}.getType();+        // final Set<String> supportedParameters = new HashSet<>(Arrays.asList("id", "type", "value", "description"));+        // final JsonArray array = topLevelJsonElement.get("collateral").getAsJsonArray();+        // for (int i = 1; i <= array.size(); i++) {+        // final JsonObject collateralItemElement = array.get(i - 1).getAsJsonObject();+        //+        // final String collateralJson = this.fromApiJsonHelper.toJson(collateralItemElement);+        // this.fromApiJsonHelper.checkForUnsupportedParameters(collateralParameterTypeOfMap, collateralJson,+        // supportedParameters);+        //+        // final Long collateralTypeId = this.fromApiJsonHelper.extractLongNamed("type", collateralItemElement);+        // baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("type",+        // i).value(collateralTypeId).notNull()+        // .integerGreaterThanZero();+        //+        // final BigDecimal collateralValue = this.fromApiJsonHelper.extractBigDecimalNamed("value",+        // collateralItemElement,+        // locale);+        // baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("value", i).value(collateralValue)+        // .ignoreIfNull().positiveAmount();+        //+        // final String description = this.fromApiJsonHelper.extractStringNamed("description", collateralItemElement);+        // baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("description",+        // i).value(description).notBlank()+        // .notExceedingLengthOf(500);+        //+        // }+        // } else {+        // baseDataValidator.reset().parameter(collateralParameterName).expectedArrayButIsNot();+        // }+        // } -                    final BigDecimal collateralValue = this.fromApiJsonHelper.extractBigDecimalNamed("value", collateralItemElement,-                            locale);-                    baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("value", i).value(collateralValue)-                            .ignoreIfNull().positiveAmount();+        /**+         * TODO: Add collaterals for group loan accounts. FOr now it's only applicable for individual accounts.+         * (loanType.isJLG() || loanType.isGLIM())+         */ 

?

BLasan

comment created time in a month

Pull request review commentapache/fineract

Feat: Collateral module

 public void validateForModify(final String json, final LoanProduct loanProduct,             }         } -        // collateral-        final String collateralParameterName = "collateral";-        if (element.isJsonObject() && this.fromApiJsonHelper.parameterExists(collateralParameterName, element)) {-            final JsonObject topLevelJsonElement = element.getAsJsonObject();-            final Locale locale = this.fromApiJsonHelper.extractLocaleParameter(topLevelJsonElement);-            if (topLevelJsonElement.get("collateral").isJsonArray()) {--                final Type collateralParameterTypeOfMap = new TypeToken<Map<String, Object>>() {}.getType();-                final Set<String> supportedParameters = new HashSet<>(Arrays.asList("id", "type", "value", "description"));-                final JsonArray array = topLevelJsonElement.get("collateral").getAsJsonArray();-                for (int i = 1; i <= array.size(); i++) {-                    final JsonObject collateralItemElement = array.get(i - 1).getAsJsonObject();--                    final String collateralJson = this.fromApiJsonHelper.toJson(collateralItemElement);-                    this.fromApiJsonHelper.checkForUnsupportedParameters(collateralParameterTypeOfMap, collateralJson, supportedParameters);--                    final Long collateralTypeId = this.fromApiJsonHelper.extractLongNamed("type", collateralItemElement);-                    baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("type", i).value(collateralTypeId).notNull()-                            .integerGreaterThanZero();--                    final BigDecimal collateralValue = this.fromApiJsonHelper.extractBigDecimalNamed("value", collateralItemElement,-                            locale);-                    baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("value", i).value(collateralValue)-                            .ignoreIfNull().positiveAmount();+        final String loanTypeParameterName = "loanType";+        final String loanTypeStr = this.fromApiJsonHelper.extractStringNamed(loanTypeParameterName, element);+        baseDataValidator.reset().parameter(loanTypeParameterName).value(loanTypeStr).notNull(); -                    final String description = this.fromApiJsonHelper.extractStringNamed("description", collateralItemElement);-                    baseDataValidator.reset().parameter("collateral").parameterAtIndexArray("description", i).value(description).notBlank()-                            .notExceedingLengthOf(500);+        if (!StringUtils.isBlank(loanTypeStr)) {+            final AccountType loanType = AccountType.fromName(loanTypeStr);+            baseDataValidator.reset().parameter(loanTypeParameterName).value(loanType.getValue()).inMinMaxRange(1, 4); +            /**+             * TODO: Allow for other loan account types.+             */

what about this todo?

BLasan

comment created time in a month

PullRequestReviewEvent

Pull request review commentapache/fineract

Feat: Collateral module

 private Loan assembleApplication(final JsonElement element, final Long clientId,                         loanProduct.maxTrancheCount(), disbursementDetails.size());             }         }-        final Set<LoanCollateral> collateral = this.loanCollateralAssembler.fromParsedJson(element);++        final String loanTypeParameterName = "loanType";+        final String loanTypeStr = this.fromApiJsonHelper.extractStringNamed(loanTypeParameterName, element);+        final EnumOptionData loanType = AccountEnumerations.loanType(loanTypeStr);+        Set<LoanCollateralManagement> collateral = new HashSet<>();++        if (!StringUtils.isBlank(loanTypeStr)) {+            final AccountType loanAccountType = AccountType.fromName(loanTypeStr);++            if (loanAccountType.isIndividualAccount()) {+                collateral = this.collateralAssembler.fromParsedJson(element);++                if (collateral.size() == 0) {+                    throw new InvalidAmountOfCollaterals(BigDecimal.ZERO);+                }++                BigDecimal totalValue = BigDecimal.ZERO;+                for (LoanCollateralManagement collateralManagement : collateral) {+                    final CollateralManagementDomain collateralManagementDomain = collateralManagement.getClientCollateralManagement()+                            .getCollaterals();+                    BigDecimal totalCollateral = collateralManagement.getQuantity().multiply(collateralManagementDomain.getBasePrice())+                            .multiply(collateralManagementDomain.getPctToBase()).divide(BigDecimal.valueOf(100));+                    totalValue = totalValue.add(totalCollateral);+                }++                if (amount.compareTo(totalValue) > 0) {+                    throw new InvalidAmountOfCollaterals(totalValue);+                }+            }+        }++        // final Set<LoanCollateral> collateral = this.loanCollateralAssembler.fromParsedJson(element);

?

BLasan

comment created time in a month

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentapache/fineract

Feat: Collateral module

 public CommandProcessingResult modifyApplication(final Long loanId, final JsonCo                 existingLoanApplication.updateTransactionProcessingStrategy(strategy);             } -            final String collateralParamName = "collateral";-            if (changes.containsKey(collateralParamName)) {-                final Set<LoanCollateral> loanCollateral = this.loanCollateralAssembler.fromParsedJson(command.parsedJson());-                existingLoanApplication.updateLoanCollateral(loanCollateral);+            /**+             * TODO: Allow other loan types.+             */

is this TODO done?

BLasan

comment created time in a month

Pull request review commentapache/fineract

Feat: Collateral module

 public CommandProcessingResult submitApplication(final JsonCommand command) {             }              this.loanRepositoryWrapper.save(newLoanApplication);+            // BigDecimal totalCollateralValue = new BigDecimal(0);++            /**+             * TODO: Update `m_exchange_loan_collateral` table+             */++            // boolean isUpdatable = isLoanCollateralUpdatable(command);+            //+            // if (isUpdatable) {+            // Set<LoanCollateralManagement> loanCollateralManagementSet = new HashSet<>();+            // Set<ClientCollateralManagement> clientCollateralManagementSet = new HashSet<>();+            //+            // // Extract array of collaterals as a string array+            // String[] collaterals = this.fromJsonHelper.extractArrayNamed("collaterals", command.parsedJson());+            //+            // LoanCollateralManagement loanCollateralManagement = null;+            // BigDecimal quantity = BigDecimal.valueOf(0);+            //+            // for (String collateral : collaterals) {

why is this still here?

BLasan

comment created time in a month

PullRequestReviewEvent