[
https://issues.apache.org/jira/browse/FINERACT-2587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Adam Saghy updated FINERACT-2587:
---------------------------------
Fix Version/s: 1.15.0
> Remove CLIENTCHARGE| INACTIVATE write path — command has never functioned
> since 2015
> ------------------------------------------------------------------------------------
>
> Key: FINERACT-2587
> URL: https://issues.apache.org/jira/browse/FINERACT-2587
> Project: Apache Fineract
> Issue Type: Bug
> Reporter: Ashhar Ahmad Khan
> Priority: Major
> Fix For: 1.15.0
>
>
> POST /clients/\{clientId}/charges/\{chargeId}?command=inactivate has never
> returned a
> successful response in any version of Fineract or its predecessor MifosX.
> The inactivateCharge() service method was a stub returning null from its
> first commit
> (d0fd3e4a6c, August 17 2015). No command handler for CLIENTCHARGE|INACTIVATE
> was ever
> registered in any commit across the repository history. git log --all -S
> "clientCharge.inactivate" returns zero results outside the investigation
> branch.
> Runtime confirmation against apache/fineract:latest showed HTTP 400 with
> error.msg.command.unsupported. m_portfolio_command_source shows
> made_on_date=NULL
> and status=5 — rejected before any processing began.
> m_client_charge.is_active
> was never written.
> Surface area audit confirmed nothing depends on this path — no SDK method, no
> Swagger documentation, no frontend references, no integration tests, and
> m_portfolio_command_source had zero prior attempts before the validation run.
> Per architectural direction from Victor and James that fees should be
> account-associated rather than client-associated, and following the 72-hour
> notice
> posted to the DEV list, this removes the write path scaffolding (Phase 1
> only).
> Phase 1 removes: API routing branch, interface method, stub implementation,
> CommandWrapperBuilder method, two ClientApiConstants, a Liquibase changeset
> deleting INACTIVATE_CLIENTCHARGE and INACTIVATE_CLIENTCHARGE_CHECKER from
> m_permission, and corresponding sample SQL entries.
> Phase 1 does NOT remove: isActive and inactivationDate from the GET response
> —
> dropping those fields changes the response contract and is a separate Phase 2
> decision.
> DEV list thread:
> https://lists.apache.org/thread/lhh0hx0t2y7vzdrs98fg3qyfx1xo9d0y
> Related ticket: FINERACT-2545
--
This message was sent by Atlassian Jira
(v8.20.10#820010)