![[login dfd]](logindfd.gif)
Description: Asks user for their login data Input: - Login Id - Password Output: none Errors: incorrect data format in data fields Algorithm: - Prompt user for login id - Read in the login id - Verify the data format of the login id - Prompt user for password - Read in the password - Verify the data format of the password - On errors, re-prompt the user - Return login id and password
Description: Decides on users permissions to enter the system Input: - Login Id - Password Output: none Errors: Non-existent Login Id Incorrect password given Algorithm: -search employee database for employee record with matching login id -if found check password id correct -on errors return error message and recall prompt for data -return employee id,authorization and position id.
Description: Chooses the user window. Input: Employee id authorization position id Output: user window Errors: none Algorithm: - get interface settings that match the authorization and position id - output the window with functions that can be performed - send the employee id to the other processes
![[sales dfd]](salesdfd.gif)
Description: This is the point of sale process that allows the cashier to sell products.
Input: Bar code
item code
quantity
Output: receipt
Errors: - item does not exist in product store.
Algorithm: - reads bar code or item code and quantity
- searches for product in the data store
- if found
- the price and current stock is returned to the process
- the current stock is decremented by the quantity amount
- else
- prompt for re-entry of input
- prompts for another item if not finished
- repeat previous steps
- if finished print receipt
Description: Allows the user to return items to the store. Input: Bar code item code quantity Output: none Errors: - item is not in data store Algorithm: - reads bar code or item code and quantity - searches for product in data store - if found - the price is returned and the current stock is incremented by quantity amount - else - error message and prompt for re-entry of inputs
![[employee dfd]](empldfd.gif)
Description: Enter new employee into the employee data store. Input: employee id first and last name department department number authorization position position number Output: Message to screen Errors: - employee already exists - syntactical errors Algorithm: - read in input - check if employee already exists - if exists - prompt for re-entry of input - else - create new employee record
Description: removal of employee record from data store. Input: employee id Output: Message to screen Errors: - employee does not exist in data store Algorithm: - check if employee is in data store - if yes - retrieve employee record - verify deletion - else - error message and prompt for re-entry of input
Description: Change the fields of the employee record. Input: employee id Output: Message to screen Errors: - employee does not exist in data store - cannot modify field Algorithm: - search for employee in data store - if found - retrieve record - else - error message and prompt for re-entry of input - read in modifications - verify that inputs are correct - update the employee record
![[inventory dfd]](invdfd.gif)
Description: To change the attributes of a stocked product Input: - product record Output: - product modification interface to screen Errors: invalid data in data fields product to update not found Algorithm: - offer interface to user to query product database - search the product data base for the given product - if not found inform user and re-prompt - else read product record offer user interface to modify the product fields verify data fields have valid data write product record
Description: To add a new product to the product data base Input: - none Output: - product modification interface to screen Errors: invalid data in data fields incomplete information about product provided Algorithm: - give user interface to provide product information - check to ensure all data fields of a product (minus description and item location) are filled in - verify data fields have valid data - write new product record to product database
Description: To delete a new product to the product data base Input: - none Output: - product query interface to screen Errors: product is flagged as on_order product has a current stock greater than 0 product selected to delete doesn't exist in product database Algorithm: - offer interface to user to query product database - search the product data base for the given product - if not found inform user and re-prompt - else read product record check to see if product is on order or has remaining stock if yes inform user and prompt user for verification of delete if product is checked or verified for deletion delete the product from the product database
![[order dfd]](orderdfd.gif)
Description: Processes product database and orders product to satisfy inventory level requirements Input: - Product Records Output: - none Errors: none Algorithm: - Every day do create an instance of an Order Record data type with a new Order Number, date, time read the Manager Name of the Head Manager from the employee database for the entire product data base - read a product record - if current stock < minimum stock - order quantity = calculate stock maximum - stock current - set on order flag in product record - write Item data to ItemList - update product record in product database In the Order record set Confirmation, Order Received, and Invoice Received to false Write Order Record to the Order database
Description: Accept a special order from an authorized manager or employee Input: - Employee_ID - Product Record Output: - Product Record data for selected products Errors: Attempt to find and order a non existent product Algorithm: - Offer Query Interface to the product data base - On Error, re-prompt and offer cancel option - prompt user for order Quantity - If quantity is zero, re-prompt and offer cancel option - Else create an instance of an Order Record data type with a new Order Number, date, time read the employee name from the employee database via employee id - set on order flag in product record - update product record in product database - write Item data to ItemList inside the Order record. In the Order record - Set Confirmation, Order Received, and Invoice Received to false Write Order Record to the Order database
Description: Change order specifications before order is sent Input: - Employee Id - Order record Output: - Order List Errors: none Algorithm: - Search Order Data Base for Orders with no Confirmation flag set - Display the orders, allowing user to select any product listed - When product selected, supply interface to manipulate Order Quantity - Write updated order to order data base
![[shipment dfd]](shipdfd.gif)
Description: This process updates an order with a shipment received flag.
Input: Lading Form
Order Records
Output: - Error message in case of error
Errors: - Contains order numbers of orders that do not exist
Algorithm: - While more orders to update on the lading form do
get order number of lading form
search order database for order
If order does not exist then print error message to screen with erroneous order number
Else
set received flag in order record
return list of products for that order into a queue
Description: This process updates all product records of products that were listed on
the lading form.
Input: Products Ordered
Product Records
Output: Error Message
Errors: - Product ordered has incorrect order amount
Algorithm: - Take list of products from queue
- Get 1st product of list
- While there are products on list do
search products database for product record
If amount ordered from lading form = amount ordered
add amount ordered to current stock
save new current stock in record
turn on order flag off
Else print error message
get next product from list
![[warehouse dfd]](warehousedfd.gif)
Description: This process takes all orders issued on one day, and, provided
those items will be delivered, produces a lading form,
containing a list of all products from all orders used.
Input: Order Records
Output: Lading Form
Errors: none
Algorithm: - generate lading form number
- print date on lading form
- get first new order record
- While new orders records do
print manager's name above product list
transfer product list to lading form
get next new order record
- Print lading form
Description: This procedure generates an invoice which totals all new orders processed
for one day.
Input: Order record
Output: Invoice
Errors: none
Algorithm: - Set total price to zero
- Generate invoice number
- print date on invoice
- get first new order that has received flag set
- While more new received orders do
print product list with prices on invoice
add each price to total price
get next new received order
- print total price on invoice
- print invoice
![[interface dfd]](interfacedfd.gif)
Description: This procedure allows the head manager to change
the permissions of a function set within a given interface.
Input: Interface record
Employee_ID
Output: Confirmation of changed functions
Error Message if Employee_ID refused
Errors: - Incorrect Employee_ID
Algorithm: - Search for employee record corresponding to Employee_ID
- If position is head manager then For each interface do
display function flags for
specific functions set and prompt
user to change the flag settings
- Else print message to inform that no clearance
is given to make changes to function permissions
The following processes are considered central transform functions:
The following processes are considered a output functions:
The following process is considered input function to the Sales process:
The following processes are considered central transform functions for the Sales process:
The following process is considered a output function to the Sales process:
The following process is considered input functions to the Sales process:
The following processes are considered central transform functions for the Sales process:
The following process is considered a output function to the Sales process:
The following processes are considered input functions to the Employee process:
The following processes are considered central transform functions for the Employee process:
The following process is considered a output function to the Employee process:
The following process is considered input function to the Employee process:
The following process is considered central transform function for the Employee process:
The following process is considered a output function to the Employee process:
The following process is considered input function to the Employee process:
The following process is considered a output function to the Employee process:
The following processes are considered input functions to the inventory process:
The following processes are considered central transform functions for the inventory process:
The following process is considered a output function to the inventory process:
The following processes are considered input functions to the order process:
The following processes are considered central transform functions for the order process:
The following process is considered a output function to the order process:
The following processes are considered input functions to the shipping process:
The following processes are considered a central transform functions to the shipping process:
The following processes are considered a output functions to the shipping process:
The following process is considered an input function to the warehouse:
The following processes are considered central transform functions to the warehouse:
The following processes are considered output functions for the warehouse:
The following processes are considered central transform functions to the modify interface:
The following processes are considered output functions for the modify interface:
Products = { Product Record }
Product Record =
Bar Code
+ Item
+ Department
+ Department Number
+ Item Location
+ Price
+ Stock Minimum
+ Stock Maximum
+ Stock Current
+ On Order Flag
Item =
Item Code
+ Description
+ Order Quantity
Item Location =
Aisle Number
+ Section
Bar Code = number -10-
Item Code = number -8-
Description = text -256-
Order Quantity = number -5-
Department = text -32-
Department Number
= number -3-
Aisle Number = number -3-
Section = character
Price = dollars
Stock Minimum = number -4-
Stock Maximum = number -5-
Stock Current = number -5-
On Order Flag = bool
Employees = { Employee Records }
Employee Records =
Employee Id
+ Authorization
+ Name
+ Password
+ Department
+ Department Number
+ Position
+ Position Id
+ Login Id
Name =
First
+ Last
Employee Id = number -9-
Authorization = [1|2|3]
Position = text -32-
Position Id = number -2-
Login Id = text -6-
First = text -25-
Last = text -25-
Invoice =
Invoice Number
+ Date
+ Orderlist
+ Total Price
Total Price = dollars
Orderlist =
{Order Number}
+ Itemlist
+ {prices}
Lading Form =
Lading Number
+ Date
+ Order List
Audit File = { Audit Records }
Audit Records =
Date
+ Time
+ Employee Id
+ Position Id
+ Department Number
+ Authorization
+ Description
+ Transaction Number
Transaction Number
= number -9-
Receipt =
Date
+ Time
+ {Sale}
+ Total Price
Sale =
Description
+ Price
+ Sale Quantity
Sale Quantity = number -4-
Orders = {Order}
Order =
Order Number
+ Date
+ Time
+ Confirmation
+ Manager Name
+ Order Received
+ Item List
+ Invoice Received
Order Number = number -5-
Confirmation = bool
Manager Name = text -32-
Order Received = bool
ItemList = {item}
Invoice Received= bool
Interface = { Interface Records }
Interface Record =
Window
+ Authorization
+ Interface Settings
Interface Settings
= {bool}