Computerized drop safe and control software

A computerized drop safe running control and security software on a central processing unit controlling (CPU) operating features on and access to the drop safe. A user hierarchy has different access policies for making different transactions into the safe. Vault door access is controlled by the CPU to allow user access according to enabled policies. Transactions into and out of the safe vaults, motovend tube dispenser, and currency recyclers are recorded by the amounts and the user making the transaction into a memory coupled to the CPU. This data is also reported to a point of sale control interface at another location using a modem or Ethernet connection. The CPU can also receive data and control inputs by the modem and Ethernet, permitting centralized accounting and vending control options. A back office at the store can also easily access the safe for data retrieval or control inputs into the CPU using an Ethernet local area network computer system.A unique report script subprogram is also operated on the CPU. This subprogram is a report script program that allows a user lacking computer language knowledge and code writing expertise to design customized report formats. The report script program executes instructions to generate the specified reports as a stream of Unicode characters at the specified times using the transaction data stored in the memory.

TECHNICAL FIELD OF THE INVENTION

A computerized drop safe and associated control software.

BACKGROUND OF THE INVENTION

Numerous retail businesses operate under conditions leading to a high probability of robbery, embezzlement, or mishandling of funds. Most revenue in many small retail sales is in the form of cash receipts. Many small retail operations, such as 24-hour convenience stores, fast food establishments, gas stations, diners, and liquor stores are targets of armed robberies on a frequent basis. Many criminals view these types of retail stores as repositories of several hundreds to thousands of dollars in small denomination bills (e.g. $20 and less) that are not tracked by serial number by the businesses and remain impossible to trace. During normal hours of operation, these businesses can receive hundreds, and even thousands, of dollars in cash receipts.

In addition to armed robberies, burglaries, and the like, these small businesses face other difficulties in fully controlling cash receipts. Typically, armored-car pickups will collect currency and transport the currency to a central location for counting and deposit into a bank account. Employees of these armored-car operations have been known to pilfer these cash receipts. Mismatches between cash receipt records and actual cash deposited are more often than not dismissed as honest accounting errors or actual embezzlement and theft by store employees.

For many retail operations, cash thefts by employees are an accepted reality. In many instances, these store positions for cashiers are often transient; filled by individuals that are working part-time or gaining experience for better paying jobs at some future date. Less frequently, an employee goes to work at a convenience store for a limited time to steal from the employer and depart before their dishonesty becomes apparent. Less often, but still with distressing frequency, store managers embezzle funds or manipulate accounting procedures to cover discrepancies.

As a deterrent to loses from dishonest employees, and more importantly to reduce the perception of easy cash for armed robbers, many retail operations have implemented policies that reduce the amount of accessible, ready cash on a business premises. At the end of their shifts, cashiers close out their registers and transfer their receipts (both currency and check) to a secured storage location on the store premises. Usually these deposits are in sealed envelopes and identify the employee and/or identify the cash register. Many retail operations additionally require cashiers to periodically remove currency from their registers and deposit it into the secure location as a further means of reducing cash accumulation that can be stolen by robbers. The secure location is very often a restricted access safe. Restricted access safes that employees do not have access to that employees routinely deposit cash receipts into are now found in most retail operations.

Drop safes have been developed to address many of the security issues confronted by small businesses. In concept, a drop safe provides a receptacle that a cashier can “drop” receipts into a secure compartment, usually in an envelope with the identity of the employee and the amount of the currency and checks contained in the envelope. Typically, employees in the store do not have access to the drop safe, either because of no key, no knowledge of the combination or access code, or a time lock feature that permits entry only at designated times.

These drop safe designs have become increasingly sophisticated over the years, evolving from relatively simple metal boxes with a single drop slot and/or compartment for deposits into computerized, multi-compartment safes with currency vending options and currency denomination-sensitive receptacles to receive currency. While computerized drop safes have improved control over store receipts, current computerized drop safe designs and software applications have not provided a completely satisfactory solution. By and large, the cash remains vulnerable to opportunist employees who can often pilfer cash when receipts are removed from the safe, who can manipulate the receipt records to embezzle cash, or third party employees (banks, armored-car companies, etc) that have access to the cash and an ability to manipulate the receipt records and/or accounting.

A drop safe incorporating computers operating security and accounting/bookkeeping applications can provide access control and currency and receipt tallying and tracking functions. The development of these currency and information tracking abilities provides a capability for businesses to implement an accounting and security protocol that includes different accounting options for currency and receipt tracking, accounting, data management, and historical reports. However, individual customers usually desire individualized report formats that can vary greatly. For currently implemented and available accounting applications, these report formats must be individually tailored and programmed into the drop safe program's software code by the safe manufacturer or a software developer. The applications must be rewritten to accommodate the customized report format and are not readily modified should new reports be desired and requested.

There is a need for an improved computerized drop safe incorporating a point-of-sale accounting system and software application that permits user-modified reports, accounting, and security access protocols that deter both robbery and employee theft and embezzlement by providing automated currency tracking and accounting that is resistant to manipulation and alteration. Such a drop safe should also offer superior efficiencies by permitting real time monitoring by management of receipt deposits, currency vends, receipt records, security monitoring (e.g. individuals accessing safe and individuals making deposits), generation of reports upon demand, or automated generation of reports either locally at the store or at another location by business managers.

SUMMARY OF THE INVENTION

The invention is a computerized drop safe with an integrated computer central processing unit (CPU) that acts as a robbery deterrent and provides or integrates with a store's Point-of-Sales (POS) and accounting systems to reduce internal theft. The control software is designed and optimized for multi-location retailers to provide a remote, centralized monitoring and control option and/or a back-office monitoring and control option for in-store managers, but it can be operated as a stand alone safe at a single location retailer.

The computerized drop safe possesses an Ethernet connection for a local area network (LAN) which provides an interface to a Point-of-Sale System (POS) and/or a modem interface to support centralized management and monitoring. The drop safe can also link to a printer to print out reports locally at the retail business location. A bill acceptor is also integrated into the safe for depositing paper currency, and this bill acceptor includes a sensor, or validator, that detects counterfeits and the denomination of the currency deposited. This acceptor can also act as a currency recycler that allows store employees to withdraw currency as required. Transactions are logged into a memory that includes the user account making the transaction.

The software program operating on the CPU includes a script computer program for “scripting” reports to print out either as an integrated portion of an accounting and/or security computer program or as a separate module. A “script” is a simple program that the computer executes by interpreting the text source file. Script languages are designed for non-professional individuals to build small, casual programs. People without any advanced programming skills can easily learn a script language and write their own applications. After receipt of the safe, customers can configure the computer program to design and generate desired report formats without a need for someone possessing computer language and developer skills to modify the computer software. These generated reports include transaction data recorded in the memory.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The Hardware Features

Referring toFIG. 1, the external features of the computerized drop safe5include eight coin tube deposit slots10for depositing rolls, or tubes, of quarters, dimes, nickels, and pennies. A tube may also contain paper currency for depositing using the tube, and these tubes or rolls are stored in vertical columns in a motovend inside the safe that dispenses, or vends, tubes stored in the motovend to a drop pan50. The drop pan50is sound deadened to limit awareness of currency dispensing to people in the store when tubes are dispensed.

A touch sensitive liquid crystal display (LCD)20is used to display information and input commands into a central processing unit (CPU). There are three vault doors (30,35, and40) on the computerized drop safe, and access to each vault door is controlled by the CPU's computer program security protocols using solenoids in the door lock assemblies. Vault door40secures the drop vault which includes a deposit slot31where envelopes containing currency and checks or tubes of coins or currency can be deposited. Vault door35secures a storage or courier vault that does not have a drop slot and is generally used to segregate reserve cash for replenishing the cash register or store receipts for courier pickup.

Vault door30secures the bill acceptor and currency recycling equipment including cassettes for storing the cash currency. Two bill acceptors45are included inside this vault, and paper currency fed into the bill acceptors45are deposited into the cassette located inside the vault. The bill acceptors45include a denomination sensor, or validator, enabling the CPU to monitor the amount of currency deposited into the cassette. This can include a cash recycling function that can both dispense and receive cash.

FIG. 2shows the basic electrical connections or interfaces of the computerized drop safe components. The touch sensitive LCD205interfaces with the CPU210for user inputs to operate the computerized drop safe, access reports, and provide instructions to the CPU210using a touch sensitive data input203and a video signal output to the LCD204. The CPU210interfaces with a distribution board215using communication interface213. The distribution board215includes an Ethernet connection216to a local area network (LAN)217, an RS-485 port221for connecting to additional sidecars (e.g. bill acceptors), and/or multiple serial connections223using communication link222. The distribution board215also possesses a modem260that can interface with the Internet259or provide a point-to-point dial up communication option using communication link257. The distribution board215also interfaces with the bill acceptors220to supply a communication link218and a power link219to a pair of bill acceptors/validators220that reside inside the bill acceptor sidecar225. Power is also provided from the distribution board215over electrical connection211to the CPU210. Main power280is provided to the distribution board215using electrical connection279for distribution to the other components.

The bill acceptors/validators220interface with the CPU210to monitor currency deposited and update accounting information used by the CPU210in the computer program. The distribution board215also interfaces with a motovend240to provide power over electrical connection239. A motovend communication link212connects the motovend240to the CPU210to control tube vending and access to tube storage columns. A connection231from the motovend240to the distribution board215controls the electronic lock in bill acceptor vault door250using communication connection232to communication connection249to unlock the vault door for access to that portion of the safe using the LCD/CPU interface by controlling the electronic lock so that cash cassettes containing deposited cash can be removed. Likewise, a connection231from the motovend board240to the distribution board215connects to the storage vault door252using communication link232to communication link251to control access to that portion of the safe using the LCD/CPU interface to control an electronic lock in the door assembly. Similarly, the distribution board215and motovend board240is also connected to the drop safe vault door using communication link232to communication link254to control access to that portion of the safe using the LCD/CPU interface to control an electronic lock in the door assembly. The LCD/CPU interface also uses the communication link212to the motovend board240to control coin tube deposits and vends. The distribution board215also supplies power to the motovend board240using power connection239.

The motovend board240vends and accepts deposits by controlling four motors that connect to the motovend board240. Motor1244connects to the motovend board215by electrical connection236, motor2242connects to the motovend board215by electrical connection247, motor3243connects to the motovend board215by electrical connection234, and motor4244connects to the motovend board215by electrical connection236. Sensors also connect to the motovend board215to provide data inputs to the CPU210. Sensor1261is connected to the motovend board215by communication connection261, sensor2263is connected to the motovend board215by communication connection264, sensor3265is connected to the motovend board215by communication connection266, sensor4267is connected to the motovend board215by communication connection268, sensor5269is connected to the motovend board215by communication connection270, sensor6271is connected to the motovend board215by communication connection272, sensor7273is connected to the motovend board215by communication connection274, and sensor8275is connected to the motovend board215by communication connection276. There is also an option for accessing the safes without using the LCD205connection to the motovend board240. A hardware identification ‘signature’ corresponding to a physical item, such as a data key or card, can be used to provide a data input to the CPU210and access the safe using a data key reader290connected to the CPU210by communication link292.

FIG. 3shows a block diagram of the control interfaces from the CPU. Control interface317connects the CPU300to the liquid crystal display (LCD)320. The LCD320includes a touch sensitive screen and is the primary means to provide control and security inputs to the CPU300. It is also the primary means for store employees to monitor and control operation of the computerized functions of the drop safe through the CPU300. The LCD320also provides operation and information feed back from the CPU300to store employees, permitting control inputs to generate reports, view historical information, edit information stored in a CPU non-volatile memory, input information on currency deposited into the drop safe, request coin tube motovend vending, or request currency dispensing from the bill acceptor's currency cassette.

The CPU300also connects directly to a printer325using interface323. Using the printer325, store managers or employees can print various reports upon request or the computer program can automatically print reports, such as end-of-shift accounting reports, daily accounting reports, courier currency pick up reports or receipts, or diagnostic reports. The CPU300also connects to a video camera330using control interface327. The security protocols of the program can be set to activate a video camera330under specified circumstances, such as receipt of a vending request, vault door unlock command, or unauthorized input, or at a specific time such as end-of-shift or end-of-day.

CPU300also has a control interface333to a modem335. This interface333and modem335provides a point-to-point dial-up connection over the telephone system and can be used for remote control of the drop safe and to provide a point-of-sale (POS) interface to the computerized drop safe via. The CPU300can be controlled using control interface333from the modem335to provide centralized accounting, vending options, and secure vault access options. Currency deposit information or other information stored on the CPU300non-volatile memory can be accessed using this POS/modem connection335, and the modem335can be used to provide secure remote and centralized control for dispensing currency from the currency cassettes, vending coin tubes, or unlocking vault doors, if appropriate security measures are undertaken. This modem connection335also permits remote access to the CPU300to generate any of the available reports generated or parsed by the computer program, make software updates to the computer program, or access other data elements stored in the memory.

The CPU300also has a control interface337to an Ethernet connection340and a control interface353to a RS-485 serial port connection355. The Ethernet connection340and/or RS-485 connection355provides the option for a Local Area Network (LAN) that can perform back office applications and POS accounting and other control functions just as can be accomplished using the modem335. The CPU300can communicate transaction, configuration, or user information to the software application, or accept such information onto the LAN. This information can include currency deposit information, courier pickup information, currency dispensing information and control, vending coin tubes information or control, or vault door control. Reports generated by the computer program can also be remotely requested and viewed and software updates to the computer program can be made. The same centralized monitoring and control options available using the modem connection335can be implemented using the LAN.

Control interface343connects CPU300to bill acceptor1345, and control interface347connects CPU300to bill acceptor2350. The bill acceptor1345and bill acceptor2355include a denomination sensor for sensing the denomination of the deposited bill and storing this information or updating the information in the CPU memory for accounting and tracking the amount of currency deposited in the cassette. The bill acceptors345and347can also include a currency recycler that can dispense currency out to the employee. Another feature of the CPU300control over the acceptors345and347is to alternate operation so that currency deposits can be made alternating between the two acceptors. Normally, there is a 1.5 second lag between bill deposits into a bill acceptor while the mechanism cycles the bill into the storage cassettes and resets to accept another bill input. By alternating between the two acceptors, the rate of currency deposits is significantly increased.

There is also a control interface357to the motovend360to control coin tube deposits and vends. Coin tubes can be inserted into one or more of the eight slots for depositing rolls or tubes, of quarters, dimes, nickels, pennies, or tubes of currency. These rolls and tubes are kept secured in the drop safe until a vending operation is required to replenish the cash register or to dispense for a courier pickup or management audit of contents. It can also be used to vend tubes of currency. The motovend360is controlled by the CPU300to vend tubes either from an employee input on the LCD320or from a remote command over the modem335or Ethernet340interfaces. There is also a control interface303connecting the drop vault lock assembly305to the motovend360. The motovend360connects to the bill acceptor vault lock assembly310using control interface307, and the motovend360connects to the courier vault lock assembly315using control interface313. The electronic lock itself uses an electric solenoid to secure the vault door, but any basic electromechanical locking mechanism can be used to secure the vault doors. The security software application operating on the CPU300controls when the vault doors can be opened using the control interface357to the motovend360.

In the preferred embodiment, the doors cannot be opened by store employees using a key, although if desired a key option can be used, such as preferred for a courier pickup of vault contents. There is a data key reader370connected to the CPU300by communication link369that permits an entry into the vaults using a physical key. The data key reader370is used to provide a hardware identification signature capability for safe access based on a physical item such as a data key or magnetic strip imprinted data card.

The Software Features

The CPU of the computerized drop safe operates and controls the drop safe using a programmable software package. The software program of the computerized drop safe incorporates a number of features in the preferred embodiment. Referring toFIG. 4, the computer software subroutines and/or subprograms operating on the CPU support operational functions of the computerized drop safe. The CPU software400operating on the computer offers retail businesses considerable flexibility to tailor their security protocols and procedures.

In the preferred embodiment, the CPU software400door control subroutine405can control access to the three vault doors. The door control subroutine405configuration generally only permits timed entry, unlocking a door and allowing vault access after a ten minute delay, although this delay feature can be eliminated or even extended. Vault access can be configured according to a series of logic rules controlling who can gain access to a given vault compartment. These rules include:1) Can or cannot be opened by a manager.2) Can be opened immediately by a courier, immediately with manager PIN, immediately with any employee PIN, or cannot be opened immediately by anyone.3) Can or cannot be opened by a clerk (storage vault only).4) Can be opened immediately (storage vault only).
Manager user accounts can be configured not to allow vault opening or to allow vault opening. Executive accounts can open any vault but must wait the required time. The doors can also be set to not open during a given period of the day or given period(s) of the week. The doors can also be set to have a shorter or longer wait than 10 minutes for earlier or later opening by selected user accounts.

As another security feature, the door control subroutine405restricts vault access to manager or executive hierarchy users that verify their identity via either a personal identification number (PIN) or hardware identification (ID) method at the safe location and then can request to open a vault door open. Another security enhancement available is an internal timer countdown embedded in the various policies that can lockout vault door access either because of unauthorized access attempt, lack of manager permission, or a control input. Once the internal countdown starts, vault access cannot be obtained because of the lockout in effect. When the timer countdown is complete, an indicator on the LCD screen shows countdown complete and door access now permitted. A manager or executive level user can then identify himself or herself to the CPU processor by an appropriate input at the safe location, and request unlocking the vault door. The software then opens the vault door according to that command input to the safe at the safe location and the implemented software security protocol. Another possible security option is to implement a secure remote, centralized door unlocking protocol using a modem or a LAN command input, if appropriate security measures are undertaken. The door control subroutine405can also control access using double login door control that requires two employees logging into the system at the safe location to open the safe.

The video control subroutine410activates a digital video recorder linked to the computerized drop safe. If a specified event transpires, the CPU software400activates a digital video recorder to record the immediate vicinity around the safe and provide a video graphic record for review of the person or persons in the vicinity around the safe when the specific event occurred. The specified event can be any of several sensor inputs available, such as a safe door opening, a bill acceptor cassette removed, a bill acceptor cassette dispensing, a wrong or invalid PIN input, a vending operation, an employee data entry (e.g. security alarm), or some other option. The image of the person or persons responsible for creating the specified event should be captured by the video recorder. The digital video recorder will record the safe and the immediate vicinity for a specified period of time. The video recorder can also be tied into an alarm system.

The basic report generating module415of the CPU software400supports generation of several general types of reports:

1) Transaction Report: The data inputs from the various safe components can be logged into the CPU memory as transaction such as a currency transactions (e.g. currency deposit into the bill acceptor) or a hardware transaction (e.g. drop vault slot open). These logged transactions track safe functions and currency deposits and withdrawals and are used to audit machine usage. The software can print transactions by time, by type, or by user name.

2) Financial-based Reports: Several report formats are available and can break down usage by shift, by specified time period, and by business day. These various reports incorporate data from the transactions to generate reports for accounting and management review of actual receipts.

3) Setup Report: Describes the configuration and security policies operating on the drop safe. The setup report shows how the safe is configured for control by the various hierarchal accounts.

4) Exception Report: Describes any atypical software failures noteworthy to the programmer.

Several basic representative reports are shown inFIGS. 5-19that may be implemented using the software.FIG. 5shows an example of a Bill Acceptor Report500. This transaction report is generated from the “Insert Bills” menu on the LCD after bills are inserted into the bill acceptor and a data input for “done” is made. The report includes a report identity505and the user identity510causing generation of the report. The time and date515of report generation, and the number, denomination, and total of the currency deposited520. The Bill Acceptor Report list user inserting the bills, number and denomination of the bills, and total value of bills inserted in the transaction.

FIG. 6shows an example for a Cash Drop Receipt Report600. This transaction report is generated whenever a cashier deposits currency into the drop vault. The report600includes the name of the report605, user identity610of the person making the drop, the date and time615of the drop, and the cash amount620dropped.FIG. 7show an example for a Check Drop Receipt Report700. This transaction report is generated whenever a cashier deposits checks into the drop vault. The report700includes name of the report705, the user identity710of the person making the drop, the date and time715of the drop, and the check amount720dropped.

FIG. 8show an example for an Other Drop Receipt Report800. This transaction report is generated whenever a cashier deposits other receipts, such as credit card receipts or coin tubes, into the drop vault. The report800includes name of the report805, the user identity810of the person making the drop, the date and time815of the drop, and the amount820dropped.FIG. 9shows an example for a Total Drop Report900. This transaction report is generated upon user request for a specified time period or according to a user configured schedule. The report includes the name of the report905, the date and time910the report is generated, the date and time915that a drop was made, the identity920of the person making the drop, the type925of the drop, the amount930of the drop, the total amount of cash dropped935, the total amount of check receipts dropped940, the total amount of other receipts dropped950, and an indicator of the end of the report955.

FIG. 10shows an example for a Transaction Report1000. The Transaction Report1000includes the name1005of the report, the date and time1010the report was printed, the date and time period covered1015, the date and time of the transaction1020, the identity1025of the person making the transaction, the transaction type1030, and an end of report indicator1035. Transaction types that may be tracked by the software include, but are not limited to, the following:1) Storage Vault Open: Logged when storage vault is unlocked by a user.2) Acceptor Contents: Prints amount of currency stored in the bill acceptor currency cassette prior to courier withdrawal.3) Acceptor Emptied: Logged when courier opens acceptor vault door to remove the currency cassette or a clear acceptor command is received by the CPU.4) Acceptor Open Request: Logged when the CPU receives an open request for the acceptor door that accesses the currency cassette storage.5) Acceptor Vault Close: Logged when the bill acceptor door handle turns to lock by a user.6) Acceptor Vault Open: Logged when the bill acceptor door handle turns to unlock by a user.7) Acceptor 2 Open Request: Logged when the CPU receives an open request for the acceptor door, but on a second acceptor vault, if present, that accesses the currency cassette storage.8) Acceptor 2 Vault Close: Logged when the bill acceptor door handle turns to lock by a user, but on a second acceptor vault, if present.9) Acceptor 2 Vault Open: Logged when the bill acceptor door handle turns to unlock by a user, but on a second acceptor vault, if present.10) All Acceptor Types: Prints all bill acceptor activity performed within the date range selected. This activity can include each bill deposit into the acceptor and each bill dispensed out of the acceptor tracked by denomination and user.11) All Door Types: Prints all door and drop chute activity performed within the date range selected. Examples of logged activity include a user accessing the drop chute, the drop vault through the door, or the storage vault door.12) All Types: Prints all activities performed with the date range selected.13) All Vend Types: Prints all vending activity performed within the date range selected.14) Beginning Balance: Logged after an End of Day performed. Beginning balance is amount in the unit at time End of Day performed. Balances for following logged: a) total of all tubes, b) total drops by cash/check/other, c) total in drop vault by cash/check/other, d) total in storage vault by cash/check/other, and e) total in Bill Acceptors. Can also be logged after an End of Shift is performed.15) Bill Accepted: Prints number and types of bills loaded in bill acceptor.16) Bill Acceptor Failed: Logged when the bill acceptor reports an error condition to the CPU. Examples can include no denomination detected, failure to feed into cassette, cycling incomplete, or no power.17) Bill Acceptor Full: Logged when the cassette is full of deposited bills.18) Bill Acceptor Jammed: Logged when the bill acceptor reports a jammed condition to the CPU.19) Bill Acceptor Not Full: Logged when successful bill load detected after a “Bill Acceptor Full” condition reported.20) Bill Acceptor Recover: Logged when the bill acceptor reports an operational condition after a “Bill Acceptor Failed” condition reported.21) Bill Acceptor Unjammed: Logged when a successful bill load is detected after a “Bill Acceptor Jammed” condition was reported.22) Bookmark: Logged whenever a bookmark is fed into a bill acceptor. Can be used to demarcate the bills deposited between one shift and the next, end of day, or some other significance.23) Cassette Removed: Logged when the cassette is removed from the bill acceptor and includes the total of the bills in the cassette.24) Cassette Replaced: Logged when the cassette is replaced in the bill acceptor after a “Cassette Removed” logged.25) Cheat Detected: Logged when the bill acceptor detects bill travel away from the cassette. This can include when the bill acceptor rejects a bill fed into the acceptor or when a bill is manually withdrawn by the clerk.26) Clerk Tube Loaded: Logged when a cashier loads tubes using the Load Tubes selection. The column loaded, number of tubes loaded, and total value of the tubes located is reported.27) Cold Start: Logged whenever a Cold Start is performed in the Troubleshooting Menu.28) Cold Start Request: Logged whenever a Cold Start is requested in the Troubleshooting Menu.29) Column Config: Logged when the values to the tubes are changed in the Cash Control Menu of the setup.30) Courier Key: Logged when the Courier key is used to open a vault door.31) Courier Retrieval: Logged when the courier tray or bill acceptor is emptied after the Courier opens the vault.32) Dispensed: Prints recycler transactions for the date range selected. Includes the denomination and number of the bills dispensed.33) Door Whine: When a door is left open for extended periods of time, a warning is displayed on the LCD which prompts the Manager for a code entry to clear. This is logged by the CPU as a door whine.34) Door Whine Override: Logged when the Manager enters a code to clear a Door Whine.35) Drop Chute Open: Logged when the CPU detects the drop chute on the drop vault door pulled to open position.36) Drop Chute Close: Logged when the CPU detects the drop chute return to close position.37) Dump Column: Logged when dumps are requested from the Cash Control Menu. Report lists user requesting the dump, number of tubes in the column, and the total value of the tubes.38) End of Day: Logged each time an End of Day is selected within the date range selected.39) File Reloaded: Logged when a data set has been reloaded from a compact flash card. A compact flash card is a data memory storage device about the size of a matchbook or credit card. For this implementation, compact flash would only be used during factory installation or during service replacement of the CPU and would be used to reload operating software of other data. The presence of a compact flash card reload at any other time may indicate a sophisticated attempt at fraud.40) Main Vault Opened: Prints the date, time, and by whom the Main Vault was opened within the date range selected.41) Main Vault Close: Prints the number of times the main vault was shut and locked within the date range selected.42) Manager Tube Loaded: Logged when the Manager loads tubes using the Load Tubes selection. Prints columns loaded, number of tubes loaded, and value of the tubes loaded and can be associated with the Manager name loading the tubes.43) New User: Logged when a Clerk (e.g. Cashier), Courier, Executive, or Manager account is added.44) Notation: A 16-character text note entered by the courier or manager at time of a pickup or deposit. Can be used to record a seal tracking number for a seal securing a container of store receipt pickups.45) Policy Change: Logged when changes are made to the Policy Setup. The logged user account making the changes is also recorded.46) Program Starts: Logged whenever the operating software on the CPU starts. If the CPU is restarting too often, it may signify power failures caused by electrical faults and problems or attempted fraud.47) Remote Code Issued: Logged whenever the CPU issues an override key code.48) Remote Code PIN Entered: Logged whenever someone enters a remote PIN access code for remote access to the drop safe using the modem, Ethernet, or LCD access.49) Remote Code Verified: Logged whenever the safe verifies that the corresponding response to the override key code is correct.50) Second Vault Close: Logged when the CPU detects the handle of the storage vault turned to close position.51) Second Vault Open: Logged when the CPU detects the handle on the storage vault turned on the storage vault to unlock position.52) Shift End: Logged when an authorized user presses the shift end button. A shift is a subdivision of the business day and generally consists of three eight hour periods with specified start and stop times.53) Time Changed: Logged when the date or time is changed in the Manager or Executive Menu.54) Too Many Bad PINs: Logged when four consecutive incorrect PIN code entries are made. If seven incorrect PIN codes are entered, the system locks the user out barring access until cleared.55) Tube Adjustment: Logged when the number of tubes is changed in the Cash Control Menu. The report will list which column was adjusted, number of tubes added or subtracted, and the total value of the tubes.56) Tube Vend: Logged when a tube vend process begins. Includes column number and tube value, in cents, dispensed by the motovend.57) User Change: Logged when changes are made to a user PIN, name, or permission.58) User Deleted: Logged when an authorized manager deletes a clerk, or when an executive user deletes any other account.59) User Says Bad Vend: Logged when the user selects Report Problem after vending a tube. Report will list the user name, the column, value of the tube, and the reported problem.60) Vault Move: Logged whenever an Adjust Vault Contents or Move Vault Contents is performed. Report will list user performing the transaction, the amount of the transfer, type of transfer, and where transfer was moved to and from.61) Vault Open Request: The Executive or Manager selects the desire vault in the Vault Open Menu.62) Vend Failed: Logged when the CPU detects an error in the vending process (e.g. defective sensor, stripped gears, etc.)

FIG. 11shows an example of a Courier Deposit Report1100. This transaction report reports the currency a courier delivers and deposits into the safe. The report1100includes the name of the report1105, the date and time1110of the deposit, the courier identity1115, a statement1120of the amount of currency deposited and into which vault that the courier (using the courier identity1115) deposited the currency, and an end of report identifier1125.

FIG. 12is an example of a Courier Withdrawal Report1200that can be implemented using the program. This transaction report shows the amount of currency picked up by a courier and breaks the receipts down by category. The report1200includes the name of the report1205, an identifier for the store1210, the print date of the report1215, the courier's name/identifier printing the report1220, the date range1225of receipts in the pickup, total value of the pickup1230, amount of cash in the pickup1235, the number and value of the checks in the pickup1240, the contents of the bill acceptor1245broken down by denomination to list number of bills in each acceptor1246, total number1247, and total value1248. Receipts are also broken down by business day1250. For each business day, the report list the date and time of the end of the business day1251, amount of acceptor cash1252, the amount of cash deposits1253in the courier tray, the amount of check deposits1254in the courier tray, the amount in other deposits1255in the courier tray, and the total deposit value1256. The end of the report1260is also indicated. This report can be used as a receipt from the store to a courier detailing the receipts picked up by a courier.

FIG. 13shows an example for a Courier Content Report1300that can be implemented using the program. This financial-based report provides similar information found in the Courier Withdrawal report1200to provide information for store management in a slightly different format. The report1300includes the name of the report1305, an identifier for the store1310, the print date of the report1315, the user identifier of the person printing the report1320, the date range1325of receipts covered by the report (e.g. from one courier pickup to the next), totals of receipts in the pickup1330. The totals are broken down by amount of acceptor cash1331, courier tray cash deposits1332, courier tray check deposits1333, courier tray other deposits1334, and total deposits1335. These totals are further broken down and detailed by business day1340. The business day of the receipts is found at the date and time1341of the deposit, the acceptor cash deposits1342, the courier tray cash deposits1343, the courier tray check deposits1344, the courier tray other deposits1345, and the total deposits1346. An end of report identifier1355is also found.

An example of a Current Content Report1400that can be implemented with the software is found inFIG. 14. This financial-based report shows the current contents of the drop safe in each vault and the bill acceptors. The report1400includes the name of the report1405, an identifier for the store1410, the date the report was printed1415, and the name1420of the user requesting the report. The amount of cash in the drop vault1425, the amount in checks in the drop vault1430, the amount in other in the drop vault1448, and the total in the drop vault1440.

The storage or courier vault is broken down into two separate categories in this example. The current vault amounts represent stored cash on hand receipts segregated from receipts designated for courier pickup. The cash1446represent stored cash, the check1447represents stored checks, the other1448represents other receipts, and the total1449represents the total value of the receipts stored in the vault. The courier amounts represent store receipts designated for courier pickup. Current courier tray cash1450represents cash receipts for courier pickup, current courier tray check1455represents the check receipts for courier pickup, current courier tray other1460represents the other receipts for courier pickup, and the current courier tray total1465represents the total receipts for courier pickup.

The Column Contents1470tracks the tube count by columns of tubes in the motovend inside the safe. Each tube (or roll) is deposited through a tube-slot into the motovend's storage columns. The report1400list each column1471, the number of tubes1472in each column, designated tube values1473, and total value of the currency in each column1474.

The Bill Acceptor Contents1475lists the contents in each of the bill acceptors by denomination1476, by each individual acceptor1477, by total of each domination1478, and by total value for each denomination1479. A data reporting row includes unrecognized currency deposited1480and all currency deposited1481. There is also an end of report indicator1485.

FIG. 15shows a Shift Report1500that can be implemented to provide accounting information for a shift. This financial-based report shows deposit and withdrawal activity from the safe during a specified shift for each user programmed into the CPU and making a transaction. The report1500includes a report identifier1505for the report, the time and date1510the report was printed, the date and time range1515covered by the report, a shift identifier1520, the date and time range1530covered by the shift, the name of the clerk/cashier1535making the listed transactions, the number and value of tubes loaded1536, the number and value of tubes vended1537, the number (and value) of empty vends1538, the number and value1539of bills fed into the acceptor, the number and value of vault drops with cash1540, the number and value of vault drops with checks1541, and the number and value of vault drops other1542, and the net value of the deposits1543.

The tubes vend information is further broken down into vend details1545. This includes the number of tubes vended from each column1546and the number of tubes loaded1547. The bills acceptor is broken down into a record of the bills accepted1550. This includes the denominations1551, the number of each denomination deposited1552, the total value of the accepted currency1553, and also a row for number of unrecognized bills deposited1554and for all bills deposited1555. The above information will be repeated for each user programmed into the CPU and cover each shift requested. There is an end of report indicator for the report end1575.

FIG. 16shows an example of a Summary Report1600that can be implemented using the software. This financial-based report shows deposit and withdrawal activity from the safe during a specified period and specific actions performed by a clerk. The report1600includes an identifier1605for the report, the date and time the report is printed1610, the time and date range1615covered by the report, and the name/identifier for the person printing the report. Beginning balances1625are shown that are the total amounts in the safe at the time the End of Day was performed that ended the reporting period and include entries for the beginning balances in the tubes1626, drop vault total1627(then broken down by cash1628, check1629, and other1630, storage vault1631, courier tray1632, and bill acceptors1633. The net balances1635is the difference between what was deposited into the safe versus what was withdrawn during the time period reported for the tubes1636, the drop vault1637, the storage vault1638, courier tray1639, and bill acceptors1640.

Deposits1645show the deposits made into the safe during the time period reported and includes number of tubes and value loaded by the clerk1646, number of tubes and value loaded by the manager1647, positive adjustments by the manager for tube deposits1648, cash drops1649, check drops1650, other drops1651, storage vault deposits1652, courier drop offs1653, courier tray deposits1654, and bill acceptor deposits1655. Withdrawals1660show the withdrawals made from the safe during the time period reported and includes the number and value of the tubes vended1661, the number and value of tubes dumped1662, negative adjustments by the manager for tube deposits1663, drop vault withdrawals1664, storage vault withdrawals1665, courier tray withdrawals1666, and bill acceptor withdrawals1667. Current totals1670shows the current amounts in the tubes1671, in the drop vault as cash1672, in the drop vault as checks1673, in the drop vault as other1674, in the storage vault1675, in the courier tray1676, and in the bill acceptor1677.

Column Contents1680tracks the tube count by columns of tubes in the motovend inside the safe. The report1600lists each column1681, the number of tubes1682in each column, designated tube values1683, and total value of the currency in each column1684. The Bill Acceptor Contents1685lists the contents in each of the bill acceptors by denomination1686, by each individual acceptor1687, by total of each denomination1688, and by total value for each denomination1789. A data reporting row includes unrecognized currency deposited1690and all currency deposited1691.

The Door Opens record1692shows the number of door openings by user within the reports time range. There is a column entry for clerk1693, manager1694, courier1695, and unknown1696. The unknown entry cover vault door openings when no user is logged onto the system. Each row covers a separate opening into the safe and includes the main vault1697, the drop chute1698, the bill acceptor1699, and the storage vault1700.

The Column Activity1701record summarizes tube transactions from the motovend. Each column in the motovend is identified in the column row1701. The entries for each column include normal vends1703, clerk loads1704, manager loads1705, manager adjustments1706, dumps1707, no vends1708, empty vends1709, and wrong vends1710. There is also a column for all the columns1711and the total value1712of vends. Bill Acceptor Activity1715record summarizes all bills deposited into each bill acceptor by all users. There is a row for each denomination1706, an entry for the number of each denomination deposited in each acceptor1709, and the total number of bills deposited1710. There is also a row showing the number of bills deposited in each acceptor1707, and the value of the currency deposited1708.

Finally, there is a listing of drops and bill acceptors for each user1721. The listing has the user identifier1722, a row for bills accepted1723, cash drops1724, check drops1725, other drops1726, and tubes vended1728. A column lists the number of transactions1729and the value of the transactions1730. There is an identifier for the end of the report1740.

FIG. 17shows a Setup Report. The report1800includes a report identifier1801and list information on the software program versions installed on the CPU1805. The setup includes the specified values1810of the currency stored in the motovend's columns. Each of the eight columns1811in the motovend are listed. The currency denominations1812in the tubes stored in each column are also defined. Currency denominations stored in the tubes include coins (e.g. $0.01, $0.05, $0.10, $0.25) and currency (e.g. $1.00, $5.00, $10.00, and $20.00 bills). The amount of currency for each currency denomination is also defined (e.g. 50×$0.01, 40×$0.05, 50×$0.10, 40×$0.25, 10×$1, 4×$5, 2×$10, and 2×$20). Finally, the value of currency1814in each tube stored in the columns is listed.

Various vault door and vending time settings and protocols1815are listed. The COURIER_SUBJECT_TO_LOCKOUT1816determines if the courier can open the vault when the Daily or Weekly lockouts are enabled. The DOOR_DELAY1817specifies the length of the standard door opening delay shown in seconds (e.g. 0000600=600 seconds=10 minutes). The WEEKLY_LOCK_ENABLED1818if enabled prevents door opening during time periods set in the Executive Policy. The DAILY_LOCK_ENABLED1819if enabled prevents door opening during time periods set in the Executive Policy. DAILY_LOCK1820shows the programmed start time and duration of the lock down period. PROGRAMMABLE_VEND_ENABLED1821if enabled delays the time vending operations occur according to the Alternate Vend Interval value programmed in the Executive Policy. The ALT_VEND1822list the Alternate Vend Interval in seconds (e.g. 000030=30 seconds). If enabled, the ALT_DOOR_ENABLED1823specified that the opening door time delay setting will follow the Alternate Door Delay time in the Executive Policy, and, if not enabled, the door time delay follows the standard door opening time delay. ALT_DOOR_DELAY1824shows the vault door opening delay in seconds.

The Setup Report1800also displays peripheral information1825. STAM_PORT1826is a communication port. BILL_READER_CONFIG1827shows the configuration settings of the bill acceptors connected to the CPU. Users will stay logged on until the LOGOFF button is selected when SINGLE_USER_MODE1828is enabled. The IBUTTON_PORT1829indicates where the Ibutton is connected, if used. MOTOSLAVE_PORT1830indicates where the safe's main printed circuit board is connected. The DEBUG_PORT1831shows the location of the diagnostic port and is not used by the operator. LOGGER_ENABLED1832is for internal use and not used by the operator.

Vault door settings1835are shown in the report1800. MAIN_VAULT1836indicates who can open the main vault door. READER_VAULT1837indicates who can open the bill acceptor vault, and SECONDARY_VAULT1838indicates who can open the door of the storage vault and if there is an opening delay time or instant opening. Printer information1840is also shown on the report1800. PRINTER1846indicates the printer type configuration. DROP_RECEIPT1842specifies the number of receipts printed when a drop is performed. COURIER_RECEIPT1843shows the number of receipts printed when the Bill Acceptor and Courier Tray are emptied after the Courier opens the vault. ACCEPTOR_RECEIPT1844specifies the number of receipts printed when deposits are made into the Bill Acceptor. VAULT_TERM1845sets the terminology to print on the reports.

Miscellaneous settings1850shows a number of miscellaneous information entries. LOTTERY_PORT1851indicates the connection for a connected lottery terminal. STORE_IDENTIFIER1852indicates the name used for the store location. SHIFT_INACTIVE1853indicates if the automatic “shift ending” feature is active and the number of hours of inactivity required before activating a shift end transaction. ACCEPTOR_SEAL1854indicates whether or not Bill Acceptors seals are being used. If enabled, PIN_LOCKOUT1855causes a ten minute lock down of the safe if seven incorrect PIN code entries are made. If enabled, DVR_ENABLED1856activates the digital video recorder control protocols. If disabled, ACCEPTOR_ESCROW1857sets a faster acceptance time for the bill acceptor, but if a power failure occurs during insertion that bill may not be counted. An identifier for the end1860of the report is also present.

Other variations of this report are possible. Other information found in different report variations can include the name of the store and address communication configuration settings (e.g. Media Access Control address (MAC), Dynamic Host Configuration Protocol (DHCP), Internet Protocol (IP) address, etc). Alternate time specifications can be listed such as door delay, vend delay, or time of day options. A log level can be shown indicating how information is stored in the memory for various transactions. There can be an indication of the degree of control and monitoring available on a network connection such as point-of-sale or back-office interfaces enabled or not. Current language settings operating on the safe can be shown in the report. Different settings can be shown for each vault such as whether the courier or clerk can open the vault door and whether a delay is active.

Specifications for the printer output can also be shown in the setup report including the serial port printing is directed toward and number of receipts to print for specified transactions such as when the courier visits, when inserting bills, or when performing vault moves or adjustments. Print options for automatically printing a end of day or end of shift report can be shown. Different settings for the bill acceptor can be reported such as whether a bill escrow function is active, whether bookmarks are enabled so the acceptor can segregate currency by depositing non-currency slips of paper into the cassette, whether security protocols on the acceptor are active, and whether cassette totals are automatically cleared for accounting. Courier key settings can be enabled and shown such as to clear totals and print receipts automatically. Whether a notation option is set can be shown. The number of registers can be shown and whether there is an association with a register (e.g. associating a transaction with a register and print reports associated with that register).

FIG. 18shows a Manager Description Report1900. This is a setup report showing the access policies in effect for a particular manager account. The report1900has the name of the report1901, the store where manager is employed1902, the date and time1903printed, and the version of the report or software1904. The report shows an identifier for the manager1905and the manager's PIN code1910. The Vend Limit1915is the maximum amount that can be vended from the motovend in a single transaction. There is also a list of privileges1916allowed for that manager.

Can print reports1917allows the manager to print reports from the CPU interface. Can load tubes1918allows the manager to load tubes into the safe. Can end business day1919allows the manager to clear the reports for the business day, updating the internal memory, and begin a new business day reporting period. Can end shift1920allows the manager to clear the reports for the shifts, updating the internal memory, and beginning a new shift reporting period. Language English (United States)1921shows the set language option for the manager. Can open storage door1922allows the manager access to the storage vault. Can change own PIN1923allows the manager to change his own PIN number. Can open main vault door1924gives the manager access control to the main vault door. Can open acceptor vault door1925gives the manager access control to the acceptor vault door securing the cassettes. Can activate alternate vend1926allows the manager to activate the alternate vending interval time instead of the standard two minute vend time delay. Can activate time of day vend interval1927permits the manager to activate this feature to vary the vending interval at specified times during the day. Can activate time of day or week lockout1928permits the manager to activate this feature to lockout the access to the safe at specified times.

Can dump tubes1929allows the manager to dispense all tubes from a selected column (e.g. a tube dump). Can adjust tube count1930allows the manager to add or subtract the number of tubes reported in a given column. Can move vault contents1931allows the manager to add, remove, or transfer the amounts currently in the vault from one vault to another, logging the amount of the transfer (e.g. moving drop vault deposits into storage vault). Can adjust vault drops1932allows the manager to adjust the value in the drop vault. Can adjust reserve (main vault)1933allows the manager to adjust the amount inside the reserve, or storage, vault. Can adjust courier tray1934allows the manager to adjust the value in the courier tray. Can edit, add, and delete clerk accounts1935permits the manager to modify the clerk account information and policies. Can NOT edit, add, and delete managers1936locks out the specified manager account from making any changes to manager level accounts. Can clear acceptor counts1937allows the manager to reset the number of bills and amounts reported in the bill acceptor to zero. Can NOT configure columns1938prevents the manager from making any changes to the column values and configuration. The end of the report is also identified1939.

FIG. 19shows a Clerk Description Report2000. This is a setup report showing the access policies in effect for a particular clerk account. The report2000has the name of the report2001, the store where the clerk is assigned2002, and the date and time2003printed. The report or software version2004is also shown. The report shows an identifier for the clerk2005and the clerk's PIN code2010. The vend limit2015is the maximum amount the clerk vend from the motovend in a single transaction. There is also a list of privileges2016allowed for the clerk. Can print reports2017allows the clerk access and permits printing up command all available reports. Can load tubes2018indicates the clerk is allowed to load tubes into the motovend's columns. Can NOT end business day2019means that the clerk is not authorized to close out the accounts at the end of the business day. Can NOT end shift2020indicates the clerk is not authorized to close out the accounts at the end of the shift. Language English (United States)2021shows the set language option for the manager. Can NOT open storage door2022indicates that the clerk can not access the storage vault door. Can change own PIN2023indicates that the clerk can change the PIN associated with their name. End of Clerk Report2024marks the end of the report2000.

The Report Script Subprogram

Referring back toFIG. 4, the report script module or integrated sub-program420operating on the CPU400is an important, innovative feature to the invention.

1. The Computer Code

The computer within the safe understands an interpreted language that uses BASIC (Beginners All-purpose Symbolic Instructional Language) as its core programming language. The script software is written in the BASIC language in the invention as the preferred embodiment, but other languages may be the core and are within the scope of the invention. Some features of BASIC, like Write, are not supported. Numerous other features have been added that permit the script writer to access accounting and content information.

The report script uses Unicode as its data format and to print out the various reports that the program generates. Unicode uses two bytes to represent a single character of a language data set. Many documents generated by computer programs are written in ASCII, which uses one byte to represent a single character. However, ASCII is limited to a language with a character data set of no more than 256 characters, such as English. Numerous languages use more than 256 characters, such as Thai, Japanese, and Hebrew, requiring Unicode format data to display the language. Report scripts are written on a personal computer using a Unicode text editor (e.g. Microsoft Word) and then imported to the CPU. The CPU later parses the report script to generate the report.

2. Script Usage

The script language in this report writing subprogram can be used by a customer after purchase and delivery of the computerized drop safe with minimal computer language skills and does not require any advanced computer language and developer skills to write customized reporting formats program instructions to generate customized report formats. That is, a user can easily write the formatting script program without taking any specialized training or learning a computer language or code to write a program to generate the desired report formats.FIG. 20shows a flow diagram of the program's operation. The CPU begins start up in step2105. In step2110, the CPU searches for files in its permanent memory storage that have a “b” suffix. These “b” suffix files are report scripts. In step2115, the CPU briefly examines the files to determine the file name and print time—that is, when the file should be printed. Time designations include: 1) printed on courier visit, 2) on end-of-shift, 3) on end-of-day, or 3) when requested from the Report screen.

In step2120, the script is invoked, or run, and the computer reads the script file and parses the contents into BASIC instructions. If the parsing fails, as is common during script development, an error message is briefly displayed describing the problem and where within the file the problem was encountered. Note that the entire file is parsed, so the developer is assured that once a script parses without error, it will always parse without error afterwards. If the script program successfully parses the file contents, a stream of Unicode characters formatted into the generated report will appear. The report will contain the name of the report, when it was printed, and by whom.

Every valid script contains four features at the beginning of the script file, called headers, that are commented-out with the # symbol. There are also four optional features: BY_USER, CLERK_PRINT, LAST_INTERVAL, and INCLUDE. Headers can include the following:

1) SCRIPT_NAME: This is the name that will be printed at the top of the report. For reports printed from the Report screen, this is also the text displayed in the button on the LCD for that report.

2) REPORT_TYPE: This indicates when the report should be printed. Options contained in the script that can be specified in this script are as follows:

FIG. 21shows an example of a header. The first header line2205defines the name “Scripted End of Day” using the “#SCRIPT_NAME” header. The second header line2210specifies that the report is an End of Day report that should print when the End of Day button is pressed on the LCD using the “#REPORT_TYPE” and “END_OF_DAY” header. The third line2215“#INTERVAL BY_BUSINESS_DAY_WITH_SHIFTS” specifies the report data covers a single business day broken up by shifts. The fourth line2220specifies that the report belongs to the family labeled “KASPER” using the “#FAMILY” header.

FIG. 22shows a second example of a header. The script name is defined in the first line of the header2305as “Reprint End of Shift”. The second line2306means that this report type is a screen report that displays on the screen using the “#REPORT_TYPE SCREEN” header. The third line2307uses “#INTERVAL BY_BUSINESS_DAY_WITH_SHIFTS” to specify a single business day broken up by shifts for the report. The fourth line2308designates the report as belonging to the family labeled “ORIGINAL” using the “#FAMILY” header. The fifth line2309permits the clerk to print the report using the “#CLERK_PRINT” header. The sixth line2310“#BY_USER” allows the clerk to specify if the report is for everyone or a specific user.

The script program supports the following BASIC features:

These features of BASIC have been altered for the script program:

There are additional commands found in the script program. These commands used are case-insensitive and are recognized regardless of the case used for these keywords. Some of the commands can take multiple parameters and are separated by commas. The commands are shown below in Table 1.

For the FORMAT command, the first type, which accepts either “normal” or “bold” as keyword parameters, indicates if the text that follows should be printed in boldface or normal ink. The second type, which accepts two parameters, indicates how numbers should be formatted. ‘c’ indicates that numbers should be regarded as cents, and printed in the form appropriate for the country that the safe is located (e.g. “$4.56” in the US or “4.56 ε” in Germany). ‘f’ indicates that numbers should be regarded as cents, but suppresses any currency symbols (e.g. 4.56). ‘n’ indicates that numbers are expected to be whole dollars (or Euros, etc.), and that decimals should be suppressed (e.g. 400 prints as 4). ‘i’ indicates that numbers are whole, and that decimals should be suppressed (e.g. 456 prints as 456). The IDENT command prints all following lines indented by a number of spaces equal to the precision.

Using the MOVE command, if VALUE is specified, it returns the value, in cents, of money moved from the specified location to the specified location. If COUNT is specified, it returns the number of movements from the specified location to the specified location. POSADJUST (e.g. Positive adjustment corrections that increase the value of the drop, reserve, or courier tray) can only appear in the From parameter and not in the To parameter. DROPOFF (e.g. funds left by the courier) can only appear in the From parameter. This parameter is a special case and is also subsumed into the Move (Outside, Reserve, Cash) value. TUBELOAD (e.g. funds used to load the tubes), can only appear in the To parameter. This is also a special case subsumed into the Move(Reserve, Outside, Cash) value. NEGADJUST (e.g. negative adjustment corrections that decrease the value of the drop, reserve, or courier tray) can only appear in the To parameters, not the From parameter. In the first example given in the table, MOVE (Outside, Drop, All, Value), the value, in cents, is returned for all manual vault drops. In the second example, MOVE (Reserve, Negadjust, Check, Count), retrieves the number of negative adjustments performed on checks within the reserve.

The MOVE_INTERVAL command works like MOVE, but is used to determine movement within a specified interval. Note that a variable can be used to specify the interval, making this command usable within a “while” loop. The example, Move_Interval (Outside, Drop, Checks, Value, 0), retrieves the value in cents of all checks dropped in the first shift. The MOVE_PERSON also works like MOVE, but this command is used to determine movement by a specific person. A variable can be used to specify the person, making this command usable within a “while” loop. In the example, Move_Person (Outside, All, Other, Value, 1287) will return the value in cents of all non-cash, non-check money that the person specified by the person identifier “1287” moved from the outside to any other place in the safe.

This command MOVE_INTERVAL_PERSON works like MOVE, but is used to determine movement by a specific person within an interval, such as the third person in the second shift. Note that a variable can be used to specify the person, making this command usable within a “while” loop. In the example, Move_Interval_Person (Drop, Ctray, All, Value, 4, 1287) returns the value in cents of all money moved from the drop to the courier tray by the person specified by “1287” within the last four shifts.

The CONTENT command returns the value, in cents, of the specified currency type that is currently in the drop safe at the specified location. In the example, CONTENT (DROP, CHECK), the value of the checks in the drop vault is returned. The BALANCE command returns the value, in cents, of the specified currency type, that was in the safe at the specified location at the start of the time period covered by the report. The example, BALANCE (RESERVE, CASH), returns the value of the cash in the storage vault.

The ACCEPTOR command varies widely depending upon the parameters. ACCEPTOR(Value) returns the value, in cents, of all bill acceptor deposits in the time period covered by the report. ACCEPTOR(Current) returns the value, in cents, of the total bill acceptor contents ACCEPTOR(Start) returns the value, in cents, of the total bill acceptor contents at the start of the time period covered by the report. ACCEPTOR (Withdraw) returns the value, in cents, of all bill acceptor withdrawals in the time period covered by the report. ACCEPTOR (Fancy, Current) returns a textual description of the current contents of the bill acceptors. ACCEPTOR(Fancy, Value), returns a textual description of all bill acceptor deposits in the time period covered by the report. If the report is for MANAGER_PICKUP, then only acceptor transactions associated with the vault serviced by the manager will be considered for the ACCEPTOR function.

The ACCEPTOR_INTERVAL command also varies depending upon the parameter. If the optional parameter, Fancy, is present, then the return value is text describing all bill acceptor deposits during the specified interval. If the optional parameter, Count, is present, then the return value is the number of bills accepted during the specified interval. If the optional parameter is not present, then the return value is the cent amount of all bill acceptor deposits during the specified interval.

For the ACCEPTOR_PERSON command, if the optional parameter, Fancy, is present, then the retrieved value is text describing all bill acceptor deposits by the specified person. If the optional parameter, Count, is present, then the retrieved value is the number of bills accepted by the specified person during the time period of the report. If the optional parameters are not present, the retrieved value, in cents, is all bill acceptor deposits by the specified person during the specified interval.

For the ACCEPTOR_PERSON_INTERVAL command, if the optional parameter, Fancy, is present, then the return value is text describing all bill acceptor deposits during the specified interval for the specified person. If the optional parameter, Count, is present, then the return value is the number of bills accepted by the specified person during the specified interval. If no optional parameter is present, the command returns the value, in cents, of all bill acceptor deposits by the specified person during the specified interval.

The TIME command returns a string representing the start, or stop, of the time period covered by the report formatted to local time standards. TIME_INTERVAL returns a string representing the start, or stop, of the time period specified by the interval formatted to local standards.

The TUBE command retrieves significantly different values based upon its parameters. TUBE(FANCY, CURRENT) returns a textual description of all tubes currently in the safe in tabular format. The table does not have headers, so it is up to the script author to use the “print” or “println” BASIC statement to generate and print the headers. The table has four vertical entries, or columns. The first entry is the column number (1, 2, 3, 4, etc.). The second entry is the number of tubes held in that column of the motovend. The third entry is the value of a single tube within the column, in cents. The fourth entry is for the value of all tubes within the column, in cents. TUBE(FANCY, STOP) returns a textual description of all tube contents at the end of the report period. TUBE(FANCY, ALL) returns a textual description of all tube activity during the time period covered by the report.

The parameter TUBE_T_VEND returns the count, or value in cents (depending upon activity type), of all tubes vended in the report period. The parameter TUBE_T_FAIL returns the count, or value in cents (depending upon activity type), of all tube vend failures during the report period. The parameter TUBE_T_CLOAD returns the count, or value in cents (depending upon activity type), of all clerk tube loads in the report period. The parameter TUBE_T_MLOAD returns the count, or value in cents (depending upon activity type), of all manager tube loads during the report period. The parameter TUBE_T_DUMP returns the count, or value in cents (depending upon activity type), of all tube dumps during the report period.

The parameter TUBE_T_POSADJ returns the count, or value in cents (depending upon activity type), of all positive adjusts during the report period. The parameter TUBE_T_NEGADJ returns the count, or value in cents (depending upon activity type), of all negative adjusts during the report period. The parameter TUBE_T_NOVEND returns the count, or value in cents (depending upon activity type), of all no-vend incidents during the report period. The parameter TUBE_T_EMVEND returns the count, or value in cents (depending upon activity type), of all empty-vend incidents during the report period. The parameter TUBE_T_WRVEND returns the count, or value in cents (depending upon activity type), of all wrong-vend incidents during the report period.

TUBE(CURRENT) returns the value, in cents, of all tubes currently in the motovend. TUBE(START) returns the value, in cents, of all tubes in the safe at the start of the time period covered by the report.

The TUBE_INTERVAL command is similar in operation to the TUBE command and retrieves significantly different values based upon its parameters. TUBE_INTERVAL (3, FANCY) returns a textual description of all tube activity during the specified interval (e.g. 3 shifts), and this type does not require the COUNT/VALUE activity type parameters. The information will be in tabular format showing four vertical entries, or columns. The first entry is the column number (1, 2, 3, 4, etc.). The second entry is the number of tubes held in that column of the motovend. The third entry is the value of a single tube within the column, in cents. The fourth entry is for the value of all tubes within the column, in cents.

The parameter TUBE_T_VEND returns the count, or value in cents (depending upon activity type), of all tubes vended in the specified interval. The parameter TUBE_T_FAIL returns the count, or value in cents (depending upon activity type), of all tube vend failures during the interval. The parameter TUBE_T_CLOAD returns the count, or value in cents (depending upon activity type), of all clerk tube loads in the interval. The parameter TUBE_T_MLOAD returns the count, or value in cents (depending upon activity type), of all manager tube loads during the interval. The parameter TUBE_T_DUMP returns the count, or value in cents (depending upon activity type), of all tube dumps during the interval.

The parameter TUBE_T_POSADJ returns the count, or value in cents (depending upon activity type), of all positive adjusts during the interval. The parameter TUBE_T_NEGADJ returns the count, or value in cents (depending upon activity type), of all negative adjusts during the interval. The parameter TUBE_T_NOVEND returns the count, or value in cents (depending upon activity type), of all no-vend incidents during the interval. The parameter TUBE_T_EMVEND returns the count, or value in cents (depending upon activity type), of all empty-vend incidents during the interval. The parameter TUBE_T_WRVEND returns the count, or value in cents (depending upon activity type), of all wrong-vend incidents during the interval. The parameter COUNT and VALUE specify whether the information displayed is by count of tubes or value of the tubes.

The TUBE_PERSON command also operates similarly to the TUBE command to retrieve tube vending activity by person. The TUBE_PERSON(1287, FANCY) command returns a textual description of all tube activity performed by the person specified by1287. TUBE_PERSON (1287, VALUE) returns a 1 if the person performed any tube activity; 0 otherwise.

The parameter TUBE_T_VEND returns the count, or value in cents (depending upon activity type), of all tubes vended by the specified person during the report period. The parameter TUBE_T_FAIL returns the count, or value in cents (depending upon activity type), of all tube vend failures by the specified person during the report period. The parameter TUBE_T_CLOAD returns the count, or value in cents (depending upon activity type), of all clerk tube loads by the specified person during the report period. The parameter TUBE_T_MLOAD returns the count, or value in cents (depending upon activity type), of all manager tube loads by the specified person during the report period. The parameter TUBE_T_DUMP returns the count, or value in cents (depending upon activity type), of all tube dumps by the specified person during the report period.

The parameter TUBE_T_POSADJ returns the count, or value in cents (depending upon activity type), of all positive adjusts by the specified person during the report period. The parameter TUBE_T_NEGADJ returns the count, or value in cents (depending upon activity type), of all negative adjusts by the specified person during the report period. The parameter TUBE_T_NOVEND returns the count, or value in cents (depending upon activity type), of all no-vend incidents by the specified person during the report period. The parameter TUBE_T_EMVEND returns the count, or value in cents (depending upon activity type), of all empty-vend incidents by the specified person during the report period. The parameter TUBE_T_WRVEND returns the count, or value in cents (depending upon activity type), of all wrong-vend incidents by the specified person during the report period.

The TUBE_INTERVAL_PERSON operates similarly to the TUBE command to retrieve tube vending activity by interval and person. The TUBE_INTERVAL_PERSON(3, 1287, FANCY) command returns a textual description of all tube activity performed by the person specified by 1287 during the interval specified by 3 (e.g. 3 shifts). TUBE_INTERVAL_PERSON (3, 1287, VALUE) returns a 1 if the person performed any tube activity in the interval; 0 otherwise.

The parameter TUBE_T_VEND returns the count, or value in cents (depending upon activity type), of all tubes vended by the specified person during the interval. The parameter TUBE_T_FAIL returns the count, or value in cents (depending upon activity type), of all tube vend failures by the specified person during the interval. The parameter TUBE_T_CLOAD returns the count, or value in cents (depending upon activity type), of all clerk tube loads by the specified person during the interval. The parameter TUBE_T_MLOAD returns the count, or value in cents (depending upon activity type), of all manager tube loads by the specified person during the interval. The parameter TUBE_T_DUMP returns the count, or value in cents (depending upon activity type), of all tube dumps by the specified person during the interval.

The parameter TUBE_T_POSADJ returns the count, or value in cents (depending upon activity type), of all positive adjusts by the specified person during the interval. The parameter TUBE_T_NEGADJ returns the count, or value in cents (depending upon activity type), of all negative adjusts by the specified person during the interval. The parameter TUBE_T_NOVEND returns the count, or value in cents (depending upon activity type), of all no-vend incidents by the specified person during the interval. The parameter TUBE_T_EMVEND returns the count, or value in cents (depending upon activity type), of all empty-vend incidents by the specified person during the interval. The parameter TUBE_T_WRVEND returns the count, or value in cents (depending upon activity type), of all wrong-vend incidents by the specified person during the interval.

For the NUMBER_OF. command, if INTERVAL is the first parameter, this function returns the number of intervals in the report (days or shifts). If PERSON is the first parameter, this function returns the number of people performing actions during the report period. If PERSON is the first parameter, and another parameter follows, the second parameter is interpreted as an interval number, and the number of people performing actions within the specified interval is returned.

The BOUNDED command is used on business day reports, and indicates if the report's period was bracketed at the beginning or end by an end-of-day marker. The optional form indicates if a given interval was ‘complete’ at either the start or stop of the interval. For example, a report generated on an unclosed shift (i.e. the current shift) will compute BOUNDED(START) to be true, and BOUNDED(STOP) to be false.

The PERSON_NAME function returns the name of the person referred to by the parameter. For the example, PERSON_NAME(1287), the name of the employ specified by the numeric value of “1287” is retrieved. The INTERVAL_OF_INTEREST command is useful only for a single shift within a business day report. It is used to determine which shift (interval) the report should be acting on. The PROGRESS function will display the script's progress on the screen as it is executed by using this function. For the NOTATION command, if COUNT is the first parameter, then this function returns the number of notations made by the safe within the time period of the report. Otherwise, the function returns the text of the notation specified by the index.

Each of the previously described reports can be generated using the report script generating program. Other example reports are shown inFIGS. 23-28.FIG. 23shows an example for a Courier Withdrawal transaction report showing the amount of currency picked up by a courier and breaks the receipts down by category. The report2300includes the name of the report2301, an identifier for the store2302, the print date of the report2304, the courier's, manager's, or other user's name/identifier printing the report2305, the date range2306of receipts in the pickup, total value of the pickup2310, amount of cash in the courier tray2315, the value of the checks in the courier tray2317, the contents of the bill acceptor2320(e.g. Bill Acceptor Counts) broken down by denomination to list number of bills in each acceptor2321, total number in each bill acceptor2322, and total value in each2333. The collective totals number of each denomination are listed in another entry column2335, and the total value for each denomination is also shown2336. There is also a total bill count2337and a total currency value2338.

Receipts are further broken down by business day2340. There is a partial day entry at2341with receipts for the day listed. Acceptor cash2342lists the cash in the bill acceptor for the time period. Courier tray cash deposits2343shows the amount of cash deposited in the courier tray. Courier tray check deposits2344shows the amount of cash deposited in the courier tray. The total deposits2345is also shown. There is a complete business day listing at2346that is also broken down to show acceptor cash2347, courier tray cash deposits2348, courier tray check deposits2349, and total deposit value2350. Other business day listings are shown at2351,2352,2353, and2354. Partial day listing2354shows the amount of deposits as or the courier pickup. The previous partial day listing2341marks the time of the previous courier pickup. There is also an end of courier report2355entry. This report can be used as a receipt from the store to a courier detailing the receipts picked up by a courier.

The Current Content Report inFIG. 24shows the current contents of the drop safe in each vault and the bill acceptors. The report2400includes the name of the report2401, an identifier for the store2402, the date the report was printed2403, and the name2404of the user requesting the report. The current amount of cash in the drop vault is shown at2405broken down by cash2406, by check2407, and total2408. The current amount in the storage or reserve vault (e.g. Current Reserve Change Fund) is shown at2409broken down by cash2410, by check2411, and total2412. The amount in the courier tray2413is shown at2413broken down by cash2414, by check2415, and total2416.

The amount of currency in the motovend column is shown as Column Content2420. Each column2421is listed, with the tube count of each column2422, the designated value of each tube2423, and the total value of the currency in each column2424. There is also an entry line for total tube count and value2425. The current content of the bill acceptors is also shown as Bill Acceptor Contents2430. The contents by denomination for acceptor12431and acceptor22432is shown with the number of each bill denomination listed. The total number of each denomination2433is listed, with the total value for each denomination2434also listed. The total bill count2335for each acceptor is also shown, and the total value2436for each acceptor listed. There is also an entry for the total number of bills in both acceptors2347and the total value of the bills contained2438. There is also an entry for any unrecognized bills deposited2439and an end of the report2440.

FIG. 25shows a Shift Report2500under the script program used to provide accounting information for a shift to show deposit and withdrawal activity from the safe during a specified shift for each user programmed into the CPU and making a transaction. The report2500includes a report identifier2501for the report, a store identifier2502, the time and date2403the report was printed, the date and time range2504covered by the report, the user identifier for the user printing the report2506, and the version of the report or software2505.

The report is broken down by shifts and there is a shift identifier2507and the date and time range2508covered by the shift, the name of the clerk/cashier2509making the listed transactions, the number and value of tubes loaded2510, the number and value of tubes vended2511, the number and value2512of bills fed into the acceptor, the number and value of vault drops2513(e.g. none were made for this user), drop withdrawals—adjusted2514, reserve withdrawals—adjusted2515, and courier tray deposits—adjusted2516.

The tubes vend information is further broken down into vend details2517. This includes the number of tube vends from each column and total value2518and the number of manager tube loads for each column and total value2519. The bills acceptor is broken down into a record of the bills accepted2520. This includes the denominations of the bills2521, the number of each denomination deposited2522, and the total value of the deposited currency2523. There is also a row for the number of unrecognized bills deposited2524and for all bills deposited2525. There is an entry for the total value of the bills deposited2526.

There is also an entry for a courier visit2530. There is a data entry for tubes loaded2531, for tubes vended2532, for bills accepted2533, for vault drops2534(e.g. none in this example), and courier tray withdraw—adjust2535. There is also an entry for tube activity details2536and bills accepted in the bill acceptor2537. The information given above is also provided for a second clerk Elaine2540. There is a data entry for the total deposit for shift12541showing the total amount deposited into the safe, the total number of bills accepted2542, and vault drops2543(e.g. no vault drops in the example).

Each shift for each clerk logged into the system is listed on the report. For shift2, there is a listing for Ben2545, Elaine2550, and Les2555. There is also a summary for shift22556. There is also a summary for all shifts2560showing the total deposits all shifts2561, the total count and value of bills deposited in the bill acceptor2562, and vault drops2563. There is also and end of shift report entry2565.

FIG. 26shows an example of a Summary Report2600that can be implemented using the script program to show deposit and withdrawal activity from the safe during a specified period. The report2600includes an identifier2601for the report, an identifier for the store2602, the date and time the report is printed2603, the user printing the report2604, the software or report version2605, the date range2606covered by the report. Beginning balances2610are shown that are the total amounts in the safe at the time the End of Day was performed that ended the prior reporting period and include entries for the beginning tube balances2611, main vault balances2612, drop vault balances2613, courier tray balances2614, bill acceptor balances2615. The net balances2620are the differences between what was deposited into the safe versus what was withdrawn during the time period reported for the net tubes2621, the net tubes adjust2622, the net drop vault2623, the net main vault2624, the net courier tray2625, and the net bill acceptors2626.

Deposits2630shows deposits made into the safe during the time period reported and includes number of tubes and value loaded by the clerk2631, number of tubes and value loaded by the manager2632, positive adjustments by the manager for tubes2633, cash drops2635, check drops2636, other drops2637, storage/main vault deposits2638, courier tray deposits2639, and bill acceptors2640. Withdrawals2645show the withdrawals made from the safe during the time period reported and includes the number and value of the tubes vended2641, the number and value of tubes dumped2642, negative adjustments by the manager for tubes2643, drop vault withdrawals2644, storage/main vault withdrawals2646, courier tray withdrawals2647, and bill acceptor withdrawals2648.

Column Activity2650tracks the motovend activity by tube column. The first line entry2651is the number of vends from each column, the total number of vends, and value of the vends. The second line entry2652is for the number of failures in each column, the total number of failures, and the value. The third line entry2653is for the number of clerk tube loads into each column, the total number of clerk tube loads, and the value. The fourth line entry2656is for the number of positive adjustments for each column, the total adjustments, and the value. The fifth line entry2657is the number of negative adjustments for each column, the total adjustments, and the value. The sixth line entry2658is the number of no vends recorded for each column, the total no vends logged, and the total value. The seventh line entry2659is the number of empty vends logged for each column, the total number of empty vends, and the total value. The eighth entry line2660is the number of wrong vends for each column, the total number of wrong vends, and the value.

The Bill Acceptor Activity2665lists the contents in each of the bill acceptors. The first line entry2661is the number of $1 bills in each bill acceptor, the total number, and total value. The second line entry2662is for the number $2 bills in each acceptor, the total number of bills, and the value. The second line entry2662is for the number $2 bills in each acceptor, the total number of bills, and the value. The third line entry2663is for the number $5 bills in each acceptor, the total number of bills, and the value. The fourth line entry2664is for the number $10 bills in each acceptor, the total number of bills, and the value. The fifth line entry2666is for the number $20 bills in each acceptor, the total number of bills, and the value. The sixth line entry2667is for the number of $50 bills in each acceptor, the total number of bills, and the value. The seventh line entry2668is for the number of $100 bills in each acceptor, the total number of bills, and the value. The eighth line entry2669is for the number of unrecognized bills in each acceptor. The ninth entry line2670is for the total number of bills in each acceptor and the value. And the tenth line2671is the value of bills in each acceptor and the total value.

There are also entries for the each of the clerks. Data entries for Ben2675show the number of bills accepted in the bill acceptor2676, the number of bills accepted2677, and the number of tubes loaded2678. Data entries for Elaine2680show the number of bills accepted in the bill acceptor2681, the number of bills accepted2682, and the number of tubes loaded2683. Data entries for Les2690show the number of bills accepted in the bill acceptor2691, the number of bills accepted2692, and the number of tubes loaded2693. There is an identifier for the end of the report2691.

FIG. 27shows an example of an End of Day Report2700that can be implemented using the script program. The report2700includes an identifier2701for the report, an identifier for the store2702, the date and time the report is printed2703, the period of time covered by the report2704, the version of the software or report2705, and the user printing the report2706. The value of the bills accepted by the bill acceptor2707, the total value of vault drops2708, and the total value of bills and vault drops2709are shown. The deposits into the courier tray2710broken down by total value2711, cash2712, and check2713are shown. There is also a break down by shifts. Shift12715is shown by bills accepted2716, vault drops2717, and total of bills and vault drops2718. Shift22720is shown by bills accepted2721, vault drops2722, and total of bills and vault drops2723. There is also and end of report indicator2724.

FIG. 28shows an End of Shift Report2800generated using the script program and used to provide accounting information at an End of Shift closeout to show deposit and withdrawal activity from the safe during a shift. The report2800includes a report identifier2801for the report, a store identifier2802, the time and date2803the report was printed, the date and time range2804covered by the report, and the version of the report or software2805, and the user printing the report2806.

The shift identifier2807identifies the shift and includes the date and time range2808covered by the shift. There is an entry for each clerk. The first entry is name of the clerk/cashier2810making the listed transactions. The number and value of tubes loaded2811, the number and value of tubes vended2812, the number and value2813of bills fed into the bill acceptor, the number and value of vault drops2814(e.g. none were made for this user), drop withdrawals—adjusted2815, reserve withdrawals—adjusted2816, and courier tray deposits—adjusted2817.

The tubes vend information is further broken down into vend details2819. This includes the number of tube vends from each column and total value2820, and the number of manager tube loads for each column and value2821. The bills acceptor is broken down into a record of the bills accepted2822. This includes the denominations of the bills2823, the number of each denomination deposited2824, and the total value of the deposited currency2823. There is also a row for the number of unrecognized bills deposited2827and for all bills deposited2828. There is an entry for the total value of the bills deposited2826.

There is also an entry for a courier visit2830. There is a data entry for tubes loaded2831, for tubes vended2832, for bills accepted2833, for vault drops2834(e.g. none in this example), and courier tray withdraw—adjust2835. There is also an entry for tube activity details2836and bills accepted in the bill acceptor2837. The information given above is also provided for a second clerk Elaine2840. There is a data entry for the total deposit for the shift2841showing the total amount deposited into the safe, the total number of bills accepted2842, and vault drops2843(e.g. no vault drops in the example). There is an end of report indicator2844.

Referring back toFIG. 4, the next function controlled by the CPU operating software is vending control425. The CPU controls the motovend vending mechanism. The vending, or dispensing, of tubes (e.g. coin rolls) is controlled according to a series of rules. Tubes can be dispensed with no interval if the main vault door is open (a.k.a. “dumping”). Typically, the interval between two vends is no less than 2 minutes, but the software supports an “Alternate Vend Time” which can shorten or lengthen the interval. There is also a “Time of Day Vend” option that associates a different vend interval with a time period. For example, ‘rush hour’ can be set with a shorter vend interval, while ‘after 10 PM’ can be set with a longer vend interval. Also, each user account can be set with a vend limit so that if a given tube's value contents exceed the user's vend limit, that user cannot vend that tube.

The next CPU software400feature is the LCD (e.g. liquid crystal display)430. The CPU, and thus the drop safe, is controlled through a LCD touch-sensitive screen. The software400creates a series of hierarchical screens with labeled buttons on the LCD430. Buttons of a similar nature (e.g. “Cancel”, “Save”, etc.) are always placed in the same position to make operation more intuitive. The buttons are also made as large as possible to reduce the chances of pressing the incorrect button. Users press these buttons on the LCD430to make control and data inputs into the CPU software400controlling the computerized drop safe.

The next feature of the operating CPU software400on the CPU is hardware configuration435. Upon initial startup, the drop safe CPU reads a configuration file indicating what sort of bill acceptors, printers, and network interfaces are present. The CPU then initializes the software subroutines necessary to communicate and control those devices. The configuration file's contents can be manipulated by a user with executive level hierarchy authorization.

User hierarchies440is another feature of the safe's CPU software400. There are four hierarchy types of users with different control privileges: executive, manager, clerk, and courier. Executives have all privileges except for instant door opening. Managers have fewer privileges and abilities. Clerks have fewer still. Couriers have no privileges or abilities except the ability to instantly open vault doors. This hierarchical organization can be configured so as to bestow different activity authorizations for the various user types. As an example, these different authorizations options for clerks and managers include the following:

Can/can not load tubes (Sets whether a clerk can load tubes into the motovend)

Can/can not print reports (Sets whether a clerk can print reports)

Can/can not end business day (Sets whether a clerk can close-out the safe and accounting data at the end of a business day)

Can/can not end shift (Sets whether a clerk can close-out the safe and accounting data at the end of a business day)

2. Manager Authorization Options: The Same as the Clerk Authorizations, Plus:

Can/can not open vault doors (Sets whether a manager can open any of the vault doors)

Can/can not dump tubes (Sets whether a manager can perform a tube dump to vend all motovend tube contents)

Can/can not activate the alternate vend interval (Sets whether a manager can activate the alternate vend interval feature to delay vending operations by the time interval specified in the policy)

Can/can not activate the time-of-day vend interval (Sets whether a manager can activate the time-of-vend vend interval feature to delay vending operations by the time interval specified in the policy for specified times during the day)

Can/can not activate vault door lockout (Sets whether a manager can activate the vault door lockout feature to refuse vault access by anyone until an internal timer countdown completes because of unauthorized access attempt, lack of user permission, or a control input).

Can/can not add or delete edit clerk accounts (Sets whether the manager can edit clerk user accounts to either add or delete a clerk hierarchy level account).

Can/can not adjust tube counts (Sets whether the manager can edit the tube count using tube adjust command functions)

Can/can not adjust drop accounting (Sets whether the manager can edit the drop vault deposit accounting using drop adjust or vault move command functions)

Can/can not adjust reserve change fund accounting (Sets whether the manager can edit the reserve fund accounting using currency adjust or vault move command functions)

Can/can not adjust courier tray accounting (Sets whether the manager can edit the courier tray fund accounting using courier tray adjust or vault move command functions)

Every user account has a unique name, which generally should be based on the user's name. Executives can add and delete any other account type. Executives can only modify their own account, while managers can add or delete clerk or manager accounts, if so permitted. Clerks and courier cannot add other user accounts. Couriers may be limited to accessing the safe using a hardware identification signature such as a data access key or access card.

A very important feature of the CPU software400accounting and security protocols is the CPU's stored transaction records445. Every action involving money or security creates a transaction record in a data file in memory of the CPU. Transaction files can only be destroyed by importing files from another safe. Almost every transaction record is associated with a user, making employee manipulations very difficult. The transaction files are used to audit the contents and transactions of the safe and generate financial or security reports.

Current counts447is another feature of the CPU400operating software. The CPU software400maintains a current counts record constantly updated in the memory. This data record contains the current currency, check, and other receipts inside the drop safe. This data record is constantly updated with transactions changing the current currency, check, and other receipts in the drop safe's vaults, the current tube counts, and the current bill acceptor contents. Current contents of the different component currency storage areas of the drop safe are maintained for each vault. Each of the two vaults' contents are tracked by currency type (e.g. cash, check, and other) and value of each. The motovend tube assembly contents are tracked by column count and value in each column. And the bill acceptor contents are tracked by denomination, count, and value. These files are constantly updated and tracked for each transaction and can be remotely accessed by either the modem or Ethernet connection.

Another security and accounting tool is the user identification450subroutine. Every executive, manager, and clerk account possesses a name associated with a unique PIN number. Most transactions involve a user making a positive identification to perform the transaction using the LCD and entering their name and unique PIN number to log into the system to make a currency or other transaction. Couriers generally do not have user names and PIN numbers accounts, but couriers can be assigned a hardware identification ‘signature’. This signature corresponds to a physical item, such as a data key or card. The computerized drop safe has an installed electronic device, or data key reader, that validates the physical item to verify access to the safe. An advantage of using a hardware identification signature data key is the ability to use a programmable memory in the data key that can have transaction information copied (e.g. the Courier Report) for transportation back to the courier's office for receipting currency pickup.

The ability of the CPU software400to integrate with remote control and monitoring using a Point Of Sale Interface455is another important feature. The architecture of the CPU software400includes a point of sale (POS) interface to connect with the drop safe via the Ethernet and/or the modem, and the CPU can be accessed by this interface to perform tube vends, accept bills, load tubes, record vault drops, or securely access vault doors if the appropriate security measures are undertaken. Currency deposit information or other information stored on the CPU may also be accessed using this POS interface and allow real time, unscheduled transaction audits as another security enhancements.

There is also a back office interface460to the CPU software400. The architecture of the software allows a back office application to connect to the CPU via either serial or Ethernet connection that is independent from the POS interface and allows similar capabilities under appropriate security measures. The CPU can supply transaction, configuration, or user information to the application, or accept such information using the application. This information can also include currency deposit information, and the data can be available using the POS and the back office interfaces.

The CPU software400also offers superior flexibility through the language465subroutines and data files. If supplied with the appropriate translation file, the software can be localized to a given country and dialect within that country through the use of language files. Localization will set all text on the screen to be displayed in the host country's language and a separate language setting sets the currency, currency formatting, date, and time formats to match the host country. Any non-executive account can also be set to use a translation file. For example, for a Hispanic employee the computerized drop safe can be set to display its screens in Spanish when that particular user logs in.

At startup, the software searches the file system for language files. Every language file contains a number indicating what region and dialect the file is for, and a series of numbers (the key) and strings (the desired text). The computerized drop safe also has a ‘location language’ that dictates what currency, date, and time format to use. The computerized drop safe also maintains a ‘user language’ that corresponds to the current user's preferred language, so individual users can have the display operate in their native or preferred language. The software has a ‘mapping’ of English strings and numbers such that each number corresponds with a given English string. Whenever the interface needs to display text, it uses another piece of software that uses a hash lookup to find the desired string.

While the invention has been particularly shown and described with respect to preferred embodiments, it will be readily understood that minor changes in the details of the invention may be made without departing from the spirit of the invention. Having described the invention, we claim: