2. 1
AFTER SALES MANAGEMENT SYSTEM FOR
TELECOM COMPANY
Submitted By
Mugabe Allan Bosco CP201211F0011
Nakakande Jemina CP201301F0007
Kagoya Sylvia CP201301F0006
Simon Kasiko
APTECH COMPUTER EDUCATION
UGANDA
24th DECEMBER, 2014
3. i
Certificate of Completion
This is to certify that
Mr./Mrs--------------------------------------------------------------------
Has successfully Designed and developed
------------------------------------------------------------------------------
Submitted by:
----------------------------------------------------------------------------
Date of Issue:------------------------------------------
Authorized signature:
4. ii
Acknowledgements
First and foremost we thank the e-Project team at the Head Office, who guided us
whenever we had doubts.
Next we thank Mr. Henry, our lecturer for giving us useful insight about the project and
also providing valuable suggestions.
We extend our appreciation to God for guidance during this project period.
Lastly, we thank our families that have supported us in every possible way to realize the
completion of this project.
5. iii
Table of Contents
AFTER SALES MANAGEMENT SYSTEM FOR TELECOM COMPANY................................1
APTECH COMPUTER EDUCATION.....................................................................................................1
UGANDA...........................................................................................................................................................1
CERTIFICATE OF COMPLETION..........................................................................................................I
ACKNOWLEDGEMENTS .........................................................................................................................II
CHAPTER 1 INTRODUCTION.................................................................................................................1
1.0 Overview ............................................................................................................................................1
1.1 Problem Definition.......................................................................................................................1
1.2 Customer Requirement Specification........................................................................................2
1.3 List of inputs to the system..............................................................................................................3
1.4 List of expected Outputs..................................................................................................................3
1.5 Scope...................................................................................................................................................3
1.6 Hardware and Software Requirements.........................................................................................3
1.7 Project Review ..................................................................................................................................4
1.8 Project Organization.......................................................................................................................4
CHAPTER 2 USER GUIDE.........................................................................................................................6
2.0 USER MODULES......................................................................................................................................6
2.1 LOGIN MODULE......................................................................................................................................6
2.2 ADMINISTRATION MODULE...................................................................................................................7
2.2.1 Welcome page................................................................................................................................7
2.2.2 Product Creation/View form .......................................................................................................7
2.2.3 Product Category Creation form.............................................................................................10
2.2.4 Customer registration form ......................................................................................................10
2.2.5 Complaint viewing form............................................................................................................12
2.2.6 View Customer dispatches form ..............................................................................................14
2.2.7 View orders form........................................................................................................................15
2.3 SYSTEM ADMIN MODULE....................................................................................................................16
2.3.1 Welcome page.............................................................................................................................16
2.3.2 Create New Staff form ...............................................................................................................16
2.3.3 Manage Users form ...................................................................................................................18
2.4 CALL CENTER MODULE.......................................................................................................................19
2.4.1 Welcome page.............................................................................................................................19
2.4.2 Register complaint form............................................................................................................20
2.4.2 View complaints form ................................................................................................................22
2.5 ACCOUNTS MODULE............................................................................................................................22
2.5.1 Welcome page.............................................................................................................................22
2.6 TECHNICAL MODULE...........................................................................................................................23
2.6.1 Welcome page.............................................................................................................................23
2.6.2 Process complaint form.............................................................................................................24
2.7 ORDER MODULE...................................................................................................................................25
2.7.1 Welcome Page ............................................................................................................................25
2.7.2 Create Order form .....................................................................................................................26
2.8 DISPATCH MODULE..............................................................................................................................29
2.8.1 Welcome page.............................................................................................................................30
2.8.2 Process Orders form..................................................................................................................31
6. iv
CHAPTER 3 DEVELOPER’S GUIDE..................................................................................................35
3.1 ARCHITECTURE OFTHE APPLICATION................................................................................................35
3.1.1 LINQ Entity Diagram................................................................................................................35
3.1.2 Database design.........................................................................................................................36
3.2 PROJECT STANDARDS...........................................................................................................................36
3.2.1 Coding standards.......................................................................................................................36
3.2.2 Coding Standards for GUI Controls.......................................................................................37
3.3 SYNOPSIS................................................................................................................................................37
3.3.1 FORMS USED IN THE PROJECT ..........................................................................................................37
3.4 CODE SAMPLES.....................................................................................................................................38
3.4.1 Setting the DataContext............................................................................................................38
3.4.2 Assigning the OrderDetailsTbl instance to the Window’s DataContext in XML markup
.................................................................................................................................................................38
3.4.3 Creating dispatch details from the orders list.......................................................................38
APPENDIX 1: APPLICATION FLOWCHART................................................................................................41
APPENDIX 2: DATABASE TABLES..............................................................................................................44
APPENDIX 3: COMPLAINTSLOGSCHEMA XML SCHEMA COLLECTION................................................45
APPENDIX 4: COMPLAINTINFOSCHEMA XML SCHEMA COLLECTION..................................................45
APPENDIX 5: DISPATCHDETAILSCOLLECTION XML SCHEMA COLLECTION......................................46
APPENDIX 6: ORDERDETAILSCOLLECTION XML SCHEMA COLLECTION............................................47
APPENDIX 7: WARRANTYSCHEMACOLLECTION XML SCHEMA COLLECTION....................................47
APPENDIX 8: PRODUCTFEATURESSCHEMA XML SCHEMA COLLECTION.............................................48
APPENDIX 9: PRODUCTINFOSCHEMA XML SCHEMA COLLECTION.......................................................48
APPENDIX 10: FINAL CHECK LIST ............................................................................................................49
7. 1
Chapter 1 Introduction
1.0 Overview
This report is about the work done in the development of an “After sales management
system for Telecom company” on the .NET platform. It is a semester three project
assignment for software engineering students and aims at giving an opportunity to work
on real life projects.
1.1 Problem Definition
Our client is a manufacturer of the telecom products, like mobiles, landlines, wireless
phones, etc. with different features like speaker phone, in -built phonebook, call tracking
system, SMS facility, voice recording features, answering m/c facility, etc. Several telecom
companies like BSNL, etc. actually the clients of this manufacturer used to visit or ask for
the sales person to visit their premises in order to select the type of the product, and place
a request for some quantity of the products as per their requirement. Also they receive the
order from some customers who want to have a parallel connection for their existing
telecom connection with some features like speaker phone, answering m/c incorporated,
etc.... Also due to the increase in the vendors of various telecom providers, the increase in
demand for the telecom product manufacturers is increased.
Due to some arrears in the delivery of the product, or due to some failures
occurred for the product, they want to start up a front end business (like the After-Sales
support system of the firm), where the customers can lodge their complaints, or reports
regarding their concerns either by calling to the help desk lines or through the mail id s as
provided in the product menu and on the bill receipt of the product.
The id for this is helpdesk@tele-comsupport.com. They want a standalone application to
be built so as to record the complaints/reports lodged and their status, so as track the
service provided and as to ensure that there will be the timely service.
8. 2
1.2 Customer Requirement Specification
The customer requirement specifications for the system include the following:
Holds complaints/Reports and their status.
Generate dispatch number specific to the order placed.
Separate logins for each department.
Dispatch people and order management department should be able to add details of
the orders and that of the dispatched and also the details of the customers.
Records should be able to be tracked either based on the order number /dispatch
number.
Details of the warranty that is provided for a particular product in that dispatch is also
to be stored.
The call center employees should be able to track the details of customers based on
the order number as well as on the dispatch done for the orders placed. Furthermore
they should also be able to lodge and update a complaint as given by the customer
and they can check the status of the complaint.
Complaint number should be updated automatically and sequentially.
When a customer detail is accessed, the complaints lodged till date should be able to
be recorded.
The back end should be able to track the details of the complaints lodged and as well
they can change the status of the complaint based on the service provided.
The admin can check the details of the complaint lodged and how often and how
much time they have taken to service the customer.
Ensure that complaints lodged cannot be deleted, can only be updated and as well
the status of the complaint can be changed.
9. 3
A database to hold the details of the products, orders, dispatches and that of the
customers, complaints and that of the status of the complaint, order, dispatch are
needed to be included.
A separate team in the back end will take care of the emails that are received to the
help desk mail id and they should be capable of lodging that complaint in the
application and provide the complaint number.
Back end should be able to check the list of complaints lodged till date.
1.3 List of inputs to the system
The expected inputs are customer details, staff details, product categories and product
details, user departments, order details, dispatch details, and complaint details.
1.4 List of expected Outputs
The expected outputs are search facilities to view customer order details and dispatch
details, customer complaints, product details, a database to hold the details of the
products, order, dispatches and that of the customers, complaints and that of the status of
the complaint, order, and dispatch.
1.5 Scope
The processes involved to achieve the desired output included: designing a database to
store customer, product, order and dispatch details and customer complaints, creating
various user interfaces for accessing and saving data to the database. The application
has different functionalities such as staff registration, customer registration, product
category and product model creation, order creation and processing (dispatch), complaint
registration and review.
1.6 Hardware and Software Requirements
The following software and hardware components are required by the application:
10. 4
.NET Framework 3.5 SP1
SQL Server 2012 Express LocalDb or SQL Server 2012 Express.
Microsoft Windows Installer 4.5
Super VGA or higher resolution: at least 800x600 pixel resolution
Microsoft Internet Explorer 6 SP1 or a later version
At least 3.6 GB of available disk space on the system drive
Processor type: Minimum: AMD Opteron, AMD Athlon 64, Intel Xeon with Intel
EM64T support, Intel Pentium IV with EM64T support; Processor speed:
Minimum: 1.4 GHz, Recommended: 2.0 GHz or faster
RAM: Minimum: 256 MB; Recommended: 1.024 GB. Maximum: 1 GB for the
Database Engine
Operating system: Windows 7 x64 Professional.
1.7 Project Review
Some of the reviews done included creating another department for the System
administrator so as to enable the registration of staff and managing users on the system,
the users in the dispatch department will not be adding dispatch details instead they will
be processing the order details by clicking on each of the pending orders, then processing
a particular order (that is clicking on each of the products in the list and asked if they want
to process the product until all products in the list are processed) and then automatically
generating the dispatch details by saving the dispatch.
1.8 Project Organization
Name Responsibility
Mugabe Allan Bosco Analyst, Developer, Project leader
Nakakande Jemina Tester, Designer
Kagooya Sylvia Tester, documenter
Simon Kasiko Designer,Documenter
12. 6
Chapter 2 User Guide
2.0 User Modules
The application has different modules for each department that is the administration,
accounts, call center, dispatch, order, system admin and technical departments.
2.1 Login Module
This is the starting point of the application and the user enters their staff ID as the User ID
and then their password. If details are correct the user is taken to the welcome page
otherwise an error message is displayed.
This is the first page the user sees after logging in. This differs according to the user
department.
13. 7
2.2 Administration Module
2.2.1 Welcome page
This is the home page for users in the administration department. The actions a user can
do are listed on the left
2.2.2 Product Creation/View form
14. 8
This form is available to only the administration department users and this form can be
used to view existing products or to create a new product. When creating a new product
the user has to fill in all the text fields. The product name length must not exceed 20
characters. The user can select from the existing product categories or else they can
create a new category using another form. The user can add features of a product by
clicking the Add feature button or the user can press the “Enter key” if focus is not on any
other clickable item which brings up a dialog box to enter the feature. Only one feature
should be entered at a time. The user can press the “Enter key“ to return from the dialog
and continue adding features by pressing the “Enter key”. The user can also add warranty
details by clicking on the link “Add Warranty Details” which also brings up a dialog box to
enter the warranty period and the details of the warranty. The user can also select an
15. 9
image for the product by clicking the “Load Image” button that will open a dialog box for
the user to select the location of the image.
Alternatively the user can select a product to view its details by selecting a product name
from the combo box.
When the user presses the “Save” button the user is asked if he/she would like to add an
image for the product if he/she has not or if he/she would like to add warranty information.
The user can opt out of adding these details by pressing the “No” button of the Message
box. In order to save the details the user must have at least entered on product feature.
Below is when the form is used to view product details.
16. 10
2.2.3 Product Category Creation form
This form is used to create product categories and is only available to the administration
department. The user enters the product category name and also a brief description about
the category before the “Add” button can be enabled.
2.2.4 Customer registration form
17. 11
This form is used to capture a customer’s details. The customer ID is auto-generated and
the user is required to enter the customer’s name (maximum length is 100 characters),
email (maximum length is 50 characters), the field “TelephoneNumber1” (maximum length
is 15 characters), the field “Billing Address” (maximum length is 200 characters) and field
“Delivery Address” (maximum length is 200 characters). The user can optionally enter the
field “TelephoneNumber2” which has the same maximum number of characters as
“TelephoneNumber1”.
18. 12
2.2.5 Complaint viewing form
This form is used to look at existing complaints which can be viewed by date, or status or
customer. By default they are shown by date. The user selects the criteria by which they
want to view the complaints by checking one of the radio buttons and then selects a value
from the combo box (drop down list). The user can view all the complaints by clicking the
“Reset” button. Furthermore, the user can view a particular complaint by clicking on it from
the list.
Below is what the user sees when they select a particular complaint (complaint ID 9):
20. 14
2.2.6 View Customer dispatches form
This form enables the administration user to view the dispatches made and their status.
The user can view the dispatches by a particular criterion by checking one of the radio
buttons and then selects a value from the combo box (drop down list). The user can go
ahead and look at the product details if they select a particular dispatch which will activate
the “View products” button that the user can click to view the products in each dispatch as
shown below:
21. 15
The user can look at the product details including the warranty provided for each product.
Then the user can close the window by clicking the “Close” button.
2.2.7 View orders form
The administration user can view the orders by a particular criterion by checking one of
the radio buttons and then selects a value from the combo box (drop down list).
22. 16
2.3 System Admin Module
This module is only available to the system administrator and comprises of the following
forms.
2.3.1 Welcome page
2.3.2 Create New Staff form
23. 17
This form is used to register a new staff and is available to the system administrator. The
first name and middle name cannot be more than 15 characters while the last name and
designation cannot be more than 30 characters. The email cannot be more than 50
characters. If all text fields are entered and the department is selected the “Save” button is
enabled when the user presses the “Tab” key while in the “email” text field. The “Cancel”
button can be used to close the window.
The user is not required to enter the staff ID.
24. 18
2.3.3 Manage Users form
This form is available to the system administrator (SystemAdmin department) and is used
to grant access rights that is, assign a password to an existing staff member in the system
and also modify the password for the staff in case they forget the password. To grant
access to the system the user selects the staff name from the displayed list and the user
ID will be captured which will allow a password to be assigned to the user ID then the user
can be granted access right away by checking the “Enable Access” check box or defer
their access. The user has options of searching for a particular staff using the search
criteria of first name or last name by marking the respective radio button and then
selecting the name from the combo box which populates the list with names matching the
criterion. After pressing the “Tab” key when the user is in the “Confirm Password” text field
the “Save” button is enabled if both password fields are not empty and when clicked this
checks if the supplied passwords match. If they match, a message is showed to the user
to confirm whether they want to save the details entered.
25. 19
Alternatively, the user can select a user from the list to modify their login status or details.
The “Load” button is enabled and the user clicks this button to load the details for
modification. The user can decide to modify only the login status by checking the “Enable
Access” check box and saving or decide to only create a new password for a staff by
supplying passwords in the “Password” field and “Confirm Passwords” fields and saving or
doing both actions.
2.4 Call Center Module
2.4.1 Welcome page
This is the page the user sees when they log in successfully and displays the list of
actions they can perform.
26. 20
2.4.2 Register complaint form
The user is only required to select the customer from the drop down list and provide the
description of the complaint (the description can be as long as 8000 characters) and once
27. 21
the user presses the “Tab” key when in the “Description” field the button “Submit” is
enabled to submit the complaint. The user after selecting from the drop down list can be
able to view the customer dispatches, their status and look at the product details by
clicking the “View dispatch” button(for more details look at the ”Administration” module
“View Customer dispatches form”) and they can also view the orders for that customer by
clicking the “View orders” button. The user can select a particular order or particular
dispatch to indicate that the complaint is related to it. The user has only one option to filter
the items they want to view by date for viewing both orders and dispatches. The other
options are not available. By default, the user views all the customer orders.
If the user does not select any item from the list they get a warning.
28. 22
If the complaint is not related to a particular dispatch, the user should click the “Cancel”
button.
2.4.2 View complaints form
This form is the same as the one in the “Administration” module and the call center user is
also not enabled to comment on complaints, they can only view the status of the
complaint and other details.
2.5 Accounts Module
A user in this module is only enabled to view the orders of customers.
2.5.1 Welcome page
See the “Administration” module for guidance on usage.
29. 23
2.6 TechnicalModule
A user in this module is enabled to register and view complaints registered and address
the complaints.
2.6.1 Welcome page
For guidance on usage of registering complaints view the “Call Center” module.
30. 24
2.6.2 Process complaint form
This form is accessed by selecting a particular complaint from the list of complaints in the
“View Customer complaints form” which is the form that the user views when they click on
the “View Complaints” link on the “ Welcome” page. The user is required to enter a
comment on the complaint (the comment can be as long as 8000 characters) and mark
the complaint as “RESOLVED” if the complaint is not yet resolved and they are to save
the details of the comment entered otherwise the user gets a warning. If the user selected
a complaint that was already resolved they are not enabled to edit it.
31. 25
2.7 Order Module
In this module the user is enabled to create and view orders and the option to create
orders is only available to the Order department.
2.7.1 Welcome Page
The user selects the actions they want to perform from here.
32. 26
2.7.2 Create Order form
This form is used to enter the order details. The user is required to select the customer
from the dropdown list. By clicking on the drop down list and pressing the first letter of the
customer name the user will be taken to the first customer who starts with that letter if they
exist. Then the user can add products to the order by clicking the “Add Products” button or
pressing the “Enter” key then a dialog window is shown that contains the list of products
as shown below.
33. 27
This window is adjustable to view the product features. When the user moves the mouse
over the right border of the products list the user can drag to adjust the list width as shown
below.
Before the user selects a product from the list, the field for “Quantity” is not enabled and
once a user selects an item from the list they cannot select another item as it becomes
disabled until the user enters the quantity for the selected product and clicks the “Add”
button or presses the “Enter” key to add the product to the order. The user is then
34. 28
prompted whether they want to add the selected product. The user does this until the user
is done with adding the order products. The user views the list of added products.
The user returns to the Order form by clicking the “OK” button otherwise no products are
added to the order.
The added products can be viewed and their quantities adjusted or even the product
removed from the order. Below is what the user sees when they return to the Order form.
35. 29
If the user clicks on the product in the list they can either adjust its quantity by typing in a
new value in the Quantity field and press the “Tab” key or completely remove it from the
list by clicking the “Remove Product” button which prompts the user whether they want to
remove the product.
After adding the products the user can go ahead and save the details. The user gets a
prompt showing the summary of the details that they have entered and asking them if they
want to save the details.
2.8 Dispatch Module
The user in this module is allowed to process orders, view orders and view dispatches.
36. 30
2.8.1 Welcome page
This is the Welcome page for the user and it is where the user can choose an action to
perform by selecting one of the links from the list. For guidance on how to use the View
Orders form and View Dispatches look at the Administration module.
37. 31
2.8.2 Process Orders form
This form is only available to users in the order department. On the left, the list displays
pending orders which the user can have a better view by adjusting the width of the list as
shown below.
38. 32
To process an order the user clicks on an item in the list and then the list of products in
that order will be displayed as shown below.
39. 33
After selecting an item from the order list the user can only process the order selected; the
list is hidden until the user saves or completes processing the selected order. To process
the order the user clicks on each of the products and then shown the summary of each
product as shown below and prompted whether they want to process the product.
40. 34
The user does this until there are no more products in the list then the “Save” button is
enabled to process the order. When the user clicks the “Save” button they are prompted
whether they want to process the order. After saving, the order list is shown once again to
the user to process another order. If the user does not save or closes the window, the
order is not processed.
41. 35
Chapter 3 Developer’s Guide
3.1 Architecture of the application
The application is a client/server application which consists of 3 tiers. Tier 1 is the user
tier and consists of the user interface. Tier 2 consists of the business objects of the
application. The core business logic is located in a separate library (Telecom_Library).
Tier 3 is the server (persistent data) tier that is, SQL Server 2012 Express LocalDB; it can
be used with SQL Server 2012 and above. It is accessed through the LINQ and ADO.NET
entity framework.
3.1.1 LINQ Entity Diagram
The application uses the LINQ to SQL data object model that uses the Table and Column
attributes to point to the respective database tables and columns. The Linq to Sql object
that contains the information to connect to the database is the DataContext object (for this
application a strongly typed DataContext called TelecomDbDataContext is used). Below is
the entity diagram for this application.
Applicat
ion
RDBMS
Tier 1: Client Tier Tier 2: Business objects Tier 3: Server
tier
Business objects
42. 36
3.1.2 Database design
The database design is almost similar to the entity framework as it is built from the
database. In addition various XML schema collections were used to define the valid
structure of the XML data to be stored in the database tables. The schemas used for the
XML data stored in the database can be viewed in the Appendices.
3.2 Projectstandards
3.2.1 Coding standards
These are coding standard used for the project:
Classes Nouns in Pascal Case
Interfaces Pascal Case prefixed by "I"
Methods Verb or Verb/Noun pair in Pascal Case
Properties Pascal Case
Instance Variable Camel Case
Local Variable
Camel Case.
43. 37
Parameters
Camel Case
3.2.2 Coding Standards for GUI Controls
Prefix Control description Prefix Control description
btn Button dlg Dialog Window
cbo Combobox lvw ListView
txt TextBox/TextBlock rad Radio Button
chk CheckBox lbl Label
lst ListBox pnl Panel
pwd PasswordBox exp Expander
frm Window
3.3 Synopsis
The Windows Presentation Foundation (WPF) was used to design all the user interfaces,
thereby the design is separated from the logic.
3.3.1 Forms used in the project
Form Description
dlgAddFeatures A dialog form to add features of a product
dlgOrderProducts A dialog form used to add products to an order
frmAddProduct Used to add new products and their details into the
database
frmCreateOrder Used to enter and review order details
frmCreateDispatch Used to process order details
frmCreateProductCategory Used to create product categories and their brief
descriptions
frmComplaintRegister Used to register complaints, view customer dispatches
and view customer orders
frmLogin Used to enter system login details and authenticate
them
frmManageUsers Used to modify staff details and assign access rights
frmProcessComplaint Used to modify a complaint status and similarly
comment on the complaint.
frmProductCategory Used to create general product categories and
description
frmProductDetails Used to display Products and their details
frmRegisterCustomers Used to register new customers and review their
details
frmRegisterStaff Used to register staff details
frmViewComplaints Used to view customer complaints
frmViewCustomerDispatches Used to view customer dispatches
frmViewOrders Used to view customer orders
44. 38
frmWarrantyDetails Used to create warranty details
frmWelcome Used to restrict access according to departments
3.4 Code Samples
3.4.1 Setting the DataContext
TelecomDbDataContext ctx;
ctx = new TelecomDbDataContext(TelecomDbAccess.conString);
This sets the connection string for the strongly typed DataContext (derives from class
DataContext) called TelecomDbDataContext that contains the information to
connect to the database.
3.4.2 Assigning the OrderDetailsTbl instance to the Window’s
DataContext in XML markup
<Window.DataContext>
<Telecom_Library:OrderDetailsTbl/>
</Window.DataContext>
3.4.3 Creating dispatch details from the orders list
//This method is found in the frmCreateDispatch class in the
Telecom_AfterSalesManagementSystem namespace and gets the selected item from
the order list
private void lvwOrders_SelectionChanged(object sender,
SelectionChangedEventArgs e)
{
dispatch = new DispatchDetailsTbl();
//Disabling the Expander control
expOrder.IsEnabled = false;
expOrder.IsExpanded = false;
double totalCost=0;
prodWarranty = new Warranty();
orderTbl = lvwOrders.SelectedItem as OrderDetailsTbl;
dispatch.ORDERNO = orderTbl.ORDERID;
dispatch.STAFFID = staffID;
dispatch.STATUS = "PENDING CONFIRMATION";
dispatch.DISPATCH_DATE =
DateTime.Parse(DateTime.Now.ToShortTimeString());
XElement orderInfo = orderTbl.ORDER_INFO;
string custAddress = orderTbl.CustomerTbl.DELIVERY_ADDRESS;
prodDetails=prodOperations.MarshalProducts(orderInfo);
45. 39
foreach (ProductDetails p in prodDetails)
{
totalCost += p.Cost;
orderProds.Add(p);
}
dispatch.DISPATCH_INFO =
prodOperations.AssembleProductsWithWarranty(prodDetails, totalCost,
orderTbl.ORDERID.ToString(),
orderTbl.CUSTOMERID, custAddress);
}
//This method is found in the ProductOperations class in the
Telecom_Library namespace and is used to create an array of class
ProductDetails from the products in the XElement ORDER_INFO in the
OrderDetailsTbl table
public ProductDetails[] MarshalProducts(XElement item)
{
Warranty prodWarranty;
int totalCost=0;
var prod = from p in item.Descendants("Product")
select new
{ProdID=p.Attribute("modelID").Value,Category=p.Element("Category").Value,
ProdName=p.Element("ProdName").Value,Price=p.Element("UnitPrice").Value,
Quantity=p.Element("Quantity").Value,Cost=p.Element("Cost").Value};
ProductDetails[] prodDetails = new ProductDetails[prod.Count()];
int i = 0;
foreach (var p in prod)
{
prodWarranty=GetWarranty(Convert.ToInt32(p.ProdID));
totalCost += Convert.ToInt32(p.Cost);
prodDetails[i] = new
ProductDetails(Convert.ToInt32(p.ProdID), p.ProdName,
p.Category,Convert.ToInt64(p.Price),
Convert.ToInt32(p.Quantity),prodWarranty);
i++;
}
return prodDetails;
}
//This method is found in the Telecom_Library namespace in the
ProductOperations class and retrieves the warranty details for a given
product model and returns the details as a Warranty instance
46. 40
public Warranty GetWarranty(int modelID)
{
XElement warranty;
Warranty prodWarranty = new Warranty();
IEnumerable<XElement> war = from w in ctx.ProductModelsTbls
where w.MODELID == modelID
select w.WARRANTY;
foreach (XElement w in war)
{
warranty = w;
if (warranty != null)
{
prodWarranty.Period = w.Element("Period").Value;
prodWarranty.Details = w.Element("Details").Value;
return prodWarranty;
}
}
return null;
}
//This method is found in the Telecom_Library namespace in the
ProductOperations class and creates and returns the XML element that is to
be stored in the DISPATCH_INFO column of the DispatchDetailsTbl table
public XElement AssembleProductsWithWarranty(ProductDetails[] prods, double
totalCost, string orderNum, int custID,string address)
{
XElement products = new XElement("Dispatch", new
XAttribute("OrderNum", orderNum), new XAttribute("CustomerID", custID),
new XElement("Products",
from prod in prods
select
new XElement("Product", new
XAttribute("modelID", prod.ProductID),
new XElement("Category", prod.Category),
new XElement("ProdName", prod.ProductName),
new XElement("UnitPrice", prod.Price),
new XElement("Quantity", prod.Quantity),
new XElement("Cost", prod.Cost),
CreateWarranty(prod))),
new XElement("TotalCost", totalCost),
new XElement("DeliveryAddress",address));
return products;
}
47. 41
//This method creates and returns the warranty details for a given
product
as a Warranty instance
public XElement CreateWarranty(ProductDetails prod){
XElement warranty;
if (prod.Warranty != null)
{
warranty = new XElement("Warranty",
new XElement("Period",
prod.Warranty.Period),
new XElement("Details",
prod.Warranty.Details));
return warranty;
}
else
{
warranty = new XElement("Warranty",
new XElement("Details", "No warranty cover
provided"));
return warranty;
}
}
Appendix 1: Application FlowChart
49. 43
Yes
No
Yes
No
Yes
No
Yes
No
Yes
G
Is user role
Technical?
Is user role
Accounts?
Is user role
Administration?
Display Welcome
page
Display Welcome
page
Display Welcome
page
Stop
Is Close Window
selected?
Is user role
SystemAdmin?
Display Welcome
page
50. 44
Appendix 2: Databasetables
Name of table Table
description
Primary Key Related tables Foreign Key
LoginDetailsTbl Used to store
login details
LOGINID StaffDetailsTbl
DepartmentTbl
LOGINID
DEPTID
DepartmentTbl Used to store
the department
details
DEPTID StaffDetailsTbl DEPARTMENT
_HEAD
CustomerTbl Used to store
customer
information
CUSTOMER
ID
ComplaintsLogTbl
ComplaintsTbl
NONE
NONE
ComplaintsLog
Tbl
Used to log
complaints
according to
customer
CUSTOMER
_ID
CustomerTbl CUSTOMERID
ComplaintsTbl Used to
register
complaint
details and
comments
COMPLAINT
_NUMBER
CustomerTbl CUSTOMERID
StaffDetailsTbl Used to store
staff details
STAFFID DepartmentTbl
StaffDetailsTbl
DEPTID
SUPERVISOR_I
D
OrderDetailsTbl Used to store
order details
ORDERID StaffDetailsTbl STAFFID
DispatchDetails
Tbl
Used to store
dispatch details
DISPATCH_
NUMBER
StaffDetailsTbl
OrderDetailsTbl
STAFFID
ORDERNO
ProductCategor
yTbl
Used to store
product
category
details
CATEGORYI
D
ProductModels
Tbl
Used to store
product model
details
MODELID ProductCategory
Tbl
CATEGORYID
ProductsLogTbl Used to store
product model
details as xml
data
PRODUCTI
D
ProductModelsTbl PRODUCTID
51. 45
Appendix 3: ComplaintsLogSchemaxml schemacollection
This is used for the Complaint_Info column in the ComplaintLogTbl table
<xs:schema id="ComplaintLog" xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="Complaint">
<xs:complexType>
<xs:sequence>
<xs:element name="Date" type="xs:dateTime"/>
<xs:element name="Description" type="xs:string"/>
</xs:sequence>
<xs:attribute name="ComplaintNumber" use="required"/>
<xs:attribute name="DispatchNumber" type="xs:int"/>
<xs:attribute name="OrderNo" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element name="Complaints">
<xs:complexType>
<xs:sequence>
<xs:element ref="Complaint" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Appendix 4: ComplaintInfoSchema xmlschema collection
This is used for the Complaint_Info column in the ComplaintsTbl
<xs:schema id="ComplaintInfoSchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="Complaint">
<xs:complexType>
<xs:sequence>
<xs:element name="Date" type="xs:dateTime"/>
<xs:element name="Description" type="xs:string"/>
</xs:sequence>
<xs:attribute name="DispatchNumber" type="xs:int"/>
<xs:attribute name="OrderNo" type="xs:int"/>
</xs:complexType>
</xs:element>
</xs:schema>
53. 47
Appendix 6: OrderDetailsCollection xmlschema collection
This is used for the Order_Info column in the OrderDetailsTbl table
<xs:schema id="OrderDetails"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="ProductType">
<xs:sequence>
<xs:element name="Category" type="xs:string"/>
<xs:element name="ProdName" type="xs:string"/>
<xs:element name="Quantity" type="xs:int"/>
<xs:element name="UnitPrice" type="xs:double"/>
<xs:element name="Cost" type="xs:double"/>
</xs:sequence>
<xs:attribute name="modelID" type="xs:int" use ="required"/>
</xs:complexType>
<xs:element name="Order">
<xs:complexType>
<xs:sequence >
<xs:element name="Products">
<xs:complexType>
<xs:sequence>
<xs:element name="Product" type="ProductType"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TotalCost" type="xs:double"/>
</xs:sequence>
<xs:attribute name="OrderNum" type="xs:string" use="required"/>
<xs:attribute name="CustomerID" type="xs:int" use ="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
Appendix 7: WarrantySchemaCollectionxml schema
collection
This is used for the Warranty column of the ProductModelsTbl table
<xs:schema id="WarrantySchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="Warranty">
<xs:complexType>
<xs:sequence>
<xs:element name="Period" type="xs:string"/>
<xs:element name="Details" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
54. 48
Appendix 8: ProductFeaturesSchema xml schema
collection
This is used for the Features column of the ProductModelsTbl table.
<xs:schema id="ProductFeatures"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="Features">
<xs:complexType>
<xs:sequence>
<xs:element name="Feature" type="xs:string"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Appendix 9: ProductInfoSchema xmlschema collection
This is used for the ProductInfo column of the ProductsLogTbl table
<xs:schema id="ProductSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="featuresType">
<xs:sequence>
<xs:element name="Feature" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="productType">
<xs:sequence>
<xs:element name="ProductName" type="xs:string"/>
<xs:element name="Category" type="xs:string"/>
<xs:element name="Price" type="xs:double"/>
<xs:element name="Features" type="featuresType"/>
</xs:sequence>
<xs:attribute name="ProductID" type="xs:int" use="required"/>
</xs:complexType>
<xs:element name="Product" type="productType"/>
</xs:schema>
55. 49
Appendix 10: Final Check List
S.No Aspect tested Suggestion/Remarks
1
Have all the modules been properly integrated and
are they completely functional
2
Does each unit meet its objective and purpose? Are
all the validations happening as Specified in process
Design?
3
Have all design and Coding standards been followed
and implemented?
4 Is theGUI design consistent all over
5 are the codes working ass per the specification?
6
Does the application's fuctionality resolve the client
problem and satfisfy his needs completely?
7
Have the hardware and software been correctly
chosen?
8
Additional features and utilities that give value
addition to the entire project?
Prepared by Approved By
Date