OVERVIEW
--------
Added complete cash management backend covering the full cashier workflow:
vault transfers, inter-cashier transfers, end-of-day settlement, GL
reconciliation, and a new authenticated /me endpoint for cashier position
lookup without needing to pass a cashier ID.
NEW API ENDPOINT
----------------
GET /cashreports/cashier-position/me
- Auto-detects the authenticated user via PlatformSecurityContext
- Resolves appUser -> staff -> cashier via m_cashiers JOIN chain
- Accepts optional ?asOfDate=YYYY-MM-DD query param (defaults to today)
- Reuses existing buildPositionForCashier(cashierId, dateFilter) internally
- Returns: { cashierId, asOfDate, totalAmount, denominations[] }
- Non-cashier users get empty denominations array (no error thrown)
- Used by Angular UI to show opening/closing denomination panels
CASH TRANSFER (vault -> cashier)
---------------------------------
CashTransferApiResource.java — REST endpoints (POST /cashtransfer, GET list/detail)
CashTransfer.java — JPA entity (m_cash_transfer)
CashTransferDetail.java — JPA entity (denomination breakdown, m_cash_transfer_detail)
CashTransferRepository.java — Spring Data JPA repository
CashTransferDetailRepository.java
DB migrations:
0014_cash_transfer.xml — creates m_cash_transfer + m_cash_transfer_detail tables
0015_cash_transfer_add_ids.xml — adds missing ID columns to transfer detail
CASH SETTLEMENT (end-of-day cashier close)
------------------------------------------
CashSettlementApiResource.java — REST endpoints (POST /cashsettlement, GET list/detail)
CashSettlement.java — JPA entity (m_cash_settlement)
CashSettlementDetail.java — JPA entity (denomination breakdown)
CashSettlementRepository.java
CashSettlementDetailRepository.java
DB migration:
0016_cash_settlement.xml — creates m_cash_settlement + m_cash_settlement_detail
INTER-CASHIER TRANSFER
-----------------------
CashInterCashierApiResource.java — REST endpoints (POST /cashintercashier, GET list/detail)
CashInterCashier.java — JPA entity (m_cash_inter_cashier)
CashInterCashierDetail.java — JPA entity (denomination breakdown)
CashInterCashierRepository.java
CashInterCashierDetailRepository.java
DB migration:
0017_cash_inter_cashier.xml — creates m_cash_inter_cashier + detail table
CASH RECONCILIATION
--------------------
CashReconciliationApiResource.java — REST endpoints (POST /cashreconciliation, GET list)
CashReconciliation.java — JPA entity (m_cash_reconciliation)
CashReconciliationDetail.java — JPA entity (denomination breakdown)
CashReconciliationRepository.java
CashReconciliationDetailRepository.java
DB migrations:
0018_cash_reconciliation.xml — creates m_cash_reconciliation + detail table
0019_cash_reversal_columns.xml — adds reversal tracking columns
0020_cash_permissions.xml — adds permissions for all cash management APIs
GL DISPATCH SERVICE
-------------------
GlDispatchService.java (portfolio/teller/service/)
- Shared service for posting GL journal entries for cash movements
- Used by settlement and reconciliation flows
CHANGELOG
---------
changelog-tenant.xml updated to include migrations 0014 through 0020.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>