1. Athens Information Technology
Thesis: Implementation of Warehouse
Management System
Student: Anwar Al Bayali
Supervisor: Prof. John Soldatos
Co-supervisor: Nikolaos Kefalakis
1
4. 1. Introduction
1.1. Warehouse Management System:
A warehouse management system (WMS) is a software application that
supports the day-to-day operations in a warehouse. WMS programs
enable centralized management of tasks such as tracking inventory levels
and stock locations. WMS systems may be standalone applications or
part of an Enterprise Resource Planning (ERP) system.
Early warehouse management systems could only provide simple storage
location functionality. Current WMS applications can be so complex and
data intensive that they require a dedicated staff to run them. High-end
systems may include tracking and routing technologies such as Radio
Frequency Identification (RFID) and voice recognition.
No matter how simple or complex the application is, the goal of a
warehouse management system remains the same -- to provide
management with the information it needs to efficiently control the
movement of materials within a warehouse.
The main activities in any warehouse management system need to be
able to do the following:
• Record receipt of inventory
• Record shipment of inventory
• Stock locator (inbound: where can a piece of inventory be stored
and outbound: where can I go to pick an inventory item a customer
ordered)
• Main Features:
Receiving
Cycle Count
Put Away
Location Tracking
Picking
Packing
Consolidation
Space Capacity
4
5. Shipping
Replenishment (replenish prime bins from safety stock and
replenish safety stock from supplier)
Vendor and Carrier quality compliance
Trailer Manifesting
Returns
Labor Management
Advanced Slotting
1.2. Warehouse’s Processes
• Receiving: at the receiving operation, it allows the warehouse to
schedule receipt and unloading within the warehouse. Product will
be inspected and any noted exceptions, such as damage, incorrect
counts, wrong description, and so on.
• Put-away: The put-away operation physically moves the items
from receiving location to the storage area of the warehouse. When
product is put-away, the storage location should also be scanned to
record where the product has been placed. This information will
subsequently be used to construct efficient pick-lists to guide the
order-pickers in retrieving the product for customers.
• Order-picking: This process requires warehouse personnel to
select the items ordered by the customer or manufacturing
operation in the storage area. The order information is given to the
warehouse personnel on a pick slip. The AS/R process is
automated storage while retrieval materials –handling system
would run the picking process, when the order arrives at the
shipping preparation area, the items would be placed in an exterior
(shipping) package or on pallet. Then, a shipping label indicating
the ship-to person/firm and address is attached to the package.
Finally, the complete customer order is staged for loading into
transport vehicle.
• Shipping: The final movement process occurs at the shipping
operation. Product is likely to be staged if it must be loaded in
5
6. reverse order of delivery or if shipping long distances. When one
must work due to the staged freight it must be double handled. The
trailer is likely to be scanned her to register its departure from the
warehouse.
1.3. Importance of Warehouse Management System:
WMS is an invaluable tool for improving your organization's
productivity and customer focus. Here is a list of some of the benefits
that you can expect to get.
Customer Service:
Improved Customer Relationship - WMS aids in providing a
comprehensive database of customers and their preferences in
terms of product demand. This information can be effectively
utilized by Customer Care and Business Development departments
for Customer Relationship Management.
Accurate Shipping of Material - The system keeps an intensive
check of the goods or stock units meant for different customers and
flash an alarm/warning if the goods meant for one customer are
mistakenly placed in cartons meant for other.
Productivity:
• Optimum Utilization of Resources - Automation and
streamlining of processes ensures that operational bottlenecks are
eliminated and productivity increases. As a result all resources -
man, machine, and money are utilized to their optimum level.
Apart from the system no additional manpower or special
machinery is required in order to automate the process for an
efficient and proper handling of the goods.
• Better Efficiencies - Intensive checks are kept at each and every
stage which safeguards against possibilities of errors in inventory
records. As the items are systematically stored and retrieved, no
time is wasted in searching for items not in stock and more than
6
7. one order can be processed at any given time. This results in the
increase of efficiencies, eliminating wastage of time due to errors.
• Better Productivity Monitoring - By keeping track of the
operator's and staffs' activities, their productivity can be monitored.
This aspect is of particular importance in case of productivity
based remuneration schemes.
• Multiple Order Processing - More than one order can be
processed at any given time helping in better resource utilization.
Costs:
• Low inventory carrying Cost - The main goal of WMS is
controlling and streamlining the flow of inventory in a profitable
and productive manner thus optimizing all resources.
• Short Payback Period - Payback period of WMS project will be
very short because we are addressing the warehousing area where
at-least 60% of organization's working capital is tied. The results
of such savings are immediate and apparent.
• Optimal Level of Inventory - In an average business around 60%
of the working capital is tied down in the inventory; the percentage
is even higher in trading business. In an ideal situation warehouse
should maintain optimal level of inventory at any given time
avoiding both under and over stocking. If the Warehouses are
overstocked that means excess working capital is tied in inventory
which is dead money. Under stocking leads to delay in customer
orders and even cancellation of orders at times. Thus actual picture
about the inventory status in the Warehouse have valuable
financial and strategic implications. WMS not only streamlines the
flow of inventory but also tracks the inventory at various levels of
processing thereby enabling decision makers to view actual picture
of inventory at any given time and take appropriate steps.
• No Extra Skills Required - When deciding for automation, one of
the major concern of management is that they have to hire
7
8. technical people at all levels and retrain the existing workforce.
But in WMS the programs are so designed that no special skills are
required to operate the system even at lower level. Programs for
shop floor are specifically designed to run on hand held radio
frequency terminals and emphasis is on scanner based data
inputs. Therefore same workforce can very effectively be used for
implementing WMS.
• Better Revenue Realization - Companies often loose considerable
amount of revenue due to:
excessive / under stocking as explained above
incorrect tendering due to inaccurate knowledge of available
stock
Over / under shipping to customers.
Wrong consignments.
Inaccurate billing.
Delay in order processing leading to order cancellation.
WMS helps in controlling these losses to a large extent.
Transparency & Security:
Improved Transparency - WMS provides diversified all-embracing
reports for almost any plausible aspects of activities and substantiates the
fact that working of Warehouse is made 100% transparent. Each and
every activity can be tracked, reported, monitored and consequently
controlled. These reports are web based and are platform independent
applications. Therefore reports are visible to any one who is willing and
authorized to see. This feature is especially beneficial for multi location
Warehouses and sales offices.
Higher Security - WMS incorporates distinct features for functions to be
performed by Manager or Operators thereby eliminating the chances of
wrong data entry. WMS makes information readily available to only
those who have permission to see it. For example the operators are not
entitled to view the important MIS reports.
8
9. 1.4. Objective of Thesis:
The main objectives of thesis are:
• Create a simple WMS (e.g. constructions tools etc.)
• Create a reliable and secure system.
• Develop a user friendly Graphical User Interface (GUI).
2. State of the Art
This section covers state of the art in the filed of Warehouse
Management Systems.
2.1. WarehouseNet:
WarehouseNet is a inventory software for inventory, logistic and
distribution operation. It is extremely suitable for warehouse operation,
distribution center, MRP for manufacturer, logistic services and storage
operation.
WarehouseNet delivers leftover reports with different grouping, by
article no, item, brand name, description, supplier and specification,
FIFO, storage breakdown, storage charges calculation, low level alert and
stock checking by location.
WarehouseNet provide export closing stock report for accounting audit
at the year end to save manpower and time to re-type by excel, expiry
date alert avoid expires and waste of day limited items. The storage days
report is reduced the storage day and hence minimizes depreciation
percent.
Reports on all stock-in and stock-out movement grouping by item,
customer, brand name, supplier, delivery order, recipient and job order.
This is used to act as an audit checking against supplier deliveries and
customer invoice amount or quantity.
9
10. Figure 1 - WarehouseNet
2.2. Sales & Inventory Control System:
Inventory Control System is personal WMS software designed by Mr.
Mohammad Turkey which is suitable for small warehousing businesses,
this system has three main transactions editing items, receiving and
selling items.
Figure 1 - Sales & Inventory Control System
10
11. 2.3. Enterprise 21 ERP:
Enterprise 21 includes complete, state-of-the-art warehouse management
functionality that supports standard processes such as receiving, putaway,
picking, replenishment, and shipping. The warehouse management
functionality manages both single and multi-warehouse operations with
transactions being performed both by keyboard and handheld and
forklift-mounted RF-enabled barcode scanning devices. The warehouse
management functionality is fully-integrated with the complete
Enterprise 21 ERP suite, including purchasing, manufacturing, inventory,
and financial management to provide a complete end-to-end solution for
manufacturing and distribution organizations.
While optimized picking can be performed with traditional paper-based
processes, greater productivity can be derived through Enterprise 21’s
directed picking and paperless task-interleaving processes. Enterprise 21
manages and tracks the complete flow of material through the entire
organization, from receipt and putaway of material, through production
and kitting, and eventual picking, packing, and shipping to customers
with complete lot traceability and serialization tracking. Enterprise 21
also automates the management of other warehouse operations such as
physical and cycle counts, vendor returns, license plating, and labor
allocation and optimization.
Enterprise 21 ERP software provides the tools necessary for efficient and
productive manufacturing and distribution operations. With Enterprise
21, organizations can improve their inventory accuracy, inventory turns,
and customer service.
Figure 1 – Enterprise 21 ERP Logo
11
12. 2.4. EasyWMS
A key part of the supply chain, Easy WMS is warehouse management
software designed to provide control of the movement and storage of
goods in a warehouse. With the ability to process transactions including
shipping, receiving, stocking and picking, Easy WMS is a real solution
for any company, large or small.
Figure 1 – EasyWMS Logo
Improve ROI, increase productivity and save on expenses by
implementing the warehouse management software that has the
demonstrated ability to provide total location management. Complete
control over order preparation and operator productivity saves time,
improves the quality of service provided and reduces shipping errors.
Advantages
• Increased Technical support and remote assistance available 24
hours a day, 7 days a week, 365 days a year.
• Full Drastic reduction in costs incurred due to expiration or
unknown losses.
• Real time warehouse status provided through graphic imaging.
The Interlake Mecalux Easy WMS has different levels of functionality
which allows the software to adapt to the specific needs of each
installation depending on the degree of complexity and automation of the
warehouse. Due to this flexibility, it can also adapt easily to business
growth or new processes and volumes.
12
13. 2.5. KIMATRA WMS
KIMATRA WMS is a powerful, easy-to-use, web-based Warehouse
Management System designed to increase the productivity and inventory
accuracy of warehouses and distribution centers. It supports real-time
data collection and validation ensuring invetory information is always
accurate and up-to-date. It operates well as a stand-alone system or it can
work in conjunction with existing enterprise systems.
Figure 1 – KIMATRA Technologies
The KIMATRA WMS enables you to see where inventory is or will be
available, optimize fulfillment and distribution processes to ensure that
products are delivered on time and in full, consistently. The result:
improved supply chain management with end-to-end fulfillment from
order inception to delivery.
It gives managers robust planning, execution and measurement tools and
brings operational discipline to complex operations. By leveraging the
SOA architecture it enables a multi-enterprise collaboration strategy, and
provides improved visibility and communications between business
partners.
KIMATRA WMS is cost-effective software solutions that helps automate
the entire warehousing process and offers a systematic approach of
receive, put away, storage and shipping processes.
• Reduce inventory 5 to 20%
• Increase labor productivity 15 to 40%
• Improve shipping accuracy 2 to 5%
• Increase inventory accuracy 99+% at location level
• Boost perfect order rates
13
14. • Reduce direct operating costs and increase overall revenue
Designed specifically to serve the changing needs of today’s
business,KIMATRA WMS provides the same benefits as much larger
and more expensive software systems but remains much easier to
use,faster to deploy and a easy to maintain.
KIMATRA WMS possesses the tools, the technology and the
functionality to help you streamline your operational processes, control
inventory, reduce paperwork while complying with audit regulations. It is
an advanced WMS software solution for manufacturing, distribution, and
retail enterprises and third-party logistics providers (3PLs) that can be
used by enterprising organizations of all sizes. It helps companies
maximize product placement strategies, prioritize tasks, implement fair
productivity standards, and increase logistics efficiency.
KIMATRA WMS also provides capability to cater to an integrated multi-
site operating environment; the system offers support of multi-warehouse
stock management through simplified processes and allows the various
operations to be viewed as a single consolidated operating entity to
external entities.
14
15. 3. System Design
3.1. Database Design:
This section covers the design of the database including EER Diagram & a brief description about the Tables that used in the system.
3.1.1. Warehouse Manager – EER Diagram:
15
16. Figure 1 – EER Diagram of WareHouse Manager
3.1.2. Tables:
• Users:
Users table is responsible for storing the information about
Administrators and Users of the system.
• Warehouses:
Warehouses table is responsible for storing the information about
Warehouses.
• Items:
Items table is responsible for storing the information about Items.
• Items Category:
Items Category table is responsible for storing the information
about the Categories that classifies Items (e.g. TV, Computer etc)
• Units:
Units table is responsible for storing the measurement units of
Items.
• Receivables:
Receivables table is responsible for storing the information about
Receiving Invoices.
• Deliverables:
Deliverables table is responsible for storing the information about
Selling Invoices.
• Suppliers:
Suppliers table is responsible for the storing the information about
Suppliers.
• Customers:
Customers table is responsible for the storing the information
about Customers.
16
17. • Transactions:
Transactions table is responsible for storing all transactions of
Receiving, Selling and Moving Items.
• Shipments:
Shipments table is responsible for storing the information about
Shipments Orders.
3.2. Classes Design:
This section covers the design of system’s Classes that used in
programming the system; all the Classes are stored in Package
(warehouse).
Classes are the communication link between business logic & database.
• Class dbcon: establishes database connection.
• Class loginUser: checks of a user have privilege to access the
system.
• Class validation_manager: checks for valid numeric values & email
addresses.
• Class CryptoUtil: encrypts & decrypts user’s password.
• Class user: returns a user object.
• Class user_manager: this class has the following methods:
InserUser ( ): creates a new user.
GetAllUsers ( ): returns arraylist of user object.
GetUser ( ): returns a specific user according to a given ID.
UpdateUser ( ): updates the information about existing user.
DeleteUser ( ): deletes the information of existing user.
• Class warehouse: returns a warehouse object.
• Class warehouse_manager: this class has the following methods:
InserWarehosue ( ): creates a new warehouse.
GetAllWarehouses ( ): returns arraylist of warehouse object.
17
18. GetAllWarehousesByName ( ): returns arraylist of warehouse
object according to a given name.
GetWarehouse ( ): returns a specific warehouse according to a
given ID.
GetWarehouseName ( ): returns the name of specific warehouse
according to a given ID.
UpdateWarehouse ( ): updates the information about existing
warehouse.
DeleteWarehouse ( ): deletes the information of existing
warehouse.
• Class item_category: returns an item category object.
• Class item_category_manager: this class has the following
methods:
InserItemCategory ( ): creates a new item category.
GetAllItemsCategory ( ): returns arraylist of items category
object.
GetAllItemsCategoryByName ( ): returns arraylist of items
category object according to a given name.
GetItemCategory ( ): returns a specific item category according
to a given ID.
GetItemCategoryName ( ): returns the name of specific item
category according to a given ID.
UpdateItemCategory ( ): updates the information about existing
item category.
DeleteItemCategory ( ): deletes the information of existing item
category.
• Class unit: returns a unit object.
• Class unit_manager: this class has the following methods:
InserUnit ( ): creates a new unit.
GetAllUnits ( ): returns arraylist of unit object.
GetAllUnitsByName ( ): returns arraylist of unit object according
to a given name.
GetUnit ( ): returns a specific unit according to a given ID.
GetUnitName ( ): returns the name of specific unit according to a
given ID.
UpdateUnit ( ): updates the information about existing unit.
18
19. DeleteUnit ( ): deletes the information of existing unit.
• Class item: returns an item object.
• Class item_manager: this class has the following methods:
inserItem ( ): creates a new item.
GetAllItems ( ): returns arraylist of item object.
GetAllItemsByName ( ): returns arraylist of item object
according to a given name.
GetItem ( ): returns a specific item according to a given ID.
GetItemName ( ): returns the name of specific item according to
a given ID.
UpdateItem ( ): updates the information about existing item.
DeleteItem ( ): deletes the information of existing item.
• Class supplier: this class has the following methods:
• Class supplier_manager: this class has the following methods:
InsertSupplier ( ): creates a new supplier.
GetAllSuppliers ( ): returns arraylist of supplier object.
GetAllSuppliersByName ( ): returns arraylist of supplier object
according to a given name.
GetSupplier ( ): returns a specific supplier according to a given
ID.
GetSupplierName ( ): returns the name of specific supplier
according to a given ID.
UpdateSupplier ( ): updates the information about existing
supplier.
DeleteSupplier ( ): deletes the information of existing supplier.
• Class customer: returns a customer object.
• Class customer_manager: this class has the following methods:
InsertCustomer ( ): creates a new customer.
GetAllCustomers ( ): returns arraylist of customer object.
GetAllCustomersByName ( ): returns arraylist of customer
object according to a given name.
GetCustomer ( ): returns a specific customer according to a given
ID.
19
20. GetCustomerName ( ): returns the name of specific customer
according to a given ID.
UpdateCustomer ( ): updates the information about existing
customer.
DeleteCustomer ( ): deletes the information of existing customer.
• Class receivable: returns a receivable invoice object.
• Class receivable_manager: this class has the following methods:
InsertReceivableInvoice ( ): creates a new receivable invoice.
GetAllReceivableInvoices ( ): returns arraylist of receivable
invoice object.
GetReceivableInvoice ( ): returns a specific receivable invoice
according to a given invoice no.
UpdateReceivableInvoice ( ): updates the information about
existing receivable invoice.
DeleteReceivableInvoice ( ): deletes the information of existing
receivable invoice.
• Class deliverable: returns a deliverable invoice object.
• Class deliverable_manager: this class has the following methods:
InsertDeliverableInvoice ( ): creates a new deliverable invoice.
GetAllDeliverableInvoices ( ): returns arraylist of deliverable
invoice object.
GetDeliverableInvoice ( ): returns a specific deliverable invoice
according to a given invoice no.
UpdateDeliverableInvoice ( ): updates the information about
existing deliverable invoice.
DeleteDeliverableInvoice ( ): deletes the information of existing
deliverable invoice.
• Class transaction: returns a transaction object.
• Class transaction_manager: this class has the following methods:
InsertTransaction ( ): adds items on a specific receivable
invoice.
GetAllTransactions ( ): returns the items that belong to a specific
receivable invoice according to a given invoice no.
20
21. CheckBeforeDeleteTransaction (): checks if the selected item
belongs to a deliverable invoice or not.
DeleteTransaction ( ): deletes the selected item from a specific
receivable invoice.
CheckBeforeDelTransaction ( ): checks if the number of
required items is available in a specific warehouse.
CheckBeforeMoveTransaction ( ): checks if the number of
required items is available in a specific warehouse.
UpdateDelTransaction ( ): adds items on a specific deliverable
invoice.
UpdateMoveTransaction ( ): moves number of items from one
warehouse to another.
GetAllDelTransactions ( ): returns the items that belong to a
specific deliverable invoice according to a given invoice no.
DeleteDelTransaction ( ): deletes the selected item from a
specific deliverable invoice.
GetAllAviItem ( ): returns all the available items in the
warehouses.
GetAllAviItemByItem ( ): returns all the available items in the
warehouses according to a given item.
GetAllAviItemByWarehouse ( ): returns all the available items
according to a given warehouse.
• Class shipment: returns a shipment object.
• Class shipment_manager: this class has the following methods:
InsertShipment ( ): creates a new shipment order.
GetAllShipments ( ): returns arraylist of shipment object.
IsExist ( ): checks if a delivering invoice is valid or not.
GetShipmentDetails ( ): returns the details of a specific shipment
order.
GetShipment ( ): returns the information about existing shipment
order according to a given shipment no.
UpdateShipment ( ): updates the information about existing
shipment order.
DeleteShipment ( ): deletes the information of existing shipment
order.
21
22. 4. Implementation
4.1. Technology
4.1.1. MySQL Workbench
MySQL Workbench is a visual database design tool that integrates
SQL development, administration, database design, creation and
maintenance into a single, seamless environment for the MySQL
database system.
Figure 1 – MySQL Workbench Logo
Features
Prominent features of MySQL Workbench 5.2 are:
• General
Database Connection & Instance Management
Wizard driven action items
Fully scriptable with Python and Lua
Support for custom plugins
• SQL Editor
Schema Object browsing
SQL Syntax Highlighter and Statement Parser
Multiple-, editable Result Sets
SQL Snippets Collections
SSH Connection Tunneling
22
23. Unicode Support
• Data Modeling
ER Diagramming
Drag'n'Drop visual modeling
Reverse Engineering from SQL Scripts and Live Database
Forward Engineering to SQL Scripts and Live Database
Schema Synchronization
Printing of Models
Import from fabFORCE.net DBDesigner4
• Database Administration
1. Start & Stop of Database Instances
2. Instance Configuration
3. Database Account Management
4. Instance Variables Browsing
5. Log File Browsing
6. Data Dump Export/Import
4.1.2. Adobe Dreamweaver
Adobe Dreamweaver (formerly Macromedia Dreamweaver) is a web
development application originally created by Macromedia, and is
now developed by Adobe Systems, which acquired Macromedia in
2005.
Dreamweaver is available for both Mac and Windows operating
systems. Recent versions have incorporated support for web
technologies such as CSS, JavaScript, and various server-side
scripting languages and frameworks including ASP, ColdFusion, and
PHP.
23
24. Figure 1 – Dreamweaver Logo
Features
Dreamweaver allows users to preview websites in locally installed
web browsers. It provides transfer and synchronization features, the
ability to find and replace lines of text or code by search terms and
regular expressions across the entire site, and a templating feature that
allows single-source update of shared code and layout across entire
sites without server-side includes or scripting. The behaviours panel
also enables use of basic JavaScript without any coding knowledge,
and integration with Adobe's Spry AJAX framework offers easy
access to dynamically-generated content and interfaces.
Dreamweaver can use third-party "Extensions" to extend core
functionality of the application, which any web developer can write
(largely in HTML and JavaScript). Dreamweaver is supported by a
large community of extension developers who make extensions
available (both commercial and free) for most web development tasks
from simple rollover effects to full-featured shopping carts.
Dreamweaver, like other HTML editors, edits files locally then
uploads them to the remote web server using FTP, SFTP, or
WebDAV.
24
25. 4.1.3. JavaServer Pages (JSP)
JavaServer Pages (JSP) technology provides a simplified, fast way to
create web pages that display dynamically-generated content. The JSP
specification, developed through an industry-wide initiative led by
Sun Microsystems, defines the interaction between the server and the
JSP page, and describes the format and syntax of the page.
Figure 1 – Microsystems Sun Logo
JSP pages use XML tags and scriptlets written in the Java
programming language to encapsulate the logic that generates the
content for the page. It passes any formatting (HTML or XML) tags
directly back to the response page. In this way, JSP pages separate the
page logic from its design and display.
JSP technology is part of the Java technology family. JSP pages are
compiled into servlets and may call JavaBeans components (beans) or
Enterprise JavaBeans components (enterprise beans) to perform
processing on the server. As such, JSP technology is a key component
in a highly scalable architecture for web-based applications.
Figure 2 – JSP Mechanism
25
26. JSP pages are not restricted to any specific platform or web server. The JSP
specification represents a broad spectrum of industry input.
4.2. SQL Scripts
• Database Schema:
CREATE DATABASE `warehouse_management_system`
Notification:
To be able to use WareHouse Manager System the Username & Password of
the Database must be the following:
Database Username: root
Database Password: root
• Database Tables:
Users Table :
Notification:
WareHouse Manager has a default Admin when you run runme.sql script with
the following Username & Password:
Username: admin
Password: 123
CREATE TABLE `users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_firstname` varchar(45) DEFAULT NULL,
`user_lastname` varchar(45) DEFAULT NULL,
`user_username` varchar(45) DEFAULT NULL,
`user_password` varchar(200) DEFAULT NULL,
`user_email` varchar(60) DEFAULT NULL,
`user_type` int(1) DEFAULT NULL,
PRIMARY KEY (`user_id`)
)
26
29. `de_remarke` text,
PRIMARY KEY (`de_invoice`),
KEY `De_Customer_FK` (`de_customer`),
CONSTRAINT `De_Customer_FK` FOREIGN KEY (`de_customer`)
REFERENCES `customers` (`customer_id`) ON DELETE NO ACTION ON
UPDATE NO ACTION
)
Transactions Table :
CREATE TABLE `transactions` (
`trans_item_barcode` int(11) NOT NULL,
`trans_item_serial` int(11) NOT NULL AUTO_INCREMENT,
`trans_item_exist` int(11) DEFAULT NULL,
`trans_warehouse_id` int(11) DEFAULT NULL,
`trans_item_id` int(11) DEFAULT NULL,
`trans_re_invoice` int(11) DEFAULT NULL,
`trans_item_info` text,
`trans_re_item_price` int(11) DEFAULT NULL,
`trans_re_item_discount` int(11) DEFAULT NULL,
`trans_de_invoice` int(11) DEFAULT NULL,
`trans_de_item_price` int(11) DEFAULT NULL,
`trans_de_item_discount` int(11) DEFAULT NULL,
PRIMARY KEY (`trans_item_serial`,`trans_item_barcode`),
KEY `Trans_Item_ID_FK` (`trans_item_id`),
KEY `Trans_Re_Invoice_FK` (`trans_re_invoice`),
KEY `Trans_Warehouse_ID_FK` (`trans_warehouse_id`),
KEY `Trans_De_Invoice_FK` (`trans_de_invoice`),
CONSTRAINT `Trans_De_Invoice_FK` FOREIGN KEY
(`trans_de_invoice`) REFERENCES `deliverables` (`de_invoice`) ON
DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `Trans_Item_ID_FK` FOREIGN KEY (`trans_item_id`)
REFERENCES `items` (`item_id`) ON DELETE NO ACTION ON UPDATE NO
ACTION,
CONSTRAINT `Trans_Re_Invoice_FK` FOREIGN KEY
(`trans_re_invoice`) REFERENCES `receivables` (`re_invoice`) ON
DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `Trans_Warehouse_ID_FK` FOREIGN KEY
(`trans_warehouse_id`) REFERENCES `warehouses` (`warehouse_id`)
ON DELETE NO ACTION ON UPDATE NO ACTION
)
Shipments Table :
CREATE TABLE `shipments` (
`shi_id` int(11) NOT NULL AUTO_INCREMENT,
`shi_de_invoice` int(11) DEFAULT NULL,
PRIMARY KEY (`shi_id`),
KEY `Ship_De_Invoice_FK` (`shi_de_invoice`),
CONSTRAINT `Ship_De_Invoice_FK` FOREIGN KEY (`shi_de_invoice`)
REFERENCES `deliverables` (`de_invoice`) ON DELETE NO ACTION ON
UPDATE NO ACTION
29
30. )
4.3. Deploying WareHouse Manager Application
To deploy WareHouse Manager Application you have first to install
GlassFish Enterprise Server 2.1 on your system and do the following
steps:
1. Run SQL Script "runme.sql"
2. Copy the war file "WareHouseManager.war" to "server
pathdomainsdomain nameautodeploy" folder.
3. Start your web server.
4. Open "http://localhost:8081/WareHouseManager/" in your browser
(port number according to the server's configuration).
Figure 1 – URL of WareHouse Manager
30
31. 4.4. WareHouse Manager – System’s GUI
4.4.1. Login
Pre-Condition:
o System on.
o User must have an account (Administrator or User) to be able to access the
system.
Post-Condition:
o User is logged in and redirected to the Main Page.
Exceptions:
o If a user enters a not valid Username or Password he/she will get an error
message.
31
32. 4.4.2. Crud Users
Create Admin/User:
Pre-Condition:
o System on.
o User is logged in as Administrator.
Post-Condition:
o A new Administrator or User will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a not valid Email Address he/she will get an error message.
32
33. Delete Admin/User:
Pre-Condition:
o System on.
o User is logged in as Administrator.
o The system must have at least one Administrator or one User.
Post-Condition:
o The selected Administrator or User will be deleted.
Update Admin/User:
Pre-Condition:
o System on.
o User is logged in as Administrator.
o The system must have at least one Administrator or one User.
33
34. Post-Condition:
o The selected Administrator or User will be updated.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a not valid Email Address he/she will get an error message.
Search Admin/User:
Pre-Condition:
System on.
User is logged in as Administrator.
The system must have at least one Administrator or one User.
Post-Condition:
The required Administrator or User will be retrieved from the database.
Exceptions:
o If a user does not enter the ID filed he/she will get an error message.
34
35. o If a user enters a non numeric value in the ID field he/she will get an error
message.
o If a user enters a not valid ID he/she will get an error message.
4.4.3. Crud Warehouses
Create Warehouse:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
Post-Condition:
o A new Warehouse will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
35
36. Update Warehouse:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Warehouse.
Post-Condition:
o The selected Warehouse will be updated.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
36
37. Delete Warehouse:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Warehouse.
Post-Condition:
o The selected Warehouse will be deleted.
Exceptions:
o If the selected Warehouse has Foreign Key Dependency in another table
the user will get an error message.
37
38. Search for a Warehouse by ID:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Warehouse.
Post-Condition:
o The required Warehouse will be retrieved from the database.
Exceptions:
o If a user does not enter the ID filed he/she will get an error message.
o If a user enters a non numeric value in the ID field he/she will get an
error message.
o If a user enters a not valid ID he/she will get an error message.
38
39. Search for a Warehouse by Name:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Warehouse.
Post-Condition:
o The required Warehouse will be retrieved from the database.
Exceptions:
o If a user does not enter the Name filed he/she will get an error message.
o If a user enters a not valid Warehouse he/she will get an error message.
39
40. 4.4.4. Crud Items Category
Create Item Category:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
Post-Condition:
o A new Item Category will be created.
Exceptions:
o If a user leaves the Name field empty he/she will get an error message.
40
41. Update Item Category:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item Category.
Post-Condition:
o The selected Item Category will be updated.
Exceptions:
o If a user leaves the Name field empty he/she will get an error message.
41
42. Delete Item Category:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item Category.
Post-Condition:
o The selected Item Category will be deleted.
Exceptions:
o If the selected Item Category has Foreign Key Dependency in another
table the user will get an error message.
42
43. Search for an Item Category by ID:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item Category.
Post-Condition:
o The required Item Category will be retrieved from the database.
Exceptions:
o If a user does not enter the ID filed he/she will get an error message.
o If a user enters a non numeric value in the ID field he/she will get an
error message.
o If a user enters a not valid ID he/she will get an error message.
43
44. Search for an Item Category by Name:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item Category.
Post-Condition:
o The required Item Category will be retrieved from the database.
Exceptions:
o If a user does not enter the Name filed he/she will get an error message.
o If a user enters a not valid Item Category he/she will get an error
message.
44
45. 4.4.5. Crud Units
Create Unit:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
Post-Condition:
o A new Unit will be created.
Exceptions:
o If a user leaves the Name field empty he/she will get an error message.
45
46. Update Unit:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Unit.
Post-Condition:
o The selected Unit will be updated.
Exceptions:
o If a user leaves the Name field empty he/she will get an error message.
46
47. Delete Unit:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Unit.
Post-Condition:
o The selected Unit will be deleted.
Exceptions:
o If the selected Unit has Foreign Key Dependency in another table the
user will get an error message.
47
48. Search for a Unit by ID:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Unit.
Post-Condition:
o The required Unit will be retrieved from the database.
Exceptions:
o If a user does not enter the ID filed he/she will get an error message.
o If a user enters a non numeric value in the ID field he/she will get an
error message.
o If a user enters a not valid ID he/she will get an error message.
48
49. Search for a Unit by Name:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Unit.
Post-Condition:
o The required Unit will be retrieved from the database.
Exceptions:
o If a user does not enter the Name filed he/she will get an error message.
o If a user enters a not valid Unit he/she will get an error message.
49
50. 4.4.6. Crud Items
Create Item:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item Category.
o The system must have at least one Unit.
Post-Condition:
o A new Item will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Barcode & Price fields he/she
will get an error message.
50
51. Update Item:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item.
o The system must have at least one Item Category.
o The system must have at least one Unit.
Post-Condition:
o The selected Item will be updated.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Barcode & Price fields he/she
will get an error message.
51
52. Delete Item:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item.
Post-Condition:
o The selected Item will be deleted.
Exceptions:
o If the selected Item has Foreign Key Dependency in another table the
user will get an error message.
52
53. Search for an Item by ID:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item.
Post-Condition:
o The required Item will be retrieved from the database.
Exceptions:
o If a user does not enter the ID filed he/she will get an error message.
o If a user enters a non numeric value in the ID field he/she will get an
error message.
o If a user enters a not valid ID he/she will get an error message.
53
54. Search for an Item by Name:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Item.
Post-Condition:
o The required Item will be retrieved from the database.
Exceptions:
o If a user does not enter the Name filed he/she will get an error message.
o If a user enters a not valid Item he/she will get an error message.
54
55. 4.4.7. Crud Suppliers
Create Supplier:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
Post-Condition:
o A new Supplier will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Phone or Fax fields he/she
will get an error message.
o If a user enters a not valid Email Address he/she will get an error
message.
55
56. Update Supplier:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Supplier.
Post-Condition:
o The selected Supplier will be updated.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Phone or Fax fields he/she
will get an error message.
o If a user enters a not valid Email Address he/she will get an error
message.
56
57. Delete Supplier:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Supplier.
Post-Condition:
o The selected Supplier will be deleted.
Exceptions:
o If the selected Supplier has Foreign Key Dependency in another table
the user will get an error message.
57
58. Search for a Supplier by ID:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Supplier.
Post-Condition:
o The required Supplier will be retrieved from the database.
Exceptions:
o If a user does not enter the ID filed he/she will get an error message.
o If a user enters a non numeric value in the ID field he/she will get an
error message.
o If a user enters a not valid ID he/she will get an error message.
58
59. Search for a Supplier by Name:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Supplier.
Post-Condition:
o The required Supplier will be retrieved from the database.
Exceptions:
o If a user does not enter the Name filed he/she will get an error message.
o If a user enters a not valid Supplier he/she will get an error message.
59
60. 4.4.8. Crud Customers
Create Customer:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
Post-Condition:
o A new Customer will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Phone or Fax fields he/she
will get an error message.
o If a user enters a not valid Email Address he/she will get an error
message.
60
61. Update Customer:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Customer.
Post-Condition:
o The selected Customer will be updated.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Phone or Fax fields he/she
will get an error message.
o If a user enters a not valid Email Address he/she will get an error
message.
61
62. Delete Customer:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Customer.
Post-Condition:
o The selected Customer will be deleted.
Exceptions:
o If the selected Customer has Foreign Key Dependency in another table
the user will get an error message.
62
63. Search for a Customer by ID:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Customer.
Post-Condition:
o The required Customer will be retrieved from the database.
Exceptions:
o If a user does not enter the ID filed he/she will get an error message.
o If a user enters a non numeric value in the ID field he/she will get an
error message.
o If a user enters a not valid ID he/she will get an error message.
63
64. Search for a Customer by Name:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Customer.
Post-Condition:
o The required Customer will be retrieved from the database.
Exceptions:
o If a user does not enter the Name filed he/she will get an error message.
o If a user enters a not valid Customer he/she will get an error message.
64
65. 4.4.9. Crud Receivables
Create a Receivable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Supplier.
Post-Condition:
o A new Receivable Invoice will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
65
66. Adding Items on Receivable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Receivable Invoice.
o The system must have at least one Warehouse.
o The system must have at least one Item defined in the database.
Post-Condition:
o Items will be added on the Receivable Invoice (Buying from Supplier).
o Items will be removed from the Receivable Invoice (Cancel buying from
Supplier).
66
67. Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Price, Quantity or Discount
fields he/she will get an error message.
o If a user tries to remove Items that have been sold to a specific
Customer, then he/she will get an error message.
Update a Receivable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Receivable Invoice.
o The system must have at least one Supplier.
Post-Condition:
o The selected Receivable Invoice will be updated.
67
68. Exceptions:
o If a user leaves any blank field he/she will get an error message.
Delete a Receivable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Receivable Invoice.
Post-Condition:
o The selected Receivable Invoice will be deleted.
Exceptions:
o If the selected Receivable Invoice has Foreign Key Dependency in
another table the user will get an error message.
68
69. Search for a Receivable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Receivable Invoice.
Post-Condition:
o The required Receivable Invoice will be retrieved from the database.
Exceptions:
o If a user does not enter the Receivable Invoice No he/she will get an error
message.
o If a user enters a non numeric value in the Receivable Invoice No field
he/she will get an error message.
o If a user enters a not valid Receivable Invoice No he/she will get an error
message.
69
70. 4.4.10. Crud Deliverables
Create a Deliverable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Customer.
Post-Condition:
o A new Deliverable Invoice will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
70
71. Adding Items on Deliverable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Deliverable Invoice.
o The system must have at least one available Item stored in a Warehouse.
Post-Condition:
o Items will be added on the Deliverable Invoice (Selling to Customer).
o Items will be removed from the Deliverable Invoice (Cancel selling to
Customer).
Exceptions:
71
72. o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Price, Quantity or Discount
fields he/she will get an error message.
o If a user tries to add number of Items that are not available in a
Warehouse he/she will get an error message.
Update a Deliverable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Deliverable Invoice.
o The system must have at least one Customer.
Post-Condition:
o The selected Deliverable Invoice will be updated.
Exceptions:
72
73. o If a user leaves any blank field he/she will get an error message.
Delete a Deliverable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Deliverable Invoice.
Post-Condition:
o The selected Deliverable Invoice will be deleted.
Exceptions:
o If the selected Deliverable Invoice has Foreign Key Dependency in
another table the user will get an error message.
73
74. Search for a Deliverable Invoice:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Deceivable Invoice.
Post-Condition:
o The required Deliverable Invoice will be retrieved from the database.
Exceptions:
o If a user does not enter the Deliverable Invoice No he/she will get an
error message.
o If a user enters a non numeric value in the Deliverable Invoice No field
he/she will get an error message.
o If a user enters a not valid Deliverable Invoice No he/she will get an error
message.
74
75. 4.4.11. Crud Movables
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one available Item stored in a Warehouse
beside to another Warehouse.
Post-Condition:
o Items will be moved from one Warehouse to another one.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Quantity fields he/she will get
an error message.
o If a user tries to move number of Items that are not available in a
Warehouse he/she will get an error message.
75
76. 4.4.12. Crud Shipments
Create Shipment Order:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Deliverable Invoice.
Post-Condition:
o A new Shipment Order will be created.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Deliverable Invoice No fields
he/she will get an error message.
o If a user enters a not valid Deliverable Invoice No he/she will get an error
message.
76
77. Update Shipment Order:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Shipment Order.
o The system must have at least one Deliverable Invoice.
Post-Condition:
o The selected Shipment Order will be updated.
Exceptions:
o If a user leaves any blank field he/she will get an error message.
o If a user enters a non numeric value in the Deliverable Invoice No fields
he/she will get an error message.
o If a user enters a not valid Deliverable Invoice No he/she will get an error
message.
77
78. Delete Shipment Order:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Shipment Order.
Post-Condition:
o The selected Shipment Order will be deleted.
78
79. Search for a Shipment Order:
Pre-Condition:
o System on.
o User is logged in as Administrator or User.
o The system must have at least one Shipment Order.
Post-Condition:
o The required Shipment Order will be retrieved from the database.
Exceptions:
o If a user does not enter the Shipment No he/she will get an error message.
o If a user enters a non numeric value in the Shipment No field he/she will
get an error message.
o If a user enters a not valid Shipment No he/she will get an error message.
79
80. Shipment Order - Details:
This Page gives details about a specific Shipment Order.
5. Evaluation of WareHouse Manager
This section covers the strength points of WareHouse Manager.
• WareHouse Manager is a simple WMS that has strong capabilities.
• Warehouse Manager is most user friendly WMS.
• Controls various kind of transactions:
Managing Warehouses
Managing Items
Managing Items Category
Managing Units
Managing Suppliers
Managing Customers
Managing Receiving Items
80
81. Managing Delivering Items
Managing Shipping Items
Managing Moving Items
Managing Administrators & Users of the system
• Warehouse Manager is very secure & reliable system.
6. Conclusion
WareHouse Manager can be used in small warehousing businesses, it has
eleven different transactions like receiving, selling, moving and shipping
items, and it uses different technologies MySQL Workbench, Adobe
Dreamweaver and Java Serever Pages (JSP).
WareHouse Manager can be extended in the future to support Radio -
Frequency Identification (RFID) technology that can be used for purpose
of identification and tracking materials within a warehouse.
81
82. 7. References
Warehouse management system
http://en.wikipedia.org/wiki/Warehouse_management_system
What is a Warehouse Management System?
http://www.shmula.com/5487/what-is-a-warehouse-management-system
WarehouseNet
http://www.ibuyer.hk/ProductsWhnt.html
Enterprise 21 ERP
http://www.tgiltd.com/erp-software/warehouse-management-systems-
software.html
EasyWMS
http://www.interlakemecalux.com/
KIMARTA WMS
http://www.thewarehousemanagementsystems.com/
MySQL Workbench
http://en.wikipedia.org/wiki/MySQL_Workbench
Adobe Dreamweaver
http://en.wikipedia.org/wiki/Adobe_Dreamweaver
JavaServer Pages – Technology
http://java.sun.com/products/jsp/faq.html#2
How the JSP page works
http://www.java-tips.org/java-ee-tips/javaserver-pages/how-the-jsp-page-
works.html
82