Management Plan
The system will be broken down into two main classes of functions:
- Administration, and
- Sales.
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:
- Add/modify customer. Salespeople will need to be able to add new customers, and keep up with any changes to the customer's information. Customer deletion is probably unnecessary.
- Add/modify/delete order. The main job that salespeople will have is to take orders from customers. This must be easy to do, since customers will not want to be kept waiting while salespeople fumble with a computer.
- Add/modify/delete projections. If a customer starts using a product more rapidly, it should be possible to change the customer information so that the projected date when the customer will need to be restocked is changed. If a customer stops using a particular product, it is unnecessary for the computer to notify the salesperson when that customer is running low on that product.
- Fill an order. When a customer has decided what he or she wants to order, the salesperson will determine the total price, which includes any applicable discounts and shipping charges.
- Add the paid date to an order. If a customer is making an order on credit, payment will follow at a later date. The date of payment must be added to the information about the order.
- Display list of customers to visit. At the beginning of each day, the salesperson will need to produce a list of customers who are low on stock and need to be visited. This list should include information about what product the customer uses, when the customer is expected to run out, how much they are expected to order, and other information about that customer. This list will also be ordered based on the routing sequence that is also stored in the database.
Administration features would include the following:
- Add/modify/delete products. If the company starts selling a new item, this item must be added to the database. Similarly, the company may stop selling a certain product, or a product may change in some way.
- Add/modify/delete product information. For example, the company may want to start selling three-layer carbon forms, or lower the price on all of the single sheet forms.
- Add/modify/delete sectors and locations. Each region is broken down into sectors, but as the company expands these regions and sectors will need to be revised. Administrators should be responsible for making these adjustments.
- Change routing sequence. With the changes to locations and sectors, the most efficient routing sequences will need to be adjusted.
- Change customer credit ceilings. Repeat customers will usually be given higher credit ratings, and the administrators should be able to change this information.
- Generate reports. Administrators will want to have information about particular salespeople and customers readily available.
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 salespeople should be able to create an order for a customer directly from the list of customers. For example, the salesperson might want to call a customer before visiting, and if the customer already knows what he or she wants to order, the order could be filled over the phone and the need for a visit would be eliminated.
- interrupting an order to view product information, taking an order while viewing product information, and so on.
- Checking inventory when taking an order. If inventory information is available in the database, it should be possible to check whether a particular item is currently in stock.
- Check customer's credit information. If a customer has already surpassed his or her credit ceiling, it would be a waste of time to continue taking orders without arranging for a credit adjustment or advance payment.
- Freeze order information. Once an order has been paid for, it should not ordinarily be possible to go back and change information in the order.
- Print bills. Bills could be printed for each order, or monthly.
Data Structures
The system would store data in a relational database. The database will include the following tables:
- Products
- Product types
- Orders
- Line items (many items can be included in a single order)
- Customers
- Locations
- Sectors
- Regions
Regions do not have to be included since each region will have it's own system
and the regions do not have to interact.
See diagram of relationships between tables
These tables will include various information including unique IDs for each item and links to other tables.
Algorithms
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.
Each region can be broken in sectors. The number of sectors in each region
should be set by the salesperson/administrator. (You can assume the region
is always square). The sectors will not be visited in a set order.
The program will determine the best route for all the sectors visited
during a day. Each sector may have more than one adress to visit but these addresses do not need to be optimized. We wish to be very clear that the system, not the users, will determine the optimal ordering of the sectors. This is a requirement of the minimal system.
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:
Base price - quantity discounts - special discounts + applicable taxes + shipping charges = Total price
Minimal System
Product Listing Window:
- The list of products will be available from any screen in the application. The products will be defined in this list by product id number, product name, product type, price/unit, and the quantity available in the warehouse.
- The user will be able to decide by what field the list will be sorted, and any filter criteria.
- If this window is opened from either the title page or administration window, any product information will be editable by clicking on the item and typing the changes. The editing option is disabled if the product listing window is opened from any other window.
Salesperson Route List Window:
- From the title page, the user will be able to access the present days route list. This listing will provide the customer id number, the order number, the company name, street address, city, province, status, and the contact person.
- By pressing a button, a hard copy of this list will be produced.
Customer Query Window:
- This window will be available from the title page of the application. It will show a listing of the customers by customer number, company name, street address, city, province, and phone number.
- A search can be implemented on any available field, and filters done by any applicable criteria.
Customer Information Window:
- This window is available from either the Customer Query Window or the Order Information Window. All of the customer information will be available here, including a listing of the previous orders made by that customer.
- Basic customer information will be available for editing and deleting. The customer number (defined by the system), and the previous orders will not be editable from this screen.
- The previous orders will be described by order number, order date, and payment and delivery information. Sorting or filtering will be available by any of these criteria.
- The option to create a new order for the customer will be available on this screen.
Order Information Window:
- The window will be available from either the Customer Query Window and the Customer Information Window. The information will be listed by product number, product name, product type, quantity ordered, applicable volume discount, and the total for that item.
- The order subtotal, other discount amount, shipping cost, tax information, and total will be displayed.
- This window will also display the order number, the date that the order was delivered, and the date on which the order was paid.
- The screen will enable the user to add or delete an item, indicate that the order was pre-delivered, and print a copy of the invoice for the order.
Possible Enhancements
Salesperson Route List Window:
Some orders may not be delivered on the specified day. The ability for the salesperson to indicate that the orders were delivered (or not delivered) will be available if time to implement this permits. The minimal specification will assume that all orders that are expected to be delivered on a given day were delivered.
Administration Window:
All specified administration functions will not be available in the minimal implementation. These will be added if time permits.