Teller Cash Mgmt Solution Concept
The following document is in draft and subject to change.
All UML Diagrams created with UMLet, attached you'll find all design files.
Proposal
A Teller could hold one of the following states:
inactive
Teller is ready to be opened
active
Teller is opened and ready to use for postings and settling
pending
Teller is settled and needs to be closed
To ease the reporting of Transactions and the related Teller Journal all postings are stored in the related account and an entity Transaction is created.
A Transaction could be one of the following types:
open
receipt
payment
settle
close
The Journal collects all related transaction information and provides a summary for the Teller.
Activity Diagram
Definition
Teller
Teller Domain Object
{
"id" : 1,
"officeId" : 1
"debitAccountId" : 1,
"creditAccountId" : 2,
"name" : "T1-O1-D1-C2",
"description" : null,
"startDate" : "2014-01-01T00:00:00",
"endDate" : "2014-12-31T23:59:59",
"status" : "active",
"hasTransactions" : true,
"hasMappedCashiers" : true
}Resource /tellers
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | officeId | NA | List<Teller> | 200, 404, 500 |
POST | NA | Teller | NA | 201, 400, 404, 500 |
Resource /tellers/{id}
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | NA | NA | Teller | 200, 404, 500 |
PUT | NA | Teller | Teller | 201, 400, 404, 500 |
PATCH | NA | TellerChangeRequest | NA | 200, 400, 404, 500 |
DELETE | NA | NA | NA | 200, 404, 500 |
Class Diagram
Because of simplicity, implementations are omitted!
Cashier
Cashier Domain Object
{
"id" : 1,
"officeId" : 1,
"staffId" : 1,
"tellerId" : 1,
"descriptio" : null,
"startDate" : "2014-01-01T00:00:00",
"endDate" : "2014-12-31T23:59:59",
"partTime" : true,
"fromTime" : "08:00:00",
"toTime" : "11:59:59"
}Resource /cashiers
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | officeId tellerId statffId date = today | NA | List<Cashier> | 200, 404, 500 |
Resource /tellers/{id}/cashiers
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | date = today | NA | List<Cashier> | 200, 404, 500 |
POST | NA | Cashier | NA | 201, 400, 404, 500 |