2.0 KiB
2.0 KiB
title, type, status, domain
| title | type | status | domain |
|---|---|---|---|
| Transfer Balance | OpenSpec | Draft | 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.