To ensures that all the transaction details are stored at a single place when needed for tracking and auditing. Transaction details are stored in transaction table, and the entries or impacted accounts for the transactions are stored in the TransactionEntry table.
Cams is able to handle three types of transactions Cash, Online and Import. These transactions are processed through their respective managers. ITransactionManager defines the interface to perform different actions for the transactions. Transactions are further handled by the specific handlers based on TransactionType to ensure that all conditions specific for the transaction type is handled and customers are notified.
Transactions have different status to ensure that transactions are handled properly based on different conditions required by Wakandi ecosystem. This can be understood as follows
| Status | Description | | --- | --- | | Created [CRE] | Transaction is captured but not posted in the accounting or anywhere else. This should be the first stage to ensure that transactional data can be reviewed, reprocessed or handled later in different scenarios like import, approvals, errors. | | Initiated [INI] | Transaction is initiated but not processed yet. This is useful in the case of online transactions as it may take sometime to process the transaction. | | PendingApproval [PEN] | Transaction is pending for approval, there might be cases where approval is required to complete the transactions. | | Approved [APP] | Transaction is approved by not completed yet. | | Completed [COM] | Transaction is successfully posted/processed | | Resubmitted [RES] | Transaction is resubmitted for processing. This might be needed in case of online or if any error happens while processing the transaction. | | Reversed [REV] | Transaction is reversed from the system | | Deleted [DEL] | Transaction is deleted from the system. In this case all entries from accounting system will be deleted but for the auditing purpose the transaction details will still be kept. | | Error [ERR] | Transaction went into error due system or other issues. |