Order Entry Program
This program is the major project for the CIS52 course. The program can be written in your choice of language. Detailed output should be provided. Listings of files before and after should be part of this.
The code should be documented so that I know what is happening in each section.
This is the systems flowchart showing the program and the Input/Output and files that are involved. This presentation will discuss each of these components separately.
Clearly this does not have all of the elements of a real order entry system. I have made some changes to force different coding within the program and some changes to reduce the things that need to be dealt with.
My strong suggestion is that you write this using a modula approach. Get one part working and then worry about the next.
This file will only contain the order number for our example.
For this example, you can choose to update the file with each order or you can get the number when you start processing, update in memory and then update the file when you complete processing - essentially, rewrite the record with the processing id for the next order.
You should have the ability to bring up a second entry screen if the user enters more items than you can handle on the original screen.
Note that primary and alternate keys are necessary for accessing the customer and inventory files.
If you are coding in COBOL, be sure that you look at the sample programs under screens that tell you how you can put multiple lines for the line items on the screen. In the samples that I did, I displayed five line items. Note that there is a power point presentation on this topic.
In reality, there would be more complex handling of customer name and address and shipping name and address. In addition, there might be financial information about the customer. This is one of the areas that I did not handle realistically in this example.
The item not available involves looking at on hand and committed and determining if there are enough available to fill the order. If the order can be partially filled we will fill that portion and back order the rest. This is a business decision. Companies will handle the inability to fill orders completely in different ways.
This is a very minimal Inventory File. When you are creating the file you can choose to put additional information on the file. This file only needs to have a minimum number of records - 6 to 10 inventory records is fine!
Again, I am not handling customer name/address and shipping name/address realistically. The customer name/address will come up on the screen and the data entry person/user can alter it. When the order information goes to the Order Entry File, any changes that the user made are entered as the shipping name/address. If no changes were made then the customer name/address that originally appeared on the screen goes to the Order Header File.
Assuming there is a wide gap before order numbers are restarted (there should be), then the order number is the key. If there is the possibility of duplicate order numbers than the date of the order would be part of the key.
The key is the Order Number and the Item Number - if you allow the person to order the same thing twice in the same order, then Line Number becomes a part of the key.
This file contains the essentials to be able to fill this back order when the inventory becomes available.
The layout of this file can be simply dumping the data. Obviously the file would have a more professional layout if you were doing this for real.