3.2 CASH-SALE MANAGEMENT
What. Cash-sale management supports the selling of products (goods, services, or combination of both) on a "cash and carry" basis, rather than on an invoicing basis (as in product-sales management). Retail businesses often run on a "cash and carry" basis; that's whom this component is for.
Scope. Cash-sale management begins with a cash-drawer assignment and ends with cash sales (includes sale items, return items, or both).
Steps. First, establish cash-drawer assignments. Second, start a cash-sale session, a working session. Third, make cash sales.
Links. Track the products sold (product-sale management, which in turn interacts with material-resource management and finally inventory management). Post sales and payments (accounting management).
Mirror images. Here, payment is immediate. In product-sales management, payments come in over time.
Components. The components within cash-sale management are (Figure 3-19):
- Cash-sale session
- Cash sale
Figure 3-19 Cash-sale management components.
Moment-intervals. The main moment-intervals for cash-sale management are (Figure 3-20):
- Cash-drawer assignment
- Cash-sale session
- Cash sale
Figure 3-20 Summary in pink.
Interactions. The components work together to get things done. An example of inter-component interaction, "calculate cash-sales rate," is shown in Figure 3-21. A sender asks a yellow cashier object to calculate its cash-sales rate. The cashier object asks each of its pink cash-sale sessions to calculate its cash-sales rate. A session calculates its total by asking each of its pink sales to calculate its total. A session uses the total and its interval to calculate its rate. A cashier object totals the results and returns the rate to the sender.
Figure 3-21 Calculate cash-sales rate.
Expansion. One could expand this compound component to accommodate high-volume online cash sales.
3.2.1 Cash-Sale Session
Figure 3-22 Cash-sale-session component.
Cash-drawer assignment. A pink cash-drawer assignment links to a yellow cashier. It links to a green cash drawer.
Cash-sale session. A pink cash-sale session links to a yellow cashier. Note that this link is derivable, since a cash-sale session must link to one cash-drawer assignment and each cash-drawer assignment must link to one cashier.
A yellow cashier links to some number of cash-drawer assignments. Each cash-drawer assignment links to some number of cash-sale sessions.
The link between cashier and cash-sale session is derivable. The model is fine without it. We occasionally show derived links for increasing modeling understanding. Derived links might or might not be implemented.
Before and after. For cash-sale session, the subsequent pink moment-interval is cash sale.
Methods. Key methods include: make cash-sale session, calculate the total cash sales during a session, and calculate a cashier's cash-sales rate.
Interactions. The "calculate total during a session" sequence is shown in Figure 3-23. A sender asks a pink cash-sale session to calculate its total. The cash-sale session object asks each of its pink cash-sales to calculate its total. (The sequence diagram in the next component shows what happens next.)
Figure 3-23 Calculate the total of a sale.
3.2.2 Cash Sale
Figure 3-24 Cash-sale component.
Cash sale. A pink cash sale links to two yellow roles: customer and cashier (the cashier link is derivable). It also links to a yellow "facility as business location" (a role played by a green facility, within the facility component). It also links to pink cash-sale detail(s).
Cash-sale detail. A pink cash-sale detail specifies quantity, unit of measure, and a special price (if one is negotiated) for this line item. A cash-sale detail links to a blue product description. Or it might link to yellow product-being-sold roles, which in turn link to a green product (in the product component).
Before and after. For cash sale, the preceding pink moment-interval is cash-sale session. The subsequent pink moment-interval is payment.
Methods. Key methods include: make cash sale, verify availability, and calculate the total of a sale.
Interactions. The "calculate the total of a cash sale" sequence is shown in Figure 3-25. A sender asks a pink cash sale to calculate its total. That's a big method; so sale does it by sending a message to each of three steps: calculate subtotal, calculate discount, and calculate tax.
Figure 3-25 Calculate total of a sale.
To calculate its subtotal, the cash sale asks each of its pink cash-sale details to calculate its total. A cash-sale detail does this in one of three ways. First, if it has its own value for a negotiated price, it has the total it needs. Second, if it links to a blue product description, it asks it to calculate the price given a quantity and unit of measure. Third, if it links to one or more yellow product-being-sold role objects, it asks each of those objects for a corresponding green product object, and then it asks that object for its price.
The cash sale then calculates the discount, calculates tax, and adds up the total. It returns the result to the sender.