SlideShare ist ein Scribd-Unternehmen logo
1 von 55
1
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
i
Certificate of Completion
This is to certify that
Mr./Mrs--------------------------------------------------------------------
Has successfully Designed and developed
------------------------------------------------------------------------------
Submitted by:
----------------------------------------------------------------------------
Date of Issue:------------------------------------------
Authorized signature:
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.
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
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
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.
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.
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:
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
5
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.
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
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
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.
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
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”.
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):
13
Therefore, an administration user can only check how the complaint was addressed but
cannot edit anything.
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:
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).
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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);
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
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;
}
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
42
No
Yes
Yes
No
Yes
No
Yes
No
Display Login
Page
Start
G
Display error
message
Are details
authenticate?
Is user role Call
Center?
Is user role
Dispatch?
Display Welcome
page
Display Welcome
page
Accept username
and password
Is user role Order?
Display Welcome
page
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
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
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>
46
Appendix 5: DispatchDetailsCollection xmlschema
collection
This is used for the Dispatch_Info column in the DispatchDetailsTbl table
<xs:schema id="DispatchDetailsSchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="WarrantyType">
<xs:sequence>
<xs:element name="Period" type="xs:string" minOccurs="0"/>
<xs:element name="Details" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ProductType">
<xs:sequence>
<xs:element name="Category" type="xs:string"/>
<xs:element name="ProdName" type="xs:string"/>
<xs:element name="UnitPrice" type="xs:double"/>
<xs:element name="Quantity" type="xs:int"/>
<xs:element name="Cost" type="xs:double"/>
<xs:element name="Warranty" type="WarrantyType" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="modelID" type="xs:int" use="required"/>
</xs:complexType>
<xs:element name="Dispatch">
<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" maxOccurs="1"/>
<xs:element name="DeliveryAddress" type="xs:string" maxOccurs="1"/>
</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>
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>
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>
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

Weitere ähnliche Inhalte

Andere mochten auch

Practicas sociales del lenguaje en los 3 ciclos
Practicas sociales del lenguaje en los 3 ciclosPracticas sociales del lenguaje en los 3 ciclos
Practicas sociales del lenguaje en los 3 ciclosToralalfaro
 
Vicki Media Ltd company profile
Vicki Media Ltd company profile Vicki Media Ltd company profile
Vicki Media Ltd company profile Vicky Yang
 
demo for this algorithm
demo for this algorithmdemo for this algorithm
demo for this algorithmKeng-I Lin
 
ABC FDIC ... mortgage-backed securities, year 2000
ABC FDIC ... mortgage-backed securities, year 2000ABC FDIC ... mortgage-backed securities, year 2000
ABC FDIC ... mortgage-backed securities, year 2000Anne Melfi
 
Nha Trang 3 ngày 2 đêm
Nha Trang 3 ngày 2 đêmNha Trang 3 ngày 2 đêm
Nha Trang 3 ngày 2 đêmiHomeTour
 

Andere mochten auch (6)

Practicas sociales del lenguaje en los 3 ciclos
Practicas sociales del lenguaje en los 3 ciclosPracticas sociales del lenguaje en los 3 ciclos
Practicas sociales del lenguaje en los 3 ciclos
 
Vicki Media Ltd company profile
Vicki Media Ltd company profile Vicki Media Ltd company profile
Vicki Media Ltd company profile
 
demo for this algorithm
demo for this algorithmdemo for this algorithm
demo for this algorithm
 
ABC FDIC ... mortgage-backed securities, year 2000
ABC FDIC ... mortgage-backed securities, year 2000ABC FDIC ... mortgage-backed securities, year 2000
ABC FDIC ... mortgage-backed securities, year 2000
 
Nha Trang 3 ngày 2 đêm
Nha Trang 3 ngày 2 đêmNha Trang 3 ngày 2 đêm
Nha Trang 3 ngày 2 đêm
 
Professor Robyn Carroll
Professor Robyn CarrollProfessor Robyn Carroll
Professor Robyn Carroll
 

Ähnlich wie projectReportSem3final

Student Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project Development
Student Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project DevelopmentStudent Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project Development
Student Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project DevelopmentMarco Enrique Ramos Castillo
 
Gambit 2.2-tutorials
Gambit 2.2-tutorialsGambit 2.2-tutorials
Gambit 2.2-tutorialsShiva Uppu
 
Software Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing SystemSoftware Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing Systemsabafarheen
 
Acer dx900 eng_read
Acer dx900 eng_readAcer dx900 eng_read
Acer dx900 eng_readguestd5c6ad
 
7358948 questionnaire-mm
7358948 questionnaire-mm7358948 questionnaire-mm
7358948 questionnaire-mmSaid Ait Rais
 
Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206
Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206
Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206Dennis Reurings
 
Ecom01 behavior summary_2nd-edition
Ecom01 behavior summary_2nd-editionEcom01 behavior summary_2nd-edition
Ecom01 behavior summary_2nd-editionKjartan Fridriksson
 
Dotcomology the science of making money online
Dotcomology   the science of making money onlineDotcomology   the science of making money online
Dotcomology the science of making money onlineInnês Medrano
 
An Introduction to Embarcadero® C++Builder® 2010
An Introduction to Embarcadero® C++Builder® 2010An Introduction to Embarcadero® C++Builder® 2010
An Introduction to Embarcadero® C++Builder® 2010Embarcadero Technologies
 
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...EnriqueJoseCaleroGal
 
Terminos condicionesgoldbex en
Terminos condicionesgoldbex enTerminos condicionesgoldbex en
Terminos condicionesgoldbex enalberto mariani
 
Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18
Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18
Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18Công Ty SHG Vietnam
 
Management_Console_Quick_Start_Guide
Management_Console_Quick_Start_GuideManagement_Console_Quick_Start_Guide
Management_Console_Quick_Start_GuideJana Chambers
 
Management_Console_Quick_Start_Guide
Management_Console_Quick_Start_GuideManagement_Console_Quick_Start_Guide
Management_Console_Quick_Start_GuideJana Chambers
 

Ähnlich wie projectReportSem3final (20)

Student Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project Development
Student Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project DevelopmentStudent Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project Development
Student Manual _ ABT-CCP-143-TSM _ RSLogix 5000, Level 3 _ Project Development
 
Gambit 2.2-tutorials
Gambit 2.2-tutorialsGambit 2.2-tutorials
Gambit 2.2-tutorials
 
Software Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing SystemSoftware Requirement Specification on Online Purchasing System
Software Requirement Specification on Online Purchasing System
 
Acer dx900 eng_read
Acer dx900 eng_readAcer dx900 eng_read
Acer dx900 eng_read
 
Pb32x
Pb32xPb32x
Pb32x
 
f18.pdf
f18.pdff18.pdf
f18.pdf
 
7358948 questionnaire-mm
7358948 questionnaire-mm7358948 questionnaire-mm
7358948 questionnaire-mm
 
Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206
Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206
Youwe sap-ecc-r3-hana-e commerce-with-magento-mb2b-100717-1601-206
 
Ecom01 behavior summary_2nd-edition
Ecom01 behavior summary_2nd-editionEcom01 behavior summary_2nd-edition
Ecom01 behavior summary_2nd-edition
 
Dotcomology
DotcomologyDotcomology
Dotcomology
 
Dotcomology the science of making money online
Dotcomology   the science of making money onlineDotcomology   the science of making money online
Dotcomology the science of making money online
 
An Introduction to Embarcadero® C++Builder® 2010
An Introduction to Embarcadero® C++Builder® 2010An Introduction to Embarcadero® C++Builder® 2010
An Introduction to Embarcadero® C++Builder® 2010
 
Party merge
Party mergeParty merge
Party merge
 
MS-05 Jan-June-2017
MS-05 Jan-June-2017MS-05 Jan-June-2017
MS-05 Jan-June-2017
 
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
OpenScape Contact Center Enterprise V10 Manager Administration Guide Administ...
 
Plm fi d_qm_2002
Plm fi d_qm_2002Plm fi d_qm_2002
Plm fi d_qm_2002
 
Terminos condicionesgoldbex en
Terminos condicionesgoldbex enTerminos condicionesgoldbex en
Terminos condicionesgoldbex en
 
Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18
Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18
Hướng dẫn sử dụng máy chấm công và kiểm soát cửa f18
 
Management_Console_Quick_Start_Guide
Management_Console_Quick_Start_GuideManagement_Console_Quick_Start_Guide
Management_Console_Quick_Start_Guide
 
Management_Console_Quick_Start_Guide
Management_Console_Quick_Start_GuideManagement_Console_Quick_Start_Guide
Management_Console_Quick_Start_Guide
 

projectReportSem3final

  • 1. 1
  • 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
  • 11. 5
  • 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):
  • 19. 13 Therefore, an administration user can only check how the complaint was addressed but cannot edit anything.
  • 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
  • 48. 42 No Yes Yes No Yes No Yes No Display Login Page Start G Display error message Are details authenticate? Is user role Call Center? Is user role Dispatch? Display Welcome page Display Welcome page Accept username and password Is user role Order? Display Welcome page
  • 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>
  • 52. 46 Appendix 5: DispatchDetailsCollection xmlschema collection This is used for the Dispatch_Info column in the DispatchDetailsTbl table <xs:schema id="DispatchDetailsSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:complexType name="WarrantyType"> <xs:sequence> <xs:element name="Period" type="xs:string" minOccurs="0"/> <xs:element name="Details" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="ProductType"> <xs:sequence> <xs:element name="Category" type="xs:string"/> <xs:element name="ProdName" type="xs:string"/> <xs:element name="UnitPrice" type="xs:double"/> <xs:element name="Quantity" type="xs:int"/> <xs:element name="Cost" type="xs:double"/> <xs:element name="Warranty" type="WarrantyType" minOccurs="0"/> </xs:sequence> <xs:attribute name="modelID" type="xs:int" use="required"/> </xs:complexType> <xs:element name="Dispatch"> <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" maxOccurs="1"/> <xs:element name="DeliveryAddress" type="xs:string" maxOccurs="1"/> </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>
  • 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