Date of Submission: January 25, 1996
Document Editor: Premila Jayaraj
Graphics: Tony Ho
Writing Team:
Jason Archibald (Additional Specifications)
Elijh Ooi (Summary & Management Plan)
Development Team:
Gillian Posey
Joon-Sae Park
Poh Oon Soon
Ryan McKay
Scott Jensen
Product List Window
Salesman Route List Window
Customer Database
Customer Information Window
Order Information Window
Functions
Data Structure (Data Model)
Algorithm
Minimal Implementation
Maximal Implementation
Group Structure (previous page)
MacroHard Inc. has been contracted by Business Forms Inc. (BFI) to design and build a database system that will provide them improved access to stock and customer sales information. The system is expected to consist of an easy to use interface that will assist the salespeople of BFI in the retrieval and manipulation of critical information. We at MacroHard Inc. have decided to designate this system BFI-001.
Hardware The system will be designed to run in BFI's regional offices on the existing IBM-PCs. Future hardware upgrades will be assumed to be to either newer IBM-PCs or Macintosh systems.
We are assuming that BFI will not change their current distribution system to such an extent that they will not be using PC or Macintosh style computers in the future.
Business Forms Incorporated (BFI) is a Canadian company based in Calgary, Alberta. The company sells business forms such as invoices, receipts, ordering forms, and sales contracts. The forms can be either of a general design, or custom designed for an individual business. They feel the need for a new software package that will ease operations in the regional offices and assist the salesmen. The package should do the following:
The list should be ordered in such a way that it will represent an optimal sales route. BFI has requested that we use their existing customer and product databases.
It is expected by BFI that we will make the application user friendly, and protect data from accidental changes. We will do our best to comply.
When Business Form Sales System v1.0 is started from it's windows icon, the user will be presented with the title screen. This screen will provide the user with five different buttons with the options for what they will be able to do next.
When the Product List window is opened, the user is presented with a list of the products that Business Forms Incorporated has available. The information provided about each product on the list will be the product identification number, the product name, the product type, and the price per unit of the product. In later implementations, the quantity of the product that is available in the warehouse could be added.
This list will initially be sorted by the product name, but the user will have the option of sorting the list by any of the available fields, or of filtering the list, and only showing those items which fulfill a certain criteria.
If the Product List window is opened from either the Title Page or the Administration window, the user will be able to edit the product information from the list by clicking on the item that he wants to change, and typing the changes. If the window is opened from anywhere else, the user will not have the option of changing any of the displayed information.
This screen prints a list of the customers that will be visited that day. These customers can include deliveries that have been phoned in and are expected to be delivered as well as customers that are expected to order soon. The user is provided with the customer identification number, the order number, the name of the company, the street address of the company, the city and province, whether the visit will be for an expected order or for a projected order, and the name of the contact person at the company.
The list will be sorted into an optimal route for the salesman to follow. This route will direct the salesman to different areas of his sales territory. Within those areas, the salesman will choose his own route.
The user will be provided with the opportunity to print the list and the invoices for the day. Simply by pressing a button, the information is sent to the printer.
In the minimal specification all of the deliveries are assumed to have been done each day. As part of the enhancements we suggest that the salesman be able to go back into the system and indicate deliveries that have not been done. Each row would have an associated "delivery status" button. When the button is selected, the order is marked as not delivered, and is added to the list for the following day.
The Customer Query window allows the user to find the customer with whom he would like to work presently. The user will be presented with a list of customer information consisting of the customer identification number, the company name, the street address of the company, the city and province, the phone number of the company, and the name of the contact person at the company.
The application will allow the user to sort this list by any of this information, or filter out unwanted information from the list.
New customers will be created on this screen by pressing the New Customer button. This will bring up a blank Customer Information window, and allow the user to fill in all of the information.
The user will also be able to open either the Customer Information window or the Order Information window for the selected customer.
This window allows the user to edit customer information, and to access orders that have been placed by the customer previously.
The company name, the street address of the company, the city, province and country, postal code and phone number of the company. Also displayed will be the credit limit that BFI has assigned to this company, and the sector information that is used in determining the route of the company. Any of this information can be modified by the user.
A list at the bottom of the screen shows the previous order information. Information provided includes the order number, the date that the order was made, whether the order was delivered and if it has been paid for. This list is ordered newest order on the top, and older orders as you move towards the bottom.
A particular order can be chosen by the user, either by clicking on the order line and then pressing the order information button, or by double clicking on the order line.
Orders that have not been delivered yet may be changed by the user. Orders that have been delivered will be frozen.
The order information button will bring up the Order Information window with the data for that order filled in. If the order has been delivered, then the information will be frozen. If the order has not been delivered, the user will be able to alter the order information.
The user will be able to create a new, empty order form for this customer by pressing the new order button. This will open the Order Information window with the projected order for that customer on that date.
The user will have the option of deleting the customer from this window. There will be a warning window open to assure that the user truly does want to delete this customer, and if he does, all data pertaining to that customer is removed from the system. It is expected that the combination of the warning and the need to progress to this screen will assure that there will be minimal chance of accidentally deleting a customer. This is probably the most dangerous function in the program, so care will have to be exercised around it.
This window provides the user with a single order belonging to one customer. If it is a new order, the system will project the products and quantities that will be ordered again, and allow the user to edit the order.
At the top of the window will be the order number, the date that it was delivered, and the date that payment for the order was received.
The order listing will include the product number, the product name, the type of product, the price per unit of the product, the quantity ordered, any applicable discount amounts, and the total for that product. It will be listed in the order that the items were entered into the order form.
At the bottom of the screen will appear the subtotal, any discount included by the salesman, the shipping costs, applicable taxes (two fields), and the grand total for the order.
The user will be able to add new items to the order, or delete unwanted items from the order by pressing the add or delete buttons.
If the order was delivered before being entered on the computer (i.e. the result of a projected sales call in the Salesman Route List window), the user will be able to mark the order already delivered by pressing the previously delivered button.
The salesman will be able to print the invoice for this order by pressing the invoice button.
Functions contained under Administration are not part of the minimal design specifications, and will only be implemented as time allows after the minimal system has been completed.
When a user enters the system, one of the initial buttons presented on the main screen is entitled "Administration". Upon selecting this button, a screen is presented to the user, which contains functions that are not normally required by the salespeople on a day to day basis. Such functions include control of shipping rates, sector information, discount rates, product information, and inventory control.
Shipping rates will include an overall shipping rate, as well as an average distance rate determined by sector. This information can be edited by the user to reflect changes in market conditions. Shipping rates by sector can also be updated as required.
Discount options will allow users to set the amount of initial discounts on orders, which is currently 5%. Users can also change the default quantity discounts, which are currently set at 10% off orders over 10 boxes, and 15% off orders over 50 boxes.
Product type information functions will allow users to edit product prices and descriptions. We assume that product id numbers are automatically created and assigned by the system, and are not editable. This would also include the ability to add and delete product types as needed.
Sector information can be edited and arranged to suit the salesperson. The user will have the ability to change the order of sectors for the best routing (pertaining to deliveries and visitations of customers),and edit all sector information.
Inventory maintenance and control features would provide some sort of ability for the salespeople to order their inventory from the warehouse. This inventory database would also allow users to inquire as to the current (in stock) levels of a particular item, and would notify the salesperson that it is time to place an order.
A backup copy of the system will be made automatically every evening at midnight. The user will also have the option of requesting a system backup at any other time.
SAMPLE USER INTERACTION
Say IN BUSINESS FORMS INC., salesman BOB starts Business Form Sales System v1.0 from its Windows icon,
what would would be displayed on the screen are 5 buttons.
ADMINISTRATION
SALESMAN ROUTE
CUSTOMER INFO
PRODUCT LIST
EXIT
For instance if BOB selects SALESMAN ROUTE, the optimal route for the day will be shown on the screen along with two options.
1) PRINT
2) EXIT
If BOB selects PRINT , then the copy of the ROUTE as well as the appropriate invoices of the customers Bob will be visiting that day will be sent to the printer for a hardcopy.
SAY, PETRO-PRODUCTS INC. is one of the customers that Bob has to visit
Then the printed list will contain the following information on each customer on the list.
1)CUSTOMER ID 145223
2)ORDER NUMBER AB5945
3)CUSTOMER NAME PETRO-PRODUCTS INC.
4)ADDRESS 3RD ST SW.
5)CITY CALGARY
6)PROVINCE ALTA.
7)STATUS OF ORDER CONFIRMED
8)CONTACT NAME PETER,JACOBS
CONTACT PHONE 280,9546
If Bob selects EXIT then it would go back to the MAIN MENU where he can make another selection.
Bob selects PRODUCT LIST , the following information will be displayed on the screen.
1) PRODUCT ID NUMBER
2) PRODUCT NAME
3) PRODUCT TYPE
4) PRICE PER UNIT
The system will be broken down into two main classes of functions:
In general, the sales functions will include all of the functions that are necessary in dealing with customers and taking orders. The administration functions will deal with things such as changing product information and prices. Company administrators would have access to both classes of functions, since it must be possible for supervisors to be able to override and modify sales transactions, while salespeople would only have access to the sales functions.
Sales features would include the following:
Administration features would include the following:
Most of the above features would need to be included in any reasonably complete system. By the end of February, we would anticipate having a minimal system capable of allowing staff to enter and modify customers, products, product types, sectors, locations, and orders. The interface for the system would be essentially in its final form by this point. Deletions of information from the database is somewhat more complicated, so functions that delete information will probably be left out of the minimal system. It may turn out that information does not ever need to be deleted from the system, and instead this information could simply be flagged as deleted, but remain in the database. As well as the deletions, the feature of creating the list of customers may not be included in the minimal system, as well as the ability to automatically total the bill.
Shortcuts:
The system would store data in a relational database. The database will include the following tables:
See diagram of relationships between tables These tables will include various information including unique IDs for each item and links to other tables.
The major algorithms that our system will be using deal with the determination of the routing for the salespeople and generating the list of customers to visit. To determine the route, we will divide each region into sectors. These sectors will be visited in a fixed order (which can be changed by an administrator). Sectors will be small enough that locations within a sector can be visited in the most convenient order. We don't want to force a salesperson to follow a rigid order, because customers might not always be available in the order that the system provides.
The system will generate a list of customers based on the date that they are expected to run out of any product. Each day, the customers who are expected to run out of product the soonest will be listed, along with relevant information such as what product they need and when they are expected to run out.
To determine the prices of orders, the following procedure will be followed:
Product Listing Window:
Salesperson Route List Window:
Customer Query Window:
Customer Information Window:
Order Information Window:
Salesperson Route List Window:
Administration Window:
buttons - graphic images on a windows style display that look like buttons. A user pushes a button on a screen by placing the mouse cursor over the button and pressing the left mouse button.
click - this refers to the action of pressing the left mouse button.
credit limit - customers will be allowed only a certain value in outstanding bills before they will not be allowed to order. The credit limit will be set by the administration customer rather than by the salesman.
customer identification number - a number unique to a given customer by the system, and for the use of the system. Although customer names can be similar, or even identical, the customer identification number will always be unique.
discount - refers to the four different types of discounts that customers can get. 5% off of initial orders, 10% off of orders over 10 boxes, 15% off of orders of over 50 boxes, and any other discount that the salesman is willing to give.
double click - clicking twice in rapid succession. See click.
filter - a process by which unwanted information can be extracted from a list. The resulting list should be easier to extract useful information from.
frozen - the information appearing in the given window is able to be altered. Often frozen information is a lighter shade of gray then would normally be expected.
invoice - a paper copy of the order information. The customer is usually supplied with one copy as a receipt and bill for the order, and other copies are usually filed for the reference of the company.
optimal - the best possible solution to the problem.
product - refers to the 7 main types of forms sold by Business Forms Incorporated. Invoices, inventory tracking, payroll time sheets, packing slips, shipping manifests, receipts, and application forms.
product identification number - a number used both by the system and by the warehouse to keep track of the product. Although names can be similar, and sometimes even identical, the product number will always be unique.
product type - the product types for Business Forms Incorporated are single sheet, carbon copy, and computer form. These are the three types of form available for each of the seven products.
prompt - an action of the system by which it requests information from the user about an action that the system does not have decision power over.
sector - a given sales territory will be divided into sectors, which will be used to optimize the delivery and sales route.
sort - a process by which a list is organized in some particular order.
window - a graphic image on the monitor that contains a specific set of information. Several windows can be opened at any one time by the user.