Progress ReportProgress Report
Best Tile Order Processing Best Tile Order Processing SystemSystem
Introduction and Introduction and BackgroundBackground
From humble beginnings, Best Tile Inc. started as a From humble beginnings, Best Tile Inc. started as a very small business with only 4 employees, 2 very small business with only 4 employees, 2 salespersons, 1 warehouse employee and 1 manager. salespersons, 1 warehouse employee and 1 manager. After working as a physical therapist for more than 10 After working as a physical therapist for more than 10 years, the manager realized his true passion was in years, the manager realized his true passion was in home re-modeling and not in pulled muscles, sprains, home re-modeling and not in pulled muscles, sprains, and rehab. Bob Maynes, along with partner Dave and rehab. Bob Maynes, along with partner Dave Causito who works in the warehouse, opened Best Tile Causito who works in the warehouse, opened Best Tile to serve the San Francisco bay area with all their tile to serve the San Francisco bay area with all their tile needs, whether it be in the kitchen, bedroom or needs, whether it be in the kitchen, bedroom or shower. When they first opened doors in 1992, orders shower. When they first opened doors in 1992, orders were written by hand, completed and loaded by the were written by hand, completed and loaded by the warehouse employee. Today, it has grown into a warehouse employee. Today, it has grown into a larger small business with over 20 employees and larger small business with over 20 employees and customers coming from as far south as Gilroy and as customers coming from as far south as Gilroy and as far north as Ukiah; however, the sales staff is still far north as Ukiah; however, the sales staff is still processing orders by hand. processing orders by hand.
Statement of ScopeStatement of Scope
As the amount of customers increase, the sales staff is As the amount of customers increase, the sales staff is unable to write complete orders fast enough to meet the unable to write complete orders fast enough to meet the demand. As much as the company wanted to hire more demand. As much as the company wanted to hire more staff, the fact that the amount of customers varied from day staff, the fact that the amount of customers varied from day to day makes it virtuously impossible to hire more staff. to day makes it virtuously impossible to hire more staff.
The purpose of this project The purpose of this project To develop a computerized system that can speed up the To develop a computerized system that can speed up the
processing of ordersprocessing of orders Reduce the customer’s wait Reduce the customer’s wait The anticipated benefitsThe anticipated benefits Reduce errors that are caused by manual processing of Reduce errors that are caused by manual processing of
ordersorders Finish order fulfillment earlier to more rapid order processingFinish order fulfillment earlier to more rapid order processing Increase in orders placed Increase in orders placed
Context DiagramContext Diagram
0
OrderProcessingSystem
WarehousePersonnel
Management
Sales Staff
Reports
OrdersOrders
Incomplete OrderNotification
BankCredit Card Approval
Bank Deposit
Payments
Credit Card Transaction
Unpaid OrderNotification
Interview QuestionsInterview Questions
For Manager:For Manager:What do you as a manager do in relation to the sales staff?What do you as a manager do in relation to the sales staff?
I check the daily transaction reports for problems. I check the daily transaction reports for problems. Are there any plans to implement on-line ordering of products?Are there any plans to implement on-line ordering of products?
Currently, no plans to implement on-line ordering.Currently, no plans to implement on-line ordering.What is done, if any, to ensure orders written by hand don't get What is done, if any, to ensure orders written by hand don't get
lost or written down incorrectly?lost or written down incorrectly?The current process involves the warehouse personnel catching any The current process involves the warehouse personnel catching any
errors during picking of the order. This is why we would like to errors during picking of the order. This is why we would like to have a system that would eliminate the hand-written process.have a system that would eliminate the hand-written process.
What would you want the system to do?What would you want the system to do?I would like it to replace the hand writing and increase speed of I would like it to replace the hand writing and increase speed of
processing orders.processing orders.Who is Best Tile's main client base?Who is Best Tile's main client base?
The client base varies from homeowners to contractors.The client base varies from homeowners to contractors.Are there different pricing for homeowners and contractors?Are there different pricing for homeowners and contractors?
No. Everyone gets the same price.No. Everyone gets the same price.
Interview QuestionsInterview QuestionsFor Sales Staff:For Sales Staff:
What does the sales staff do to capture clients?What does the sales staff do to capture clients?We don’t handle the marketing aspect. We just sell items and write up the orders.We don’t handle the marketing aspect. We just sell items and write up the orders.
Since you hand write orders, are you comfortable using a computer to process Since you hand write orders, are you comfortable using a computer to process orders?orders?
Yes, using a computer should not pose as a problem.Yes, using a computer should not pose as a problem.What do you do when you write up the order?What do you do when you write up the order?
We write the orders specifying the quantity, description, and price. Then we get the We write the orders specifying the quantity, description, and price. Then we get the payment from the customer. After receiving the payment, we hand the order payment from the customer. After receiving the payment, we hand the order over to the warehouse personnel to have the order loaded into the customer’s over to the warehouse personnel to have the order loaded into the customer’s vehicle. vehicle.
Do you know what happens if the items are not in stock.Do you know what happens if the items are not in stock.If the item is not in stock, the warehouse orders it from the suppliers, we, the sales If the item is not in stock, the warehouse orders it from the suppliers, we, the sales
staff, are then notified to notify the customer.staff, are then notified to notify the customer.Do you know what happens in respect to the supplier?Do you know what happens in respect to the supplier?
Yes, the supplier will send a monthly invoice to our manager for payment of the items Yes, the supplier will send a monthly invoice to our manager for payment of the items that we special ordered.that we special ordered.
How do you collect payment from the customers?How do you collect payment from the customers?Payments are usually paid during the purchase. Cash, checks, and credit cards.Payments are usually paid during the purchase. Cash, checks, and credit cards.
How are they handled? How are they handled? Cash is accepted. Checks are accepted with proper identification. Credit cards are Cash is accepted. Checks are accepted with proper identification. Credit cards are
handled though a bank processing center which tells us whether the card is handled though a bank processing center which tells us whether the card is approved or declined.approved or declined.
Desired System Desired System FeaturesFeatures Top Down PerspectiveTop Down Perspective
– Quick systemQuick system– Provide reportsProvide reports
Bottom Up PerspectiveBottom Up Perspective– Easy to useEasy to use
Cost and Benefit AnalysisCost and Benefit Analysis
AssumptionsAssumptions
Interest rateInterest rate 6.8%6.8%
Salvage valueSalvage value 23,000 23,000
Annual additional incomeAnnual additional income 40,000 40,000
Best Tile Capital Budgeting AnalysisBest Tile Capital Budgeting Analysis
20042004 20052005 20062006 20072007 20082008
Annual additional incomeAnnual additional income 40,000 40,000 40,000 40,000 40,000 40,000 40,000 40,000 40,000 40,000
Salvage value Salvage value 23,000 23,000
Annual totalAnnual total 40,000 40,000 40,000 40,000 40,000 40,000 40,000 40,000 63,000 63,000
Total cash flowTotal cash flow 223,000 223,000
Present valuePresent value 181,443 181,443
Cost of investmentCost of investment 125,000 125,000
Net present valueNet present value 56,443 56,443
Event ListEvent List
Customer orders an item. (1.1)Customer orders an item. (1.1) Verify Customer Payment. (1.2) Verify Customer Payment. (1.2) Create daily report. (3.1)Create daily report. (3.1) Create inventory report. (3.2)Create inventory report. (3.2) Create payment report. (3.4)Create payment report. (3.4) Create order report. (3.3)Create order report. (3.3) Customer returns order.Customer returns order. Sales staff checks inventory for availability.Sales staff checks inventory for availability. Warehouse personnel checks inventory for Warehouse personnel checks inventory for
availability.availability. Warehouse personnel returns incomplete orders.Warehouse personnel returns incomplete orders. Sales Staff cancels order.Sales Staff cancels order. Sales Staff checks payment.Sales Staff checks payment.
Event: Customer Event: Customer orders an item. orders an item. (Process 1.1)(Process 1.1)
Orders
D1
Inventory Result Inventory
Inventory Query
Incomplete Order Notification
1.1
CheckOrderCompleteness
D2Order records
Sales Staff
Sales Staff
Complete OrderDelivery Ready Order
Event: Create daily Event: Create daily report. (Process 3.1)report. (Process 3.1)
Order records
Inventory level
Payment records
Reports
3.1
Create DailyReport
Inventory
D2Order Records
D5Payments
D1
Event: Create order Event: Create order report. (Process 3.3)report. (Process 3.3)
3.3
CreateOrderReport
Reports
Order Records
D2Order Records
Event: Create Event: Create inventory report. inventory report. (Process 3.2)(Process 3.2)
Inventory Level
3.2
CreateInventoryReport
InventoryD1
Reports
Event: Create payment Event: Create payment report. (Process 3.4)report. (Process 3.4)
3.4
CreatePaymentReport
ReportsPayment Records
D5Payments
Diagram ZeroDiagram Zero
Orders
Credit CardApproval
Reports
Orders
Incomplete OrderNotification
1
Processcustomerorder
D1Inventory
6
VerifiedPayment
3
Createreports
D2Order records
DeliveryReadyOrder
Item
Order records
Inventory level
4
Processorder fordelivery
Delivery Ready Order
ItemRequest
D5Payments
PrepareBankDeposit
Payment records
Payments
OrderRecords
BankDeposit
IncompleteOrder Notification
Payments
Credit CardTransaction
Unpaid Order Notification
Sales Staff
Bank
Management
Bank
Sales Staff
WarehousePersonnel
Process SpecificationProcess Specification
Process 1.1 Process Customer Order: Check Order CompletenessProcess 1.1 Process Customer Order: Check Order Completeness
SET CompleteOrder = trueSET CompleteOrder = trueRECEIVE Order from Sales StaffRECEIVE Order from Sales StaffLOOKUP ItemID and Order_QuantityLOOKUP ItemID and Order_QuantitySEND QUERY of ItemID and Item_Quantity to InventorySEND QUERY of ItemID and Item_Quantity to InventoryRECEIVE ItemID and Item_Quantity from InventoryRECEIVE ItemID and Item_Quantity from InventoryFOREACH ItemID FOREACH ItemID COMPARE Item_Quantity and Order_QuantityCOMPARE Item_Quantity and Order_Quantity
IF Item_Quantity is greater than Order_QuantityIF Item_Quantity is greater than Order_QuantityADD ItemID and Order_Quantity to CompleteOrderADD ItemID and Order_Quantity to CompleteOrder
ELSE ELSE ADD ItemID and Order_Quantity to Incomplete Order ADD ItemID and Order_Quantity to Incomplete Order NotificationNotificationSET CompleteOrder = falseSET CompleteOrder = falseIF CompleteOrder = trueIF CompleteOrder = true
SEND CompleteOrder to Order RecordsSEND CompleteOrder to Order RecordsSEND CompleteOrder as Delivery Ready Order for Process 4SEND CompleteOrder as Delivery Ready Order for Process 4
ELSEELSESEND Incomplete Order Notification to Sales StaffSEND Incomplete Order Notification to Sales Staff
ENDIFENDIF
Process SpecificationProcess Specification
Process 3.3 Create Order ReportProcess 3.3 Create Order Report
SET total = 0SET total = 0FOREACH OrderIDFOREACH OrderID
SHOW OrderIDSHOW OrderIDSHOW Order_DateSHOW Order_DateSHOW Order_QuantitySHOW Order_QuantitySHOW ItemIDSHOW ItemIDSHOW Item_NameSHOW Item_NameSHOW Order_PriceSHOW Order_PriceADDTO total Order_Quantity MULTIPLY Order_PriceADDTO total Order_Quantity MULTIPLY Order_Price
END FOREACHEND FOREACHSHOW totalSHOW total
Process SpecificationProcess Specification
Process 1.2 Process PaymentProcess 1.2 Process Payment
ENTER OrderIDENTER OrderIDLOOKUP Order_AmountLOOKUP Order_AmountENTER Payment_TypeENTER Payment_TypeENTER Payment_ Amount ENTER Payment_ Amount GENERATE PaymentIDGENERATE PaymentID
IF Payment_Type is Credit CardIF Payment_Type is Credit CardSEND Payment_Type and Payment_Amount to Bank for Approval SEND Payment_Type and Payment_Amount to Bank for Approval RequestRequest
RECEIVE ApprovalRECEIVE ApprovalIF Approval is ApprovedIF Approval is Approved
SUBMIT Payment_ID to Payment RecordSUBMIT Payment_ID to Payment RecordSUBMIT Payment_Amount to Payment RecordSUBMIT Payment_Amount to Payment RecordSUBMIT Payment_Type to Payment RecordSUBMIT Payment_Type to Payment Record
ELSEELSEREJECT PaymentREJECT Payment
ENDIFENDIFELSEELSE
SUBMIT Payment_ID to Payment RecordSUBMIT Payment_ID to Payment RecordSUBMIT Payment_Amount to Payment RecordSUBMIT Payment_Amount to Payment RecordSUBMIT Payment_Type to Payment RecordSUBMIT Payment_Type to Payment Record
ENDIFENDIF
Data DictionaryData Dictionarybank deposit = * deposit the payment to the bank*bank deposit = * deposit the payment to the bank* @payments + order records@payments + order recordscredit card transaction = * information maintained on customer’s credit card information and credit card transaction = * information maintained on customer’s credit card information and
payment * payment * {Payment_Amount} {Payment_Amount}credit card approval = * credit card approval information*credit card approval = * credit card approval information*delivery ready order = * information maintained the complete transaction of payment *delivery ready order = * information maintained the complete transaction of payment * @payments + orders + credit card approval @payments + orders + credit card approval
incomplete order notification = * Order is incomplete, items not available* incomplete order notification = * Order is incomplete, items not available* inventory level = * information maintained inventory record*inventory level = * information maintained inventory record*
{@ItemID + Item_Quantity}{@ItemID + Item_Quantity}item request = * the item that request by the customer*item request = * the item that request by the customer*item = {@ItemID + Item_Name + Item_Quantity + Item_Price}item = {@ItemID + Item_Name + Item_Quantity + Item_Price}reports = *report of transactions for the day* reports = *report of transactions for the day* {@payment records + order records + inventory level}{@payment records + order records + inventory level}sales staff = {sales-staff}sales staff = {sales-staff}orders = * the order requirement by the customer*orders = * the order requirement by the customer*
{@OrderID + ItemID + Order_Quantity + Order_Date + {@OrderID + ItemID + Order_Quantity + Order_Date + OrderAmount}OrderAmount}
payment = * amount paid by a customer for each order*payment = * amount paid by a customer for each order* * units: dollars* * units: dollars*
{@PaymentID + Payment_Amount + Payment_Type + {@PaymentID + Payment_Amount + Payment_Type + Payment_Date}Payment_Date}
payment record = * information maintained payment information*payment record = * information maintained payment information*{@PaymentID+OrderID+Payment_Amount}{@PaymentID+OrderID+Payment_Amount}
unpaid order notification = * information maintained the unpaid payment *unpaid order notification = * information maintained the unpaid payment *verified payment = * payment approval information*verified payment = * payment approval information*
Entity Relationship Entity Relationship DiagramDiagram
Supplier
SupplierID
Supplier_Name
Customer
CustomerID
Customer_NameStreet_AddressCityStateZip
Order
Order_PriceOrder_Q uantityOrder_DateOrder_Amount
Payment
PaymentID
Payment_AmountPayment_DatePayment_Type
Item
ItemID
Item_NameItem_DescItem_Price
Reorder
ReorderID
ReorderQ uantity
Employee
EmployeeID
Employee_NameStreet_AddressCityStateZip
Class DiagramClass Diagram1 *
11..*
1
*1
*
1 *
1
*
1
1..*
Customer
CustomerIDCustomer_NameStreet_AddressCityStateZip
CreateCustomerEditCustomer
Order
Order_PriceOrder_Q uantityOrder_DateOrder_Amount
AddItemCanelOrderEditOrder
makes
Item
ItemIDItem_NameItem_DescItem_Price
CreateItemEditItemRemoveItem
Reorder
ReorderIDReorderQ uantity
AddItemCancelReorderEditReorder
gets
Employee
EmployeeIDEmployee_NameStreet_AddressCityStateZip
AddEmployeeAddOrderRemoveEmployee
receives
Places
Supplier
SupplierIDSupplier_Name
CreateSupplierEditSupplier
comesfrom
Payment
PaymentIDPayment_AmountPayment_DatePayment_Type
AuthorizePaymentEditPayment
makes
inc ludes