From 49d94eb9326f76b13f0a944538d077a245029960 Mon Sep 17 00:00:00 2001 From: Ashhar Ahmad Khan <145142826+AshharAhmadKhan@users.noreply.github.com> Date: Fri, 10 Apr 2026 13:30:39 +0530 Subject: [PATCH] FINERACT-2587: Remove CLIENTCHARGE|INACTIVATE write path (never implemented since 2015) --- .../service/CommandWrapperBuilder.java | 9 ----- .../client/api/ClientApiConstants.java | 2 -- .../client/api/ClientChargesApiResource.java | 8 +---- .../ClientChargeWritePlatformService.java | 3 -- .../ClientChargeWritePlatformServiceImpl.java | 7 ---- .../db/changelog/tenant/changelog-tenant.xml | 1 + ...ve_clientcharge_inactivate_permissions.xml | 34 +++++++++++++++++++ .../migrations/sample_data/barebones_db.sql | 2 -- .../sample_data/load_sample_data.sql | 2 -- 9 files changed, 36 insertions(+), 32 deletions(-) create mode 100644 fineract-provider/src/main/resources/db/changelog/tenant/parts/0231_remove_clientcharge_inactivate_permissions.xml diff --git a/fineract-core/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java b/fineract-core/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java index 887f999d2a5..809fa440f8e 100644 --- a/fineract-core/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java +++ b/fineract-core/src/main/java/org/apache/fineract/commands/service/CommandWrapperBuilder.java @@ -3170,15 +3170,6 @@ public CommandWrapperBuilder payClientCharge(final Long clientId, final Long cha return this; } - public CommandWrapperBuilder inactivateClientCharge(final Long clientId, final Long chargeId) { - this.actionName = ACTION_INACTIVATE; - this.entityName = ClientApiConstants.CLIENT_CHARGES_RESOURCE_NAME; - this.entityId = chargeId; - this.clientId = clientId; - this.href = "/clients/" + clientId + "/charges/" + chargeId + "?command=inactivate"; - return this; - } - public CommandWrapperBuilder undoClientTransaction(final Long clientId, final Long transactionId) { this.actionName = ClientApiConstants.CLIENT_TRANSACTION_ACTION_UNDO; this.entityName = ClientApiConstants.CLIENT_RESOURCE_NAME; diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/client/api/ClientApiConstants.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/client/api/ClientApiConstants.java index 8d9e0fda760..d1add72687e 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/client/api/ClientApiConstants.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/client/api/ClientApiConstants.java @@ -33,7 +33,6 @@ public class ClientApiConstants { public static final String CLIENT_CHARGE_ACTION_DELETE = "DELETE"; public static final String CLIENT_CHARGE_ACTION_WAIVE = "WAIVE"; public static final String CLIENT_CHARGE_ACTION_PAY = "PAY"; - public static final String CLIENT_CHARGE_ACTION_INACTIVATE = "INACTIVATE"; // Client charge associations and query parameters public static final String CLIENT_CHARGE_QUERY_PARAM_STATUS = "chargeStatus"; @@ -49,7 +48,6 @@ public class ClientApiConstants { // Commands public static final String CLIENT_CHARGE_COMMAND_WAIVE_CHARGE = "waive"; public static final String CLIENT_CHARGE_COMMAND_PAY_CHARGE = "paycharge"; - public static final String CLIENT_CHARGE_COMMAND_INACTIVATE_CHARGE = "inactivate"; public static final String CLIENT_TRANSACTION_COMMAND_UNDO = "undo"; public static final String CLIENT_CLOSURE_REASON = "ClientClosureReason"; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java index ed47dbf1805..8c467177ef2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/ClientChargesApiResource.java @@ -205,16 +205,10 @@ public String payOrWaiveClientCharge(@PathParam("clientId") @Parameter(descripti final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); - json = this.toApiJsonSerializer.serialize(result); - } else if (is(commandParam, ClientApiConstants.CLIENT_CHARGE_COMMAND_INACTIVATE_CHARGE)) { - final CommandWrapper commandRequest = new CommandWrapperBuilder().inactivateClientCharge(clientId, chargeId).build(); - - final CommandProcessingResult result = this.commandsSourceWritePlatformService.logCommandSource(commandRequest); - json = this.toApiJsonSerializer.serialize(result); } else { throw new UnrecognizedQueryParamException("command", commandParam, ClientApiConstants.CLIENT_CHARGE_COMMAND_WAIVE_CHARGE, - ClientApiConstants.CLIENT_CHARGE_COMMAND_PAY_CHARGE, ClientApiConstants.CLIENT_CHARGE_COMMAND_INACTIVATE_CHARGE); + ClientApiConstants.CLIENT_CHARGE_COMMAND_PAY_CHARGE); } return json; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformService.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformService.java index 27352a0047a..028ad8c1992 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformService.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformService.java @@ -39,7 +39,4 @@ public interface ClientChargeWritePlatformService { @Transactional CommandProcessingResult payCharge(Long clientId, Long clientChargeId, JsonCommand command); - @Transactional - CommandProcessingResult inactivateCharge(Long clientId, Long clientChargeId); - } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformServiceImpl.java index 920eb437038..2327184c4cf 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeWritePlatformServiceImpl.java @@ -355,13 +355,6 @@ public CommandProcessingResult updateCharge(@SuppressWarnings("unused") Long cli return null; } - @Override - @SuppressWarnings("unused") - public CommandProcessingResult inactivateCharge(Long clientId, Long clientChargeId) { - // functionality not yet supported - return null; - } - /** * Ensures that the charge due date is not on a holiday or a non working day * diff --git a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml index 25dff267864..5957af5c3b5 100644 --- a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml +++ b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml @@ -249,4 +249,5 @@ + diff --git a/fineract-provider/src/main/resources/db/changelog/tenant/parts/0231_remove_clientcharge_inactivate_permissions.xml b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0231_remove_clientcharge_inactivate_permissions.xml new file mode 100644 index 00000000000..34ebf3278fe --- /dev/null +++ b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0231_remove_clientcharge_inactivate_permissions.xml @@ -0,0 +1,34 @@ + + + + + Remove INACTIVATE_CLIENTCHARGE permissions - command was never implemented and the client-charge inactivate write path is being removed. + + code='INACTIVATE_CLIENTCHARGE' + + + code='INACTIVATE_CLIENTCHARGE_CHECKER' + + + diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index e39c0014010..09cd583eb5c 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -3738,13 +3738,11 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (668, 'portfolio', 'DELETE_CLIENTCHARGE', 'CLIENTCHARGE', 'DELETE', 0), (669, 'portfolio', 'WAIVE_CLIENTCHARGE', 'CLIENTCHARGE', 'WAIVE', 0), (670, 'portfolio', 'PAY_CLIENTCHARGE', 'CLIENTCHARGE', 'PAY', 0), - (671, 'portfolio', 'INACTIVATE_CLIENTCHARGE', 'CLIENTCHARGE', 'INACTIVATE', 0), (672, 'portfolio', 'UPDATE_CLIENTCHARGE', 'CLIENTCHARGE', 'UPDATE', 0), (673, 'portfolio', 'CREATE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'CREATE_CHECKER', 0), (674, 'portfolio', 'DELETE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'DELETE_CHECKER', 0), (675, 'portfolio', 'WAIVE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'WAIVE_CHECKER', 0), (676, 'portfolio', 'PAY_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'PAY_CHECKER', 0), - (677, 'portfolio', 'INACTIVATE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'INACTIVATE_CHECKER', 0), (678, 'portfolio', 'UPDATE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'UPDATE_CHECKER', 0), (679, 'transaction_client', 'READTRANSACTION_CLIENT', 'CLIENT', 'READTRANSACTION', 0), (680, 'transaction_client', 'UNDOTRANSACTION_CLIENT', 'CLIENT', 'UNDOTRANSACTION', 0), diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index a5d1c7f294a..f800b6fa8a5 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -3910,13 +3910,11 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (668, 'portfolio', 'DELETE_CLIENTCHARGE', 'CLIENTCHARGE', 'DELETE', 0), (669, 'portfolio', 'WAIVE_CLIENTCHARGE', 'CLIENTCHARGE', 'WAIVE', 0), (670, 'portfolio', 'PAY_CLIENTCHARGE', 'CLIENTCHARGE', 'PAY', 0), - (671, 'portfolio', 'INACTIVATE_CLIENTCHARGE', 'CLIENTCHARGE', 'INACTIVATE', 0), (672, 'portfolio', 'UPDATE_CLIENTCHARGE', 'CLIENTCHARGE', 'UPDATE', 0), (673, 'portfolio', 'CREATE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'CREATE_CHECKER', 0), (674, 'portfolio', 'DELETE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'DELETE_CHECKER', 0), (675, 'portfolio', 'WAIVE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'WAIVE_CHECKER', 0), (676, 'portfolio', 'PAY_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'PAY_CHECKER', 0), - (677, 'portfolio', 'INACTIVATE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'INACTIVATE_CHECKER', 0), (678, 'portfolio', 'UPDATE_CLIENTCHARGE_CHECKER', 'CLIENTCHARGE', 'UPDATE_CHECKER', 0), (679, 'transaction_client', 'READTRANSACTION_CLIENT', 'CLIENT', 'READTRANSACTION', 0), (680, 'transaction_client', 'UNDOTRANSACTION_CLIENT', 'CLIENT', 'UNDOTRANSACTION', 0),