feat: initialize project backend structure and document system specifications across all modules
This commit is contained in:
48
docs/specs/customer_management/transfer_balance.md
Normal file
48
docs/specs/customer_management/transfer_balance.md
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: "Transfer Balance"
|
||||
type: OpenSpec
|
||||
status: Draft
|
||||
domain: Customer Management
|
||||
---
|
||||
|
||||
# Transfer Balance
|
||||
|
||||
## Requirement Definition
|
||||
Allows manual transfer of points from a customer/account to another customer/account (External) or between the customer's own accounts (Internal).
|
||||
|
||||
## Process Flow
|
||||
|
||||
### Pre-Conditions
|
||||
- Users must have access rights in the "Transfer Balance" module.
|
||||
- Requires Maker-Checker approval.
|
||||
|
||||
## Business Rules
|
||||
|
||||
### Data Schema
|
||||
|
||||
| Field Name | Description | Logic Type | Constraints / Rules |
|
||||
|---|---|---|---|
|
||||
| Transfer Mode | Internal (self) or External (to another). | Enum | Required. |
|
||||
| Transfer Type | Entity type to transfer from (Card, Account, Client). | Enum | Required. |
|
||||
| From | Card/Account/CIF Number to transfer from. | String | Required. |
|
||||
| To | Card/Account/CIF Number to transfer to. | String | Required. |
|
||||
| Pool ID | The pool from which to transfer. | Enum (Lookup) | Required. Must respect "From" entity level. |
|
||||
| Store | The store where transaction is logged. | Enum (Lookup) | Required. |
|
||||
| Amount to Transfer | Amount. | Decimal | Required. > 0. Defaults to whole pool balance. |
|
||||
| Expiry Date | Expiry date of transferred points. | Date | Required. Defaults to source expiry date. |
|
||||
| Transaction Code | OLS transaction code. | Enum (Lookup) | Required. |
|
||||
| Reason Code | Pre-defined reason for transfer. | Enum (Lookup) | Required. Determines GL posting accounts. |
|
||||
| Remarks | Additional remarks. | String (100) | Optional. |
|
||||
|
||||
### Execution
|
||||
- **Pending/Approve Flow**: Goes to a pending list. Authorised user approves.
|
||||
- OLS validates status, block codes, and permissions for both "From" and "To".
|
||||
- Rejected if "From" pool balance is insufficient.
|
||||
- Execution transfers all linked pools directly from "From" to "To".
|
||||
- Logged as a negative Adjustment on "From" and positive Adjustment on "To".
|
||||
|
||||
## Post-Conditions
|
||||
- Pool balances updated.
|
||||
|
||||
## Exception Flow
|
||||
- Insufficient balance, TP validation failures, or input errors block the action.
|
||||
Reference in New Issue
Block a user