share certificate and share product maker checker
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s

This commit is contained in:
2026-07-27 14:14:05 +05:30
parent cf60515bf6
commit f18b5d97d3
24 changed files with 1255 additions and 44 deletions
@@ -116,6 +116,21 @@ public final class FixedDepositAccountData extends DepositAccountData {
private Boolean deceasedSettlement;
private Boolean allowDebitTxnAfterDueDate;
// Live per-account dormancy state (distinct from the product-level
// isDormancyTrackingActive/daysToInactive/daysToDormancy/daysToEscheat
// thresholds above): the account's actual current sub-status and the
// computed countdown, mirroring SavingsAccountData.
private SavingsAccountSubStatusEnumData subStatus;
private String reasonForBlock;
private LocalDate lastActiveTransactionDate;
public void setDormancyStatus(final SavingsAccountSubStatusEnumData subStatus, final String reasonForBlock,
final LocalDate lastActiveTransactionDate) {
this.subStatus = subStatus;
this.reasonForBlock = reasonForBlock;
this.lastActiveTransactionDate = lastActiveTransactionDate;
}
// Joint holders for JOINT account status
private java.util.List<java.util.Map<String, Object>> jointHolders;
@@ -314,6 +329,9 @@ public final class FixedDepositAccountData extends DepositAccountData {
this.jointHolders = src.jointHolders;
this.isSeniorCitizen = src.isSeniorCitizen;
this.seniorCitizenInterestRate = src.seniorCitizenInterestRate;
this.subStatus = src.subStatus;
this.reasonForBlock = src.reasonForBlock;
this.lastActiveTransactionDate = src.lastActiveTransactionDate;
}
private FixedDepositAccountData(Long clientId, Long productId, Long fieldofficerId, LocalDate submittedOnDate,
@@ -147,6 +147,21 @@ public final class RecurringDepositAccountData extends DepositAccountData {
private Boolean deceasedSettlement;
private Boolean allowDebitTxnAfterDueDate;
// Live per-account dormancy state (distinct from the product-level
// isDormancyTrackingActive/daysToInactive/daysToDormancy/daysToEscheat
// thresholds above): the account's actual current sub-status and the
// computed countdown, mirroring SavingsAccountData.
private SavingsAccountSubStatusEnumData subStatus;
private String reasonForBlock;
private LocalDate lastActiveTransactionDate;
public void setDormancyStatus(final SavingsAccountSubStatusEnumData subStatus, final String reasonForBlock,
final LocalDate lastActiveTransactionDate) {
this.subStatus = subStatus;
this.reasonForBlock = reasonForBlock;
this.lastActiveTransactionDate = lastActiveTransactionDate;
}
public void setAccountTypeOptions(Collection<CodeValueData> accountTypeOptions) {
this.accountTypeOptions = accountTypeOptions;
}
@@ -238,6 +253,9 @@ public final class RecurringDepositAccountData extends DepositAccountData {
this.jointHolders = src.jointHolders;
this.isSeniorCitizen = src.isSeniorCitizen;
this.seniorCitizenInterestRate = src.seniorCitizenInterestRate;
this.subStatus = src.subStatus;
this.reasonForBlock = src.reasonForBlock;
this.lastActiveTransactionDate = src.lastActiveTransactionDate;
}
public void setCbsProductFields(String accountType, String customerSegment, String productCode,
@@ -748,10 +748,17 @@ public final class ProductPendingEditFieldMapper {
f.setTotalShares(command.longValueOfParameterNamed("totalShares"));
present.add("totalShares");
}
if (command.hasParameter("totalSharesIssued") || command.hasParameter("issuedShares")) {
final Long val = command.hasParameter("totalSharesIssued") ? command.longValueOfParameterNamed("totalSharesIssued") : command.longValueOfParameterNamed("issuedShares");
if (command.hasParameter("sharesIssued") || command.hasParameter("totalSharesIssued") || command.hasParameter("issuedShares")) {
final Long val;
if (command.hasParameter("sharesIssued")) {
val = command.longValueOfParameterNamed("sharesIssued");
} else if (command.hasParameter("totalSharesIssued")) {
val = command.longValueOfParameterNamed("totalSharesIssued");
} else {
val = command.longValueOfParameterNamed("issuedShares");
}
f.setTotalSharesIssued(val);
present.add("totalSharesIssued");
present.add("sharesIssued");
}
if (command.hasParameter("unitPrice")) {
f.setUnitPrice(command.bigDecimalValueOfParameterNamed("unitPrice"));
@@ -820,7 +827,7 @@ public final class ProductPendingEditFieldMapper {
return;
}
putNumber(root, submitted, "totalShares", f.getTotalShares());
putNumber(root, submitted, "totalSharesIssued", f.getTotalSharesIssued());
putNumber(root, submitted, "sharesIssued", f.getTotalSharesIssued());
putNumber(root, submitted, "unitPrice", f.getUnitPrice());
putNumber(root, submitted, "minimumShares", f.getMinimumShares());
putNumber(root, submitted, "nominalShares", f.getNominalShares());