The Cash Drawer Management manages the creation, update and deletion of a Cash Drawer and also maintains the counters for the total amounts, counts, and so on.
The following diagram shows the main components in Cash Drawer Management:
▪ CDM Service
CDM Service is the Business component for Cash Drawer Management. It implements all the use cases and handles most of the situations in banking teller system. It is implemented in POJO. You can have different options to deploy it, for example, you can deploy it as an EJB or a WebService according to the deployment requirement.
▪ Business Delegation
Business Delegation is a proxy for CDM Service in the client side. It handles the details of the remote invocation from the client side.
▪ User Interface
User Interface is for the teller to operate on the Cash Drawer. The User Interface is based on Rich Client.
▪ DataModel
DataModel models the Cash Drawer. It is the representation of the physical Cash Drawer in the computer memory.
▪ Rules Provider
Rules Provider allows you to define the rule how the Cash Drawer Manager updates the DataModel. By default, UDTT provides a basic implementation for the Rules Provider. It accepts the definitions from the XML file.
▪ DAO
DAO is a set of interfaces that know how to synchronize DataModel with persistent storage, such as database or file. There will be two types of implementation at the development phase to simplify the environment setup. And the deployer chooses the database implementation to meet the requirement of the persisting DataModel in the database.
▪ Cash Drawer Manager
Cash Drawer Manager knows how to process the business logic of the component, and it updates the DataModel through DAO interface according to the defined rules, and it calls the PostProcessor each time on the update.
▪ ElementFactory
ElementFactory is the IOC (Inversion of Control) container in UDTT. It reads the configuration in XML file and assembles all the components from pieces to a whole. It also provides some capabilities of AOP. It makes the CDM service become flexible.
▪ XML
XML is the configuration for the CDM Service. It complies with the contract of ElementFactory. It defines how the components in CDM services are assembled together. For example, it defines which DAO implementation to use, which PostProcessor implementation to use and which RulesProvider implementation to use. You can edit the XML file.
The following diagram shows the model of a cash drawer:
Bait bills
Bait bills are a set of separately secured bills that are kept in each cash tray to be given out during a robbery.
Cash drawer ID
A cash drawer ID has 10 digits and falls within a range according to different types.
Cash drawer currency
Each cash drawer contains only one kind of currency. Tellers who work with multiple currencies must have multiple cash drawers.
Cash drawer location
Physical location of a cash drawer.
Cash drawer types
Standard cash drawers (STD) have bins and batches associated with them, and they are the main cash drawers that tellers use to perform daily tasks.
Vault cash drawers (VLT) are used for a teller to reserve cash, and they have no bins or batches associated with them. A teller can be assigned to multiple vault cash drawers for each currency type.
Reserve cash trays
Reserve cash trays hold cash strictly for the use of the teller. When tellers exceed or fall below the working cash tray limit, they can buy cash from or sell cash to the reserve cash tray.
Trap money
Trap money is a set of bills placed in a physical security device. For a US cash drawer, the trap money is usually two one-dollar bills.
Batch
A batch is a group of items in a bin that are handled as a unit for back-office processing later in the day. Every batch is assigned a unique batch ID. The Initialize Business Day transaction automatically creates each batch with a sequential batch ID starting with 1.
Bins
A bin stores the financial documents about monetary transactions. It contains one type of batch. Typically, a bin contains ON_US checks and TRANSIT checks.
The following diagram shows the states of a cash drawer:
Create
You can create a new cash drawer in the state: Available. You can delete it immediately if you want. When a cash drawer is created, its cash trays, bins, totals, bait bills, and denominations are also created, and they are recorded in the corresponding database tables.
Assign
A cash drawer can only be assigned to one teller. When a cash drawer is assigned, its state is changed to Assigned. You can not assign two or more standard cash drawers of the same currency located in the same branch to one user.
Delete
Before you delete a cash drawer, ensure the following:
▪ The cash drawer is empty, that is, the value of position is 0.
▪ End of day settlement and end of day processing have been performed.
▪ The state of a cash drawer must be Unassigned.
If you delete a cash drawer, all records referenced are removed from the database.
Initialize
When a branch is opened, you can use the cash drawer management to reset all the totals of the drawers in the branch. This provides a faster login for other users because they do not have to reset their totals individually.
After you log in, the drawers assigned to you are initialized for a new business day. It includes:
▪ Setting the current position value as start position for each cash tray.
▪ The state of the cash drawer is changed to SETTLED.
▪ Resetting the totals. (Optional)
If a new drawer is assigned to a user who is logged in, the drawer can not be used until the next login, which normally occurs on the next business day. If you want to use the drawer on the same business day, invoke the initializeCashDrawer(String branchID, String userID, Calendar date) method.
Unassign
Before a cash drawer is unassigned, ensure the following:
▪ The cash drawer is assigned.
▪ End of day settlement and end of day processing have been performed.
When a cash drawer is unassigned, the state is changed to Available.