Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,77 +18,50 @@
*/
package org.apache.fineract.portfolio.collectionsheet.data;

import java.util.Collection;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

/**
* Immutable data object for clients with loans due for disbursement or collection.
*/
public final class IndividualClientData {
@Getter
@Setter
@AllArgsConstructor
@Builder
public final class IndividualClientData implements Serializable {

@Serial
private static final long serialVersionUID = 1L;

private final Long clientId;
private final String clientName;
private Collection<LoanDueData> loans;
private Collection<SavingsDueData> savings;
private List<LoanDueData> loans;
private List<SavingsDueData> savings;

public static IndividualClientData instance(final Long clientId, final String clientName) {
final Collection<LoanDueData> loans = null;
final Collection<SavingsDueData> savings = null;
return new IndividualClientData(clientId, clientName, loans, savings);
return new IndividualClientData(clientId, clientName, new ArrayList<>(), new ArrayList<>());
}

public static IndividualClientData withSavings(final IndividualClientData client, final Collection<SavingsDueData> savings) {

public static IndividualClientData withSavings(final IndividualClientData client, final List<SavingsDueData> savings) {
return new IndividualClientData(client.clientId, client.clientName, client.loans, savings);
}

public static IndividualClientData withLoans(final IndividualClientData client, final Collection<LoanDueData> loans) {

public static IndividualClientData withLoans(final IndividualClientData client, final List<LoanDueData> loans) {
return new IndividualClientData(client.clientId, client.clientName, loans, client.savings);
}

/**
* @param clientId
* @param clientName
* @param loans
* @param savings
*/
private IndividualClientData(Long clientId, String clientName, Collection<LoanDueData> loans, Collection<SavingsDueData> savings) {
this.clientId = clientId;
this.clientName = clientName;
this.loans = loans;
this.savings = savings;
}

public Long getClientId() {
return this.clientId;
}

public String getClientName() {
return this.clientName;
}

public Collection<LoanDueData> getLoans() {
return this.loans;
}

public void setLoans(final Collection<LoanDueData> loans) {
this.loans = loans;
}

public void addLoans(LoanDueData loans) {
if (this.loans != null) {
this.loans.add(loans);
}
}

public Collection<SavingsDueData> getSavings() {
return this.savings;
}

public void setSavings(Collection<SavingsDueData> savings) {
this.savings = savings;
}

public void addSavings(SavingsDueData savings) {
if (this.savings != null) {
this.savings.add(savings);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Collection;
import java.util.List;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.fineract.portfolio.paymenttype.data.PaymentTypeData;
Expand All @@ -36,12 +36,7 @@ public final class IndividualCollectionSheetData implements Serializable {
@Serial
private static final long serialVersionUID = 1L;

@SuppressWarnings("unused")
private final LocalDate dueDate;
@SuppressWarnings("unused")
private final Collection<IndividualClientData> clients;

@SuppressWarnings("unused")
private final Collection<PaymentTypeData> paymentTypeOptions;

private final List<IndividualClientData> clients;
private final List<PaymentTypeData> paymentTypeOptions;
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,17 @@
package org.apache.fineract.portfolio.collectionsheet.data;

import java.math.BigDecimal;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import org.apache.fineract.organisation.monetary.data.CurrencyData;

/**
* Immutable data object for extracting flat data for joint liability group's collection sheet.
*/
@Getter
@Setter
@AllArgsConstructor
public class IndividualCollectionSheetLoanFlatData {

private final String clientName;
Expand All @@ -43,85 +49,6 @@ public class IndividualCollectionSheetLoanFlatData {
private BigDecimal feeDue = BigDecimal.ZERO;
private BigDecimal feePaid = BigDecimal.ZERO;

public IndividualCollectionSheetLoanFlatData(final String clientName, final Long clientId, final Long loanId, final String accountId,
final Integer accountStatusId, final String productShortName, final Long productId, final CurrencyData currency,
final BigDecimal disbursementAmount, final BigDecimal principalDue, final BigDecimal principalPaid,
final BigDecimal interestDue, final BigDecimal interestPaid, final BigDecimal chargesDue, final BigDecimal feeDue,
final BigDecimal feePaid) {
this.clientName = clientName;
this.clientId = clientId;
this.loanId = loanId;
this.accountId = accountId;
this.accountStatusId = accountStatusId;
this.productShortName = productShortName;
this.productId = productId;
this.currency = currency;
this.disbursementAmount = disbursementAmount;
this.principalDue = principalDue;
this.principalPaid = principalPaid;
this.interestDue = interestDue;
this.interestPaid = interestPaid;
this.chargesDue = chargesDue;
this.feeDue = feeDue;
this.feePaid = feePaid;
}

public String getClientName() {
return this.clientName;
}

public Long getClientId() {
return this.clientId;
}

public Long getLoanId() {
return this.loanId;
}

public String getAccountId() {
return this.accountId;
}

public Integer getAccountStatusId() {
return this.accountStatusId;
}

public String getProductShortName() {
return this.productShortName;
}

public Long getProductId() {
return this.productId;
}

public CurrencyData getCurrency() {
return this.currency;
}

public BigDecimal getDisbursementAmount() {
return this.disbursementAmount;
}

public BigDecimal getPrincipalDue() {
return this.principalDue;
}

public BigDecimal getPrincipalPaid() {
return this.principalPaid;
}

public BigDecimal getInterestDue() {
return this.interestDue;
}

public BigDecimal getInterestPaid() {
return this.interestPaid;
}

public BigDecimal getChargesDue() {
return this.chargesDue;
}

public LoanDueData getLoanDueData() {
return new LoanDueData(this.loanId, this.accountId, this.accountStatusId, this.productShortName, this.productId, this.currency,
this.disbursementAmount, this.principalDue, this.principalPaid, this.interestDue, this.interestPaid, this.chargesDue,
Expand All @@ -131,13 +58,4 @@ public LoanDueData getLoanDueData() {
public IndividualClientData getClientData() {
return IndividualClientData.instance(this.clientId, this.clientName);
}

public BigDecimal getFeeDue() {
return this.feeDue;
}

public BigDecimal getFeePaid() {
return this.feePaid;
}

}
Loading
Loading