Project
-
Upload
germanyrose -
Category
Documents
-
view
309 -
download
0
Transcript of Project
1
International Advanced Diploma in Computing
C2006 Project: System Development
“EVE�T ORGA�IZER”
Project Group : David Irawan Adhiguna (018800004337) : Keith Nishan Fernandez (018800004402) : Thomas Setiabudi (018800004137) Submission Date : 19 November 2008 Center Code : 0188 Lecturer Name : Mr. Karuppan Chettiar Palaniappan
2
PROPOSAL
I. Introduction
Clover Company
Clover Company is an event organizer company (Clover Company) that handles
a certain kind of party like sweet seventeen’s party, birthday party, wedding party, etc.
The company will take a job from people who want to make a party. They know about
the company from their friend or relative or someone that they know and also from the
wedding exhibition. Sometimes the Clover Company joins the wedding exhibition to
promote the company’s event organizing business so more people will know about the
company and what exactly the company is doing. Clover Company give the company’s
sample photo from previous party that it handle so people can get picture about its
previous job. And then if they interested, they can contact the company and make it as
their event organizer.
When the order for organizing some events comes, Clover Company will
immediately contact the person who hired it. The company will ask them what kind of
party they want to make, what is the theme they want to use(like summer, winter, spring
or Japanese, western or futuristic, old style), how many people they want to invite, where
they want to held the party(some people want to make party only in certain place), etc.
After all the information is gathered, the company can start to prepare the party. When
the day comes, the company organizes everything and up until now all the customer are
satisfied with what the Clover Company have done.
3
II. Current System
The company is currently using this system to do its business operation:
� Customer order Customer places their order by calling the company. Then, the customer will tell the contact person from Clover Company what event they want to have, what theme, the budget, and any specification for the event. Then the contact person will record it or write it down on a book.
� Job Distribution After they get the order, the contact person will pass the order to the head of the company. The head will then distribute the job to each department to check the availability for the event preparation. For example: who will contact the food supplier, who will contact the printing company to print the invitations, etc.
� Internal communication and communication between Clover Company with
customer Each member of EO team will inform the head about their task progress. And the head will be the information source for the customer. So, when the customer wants to know the order progress or wants to change something in the order specification, he/she will have to call and speak to the EO head.
� Payment Method The customer will have to make the payment manually, and then a staff from the Clover Company will receive the payment, take note and write a receipt.
� Account Management The staff of finance department will note all the company’s transaction and produce the financial report for a period of time. E.g. monthly or yearly report
� Documentation of previous projects All the data and information that are written when the Clover Company prepares an event will be discarded after the event is done. Because they write all the information on papers, so it will take a lot of space if they want to store it. The result is the company never does any evaluation based on the previous works.
� Company promotion / advertising The company advertises itself by following events like wedding exhibition or from mouth to mouth information. That is the way they advertise the company’s service. And their scope of operation is still limited in one city only.
4
III. Problems and Limitation:
There are some problems faced by the Clover Company with their current system:
� Problem to Get order The customer can only place their order in office hours, because the customer needs to manually call the company to speak with a staff.
� Ineffective communication Because the EO team consists of so many persons who have different tasks, the head will need to get report from each person by calling them one by one. And if there is any changes of requirement from the customer (e.g. changes of place), the head will need to call the person who is in charge of it.
� Problem with payment tracking The payment is made and written manually, so it will take a bit long time if the company needs information about it and also the customer needs to meet the staff personally in order to make the payment.
� Inadequate financial report The financial report is on per case basis. So the company doesn’t have detailed information of all the transaction that has been made.
� Difficult to evaluate all the company’s activities The current system will discard all the information about the previous events and order, so at the end of working year it is difficult to analyze all these information in order to improve the company’s productivity.
� Unsynchronized information with affiliation companies The Clover Company affiliated with several other companies such as food supplier, printing company, decorations, etc. Every time the Clover Company gets an order, it needs to contact each of these companies asking for their availability for a certain date. This is ineffective because they have to do it for each order.
� Lack of publication and advertising The current system doesn’t help the Clover Company to advertise its business and to expand their business range. Because they just depend on the events like wedding exhibition and also mouth to mouth publication.
5
IV. Objective of the New System
Due to the problems and limitations faced by the company by using the current system, so there is a growing need to develop and use a new system that not only eliminates all the problems and limitations caused by the current system but also increase the company’s business productivity and efficiency. The problems of the old system are in terms of getting orders from customer, doesn’t support effective communication between team and communication to customer, no proper database to keep data and produce reports needed by the company, and also doesn’t facilitate up to date information to synchronize the Clover Company with its affiliated companies. Apart from the problems mentioned earlier, the current system also not sophisticated enough to help the company to promote and advertise its business. That’s why it’s hard to expand the business coverage area of the company. The new system that replaces the current system should be able to eliminate all these problems and limitation caused by the current system. The new system should be able to help the Clover Company not just in one field but in every aspect involved in the company’s business. The new system should help to give better service for the customer so customers will be more satisfied with the company’s service. For example, easier access for customer to place their order, track the status and progress of the order, ability to provide the customer with easier and convenient way to make payment, payment tracking, etc.
Beside that, the new system needs to help the Clover Company in its affiliation with other companies (e.g. Food Supplier Company, Printing Company, Instrument rental, etc.). The new system must be able to eliminate the current communication and schedule synchronization problem with these affiliate companies by providing a convenient service for these companies to give up to date information about their availability to the Clover Company.
Finally, the new system must be able to increase internal productivity of the Clover Company. The current system that uses papers and pen to document all activities and information must be replaced by the new system. The new system needs to provide a digital database that keeps all the company’s record and information. This database will reduce the cost of buying papers and pen, save more spaces, and also cut working time as all the needed information is ready anytime a specific report needs to be produced. This will help the company to review its records and to make a decision on how to improve the company’s productivity. The new system also has to help the company’s financial department by providing a financial report about the company’s income, outcome, and profits in a certain period of time (e.g. monthly, weekly, or yearly).
So, the objectives of the new system are: � Provides better service for customer. � Support communication between company, customer, and affiliate companies � Provides Database that able to generate report for the company � Capable of promoting the company’s business � Reduce expenses and increase company’s productivity � Support the company’s financial reporting.
6
V. Description of the New System
In order to be a useful and productive system, the new system must be a better system compared to the old system. The new system will be equipped with useful features that will eliminate the existing problems and limitations caused by the current system.
The new system will be an online system. It is a website that can be used by the customer, the Clover Company, and also the affiliate companies. So, it is not just a simple website to show general information but an online system that can be used to manage the company’s business and increase its productivity. The features of the new system are:
1. Customer registration and login Before a customer can make place an order or use any other facility within the system, he/she will need to fill an online registration form, get user ID and password, and login to the system using his/her user ID and password. The personal information of a customer from the registration form will be kept on a database, so it can be easily used by the company if needed in the future.
2. Online order module The new system will be an online system in the Internet, so it can provides an online order service. This module will really helps the customer to place their order anytime they want (no office hour limitation) and from everywhere as long as they have an Internet access. Using this module, the customer not only able to place an order, but also track their order preparation progress. If there are any changes on the order specification and details (e.g. Change the place of the events, change the documentation type used to document the event, etc.), the customer can also make it online. It will really help to reduce communication gap between customer and the Clover Company.
3. Online payment module After a customer place an order, there is no need for he/she to come personally to the company’s office just to make the payment. He/she can do the payment from the website itself (online payment). It will allow the customer to pay using credit card, e-NETS, etc. This module is also able to generate an online receipt after the customer makes a payment. Another feature of this module is to generate a payment tracking method, it means that in the case where a customer pay just a part of the cost, the module can generate a report about how much more payment need to be made and the due date of the payment.
4. Database The system will have a database to keep various records and information of the company’s business. This database will be the central data warehouse, so the company can access and finds any needed information easily.
7
5. Affiliate Companies module As stated before that one of the current system’s problem is that it is hard to keep the schedule of the Clover Company and the affiliate companies synchronized. So the answer of this problem is a module for affiliate companies that are implemented in this new system. This module will allow a person from any affiliate company to login to the system. After they login into the system, they can use some functions of the system. First, they will be able to edit their own profile and for the second, they are able to check about the order that has placed for them. For example; they need to confirm an order if they are able to do it and if they are not able to provide their service for certain event, they have to give an explanation about why they are not able to do it.
6. Finance Report Generator This finance report generator module is very useful for the company. Unlike manual report, it can be used to produce an up to date finance report anytime it’s needed. The report will covers about the company’s income, outcome, profit, loss, etc. So this module will really save time and effort to make a company financial report.
7. Company Activities Report Beside the finance report, the new system will be able to produce another report for the company. It can report about the orders that have been finished, upcoming orders due date, list of customers, etc. Many kinds of report can be generated from the system’s database. This report plays an important part when it is used to evaluate the company’s performance. These reports can be used for a decision making by the company in order to improve the company’s performance.
8. Secured Access Since the system database keeps a lot of important and confidential information of the company, so the system also enforce security to make sure that only an authorized user can view the information. This is implemented by using a login with combination of user ID and password in order to see the data on the database. Of course not everyone who login can see all the information in the database, for example a customer will just be able to see information for his/her own order status, but the system administrator or the Clover Company staff can see a lot more information from the database.
9. Up to date news Apart from all the system function that requires the user to login, there is also a public part of the website that can be accessed by everyone without need to register or login. These parts of the website will contain various information and news about the company. This will help the company’s publication and attract new customers with a huge coverage area, which cannot be done by the current system.
8
VI. Benefits of the New system 1. Improved customer service
The new system can deliver a better service for the customer. Features like online registration, online order, online payment, order status and progress check, edit order specification online, etc. These features are far better than the current system, that will result in increased customer satisfaction level, increase the company’s reputation, and also attract new customers.
2. Fast and easy communication
The new system provides as a fast and easy communication media between the Clover Company, Customer, and affiliate companies. There is no need for the Clover Company to manually make a call to an affiliate company to ask for their availability or to call a customer to inform if there are any changes to the order specification, because all these things are time consuming and it will be eliminated by the new system. Using the ability of the new system that allows everyone involved in an event order preparation to update the event progress status, any updates to an order progress can be checked online through the website. When there is an important change to the order specification, the system will send an e-mail to the customer to notify him/her about it.
3. Provide detailed information about the company’s previous works
Using the database of the new system to record all the orders and job that have been done by the company, the new system can produce a detailed report about all the previous works that have been done by the Clover Company. The report may include the information about the company’s customer in last 3 months, the kinds of events ordered by the customer in last year, etc. various report can be produced. And the most important thing is that the company never loses its history record and it’s always well organized, save a lot of physical space (paperless), easy to store, and easy retrieves it anytime.
4. Helps the Clover Company to make decision
With a lot of easily generated report from the new system, now the company can use less effort to prepare materials and information needed to conduct a review and evaluation about the company performance. For example, the company can use the new system to produce a report about the kind of events ordered by customers in last 6 months, and then from this report the management team of the company can make decision about where to improve the company’s business and how to do it.
5. Provide a better financial report, and its easier to access
In order to help the financial department of the Clover Company, the new system will also benefits the financial company by helping them to do their job on writing financial records and produce the company’s financial report. It’s easier and faster to use the new system to produce a financial report compared to the current system that produce financial report by manually writes it on a piece of paper that takes a quite long time.
9
6. Easier to educate the customers and give information that they need
When a customer wants to make an order, there are many choices that he/she has to make. The choice is like what is the type of the event that he/she wants, when is the event date, and the widest option is on which affiliate company that the customer wants to use for the event. For example there are some food supplier company affiliated with the Clover Company, the current system will require a staff to explain each company choice to the customer, this process takes long time and big effort. With the new system, the customer can see the information about each choice on the website itself, so the company doesn’t need a staff just to describe and explain each choice to the customer. This will safe time and effort, thus increase productivity.
7. Inspiring customer
The new system will give news about the latest events that is organized by the Company; this news will give inspiration for the customer to make their choice. This will make the customers happier with the company and find that the company’s website is helpful for them. All of these things can lead to more loyal customers.
8. Synchronized Schedule with affiliate companies
The new system allows the Clover Company to get up to date information because affiliate company can straight away confirm the order if they can because the affiliate company is able to access the website anytime they want. This synchronized schedule between the Clover Company and its affiliate companies is an important benefit because it saves a lot of communication cost, time, and effort.
9. Advertise the company
With the new system’s internet based platform, it can help the company to advertise its business to a wider society, virtually all Internet users in the world. This is also one of crucial part that the new system will take. The website should have an interface and information that are interesting enough to attract new customers to use the company’s service.
10. Reduce cost After all the benefits mentioned above, the final benefit that the company will get from the new system is reduced operational cost. The new system will reduce costs like administration cost to buy papers and pen, telephone cost, cost for extra staff, etc. So, beside the intangible benefits, the new system will also have real financial benefit (tangible benefit).
10
VII. Initial Specification The system is an online system with web pages programmed using PHP and HTML as the front-end and a mySQL database as the back-end. The system will have 4 main areas. They are:
A. Public Area that can be accessed and viewed by all Internet users. B. Customer Area for registered customer with proper user id and password. C. Affiliate Company Area for affiliate companies. D. Administrator Area that used by the Clover Company’s staffs.
A. Public Area
Public Area is part of the website that can be accessed and viewed by all Internet users because there is no need to enter password or register to see this part. This is the part of the website that will be first displayed. This part also plays an important role on the company’s publication in order to attract new customers.
A.1. Up to date �ews
The most recent news about the company will always provided in the website to give customers more knowledge about the company and its services and also attracts new customers.
A.2. Company Profile
Provides a description about the company, to give the customer better understanding about the company and its businesses.
A.3. Company’s service description
This is a room for the company to promote all kinds of services that it offers to the public. It will have description about the company’s service, list of offered services and also promotion if any.
A.4. Company’s contact
This part provides a detailed contact and also the office address of the company in case if someone wants to contact the company directly.
A.5. FAQ (Frequently Asked Question)
This is a list of frequently asked question and its answer to help the user to get answer for common questions.
A.6. Sitemap
Sitemap is provided in this website to make it easier for the user to understand the structure of the website and jumps quickly from one page to another page.
A.7. Customer Registration
Customer registration page provides a registration form for customer who wants to use the company’s service so they can have a user id and password to login to the system and use more functionality of the system.
11
A.8. Customer Login
Customer login page is where a registered customer can use his/her user id and password to login to the customer area.
A.9. Affiliate Company Login
Affiliate company login is where a person from an affiliate company can login using his/her user id and password to access the affiliate company area.
B. Customer Area
After a registered customer successfully login from customer login page, he/she can now access the customer area.
B.1. User Profile Module
Here the customer can see the information that he/she entered in the registration form earlier. The customer can do modifications to some details of his/her personal particular here (e.g. update phone number or change e-mail address).
B.2. Order Placing Module
Customer can place their order here, including all the options and specification of the order such as event type, date, place, entertainment type, documentation type, etc.
B.3. Online Payment Module
This module allows customers to make an online payment for their order. After a customer make payment, it will give an online receipt that can be printed by the customer. If there is more payment to be made, the module will remind the customer about
B.4. Order Status Tracking Module
The customer can use this module to check the progress status of their order. For example, the customer can see if the place for the event has been booked or not, or if there is any changes to one of the specification/detail.
B.5. Change Order Specification
Customer can use this module to change the specification and detail of the order.
B.6. Affiliate Companies Profiles
Customers need to choose which affiliate company that he/she wants to use when placing order. For example company A for food supplier, company G for documentation, and company L for the printing of flyers. To decide which affiliate company to choose, the customer will be able to read a description and profile of each affiliate company.
B.7. Customer Feedback Module
12
Customers can give feedback to the company if they see that there is a room for improvements. Then the submitted feedback can be followed up by the management team of the company.
B.8. Help / User Guide
The help and user guide provides a clear instruction about how to use the system. This feature will assist the system user to be more familiar with the functions and navigations in the system.
C. Affiliate Company Area
This affiliate company area is a special part of the system for the affiliate companies of the Clover Company, so the synchronization between the Clover Company and its affiliate companies can be done easier with less effort.
C.1. User Profile Module
The user profile module is similar with the user profile module in customer area. It displays the affiliate company’s detail information and can be updated if there are any changes.
C.2. Booking Status Module
This module will be a reminder for an affiliate company to remind it about what are the dates that it is booked. And then the affiliate company can confirm the booking if they can do it. A confirmed booking from an affiliate company will update the order status that can be checked by the customer via order status tracking module.
C.3. Feedback Module
An affiliate company can give feedback to the Clover Company if they see that there is a room for improvements. Then the submitted feedback can be followed up by the management team of the Clover Company.
C.4. Help / User Guide
The help and user guide provides a clear instruction about how to use the system. This feature will assist the system user to be more familiar with the functions and navigations in the system.
D. Administrator Area
Administrator area is used by internal staff of the Clover Company. It requires user id and password to enter this area. But for security sake, there is no visible interface to login to this area from the home page of the website. If a staff wants to login, he/she must type a special address to open the login page to the administrator area.
D.1. Order Management Module
This module provides ability for the Clover Company’s staff to manage all the orders from the customers. The staff can see each order detail and update the order preparation progress when it’s necessary. The Clover Company can tell
13
the customer if there is any change to the order specification through this module.
D.2. Customer Management Module
The company can manage its customer from this module. The company can use this module to check for customer’s data and information, and also read customer’s feedback or send e-mail to a customer to inform the customer if there is something important happen.
D.3. Affiliate Company Management Module
The availability schedule from each affiliate company can be checked using this module. The Clover Company also can check which companies available are for a certain date. Additionally, the Clover Company can check the status of an affiliate company about how many order that request its service, whether all the request have been confirmed, etc. The Clover Company also can send e-mail to any affiliate company if there is something urgent to ask.
D.4. Company Schedule and Reminder
It helps the Clover Company to view its schedule and also upcoming events and order.
D.5. Report Generator Module
This module is used generate many kind of reports from the system database. It can produce reports like customer data report, affiliate companies report, report about the orders received in a certain period, etc. These reports can be used for an onscreen viewing only or printed to be used as meeting materials.
D.6. Finance Report Module
The company’s finance department can use this module to generate the company’s financial report. It has many categories of what period of time should the report show and also report for general condition or report on per case basis (e.g. report for each order).
D.7. Database
The system’s database is used to store all the data needed by the company. It stores customer data, affiliate company data, orders data, transaction data, and financial data. The security of the database is ensured by protecting it using password so it will prevent unauthorized person to access the information inside the database.
D.8. Help / User Guide
The help and user guide provides a clear instruction about how to use the system. This feature will assist the system user to be more familiar with the functions and navigations in the system.
14
VIII. Work Distribution To develop this system, we have a developer team that consist of three experienced person that is highly motivated and have adequate skill to carry out this project in time and satisfy the system’s specification. The team consists of:
1. System Analyst 2. Programmer 3. Database Designer/Administrator
Here is a bit description of each team member:
1. System Analyst
Our system analyst is David. He has many years of experience in this field. He is a highly self-motivated person with good communication skills. In this project, he will meet our customer to identify problem suffered by the customer’s current system. Beside that, David will perform analysis to the current system for clearly understand workflow of the current system, current system’s features, its drawback and constraints. This information will allow our team to decide what improvement should be made in the new system. To achieve this objective, David will have to gather information from different method such as reviewing current system’s document, interviewing involved staff person, and observing current system’s work activities. After gathering sufficient information, he will perform feasibility study to examine the acceptance of the new system. This will include few factor such as current technology available, user’s operating skills and customer’s budget. David also makes decision together with other team member in determine new system specification. The team member will list out any hardware and software needed in the new system. Based on gathered information, David will perform the cost benefit analysis. He will list out what benefits will the new system bring, and the cost of implementing new system. David has to prepare proposal for present our new system concept to customer. At the system implementing and evaluation stages, David will conduct with other team member to evaluate the newly implemented system. Together, they will analyze the new system performance, user acceptance and customer satisfaction, and then produce a system review report.
2. Programmer
Our team programmer is Thomas. He has enough experience in this field. Master in some programming language makes him able to fulfill each project objective in most economic and creative ways. In this project, he will determine the specification of the new system along with other team member. As usual, he will select the best tools like pseudo code, flow chart and CASE tools to planning how to design the new system. Thomas also has to choose suitable programming language to construct the new system and meets document requirements. After selecting desired programming language, the entire team member will begin to code the new system. During system development phase, Thomas will document the pseudo code, flow chart, system-operating manual, and procedures in the system document. When the system is developed, Thomas will perform a system test to the new system along with database
15
administrator. They will test the new system with available test data and also live test data provided by the customer. The new system will not be implemented until it is 100% functional and free from any kind of errors. If an error is occurred, Thomas will revise the new system according to the detected error. Thomas will play his role when the system is implemented. First, he will implement the system with other team member. If training is conducted, he will responsible for training the user based on the system-operating manual. While the system is fully operated at customer site, Thomas and other team member will conduct a system review on the implemented system.
3. Database Designer/Administrator Our team’s Database Designer/Administrator is Keith. He has adequate education
and experience in this field. In this project, Keith will work with other team member to determine system specification. Then, he will plan the database with the aid of database development tools such as data flow diagram, data dictionary and decision tree. With the aid of those tools, he will decide the how many database is needed, relationship between each database, data integrity control etc. Keith needs to choose suitable database programming language to use in this project. Then, he will construct the database with the selected language. Beside that, he will join other team member to codes the system. While the system development in progress, Keith will help Thomas to prepare the system document. He needs to make the database documentation which recording the database structure, coding, database maintaining procedure. When the system is completed, he will join other team member to perform system test to the new system. At the system implementing and evaluation phase, Keith will review the new system with other team member.
16
IX. Cost Benefit Analysis
Cost Type Investment Cost
(�ew System)SGD$
Investment Cost
(Old System)SGD$
Cost for Analysis 2000 1500
Requirement
Determination
System Design 3000 0
System Development 4000 0
System Testing 2000 0
Implementation Costs
Cost for Installing new
system 2000 2000
File Conversion 500 1500
Removing Current
System 0 0
System Training 500 500
Operating Cost
Cost for Maintaining 2000 2000
Technical Support 1500 1000
TOTAL COST 17500 8500
17
X. Expected Benefits of the New System (Intangible)
Benefits Costs(SGD$)
Increase the efficiency of information
process by using computer bas system 5000
Time Efficiency 2000
Improve the decision making 4000
18
Annual Return
System First year Second year Third year Fourth year Fifth year Total Return
Old system 1800 2100 2400 2500 2700 11500
New system 3500 4000 4700 5500 6200 23900
Cost of Project
Annual Cash Inflow
= Payback Period
Payback period for old system :
Cost of Project = 8500
Annual Cash Inflow = Total Return/5
= 11500/5
= 2300
Payback Period = 8500/2300
= 3.69 years
Because the company does not use any system in the old system so the payback period
for old system is 0 year.
Payback period for new system :
Cost of Project = 17500
Annual Cash Inflow = Total Return/5
= 23900/5
= 4780
Payback Period = 17500/4780
= 3.66 years
19
XI. Return on Investment (ROI)
ROI = [Total Benefit-Total Cost] / Total Cost
Old System:
ROI = [11500-8500] / 8500
= 35%
New System:
ROI = [23900-17500] / 17500
= 36.57%
20
XII. Hardware specification The minimum hardware specification to operate this system is:
1. Intel Pentium IV processor or better 2. Minimum 512 Mb RAM 3. Color Monitor 4. Keyboard 5. Mouse with scroll button 6. 160 GB hard disk 7. DSL Internet connection 8. Laser Printer or Dot Matrix Printer For the web server itself, we will host the website on another commercial web server, so we don’t need to buy the expensive web server computer for the company.
XIII. Software Requirements � Development Software
The software that is used to develop this new system: 1. Notepad ++ 2. PHP editor 3. PHP (Personal Home Page) 4. phpMyAdmin 5. FileZilla 6. Apache HTTP server 7. MySQL 8. Adobe Dreamweaver 9. Adobe Photoshop 10. Core FTP
� Operational Software
The minimum requirement of the software to operate the system: 1. Windows XP or Windows Vista 2. Internet Browser (Mozilla Firefox v.2 or Internet Explorer 7)
21
XIV. Gantt Chart
XV. Conclusion In Conclusion, we can conclude that the Clover Company needs to solve the problems and limitations in its business that is caused by using the current system. Developing a new system is the answer to eliminate all the problems and limitations of the current system. The new system will be an online based system with PHP and HTML as the front end, and a mySQL database as the back-end. The new system will be able to increase the company’s business productivity, save money, and attract new customers. So, the new system will play a crucial part for the company when it is implemented.
22
TABLE OF CO�TE�T
I. FACT FI�DI�G.................................................................................................. 25 I.A. Interview ........................................................................................................... 25 I.B. Questionnaire ................................................................................................... 38
II. �ARRATIVE................................................................................................... 40 1. System’s narrative ................................................................................................. 40 2. Hardware Requirements........................................................................................ 42 3. Software Requirements ......................................................................................... 42
III. PROCESS FLOW ........................................................................................... 43 1. Proposed System Context Diagram ............................................................... 43 2. Proposed System 1
st level Data Flow Diagram ............................................. 44
3. 2nd
level Data Flow Diagram (1.0 Receive Order) ........................................ 45 4. 2
nd level Data Flow Diagram (2.0 Sales Process) .......................................... 45
4. 2nd
level Data Flow Diagram (2.0 Sales Process) .......................................... 46 5. 2
nd level Data Flow Diagram (3.0 Update) .................................................... 47
6. 2nd level Data Flow Diagram (4.0 Report)......................................................... 47
6. 2nd level Data Flow Diagram (4.0 Report)......................................................... 48
IV. ILLUSTRATIVE SUPPORTIVE ....................................................................... 48 IV. ILLUSTRATIVE SUPPORTIVE ....................................................................... 49 V. PROBLEMS & LIMITATIO�S.......................................................................... 51 VI. SCOPE & CO�STRAI�TS ........................................................................... 52
a. Project Scope ................................................................................................... 52 b. Project Constraints ......................................................................................... 52
DOCUME�TATIO� DESIG�...................................................................................... 54 I. Description Of �ew System .................................................................................... 54
I. a. �arrative........................................................................................................... 54 I. b. Illustration Supporting �arrative.................................................................. 56 I. c. Process Flows.................................................................................................... 57
II. Detailed Design ....................................................................................................... 63 II. a. Entity Relationship Diagram ........................................................................ 63 II. c. Architectural Design ...................................................................................... 67 II. d. Procedural Design .......................................................................................... 68 II. d. Procedural Design .......................................................................................... 69 II. e. Interface Design .............................................................................................. 79
III. Hardware and Software Selection....................................................................... 99 III. a. Hardware specification ................................................................................... 99 III. b. Software Requirements................................................................................ 99
4. DEVELOPME�T A�D IMPLEME�TATIO�..................................................... 100 4.1 Software Development Testing .......................................................................... 100
Justification of testing technique ......................................................................... 100 4.2 Implementation: Conversion and Training Plan ............................................. 154 4.3 Implementation : User Guide............................................................................. 157
4.3.1 Installation and Running the System. ........................................................ 157 4.3.2 Operating Guide ........................................................................................... 159
4.5 Critical Appraisal: Individual............................................................................ 173
23
Critical Appraisal by: David Irawan Adhiguna 018800004337........................ 173 Critical Appraisal by: Keith �ishan Fernandez 018800004402........................ 174 Critical appraisal by Thomas Setiabudi (018800004137) .................................. 175
5. Program Listing (Source Code) ............................................................................... 176
24
EXECUTIVE SUMMARY
We create this documentation is that we can provide the information about the system that we have created, which is Clover Event Organizer. This project is created by a team that is consist of : David Irawan Adhiguna (018800004337) Keith Nishan Fernandez (018800004402) Thomas Setiabudhi (018800004137) We need 8 months to finish this project which means two terms. We do all the coding and documentation and we do a lot of research and trial to do this project. Finally after all the consideration which programming language that we want to do the project with, we choose PHP.net and MySQL. After we formed the team, we make a meeting to discuss about the project. But our meeting is not organized like twice in a week or something like that. We arrange our meeting if something is very important that we need to discuss or if we want to split the work into the team. On the first term, our team has already finished until the Analysis Documentation and the second term we start with doing the Design Documentation and then the coding. One of our member often sick so we have to somehow manage our work so that it will not postponed too long because it will affect the project time. This is online-based system so that all people can access it from anywhere as long as there is internet connection there. That is one of advantage by using the online-based system. That is the reason why we choose the online-based system which is to make wider relation. There are others benefit that the organization can get from this new online-based system such as benefit that we do not have to do manually task like: add record, search record, manage record, etc. Although this documentation already has the user guide book to guide the user about this new system, we suggest you to let us give training about how to use the new system because it will be more effective. For user that want to access the website, they can go to : Davidkeiththomas.freevar.com In that website, they can see how the website look like and what function that the website has.
25
DOCUME�TATIO� A�ALYSIS
I. FACT FI�DI�G
The purpose of performing fact finding activities in this project is to get a better understanding of the current system’s problem and limitation and also what is expected from the new system.
Our fact finding activity will involve the staffs of the Clover Company which is the event organizer company. There are two kinds of fact finding technique that we perform here, they are interview and questionnaire. The interview will be conducted to find an in depth information from some staff of the company, while the questionnaire will be given to all the staff of the company in order to get general information from all the company’s staffs.
I.A. Interview
Interview is the first fact finding method that we perform. There are nine staffs from three departments that we interviewed, 3 staffs from each department. The three departments are marketing, financial, and logistic department. Staffs from these three departments are interviewed because these departments will get the biggest impact when the new system is implemented in the future. I.A.i. Interview for Marketing Department The questions that we will ask to staff from marketing department are: a) Is there anything you like to feedback about the system here? b) What are the problems for a customer to place an order? c) What do you think about the company’s advertisement/publication? d) What you like to suggest for the company’s new system? The staffs that interviewed are: a) Ujang b) Andi c) Aneng
1) Interview with Ujang
2) Interview with Andi
3) Interview with Aneng
26
I.A.ii. Interview for Financial Department The questions that we will ask to staff from marketing department are: a) Is there anything you like to feedback about the system here? b) What do you think about the internal communication in the company? c) What are your difficulties when preparing a financial report? d) What will you suggest for the company’s new system? The staffs that interviewed are: a) Santoso b) Fendy c) Siti
1) Interview with Santoso � Interviewer : Good afternoon Mr. Santoso. We appreciate that you want to
spare your time for an interview session with us here. � Santoso : Yes, It’s not a big deal through. � Interviewer : Mr. Santoso, Is there anything you like to feedback about the
system here? � Santoso : Yes of course! Currently I feel that the system in this company is
a bit slow, especially to support us in the financial department. � Interviewer : Oh is that so, can you please explain it to us please?
� Santoso : Well… you know, this company is dealing with so many people,
the customers, the affiliate companies, and also the internal staffs. Sometimes it’s a bit tough to do our job as a financial department to collect information about financial data such as payment from customers or payment to the affiliate companies. We need to collect these information from various staffs in the company, and getting information from many people is not as easy as flipping your hand. Sometimes one of the staff is in MC and cannot be contacted, another time a staff that I need to ask to is not in the office as he/she needs to prepare the event place or to consult with an affiliate company. Things like that happen quite often here.
� Interviewer : Ok, I get your point. So you feel there is a communication
problem here. � Santoso : Yes, sort of.
� Interviewer : Mr. Santoso, what do you think about the internal communication
in the company?
27
� Santoso : Actually there is no serious problem of communication or relation problem between the staffs here. But, as some staffs especially the marketing and logistic department that needs to go out quite often, it’s not easy to meet them and ask them to update us with the most recent progress of a customer’s order.
� Interviewer : Oh, I see…
� Santoso : Yes, we need to get information such as the expenses from an
event preparation or recent payment made by a customer faster, so we can prepare the financial report faster too. But that is a bit hard to do now.
� Interviewer : Ok Mr. Santoso, so… beside the difficulties to collect
information, what are your difficulties when preparing a financial report?
� Santoso : let’s see… For me, I have quite used to this system’s way to
make a financial report using pen and papers since we have do it this way for years.
� Interview : So you are very convenient with this method is it?
� Santoso : Yes, you can say that. I never feels that this is bad, but when there
is a lot of orders and make us needs to make a lot of financial reports for the company, sometimes I feel like I wanted a better system to make the financial report production process become faster.
� Interviewer : Mr. Santoso, as you know that we developing a new system for
this company, so what will you suggest for the company’s new system?
� Santoso : Yes, I heard about it. Well, of course as I said earlier that we have
some problems here in the financial department. So, I hope that the new system will be consider to help our department too so we can have a better work performance. In my opinion, I think the new system should be able to facilitate the communication between staffs here in the company, so we from the financial department can get financial information faster.
� Interviewer : Thank you Mr. Santoso, that’s all that we want to ask from you.
28
2) Interview with Fendy
� Interviewer : Good afternoon Mr. Fendy. We appreciate that you want to spare your time for an interview session with us here.
� Fendy : No problem.
� Interviewer : Mr. Fendy, Is there anything you like to feedback about the system here?
� Fendy : Yes, I think that there are a lot of things that we need to improve from the company’s current system. Because I feel some problems from this system now.
� Interviewer : Can you please explain to us what the problems are?
� Fendy : Well, my job here in financial department sometimes is very demanding. The boss or the management sometimes suddenly ask us to write an financial report for this month, for last two months, or report about all the income that the company get within this year. With the current system, generation of these reports needs a quite long time because we do it manually with the pen and papers. While the deadline is usually very tight. For me, it is a bit stressful to do this job.
� Interviewer : Oh I see, it will be difficult in your side.
� Fendy : Of course it is.
� Interviewer : Mr. Fendy, What do you think about the internal communication in the company?
� Fendy : Oh this is another problem also. A lot of staffs need to work on the field, outside the office, to prepare for the events such as the event place, the foods, equipment, entertainment, etc. So it is a bit hard to keep updated information with them. Even they got hand phone with them, it’s a bit unpractical when you call a lot of people just to ask them to update with the newest information that is needed by our department.
� Interviewer : Ok, I get your point. Now let’s talk about your job as a staff in financial department, you need to prepare some financial reports for the company right?
� Fendy : Of course, a lot of it.
� Interviewer : What are your difficulties when preparing a financial report?
29
� Fendy : All right, preparing a lot of financial report is very hard to be done now as we make it in very slow speed. The use of pen and papers is very tiresome when there is a lot of financial report that needs to be done quickly. The slow information update from another department concerning financial information like income and expenses also adds the problem.
� Interviewer : I see… Mr. Fendy, as you know that we developing a new system for this company, so what will you suggest for the company’s new system?
� Fendy : Oh, yes that is very good news that I heard! I really hope that the new system will be able to help us here in the financial department. I suggest that the new system equipped with features that help the internal communication within the company and also help us to produce a financial report faster.
� Interviewer : We will use your suggestion as our consideration in designing the new system. Thank you Mr. Fendy, that’s all that we want to ask from you.
30
3) Interview with Siti
� Interviewer : Good afternoon Mrs. Siti. We appreciate that you want to spare your time for an interview session with us here.
� Siti : Yes, please feel free to ask.
� Interviewer : Thank you. First of all, we want to ask, is there anything you like
to feedback about the system here? � Siti : Do you mean the system for the financial department?
� Interviewer : Yes it is.
� Siti : Oh, I’m quite new here but I think that the current system here for
the financial department is horrible! � Interviewer : Ok, what do you mean by that?
� Siti : I tell you. The first time I started to work here, I was surprised
that I have to work in a financial department without any accounting software! So what we do is we collect all the information that we need then we start to make the financial report by writing it using pen on a piece of paper. And then the archive is kept in a big pile of file holders. It is very frustrating to look for a single piece of old financial report, and also we cannot keep too many archive due to limited office space, so we need to throw away old documents periodically. This is very bad for a company with so many customers like this; they really need to improve it.
� Interviewer : Ok we note down that. Now we would like to ask you, what do
you think about the internal communication in the company? � Siti : Well, actually I don’t really know about it, because the other two
staffs in the financial company do the information collecting and my job was only to write the reports based on the collected information.
� Interviewer : Oh I see… but do you think that there is any problem in this area?
� Siti : Personally I don’t feel any problem in the internal communication
between the staffs in this company because I don’t do much information gathering from the other staffs. But I think I remember that my colleague say that it is very slow for them to gather the information from another staffs in this company…yea that’s all I know.
31
� Interviewer : Yes, maybe we should get more information about this from the other two staffs in the financial department.
� Siti : Yes of course.
� Interviewer : Anyway, let’s move on to the next question. What are your
difficulties when preparing a financial report? � Siti : My difficulties when preparing a financial report is mainly with
the slow manual system. I really need software that helps us, the staffs in the financial department, to do our jobs. It’s very stressful when we have to make a lot of reports using just papers and pen. We need a better system.
� Interviewer : Yes Mrs. Siti, as you say that the company needs a better system,
we would like to ask you, what will you suggest for the company’s new system?
� Siti : Because I work in the financial department, then I would like to
suggest that the new company system will help us to do our jobs to make the financial reports faster. The feature to make the financial report also need to be synchronized with our needs as we need to make the reports for some different types of periods, It can be monthly report, quarterly, yearly, or a financial report just for one particular customer order. I think it will be really good if the company’s new system can do that.
� Interviewer : We will use your suggestion as our consideration in designing the
new system. Thank you Mrs. Siti, that’s all that we want to ask from you.
32
I.A.iii. Interview for Logistic Department The questions that we will ask to staff from marketing department are: a) Is there anything you like to feedback about the system here? b) What are the problems when you communicate with the affiliated companies? c) What do you think about the company’s working procedure? d) What is your suggestion for company’s new system? The staffs that interviewed are: a) Iya b) Ayi c) Ajeb
1) Interview with Iya
� Interviewer : Good morning Mr. Iya…How your day today? Thank you for your time here..
� Mr. Iya : Morning too…Today is great…Sure…
� Interviewer : That’s good to hear…Ok now let’s start it…First of all I want to ask about what do you think of the current system?
� Mr. Iya : I am not quite satisfied with current system because I think it’s not effective enough to do it.
� Interviewer : Ok.. Why do you think it’s not effective?
� Mr. Iya : Because when there is a customer that wants to create a party, they tell us about what they need and then we have to contact our affiliate company that can provide what we need. We have to contact them by phone or email and sometimes these two ways got delay to get reply. That is why I say that this system ineffective.
� Interviewer : I see…so can you tell me about the detail the communication between you and the affiliated company?
� Mr. Iya : Ok sure… if we get an order from customer, we immediately contact the affiliated company to ask about the availability then we will wait for the reply from the affiliated company. But the problem is that we have to wait for the reply. Sometimes the affiliated company is not reply to us immediately because they are busy with other things.
33
� Interviewer : I see…I will write down that…And what do you think about the company’s working procedure?
� Mr. Iya : There are several people in this department so we have to work together to do the task. Actually we often get some trouble when we have to contact the other person. That’s pretty annoying for me.
� Interviewer : I’m sure it is…The last question is what will you suggest for the new system?
� Mr. Iya : I think it will be great if there is a machine or something that can help us with the communication and make it more effective.
� Interviewer : Ok then…That’s all for the interview…Thank you for your time and have a nice day!
� Mr. Iya : Thank’s bro… Have a nice day too…
34
2) Interview with Ayi
� Interviewer : Good afternoon Mrs. Ayi…How are you today? Thank you for your time here…
� Mrs. Ayi : Morning…Fine…
� Interviewer : Shall we start our interview?
� Mrs. Ayi : Sure. Go ahead.
� Interviewer : What do you think about the current system in the company?
� Mrs. Ayi : I will tell the truth here…The system very annoying…
� Interviewer : Why do you think like that?
� Mrs. Ayi : Ok I give you a picture…If the order came, we have to contact the affiliated company, and my duty is to come to the affiliated company itself not like other people in this department who just give a call or send an email to the affiliated company. It is very wasting our time and energy.
� Interviewer : I see…that is very tiring and pretty hard for you…
� Mrs. Ayi : Yeah…It is…
� Interviewer : Can you describe the detail about the communication with the affiliated company?
� Mrs. Ayi : I don’t know about the other people who work in this department but for me, it is very annoying when you have to go to the affiliated company but when you reached there, they told me to come back some few days later because they closed for some reason. Then I have to go back to that company again few days later.
� Interviewer : I see…that way will cost a lot of money…because we have to go back the same twice just for one reason…Am I correct?
� Mrs. Ayi : Yes…you got the point…
� Interviewer : What do you think about the company procedure?
� Mrs. Ayi : I think it is fine but you know…some people often do mistakes and they give a wrong information to me and when there is an update about something, they late to inform me.
35
� Interviewer : Ok…That one is very troublesome…if there will be new system to replace the current system, what will you suggest?
� Mrs.Ayi : Ohhh…that would be nice…I think I will recommend a system that can do the update more quickly and I can check the update directly.
� Interviewer : I note down that…thank you for the interview…have a nice day Mrs. Ayi!
� Mrs. Ayi : You are welcome…Have a nice day too…
36
3) Interview with Ajeb
� Interviewer : Good Afternoon Mr. Ajeb…How are you today? Thank you for your time here…
� Mr. Ajeb : Good morning too…I am fine…No problem..
� Interviewer : Ok let’s start the interview… � Mr. Ajeb : Ok sure.
� Interviewer : Let’s start with your opinion about the current system? � Mr. Ajeb : In my opinion, the current system is a bit not satisfied because
we have a problem when we have to contact the affiliated company.
� Interviewer : Hmm…okay…can you explain about the problem with the
communication with the affiliated company? � Mr. Ajeb : Hmm…like this… if you want to contact the affiliated company
there are two ways to do it, by phone or email from the company and go to the affiliated company itself. Luckily, I do the first one that is give a call or send an email to the affiliated company. The affiliated company sometimes late to give a reply to us, it is still not a problem if the deadline is still long enough but the problem is when the time almost reach a point that is the affiliated company must give reply now or else the project will be delayed. When that time comes, we got stressed because after that we have to do everything rushed.
� Interviewer : Ok…I got your point…What do you think about the company’s
working procedure? � Mr. Ajeb : Hmm…I’m not so sure about it but I will tell you what I
know…The procedure is simple that is to give the order to the affiliated company then they will give us their availability then we can confirm it with the customer. But sometimes the affiliated company already gives an answer to the one of our person in this department but that person is forgot to tell the other staff that the affiliated company already gives an answer, so the other staff will ask a reply from the affiliated company. This is one of example for wasting our energy. So the company’s working procedure is not effective for me.
� Interviewer : I take a note from that…What will you suggest if there is a new
system to replace the current system?
37
� Mr. Ajeb : Hmm…Maybe I will suggest a system that can give us an
effective way to communicate and update the information more quickly so we don’t have to waste our time and energy. That is all.
� Interviewer : Thank you for your suggestion and time Mr. Ajeb…Have a nice
day!!
� Mr. Ajeb : Sure…Have a nice day too..
38
I.B. Questionnaire
The questionnaire that we spread to all the Clover Company’s staffs is:
Clover Company �ew System Project
QUESTIONNAIRE Please Answer these questions by ticking in the appropriate boxes 1. Gender : Male Female 2. Which department are you in?
Marketing Financial Logistic Management 3. How long have you work in this company? 0 – 2 years 5 years 2 – 4 years > 5 years
4. Are you satisfied with the current company system? Very satisfied Not Satisfied Satisfied Very unsatisfied
5. Do you think that there is a lot of problem in the current system that limits your job
productivity? Yes No problem at all I’m not sure 6. If you answered “yes” for question 5, how serious is the current system’s problem? Very serious Common system problems Serious Only minor problems
7. What do you think about the company’s service to the customer in terms of receiving the
orders? Very good inadequate, placing order should be easier Good, but need to be improved 8. Currently the customer need to come personally to make payment, what do you think
about it? It is good enough I don’t know Should be changed and improved 9. What is your opinion about the current company’s advertisement? It’s enough Need to be improved with new advertisement media 10. Is the current system helpful in facilitating communication or coordination among all
the staffs in the company? Very helpful Not so helpful Helpful Not helpful at all
11. How is the company’s coordination with it’s affiliate companies? Nice coordination between companies Not good enough, need improvement Good, but sometimes got problems Very bad, the system doesn’t support it 12. If there is a request for a report, how fast is it can be made? Fast and satisfying slow, but still acceptable Fast enough very slow 13. Do you think that the company system should be upgraded? Not right now Yes, as soon as possible No I’m not sure about it
39
14. If there is a new system, which aspect of the company that need to be emphasized? Financial Department Logistic Department Marketing Department Others, please specify________________ 15. How do you describe the need of new company system in a 1 to 5 scale (1 unimportant, 5
important)? 1 3 2 4 5 16. Which Type Of �ew System That You Prefer? Offline System Online System
For Each Department Please answer according to your department.
This part ask about the level of satisfaction on current system’s services/procedure (1 lowest, 5 highest)
Marketing Department System Service/Procedure 1 2 3 4 5 Comment
1. Receive Order from customer ______________________ 2. Customer payment method ______________________ 3. Company Advertising ______________________ 4. Communication with customer ______________________
Financial Department System Service/Procedure 1 2 3 4 5 Comment
1. Collect financial information from staffs ______________________ 2. Manage customer’s payment ______________________ 3. Produce financial report ______________________ 4. Archiving old financial history ______________________
Logistic Department System Service/Procedure 1 2 3 4 5 Comment
1. Communicate with affiliate companies ______________________ 2. Synchronize schedule ______________________ 3. Confirm orders with affiliate company ______________________ 4. Report changes to order specification ______________________
Management System Service/Procedure 1 2 3 4 5 Comment
1. Time needed to make report ______________________ 2. Availability of old data ______________________ 3. Customer data management ______________________ 4. Affiliate company data management ______________________
40
II. �ARRATIVE
1. System’s narrative
Clover Company’s Online System
This online system will be able to facilitate the company’s customer to place their order online. So virtually the customer will be able to access the system anywhere as long as the customer has an internet access. Before a customer can place their order, he/she has to register first by filling the registration form. After the customer submits the registration form, the system will send an e-mail to the customer’s e-mail to verify the registration. After the registration is verified, now the customer can place their order. While filling the order form, the customer will get many options to customize his/her order specification, such as options for catering company, event documentation, event place, etc. The customer will also able to make online payment for their order. All the data and information inputted in this system will be stored in a database. Data about the customer registration, order data, online payment data, company’s financial data, and also data about the affiliate companies is stored in the system’s database. Besides storing data, the database will also used to generate various reports according to the company’s need. Another system’s features for the customer are order tracking feature and customer feedback feature. Firstly, the order tracking feature allows the customer to get up to date information about the progress of his/her order. The customer will also be able to make changes to his/her order specification or get informed by the company if the order’s specification must be changed. Secondly, the customer can give a feedback to the company through the system if the customer is not satisfied by the company’s service or system or if the customer sees a room for improvement. This customer feedback will be reviewed by the company and be considered as suggestion to improve the company’s system or service. Besides providing services for the company’s customer, the online system will also helps the company’s relation with its affiliate companies such as food Supplier Company, logistic company, event documenter company, printing company, etc. The online system will provide feature for a representative of each affiliate company to login into the system. After the affiliate company’s representative has login to the system, now he/she can use the system’s features for the affiliate company. There are some system feature for the affiliate company, they are: User Profile Module, Booking Status Module, and Feedback Module. The User Profile Module is used to display the detail information about the affiliate company, the user can edit or update some of this information if there is any changes in the affiliate company’s profile like contact number or address. The last part of the system is the administrator area, this part is used by the staffs of the Clover Company and no unauthorized person can access this area as this area is secured using password and the login page is not appear in the website’s main page. So, the staff of the company will need to open the login page, enter the user id and password, and then login to the system. After the staff login in the system, then he/she can use the
41
features of the system that are: order management module, customer management module, affiliate company management module, company schedule and reminder, report generator, and finance report module.
Using the order management module provides ability for the Clover Company’s
staff to manage all the orders from the customers. The staff can see each order detail and update the order preparation progress when it’s necessary. The Clover Company can tell the customer if there is any change to the order specification through this module. Customer management module will help the company to manage its customer data. The availability schedule from each affiliate company can be checked using affiliate company management module. The Clover Company also can check which companies available are for a certain date. Additionally, the Clover Company can check the status of an affiliate company about how many order that request its service, whether all the request have been confirmed, etc. The Clover Company also can send e-mail to any affiliate company if there is something urgent to ask. Moreover, the company can see its schedule and get reminded for upcoming events by the system too. While, for report generation there are report generator module and finance report module. Report generator module is used generate many kind of reports from the system database. It can produce reports like customer data report, affiliate companies report, report about the orders received in a certain period, etc. These reports can be used for an onscreen viewing only or printed to be used as meeting materials. And finally, The Company’s finance department can use finance report module to generate the company’s financial report. It has many categories of what period of time should the report show and also report for general condition or report on per case basis (e.g. report for each order).
42
2. Hardware Requirements The minimum hardware specification to operate this system is:
9. Intel Pentium IV processor or better 10. Minimum 512 Mb RAM 11. Color Monitor 12. Keyboard 13. Mouse with scroll button 14. 160 GB hard disk 15. DSL Internet connection 16. Laser Printer or Dot Matrix Printer
For the web server itself, we will host the website on another commercial web server, so we don’t need to buy the expensive web server computer for the company. 3. Software Requirements
� Development Software The software that is used to develop this new system: 1. Notepad ++ 2. PHP editor 3. PHP (Personal Home Page) 4. phpMyAdmin 5. FileZilla 6. Apache HTTP server 7. MySQL 8. Adobe Dreamweaver 9. Adobe Photoshop 10. Core FTP
� Operational Software
The minimum requirement of the software to operate the system: 1. Windows XP or Windows Vista 2. Internet Browser (Mozilla Firefox v.2 or Internet Explorer 7)
43
III. PROCESS FLOW
The DFD (Data Flow Diagram) of the system is as follows:
1. Proposed System Context Diagram
Affiliate Company
Financial
Management
Company’s
System
Order Confirmation
Payment
Customer
Order
Receipt
Order
Confirmation
Financial Data
Request Report
Adjust Finance
data
Finance Report
Updated Finance
Data
Request
Report
Management Report
Adjustment
Updated management
Data
44
2. Proposed System 1st level Data Flow Diagram
Management
Financial
Affiliate Company
System Data Center
Customer 1.0
Receive
Order
2.0 Sales
Process
4.0
Report
Order
Confirmation
Order
Confirmation
Order
Data
Updated
Data
Payment
Receipt
Order data
Update Order data
Adjust Finance Data
Adjustment
Updated Finance
Data
Updated Management
Data
Financial data
Update
Request Report Request Report
Management Report
Finance
Report Detailed Data
3.0
Update
45
3. 2nd
level Data Flow Diagram (1.0 Receive Order)
4.
Affiliate Company
Order
Confirmation
1.2 Confirm
Availability
Availability detail
Update schedule
Customer detail
New customer detail
Order Confirmation
1.1 Confirm Customer
Detail
Order
Customer
Order
confirmation Customer Detail
Schedule
Order Data
46
2nd
level Data Flow Diagram (2.0 Sales Process)
Customer
2.2 Prepare
Documentation Order Data
Sales
Payment Receipt
Order Detail
Update Order Detail
Update Sales Data
2.1 Process
Payment
Order Detail Update Payment
Status
47
Requested Data
Requested Data
Requested Data
Adjustment
5. 2nd
level Data Flow Diagram (3.0 Update)
3.2
Update Data
Updated Management Data
Updated Data
Updated Data
New Data
Schedule
Updated Data
3.1
Receive Data Order Data
Financial Management Schedule
Adjustment
Updated Finance Data
Affiliate Company Updated Data
Sales
48
Management Report Finance Report
6. 2nd level Data Flow Diagram (4.0 Report)
Financial Management
4.2 Prepare
Report
Relevant information
Request
report
4.1 Collect &
Sort Information
Order detail Sales detail
Schedule Detail
Schedule
Sales Order Data
Request
report
49
IV. ILLUSTRATIVE SUPPORTIVE
INPUT OUTPUT PROCESS CONTROL CONTENT � Registration
Form � Order � Payment � Schedule � Order Confirmation
� Financial Data � Report request (financial)
� Finance data adjustment
� Management data adjustment
� Report request (management)
� Receipt � Order Confirmation
� Order � Finance report � Updated finance data
� Updated management data
� Management report
� Register new customer
� Issue order confirmation
� Receive payment
� Generate payment receipt
� Select payment method
� Check Payment Method
� Check availability schedule
� Issue order to affiliate company
� Receive confirmation
� Receive financial data
� Receive financial report request
� Update financial data
� Generate financial report
� Receive management report request
� Generate management report
� Receive management data adjustment
� Update management data
� Validate customer registration
� Log in, user ID and password
� Confirm schedule
� Payment reminder
� Validate order detail
� Validate financial data
� Validate finance report
� Validate management data adjustment
VOLUME � About 3 orders per month
� Same volume as customer
50
� About 10 payments per month
� About 10 customer registration per month
registration � Same volume as payment
TIMING � As and when customer register
� As and when customer make order and payment
� As soon as possible, timing is crucial to customer registration, order, and payment
� Generate monthly financial report
� Generate monthly management report
� Real time processing
� Batch Processing
FREQUENCY � Daily – customer registration, order, and payment
� Monthly – Report Request
� Daily – customer order confirmation and receipt
� Monthly – financial report and management report
� Performed on demand
EQUIPMENT � Registration form
� Order form � Phones � E-mail
� E-mail � Phone � Printed Hardcopies
� PCs � Printers
� Form with verification code
LOCATION � Clover company’s website
� Clover company’s website
� Respective areas (Customer, affiliate, and administrator area)
� Respective areas (Customer, affiliate, and administrator area)
PEOPLE � Customers � Finance Staff � Logistic Staff � Management � Affiliate company’s staffs
� Customers � Finance Staff � Logistic Staff � Management � Affiliate company’s staffs
� Customers � Finance Staff � Logistic Staff � Management � Affiliate company’s staffs
� Department managers
� System administrator
51
V. PROBLEMS & LIMITATIO�S
There are some problems faced by the Clover Company with their current system:
� Problem to Get order The customer can only place their order in office hours, because the customer needs to manually call the company to speak with a staff.
� Ineffective communication Because the EO team consists of so many persons who have different tasks, the head will need to get report from each person by calling them one by one. And if there is any changes of requirement from the customer (e.g. changes of place), the head will need to call the person who is in charge of it.
� Problem with payment tracking The payment is made and written manually, so it will take a bit long time if the company needs information about it and also the customer needs to meet the staff personally in order to make the payment.
� Inadequate financial report The financial report is on per case basis. So the company doesn’t have detailed information of all the transaction that has been made.
� Difficult to evaluate all the company’s activities The current system will discard all the information about the previous events and order, so at the end of working year it is difficult to analyze all these information in order to improve the company’s productivity.
� Unsynchronized information with affiliation companies The Clover Company affiliated with several other companies such as food supplier, printing company, decorations, etc. Every time the Clover Company gets an order, it needs to contact each of these companies asking for their availability for a certain date. This is ineffective because they have to do it for each order.
� Lack of publication and advertising The current system doesn’t help the Clover Company to advertise its business and to expand their business range. Because they just depend on the events like wedding exhibition and also mouth to mouth publication.
52
VI. SCOPE & CO�STRAI�TS
Here we will describe the scope and constraints of this project.
a. Project Scope
This project will develop an online system to help Clover Company as an event organizer company, to make their working procedure more effective in certain areas. These areas include: 1) Order management 2) Customer management 3) Receive online payment 4) Schedule synchronization with affiliate companies 5) Generate reports for financial and management So, this system won’t help the company to do its technical works on the field, such as surveying the event place, choosing the right persons to do certain things, etc.
b. Project Constraints
There are some constraints for this system: i) Time Constraint
There are two types of time constraints, present and future. Present time constraints are requirement that must be met as soon as the system is developed or implemented, while future time constraints are the requirements that will be necessary at some time in the future. The present constraint of the system is that the system must be able to take over the old manual functions from the current system. Example: manage orders, manage customers, receive payments, and synchronize schedule with the affiliate companies. These constraints must be met as soon as the system is implemented because these requirements are crucial for the company’s daily operation. On the other hand, the future constraints of the system are to make synchronization between the main office with the branch offices, which is not important now because the company haven’t had any branch yet.
ii) Internal & External Constraint
Most of the system’s constraints come from internal company’s requirement because the company’s staff demands a better and more efficient system to help them to do their works and also from the management in order to make the company performs better. The external constraint will affect just few things about the online payment feature that implemented in the system. Because the security matter of the online payment such as to protect the privacy of the customer and to secure the transaction, the system needs to follow standard requirement from outside the company such as the bank requirement and also how to implement secured site for payment using PayPal, e-NETS, Visa, etc.
53
iii) Mandatory Constraint
The mandatory constraints of the system are constraints that are absolutely essential to be met because if these requirements is failed to be satisfied, then the company’s operation will be suspended. Examples of these mandatory constraints are:
� Order Management � Customer Management � Synchronization with affiliate companies
iv) Desirable Constraint
Desirable constraints are constraints that are less important than the mandatory constraint. The system still able to do its main purpose for the company without these constraints, but if these constraints are met, the system will be better. Examples of these desirable constraints are:
� Online payment � Generate report for Finance and Management department
54
DOCUME�TATIO� DESIG�
I. Description Of �ew System
I. a. �arrative
Clover Company’s Online System
This online system will be able to facilitate the company’s customer to place their order online. So virtually the customer will be able to access the system anywhere as long as the customer has an internet access. Before a customer can place their order, he/she has to register first by filling the registration form. After the customer submits the registration form, the system will send an e-mail to the customer’s e-mail to verify the registration. After the registration is verified, now the customer can place their order. While filling the order form, the customer will get many options to customize his/her order specification, such as options for catering company, event documentation, event place, etc. The customer will also able to make online payment for their order. All the data and information inputted in this system will be stored in a database. Data about the customer registration, order data, online payment data, company’s financial data, and also data about the affiliate companies is stored in the system’s database. Besides storing data, the database will also used to generate various reports according to the company’s need. Another system’s features for the customer are order tracking feature and customer feedback feature. Firstly, the order tracking feature allows the customer to get up to date information about the progress of his/her order. The customer will also be able to make changes to his/her order specification or get informed by the company if the order’s specification must be changed. Secondly, the customer can give a feedback to the company through the system if the customer is not satisfied by the company’s service or system or if the customer sees a room for improvement. This customer feedback will be reviewed by the company and be considered as suggestion to improve the company’s system or service. Besides providing services for the company’s customer, the online system will also helps the company’s relation with its affiliate companies such as food Supplier Company, logistic company, event documenter company, printing company, etc. The online system will provide feature for a representative of each affiliate company to login into the system. After the affiliate company’s representative has login to the system, now he/she can use the system’s features for the affiliate company. There are some system feature for the affiliate company, they are: User Profile Module, Booking Status Module, and Feedback Module. The User Profile Module is used to display the detail information about the affiliate company, the user can edit or update some of this information if there is any changes in the affiliate company’s profile like contact number or address.
55
The last part of the system is the administrator area, this part is used by the staffs of the Clover Company and no unauthorized person can access this area as this area is secured using password and the login page is not appear in the website’s main page. So, the staff of the company will need to open the login page, enter the user id and password, and then login to the system. After the staff login in the system, then he/she can use the features of the system that are: order management module, customer management module, affiliate company management module, company schedule and reminder, report generator, and finance report module.
Using the order management module provides ability for the Clover Company’s staff
to manage all the orders from the customers. The staff can see each order detail and update the order preparation progress when it’s necessary. The Clover Company can tell the customer if there is any change to the order specification through this module. Customer management module will help the company to manage its customer data. The availability schedule from each affiliate company can be checked using affiliate company management module. The Clover Company also can check which companies available are for a certain date. Additionally, the Clover Company can check the status of an affiliate company about how many order that request its service, whether all the request have been confirmed, etc. The Clover Company also can send e-mail to any affiliate company if there is something urgent to ask. Moreover, the company can see its schedule and get reminded for upcoming events by the system too. While, for report generation there are report generator module and finance report module. Report generator module is used generate many kind of reports from the system database. It can produce reports like customer data report, affiliate companies report, report about the orders received in a certain period, etc. These reports can be used for an onscreen viewing only or printed to be used as meeting materials. And finally, The Company’s finance department can use finance report module to generate the company’s financial report. It has many categories of what period of time should the report show and also report for general condition or report on per case basis (e.g. report for each order).
56
I. b. Illustration Supporting �arrative
I. b. 1. Company’s Organization Chart
Top Management
Marketing Financial Logistic
Director
Market Research & Analyst
Advertising Supervisor
Treasurer
Accountant Logistic
Coordinator
Agent
Assistant
57
I. c. Process Flows
I. c. 1. Proposed System Context Diagram
Affiliate Company
Financial
Management
Company’s
System
Order Confirmation
Payment
Customer
Order
Receipt
Order
Confirmation
Schedule
Financial Data
Request Report
Adjust Finance
data
Finance Report
Updated Finance
Data
Request
Report
Management Report
Adjustment
Updated management
Data
58
I. c. 2. Proposed System 1st level Data Flow Diagram
Management
Financial
Affiliate Company
System Data Center
Customer 1.0
Receive
Order
2.0 Sales
Process
4.0
Report
Order
Confirmation
Order
Confirmation
Order
Data
Updated
Data
Schedule
Payment
Receipt
Order data
Update Order data
Adjust Finance Data
Adjustment
Updated Finance
Data
Updated Management
Data
Financial data
Update
Request Report Request Report
Management Report
Finance
Report Detailed Data
3.0
Update
59
I. c.3. 2nd
level Data Flow Diagram (1.0 Receive Order)
3.0
Update
Update schedule
Schedule Affiliate Company
Order
Confirmation
1.2 Confirm
Availability
Availability detail
Update schedule
Customer detail
New customer detail
Order Confirmation
1.1 Confirm Customer
Detail
Order
Customer
Order
confirmation Customer Detail
Schedule
Order Data
60
I. c. 4. 2nd
level Data Flow Diagram (2.0 Sales Process)
Customer
2.2 Prepare
Documentation Order Data
Sales
Payment Receipt
Order Detail
Update Order Detail
Update Sales Data
2.1 Process
Payment
Order Detail Update Payment
Status
61
Requested Data
Requested Data
Requested Data
Adjustment
I. c. 5. 2nd
level Data Flow Diagram (3.0 Update)
3.2
Update Data
Updated Management Data
Updated Data
Updated Data
New Data
Schedule
Updated Data
3.1
Receive Data Order Data
Financial Management Schedule
Adjustment
Updated Finance Data
Affiliate Company Updated Data
Sales
62
Management Report Finance Report
I. c. 6. 2nd
level Data Flow Diagram (4.0 Report)
Financial Management
4.2 Prepare
Report
Relevant information
Request
report
4.1 Collect &
Sort Information
Order detail Sales detail
Schedule Detail
Schedule
Sales Order Data
Request
report
63
II. Detailed Design
II. a. Entity Relationship Diagram
Entities:
a. Customer i. customer_id ii. name iii. gender iv. date_of_birth v. e-mail vi. phone vii. ic/passport number
viii. password
b. Affiliate i. affiliate_id ii. name iii. phone iv. e-mail v. password vi. service vii. address viii. description
Customer
Order Payment Event
Schedule_distribution Schedule
Affiliate Service
64
c. Order
i. order_id ii. customer_id iii. schedule_id iv. event v. event_date vi. event_time vii. additional_info viii. date ix. pay_mode x. pay_status
d. Schedule i. schedule_id ii. date
e. Payment
i. payment_id ii. order_id iii. date iv. amount v. remain
f. Event
i. Event ii. Description iii. Price iv. Venue v. Food vi. Documentation vii. Publication viii. Entertainment
g. Service i. service ii.service_desc h. Schedule_Distribution i. schedule_id ii. affiliate_id iii. order_id iv. confirmation v. note
65
b. Data Structure
a. Customer Detail information of the customer
Data Element Data Type Size Description Validation
customer_id Integer 5 Primary Key No duplicate
name Varchar 100 Customer name -
gender Varchar 1 Customer gender M/F
date_of_birth Date - Customer date of birth dd/mm/yyyy
e-mail Varchar 100 Customer e-mail e-mail format
IC/Passport no. Varchar 20 Customer IC/Passport -
Password Varchar 20 Customer Password -
Phone Varchar 10 Customer phone no. Number
b. Affiliate
Data Element Data Type Size Description Validation
affiliate_id Integer 5 Primary Key No duplicate
name Varchar 100 Affiliate name -
Phone Varchar 20 Affiliate phone no. Number
e-mail Varchar 100 Affiliate e-mail e-mail format
Password Varchar 20 Affiliate Password -
Service Varchar 100 Affiliate company’s service
-
Address Text - Affiliate address
Description Text - Affiliate description
c. Order
Data Element Data Type Size Description Validation
Order_id Integer 5 Primary Key No duplicate
Date Date - Order’s date dd/mm/yyyy
customer_id Integer 5 Customer’s id Valid id
Schedule_id Integer 5 Schedule’s id Valid id
Event Varchar 50 Event description -
Event_date Date - Event Date -
Event_time Time - Event time -
Additional_info Text - Additional info about event
-
Pay_mode Varchar 10 Customer payment mode
-
Pay_status Varchar 10 Customer payment status
-
d. Schedule
Data Element Data Type Size Description Validation
schedule_id Integer 5 Primary Key No duplicate
66
Date Date - Available date dd/mm/yyyy
e. Payment
Data Element Data Type Size Description Validation
payment_id Integer 5 Primary Key No duplicate
Order_id Integer 5 Payment type Valid id
date Date - Payment date dd/mm/yyyy
Amount Decimal 20 Amount of payment Numeric
remain Decimal 20 Customer’s id Valid id
f. Admin
Data Element Data Type Size Description Validation
admin_id Integer 5 Primary Key No duplicate
e-mail Varchar 100 Affiliate e-mail e-mail format
Password Varchar 100 Affiliate Password -
Name Varchar 100 Affiliate Name -
g. �ews
Data Element Data Type Size Description Validation
news_id Integer 5 Primary Key No duplicate
news title Varchar 100 News title -
News content Memo - News content -
Picture Varchar 100 News picture address -
news_date Date - Date of the news dd/mm/yyyy
News_time Time - Time of the news Hh/mm
News_days Varchar 100 Day of the news -
Counter Integer 5 Number the website visited
-
67
II. c. Architectural Design
Event Organizer System
Start Body End
News Login Register
Customer
Affiliates
Administrator
Order Status Payment Make Order Profile
Profile Order Status
Report Manage o
o
o o o
o
o o o
o o
o o o
o
*
68
Main Menu
Register News Login
Customer
Profile
Order Status
Payment
Make Order
Reports
Order Maintenance
Manage Customer/
Affiliate company
Manage News
Administrator Affiliates
Profile
Order Status
Check Order
Confirm
69
II. d. Procedural Design
II. d. 1. System Flowchart
Start
Display
Main Menu
Get
Choice
Display
News
News Login Register Exit
End A B
Yes Yes Yes Yes
No No No
70
A
Get Information
Display
Information
Display Main
Menu
Add to database
71
B
Display
login screen
Get
Choice
customer affiliate admin
Get
Id & password
Compare with
database
Correct
customer affiliate admin
C D E
Yes
Yes
Yes
Yes
No
Yes Yes Yes
No No
No No
72
C
Display
welcome screen
Get
Choice
payment Order
status
Make
order logout profile
Display
Main Menu C1 C2 C3 C4
No
Yes Yes Yes Yes Yes
No No No
73
C2
Display form
Get info
Update
Database
Display
Confirmation
C
C3
Display form
Get info
Update
Database
Display
Confirmation
C
C1
Display
profile data
Get choice
Change
Display form
Get data
C
Update database
No
C4
Display
profile data
Get choice
Change
Display form
Get data
C
Update database
No
74
D
Display
welcome screen
Get
Choice
Order
status logout profile
Display
Main Menu D1 D2
Yes Yes Yes
No No
75
D1
Display
profile data
Get choice
Change
Display form
Get data
D
Update database
No
No
D2
Display order status
Get choice
Confirm Get reason
Update
database
D
Yes
76
E
Display
welcome screen
Get
Choice
manage
news logout reports
Display
Main Menu E1 E2 E3 E4
No
Yes Yes Yes Yes Yes
No No No order
maintenance
manage
affiliate
customer &
77
E1
Display
Menu
Get report
type
Display
Report
Make report from database
E
E2
Display
order list
Get choice
Order E
Display
order menu
Get choice
Edit
Display
form
Get info
Update
database
E2
No
78
E3
Display
order list
Get choice
Order E
Display
order menu
Get choice
Edit
Display
form
Get info
Update
database
E3
No
E4
Display
news list
Get choice
Order E
Display
order menu
Get choice
Edit
Display
form
Get info
Update
database
E4
No
79
II. e. Interface Design
In this part, we will show rough design of the system’s interface. The system will be displayed to the user as web pages, so it will more or less have the typical design of a web page such as header and left panel with buttons or hyperlinks. The buttons and text that will be shown here is just the essential buttons and text in the system. The actual system will have decorative elements such as pictures, texts, and features.
II. e. 1. Common interface elements
Common interface elements are interface elements that will be shown in all the pages. There are three items fall on this category: header, left panel, and footer. Since these two items will be present in all the screens, so we will explain them separately here to reduce redundancy. II. e. 1. i. header
No. Item Type Description
1. Header image Picture Picture and company logo
2. Hyperlink 1 Hyperlink Go to respective user page
3. Text 1 Text Login status of user
4. Hyperlink 2 Hyperlink Will show “login” or “logout”
header
Text 1 Hyperlink 2
Header image
Hyperlink 1
80
II. e. 1. ii. left panel
No. Item Type Description
1. Hyperlink 1 Hyperlink Home
2. Hyperlink 2 Hyperlink News
3. Hyperlink 3 Hyperlink Login
4. Hyperlink 4 Hyperlink Register
5. Hyperlink 5 Hyperlink Party Packages
6. Hyperlink 6 Hyperlink Vendor
7. Hyperlink 7 Hyperlink About Us
8. Hyperlink 8 Hyperlink Contact us
II. e. 1. iii. footer
No. Item Type Description
1. Hyperlink 1 Hyperlink Home
2. Hyperlink 2 Hyperlink News
3. Hyperlink 3 Hyperlink Login
4. Hyperlink 4 Hyperlink Register
5. Hyperlink 5 Hyperlink About Us
6. Hyperlink 6 Hyperlink Contact us
7. Text 1 Text Copyright
footer
Text 1
Hyperlink 1 Hyperlink 2 Hyperlink 3 Hyperlink 4 Hyperlink 6 Hyperlink 5
Left panel
Hyperlink 1
Hyperlink 2
Hyperlink 3
Hyperlink 4
Hyperlink 5
Hyperlink 6
Hyperlink 7
Hyperlink 8
81
II. e. 2. Main Menu
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Content Text, pictures The content of main page, newest news, promotion, services, etc.
Header
Footer
Left
panel
content
82
II. e. 3. �ews
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1, 2, and 3 Text and Hyperlink News title and hyperlink
5. Text 4 Text Page indicator
6. Hyperlinks Hyperlink Page navigator
Header
Footer
Left
panel
Text 1
Text 2
Text 3
Text 4
hyperlinks
83
II. e. 4. Login
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1 Text Customer login (default)
5. Text 2 Text User id
6. Text 3 Text Password
7. Text box 1 Text input
8. Text box 2 Password input
9. Button Button Submit button
Header
Footer
Left
panel
Text 1
Text 2
Text 3
Text box 1
Text box 2
Button
84
II. e. 5. Customer
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Hyperlink 1 Hyperlink Profile
5. Hyperlink 2 Hyperlink Make Order
6. Hyperlink 3 Hyperlink Payment
7. Hyperlink 4 Hyperlink Order status
8. Hyperlink 5 Hyperlink Feedback
9. Hyperlink 6 Hyperlink User Guide
10. Hyperlink 7 Hyperlink Logout
Header
Footer
Left
panel
Hyperlink 1 Hyperlink 2
Hyperlink 3 Hyperlink 4
Hyperlink 7
Hyperlink 5 Hyperlink 6
85
II. e. 6. Profile
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Hyperlink 1 Hyperlink Edit
5. Hyperlink 2 Hyperlink Back
6. Profile Text Customer/affiliate company’s profile from database
Header
Footer
Left
panel
Hyperlink 1 Hyperlink 2
Profile
86
II. e. 7. Make order
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Order Form Text, text box,
radio button, check box, combo box
Form that customer fill to make new order.
5. Button Button Submit button for order form
6. Hyperlink 1 Hyperlink Back
Header
Footer
Left
panel
Button Hyperlink 1
Order form
87
II. e. 8. Payment
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Order information Text Order information
5. Button Button Button to do online payment via paypal
Header
Footer
Left
panel
Button Order information
88
II. e. 9. Order status (Customer)
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1, 2, and 3 Text and Hyperlink Order 1, 2, and 3 (if any)
7. Hyperlink Hyperlink Order Detail
Header
Footer
Left
panel
Text 1
Text 2
Text 3
Hyperlink
Hyperlink
Hyperlink
89
II. e. 10. Affiliate
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Hyperlink 1 Hyperlink Profile
5. Hyperlink 2 Hyperlink Order Status
6. Hyperlink 3 Hyperlink Feedback
7. Hyperlink 4 Hyperlink User Guide
8. Hyperlink 5 Hyperlink Logout
Header
Footer
Left
panel
Hyperlink 1 Hyperlink 2
Hyperlink 3 Hyperlink 4
Hyperlink 5
90
II. e. 12. Order status (Affiliate)
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1, 2, and 3 Text and Hyperlink Order 1, 2, and 3 (if any)
5. Hyperlink 1 Hyperlink Confirm
6. Hyperlink 2 Hyperlink Reject
Header
Footer
Left
panel
Text 1
Text 2
Text 3
Hyperlink 1 Hyperlink 2
Hyperlink 1 Hyperlink 2
Hyperlink 1 Hyperlink 2
91
II. e. 13. Administrator
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Hyperlink 1 Hyperlink Reports
5. Hyperlink 2 Hyperlink Order management
6. Hyperlink 3 Hyperlink Manage customer & Affiliate
7. Hyperlink 4 Hyperlink Manage News
8. Hyperlink 5 Hyperlink Manage Payment
9. Hyperlink 6 Hyperlink User Guide
10. Hyperlink 7 Hyperlink Logout
Header
Footer
Left
panel
Hyperlink 1 Hyperlink 2
Hyperlink 3 Hyperlink 4
Hyperlink 8
Hyperlink 6 Hyperlink 7
92
II. e. 14. Report
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1 Text Report Type
5. Combo Box Combo box List of available report types
6. Button Button Submit button to execute selected report type
Header
Footer
Left
panel
Text 1 Combo box
Button
93
II. e. 15. Order management
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1, 2, and 3 Text and Hyperlink Order 1, 2, and 3 (if any)
5. Hyperlink 1 Hyperlink Order Detail
Header
Footer
Left
panel
Text 1
Text 2
Text 3
Hyperlink 1
Hyperlink 1
Hyperlink 1
94
II. e. 16. Manage customer & affiliate
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1, 2, and 3 Text and Hyperlink Customer/affiliate 1, 2, and 3 (if any)
5. Text 4 Text Page indicator
6. Hyperlinks Hyperlink Page navigator
7. Hyperlink 1 Hyperlink Customer list
8. Hyperlink 2 Hyperlink Affiliate list
9. Hyperlink 3 Hyperlink Add profile
10. Hyperlink 4 Hyperlink Edit
Header
Footer
Left
panel
Text 1
Text 2
Text 3
Hyperlink 1 Hyperlink 2
Hyperlink 3
Hyperlink 4
Hyperlink 4
Hyperlink 4
95
II. e. 17. Manage �ews
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Text 1, 2, and 3 Text and Hyperlink News 1, 2, and 3 (if any)
5. Hyperlink 1 Hyperlink Add News
6. Hyperlink 2 Hyperlink Edit News
7. Hyperlink 3 Hyperlink Delete News
Header
Footer
Left
panel Text 1
Text 2
Text 3
Hyperlink 1
Hyperlink 2 Hyperlink 3
Hyperlink 2 Hyperlink 3
Hyperlink 2 Hyperlink 3
96
II. e. 18. Register
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Registration Form Text, text box,
radio button, check box, combo box
Form that customer fill to register.
5. Button Button Submit button for order form
6. Hyperlink 1 Hyperlink Back
Header
Footer
Left
panel
Button Hyperlink 1
Registration form
97
II. e. 19. About us
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Content Text, pictures The content of about us – company’s profile
Header
Footer
Left
panel
content
98
II. e. 20. Contact us
No. Item Type Description
1. Header Refer to II. e. 1. i. header
2. Left Panel Refer to II. e. 1. ii. left panel
3. Footer Refer to II. e. 1. iii. footer
4. Content Text, pictures The content of contact us page – company’s contact and address.
Header
Footer
Left
panel
content
99
III. Hardware and Software Selection
III. a. Hardware specification
The minimum hardware specification to operate this system is: 17. Intel Pentium IV processor or better 18. Minimum 512 Mb RAM 19. Color Monitor 20. Keyboard 21. Mouse with scroll button 22. 160 GB hard disk 23. DSL Internet connection 24. Laser Printer or Dot Matrix Printer For the web server itself, we will host the website on another commercial web server, so we don’t need to buy the expensive web server computer for the company.
III. b. Software Requirements
� Development Software The software that is used to develop this new system: 1. Notepad ++ 2. PHP editor 3. PHP (Personal Home Page) 4. phpMyAdmin 5. FileZilla 6. Apache HTTP server 7. MySQL 8. Adobe Dreamweaver 9. Adobe Photoshop 10. Core FTP
� Operational Software
The minimum requirement of the software to operate the system: 1. Windows XP or Windows Vista 2. Internet Browser (Mozilla Firefox v.2 or Internet Explorer 7)
100
4. DEVELOPME�T A�D IMPLEME�TATIO�
4.1 Software Development Testing
Justification of testing technique
Testing is an important phase in system development. We need to test our event organizer system in order to check and find out about the bugs or errors. The main purpose of our testing activity is not to show off that our system is error free, but to find out as many bugs and error as we can and then do a proper debugging activity. Because the faster we can detect bugs in our system, it will be easier for us as the developer team to debug it, on the other hand an unidentified bug in the system development process will be hard to debug if it is uncovered after the system has been implemented. In conclusion, we do this testing activity in order to find as much bug as possible and debug it, we need to note that even after thorough testing and debugging process, a completely error free program is impossible to achieve, so we aim for 98% error free program. The errors that we can find in a program can be classified as:
1. Syntax Error Syntax Errors, also known as compilation error, happen from the violations of the standard programming language rules and format. Syntax error is easy to detect as the compiler or interpreter can detect it. An example for this kind of error is like forget to type a semicolon after a line of command.
2. Logic Error
Logic error is caused by more human error factor, such as misunderstanding of the algorithms used, so it will produce an incorrect result. We can’t use any interpreter or compiler to detect a logic errors as it has nothing to do with the compilation process of the program.
3. Runtime Error
Runtime error is a kind of error that can only detected by running the program. It is the same with logic error that we cannot use any interpreter or compiler to detect this runtime error
4. Semantic Error
Semantic error is caused by the programmer fail to understand the meaning of the syntax used in the respective programming language.
After looking at those four classification of error, we make our testing strategy in a way that it will be able to detect all kind of error listed above. Our developed testing strategy for the event organizer system covers things like choosing the right testing technique; develop a test plan, test cases, test execution, test result and the test logs. There are many testing technique available out there, but after closely considering about which testing
101
technique that we would like to implement for our event organizer system testing activity, we will choose the black box testing technique. Black box testing, also known as interface testing, is a testing technique where the test cases is derived from the system’s requirement. So, we will take the event organizer system’s requirement as a reference to generate the test cases and we will try to see if the actual system can fulfill its requirements. In our black box testing activity, we create the test cases based on our system’s requirement, so what the requirement says that the system can do, the actual system should be able to do the function as stated in the requirement. Basically, we can decide if the test is successful or not just by looking whether the stated function in the requirement can be performed by the system or not. Our consideration of choosing black box testing as our testing method is because black box testing can do many things such as:
• Loading, executing, and terminating errors
• Detecting any Interface error
• Find out about performance errors
• Detect bug in data structure
• Detect missing functions Below is a diagram for the procedure of doing black box testing:
Derrive test data
No, then debug the system
Execute test
Expected results
Implementation
Result
match?
System
Requirement
yes, go to the next test case
102
Test Cases
Test
Cases
Test Objectives Expected results
1 Check the new customer registration process, test the input validation
An alert will appear and the input box with invalid input value will become red and the correct input box will become green.
2 Test if the customer can access the customer page after he/she have activated his/her account.
The customer can access the customer page.
3 Test the edit profile in customer page
The customer can edit his/her profile using the edit profile
4 Test the “make order” module to make a new event order
Customer can make a new order using the make order module, a notification will be given to the customer in the customer page
5 Test if the customer can see his/her order status and information using the “order status” module
The customer’s order(s) displayed. The customer can see his/her order status and information using the “order status” module
6 Test if the customer can use the “payment” module to pay his/her order through Paypal
Customer will be redirected to Paypal’s website after clicking the “pay now” button.
7 Test if the customer will be redirected to the website after making payment
Customer redirected back to customer page with a status message
8 Test if an affiliate company can log in and access the affiliate page
Affiliate company can login and redirected to the affiliate page
9 Test if the an affiliate company can change its company information using the “profile” module
Affliate company’s profile can be changed using “profile” module
10 Test if the affiliate company can check its order status using “order status” module
Orders for the respective affiliate company will be displayed
11 Test that an affiliate company need to give a reason if it want to reject an order
A form to fill the rejection reason will appear before the status is changed as rejected
12 Test that the confirmation status can be changed to “confirmed”
The confirmation status of the order become “confirmed”
13 Test if the affiliate company can send a feedback using the “feedback” module (also applicable to customer)
A feedback is sent to the administrator’s e-mail after the feedback form has been successfully submitted
14 Test that the administrator can The administrator can login and access
103
login and access the admin page the admin page
15 Test that the administrator can generate the desired report using “report” module
The selected type of report is displayed
16 Test the “manage order” module to show all the order in the database
All the order in the database is displayed
17 Test that administrator can edit an order information
The order information is updated after the editing process
18 Test the “customer & affiliate” module to show information about customers and affiliate companies
The information about customer and affiliate company is displayed according to which one is choosen
19 Test that the administrator can add a new customer (also applicable to affiliate company)
The administrator can add a customer to the database
20 Test that the administrator can add a new news to the website using the “manage news” module
New news added to the website and is accessible from the “news” page
104
Test logs
Test Cases Test Result
1 Successful
2 Successful
3 Successful
4 Successful
5 Successful
6 Successful
7 Successful
8 Successful
9 Successful
10 Successful
11 Successful
12 Successful
13 Successful
14 Successful
15 Successful
16 Successful
17 Successful
18 Successful
19 Successful
20 Successful
105
Test Logs Test case 1
Objectives Check the new customer registration process, test the input validation
Test Action Input a wrong value in the registration form
Expected Test Result An alert will appear and the input box with invalid input value will become red and the correct input box will become green.
Actual Test Result As shown below
Conclusion Succeeded
Before
Step 1
Step 2
106
Incorrect input
107
After
Step 1
Step 2
108
Test case 2
Objectives Test if the customer can access the customer page after he/she have activated his/her account.
Test Action Complete the registration form, click on activation link on the e-mail,
and then login from the login page
Expected Test Result The customer can access the customer page after the account is activated
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
109
Step 3
After
110
111
Test case 3
Objectives Test the edit profile in customer page
Test Action Change the customer information in the “profile” module then click
save changes
Expected Test Result The customer can edit his/her profile using the edit profile
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
112
113
After
114
Test case 4
Objectives Test the “make order” module to make a new event order
Test Action Complete the order form inside the “make order” module
Expected Test Result Customer can make a new order using the make order module, a notification will be given to the customer in the customer page
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
115
Step 3
After
116
117
Test case 5
Objectives Test if the customer can see his/her order status and information using the “order status” module
Test Action Click the “order status” module from customer page
Expected Test Result The customer’s order(s) displayed. The customer can see his/her order status and information using the “order status” module
Actual Test Result As shown below
Conclusion Succeeded
Before
After
118
119
Test case 6
Objectives Test if the customer can use the “payment” module to pay his/her order through Paypal
Test Action Click the “pay now” button in the “payment” module
Expected Test Result Customer will be redirected to Paypal’s website after clicking the “pay now” button.
Actual Test Result As shown below
Conclusion Succeeded
Before
After
120
121
Test case 7
Objectives Test if the customer will be redirected to the website after making payment
Test Action Complete the paypal payment
Expected Test Result Customer redirected back to customer page with a status message
Actual Test Result As shown below
Conclusion Succeeded
Before
After
122
Test case 8
Objectives Test if an affiliate company can log in and access the affiliate page
Test Action Fill the login form with the e-mail and password of an affiliate
company, in this case we use :
Affiliate company name : ABCfood
e-mail : [email protected]
password: abcpass
Expected Test Result Affiliate company can login and redirected to the affiliate page
Actual Test Result As shown below
Conclusion Succeeded
Before
After
123
124
Test case 9
Objectives Test if the an affiliate company can change its company information using the “profile” module
Test Action Change the affiliate company’s information in the “profile” module
then click save changes
Expected Test Result Affliate company’s profile can be changed using “profile” module
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
125
126
After
127
Test case 10
Objectives Test if the affiliate company can check its order status using “order status” module
Test Action Click the “order status” module from affiliate page
Expected Test Result Orders for the respective affiliate company will be displayed
Actual Test Result As shown below
Conclusion Succeeded
Before
After
128
Test case 11
Objectives Test that an affiliate company need to give a reason if it want to reject an order
Test Action Click reject for one of the order
Expected Test Result A form to fill the rejection reason will appear before the status is changed as rejected
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
129
130
After
131
Test case 12
Objectives Test that the confirmation status can be changed to “confirmed”
Test Action Click on the “confirm” for an order
Expected Test Result The confirmation status of the order become “confirmed”
Actual Test Result As shown below
Conclusion Succeeded
Before
After
132
Test case 13
Objectives Test if the affiliate company can send a feedback using the “feedback” module (also applicable to customer)
Test Action Click the “feedback” module, fill the feedback form, and then click
the “send feedback” button
Expected Test Result A feedback is sent to the administrator’s e-mail after the feedback form has been successfully submitted
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
133
134
After
135
Test case 14
Objectives Test that the administrator can login and access the admin page
Test Action Fill the e-mail and password for an administrator from the login page
The data used in this test:
Name : David
e-mail : [email protected]
password : cloverpass
Expected Test Result The administrator can login and access the admin page
Actual Test Result As shown below
Conclusion Succeeded
Before
After
136
137
Test case 15
Objectives Test that the administrator can generate the desired report using “report” module
Test Action Select a report type and the click the “view report” button
Expected Test Result The selected type of report is displayed
Actual Test Result As shown below
Conclusion Succeeded
Before
After
138
Test case 16
Objectives Test the “manage order” module to show all the order in the database
Test Action Click the “manage order” module from admin page
Expected Test Result All the order in the database is displayed
Actual Test Result As shown below
Conclusion Succeeded
Before
After
139
Test case 17
Objectives Test that administrator can edit an order information
Test Action Click “detail” for an order, click the “edit order information” link, fill
the form, and then click submit
Expected Test Result The order information is updated after the editing process
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
140
141
Step 3
Step 4
142
After
143
Test case 18
Objectives Test the “customer & affiliate” module to show information about customers and affiliate companies
Test Action Click on the “customer & affiliate” module from admin page
Expected Test Result The information about customer and affiliate company is displayed according to which one is choosen
Actual Test Result As shown below
Conclusion Succeeded
Before
After Customer
144
145
Affiliate
146
Test case 19
Objectives Test that the administrator can add a new customer (also applicable to affiliate company)
Test Action Click “add customer” button, fill the form, and then click submit
Expected Test Result The administrator can add a customer to the database
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
147
148
Step 3
After
149
150
Test case 20
Objectives Test that the administrator can add a new news to the website using the “manage news” module
Test Action Click on the “add news” in the “manage news” module, fill the form
and then click the “save” button
Expected Test Result New news added to the website and is accessible from the “news” page
Actual Test Result As shown below
Conclusion Succeeded
Before Step 1
Step 2
151
152
Step 3
After
153
154
4.2 Implementation: Conversion and Training Plan
The final stage is that we need to implement the program into the event organization system so that it will perform its task with efficient and effective. For this implementation, we can do 4 different technique like :
� Pilot Conversion = At first, the new system will be implemented at the certain branch of the organization. After the new system at the branch is considered success, it will be implemented at the whole organization.
� Direct Conversion = The new system will be implanted directly to
the organization so the old system will be replaced directly. This technique is considered very risky because if the new system is not working properly and the old system has been discarded, it will be a disaster to the organization.
� Parallel Conversion = In this technique, the new system and the old
system will be used at the same time. If the new system is satisfied, then the old system will be discarded and replaced by the new system. This is the safest method to implement the new system.
� Phased Conversion = The new system will be implemented part by
part. For example: for the first, part A is implemented then after the part A is considered as success, then the part B will start to be implemented and so on until the whole old system is replaced by the new system.
After we see all the advantages and disadvantage of these techniques, I will consider choosing parallel conversion since it is the safest method to implement new system. It will cost more for implementation but the entire data still has a backup in case that some of the new system fail. After all the new system has been implemented successfully into the organization, the old system will be discarded. The other reason I choose parallel conversion as a suitable technique is that because I cannot use the pilot conversion since I do not have any branch office, I cannot use the direct conversion because that this technique is too risky. The reason is we do not have any back up if the new system fails. The last is phased conversion, we cannot use this
155
technique is because that we have to split the program that we have made and we do not prepare to split the new system program. So the parallel conversion is the best technique to choose and also the safest way. This is a schema how will the conversion work:
So we already know about the planning to implement the new system to the organization which is parallel conversion. At first, the old system and new system will work together which means that if a customer come to the office, the staff will still need to write it down on a paper then it will input to the new system.
No
Yes
Back Up Current System
Convert the old system into new
system
Is it the expected result?
Discard the old system
Debug
156
In the conversion plan, people who has to take a part in this plan are : � System Analyst � Programmer � Database Administrator � IT support technician
When doing the conversion, all people will be involved. For programmer and system analyst who has a big part at the implementation stage, they have to prepare if something or some errors occur during the implementation stage. Person who has to be there to make sure everything is going according to plan is system analyst since he is the one who plan all the implementation stage and phase. If there is some mistake, system analyst is the one who has to responsible and system analyst has to monitor every single step in the implementation stage. Another important person who has to involve in this stage is the main programmer of the new system. He is the one who make the program so if something happen; he has to make a quick move to resolve the problem. Also if the user needs assistance when using the new program, the programmer will be there to guide them. The database administrator holds a responsibility to ensure that the database is able to add, delete, edit, store and update. The last thing is the IT support technician; he is the one that responsible for the hardware for the new system. For example, installation of the hardware and also if there is a problem with the internet connection because the system needs to go online.
157
4.3 Implementation : User Guide.
4.3.1 Installation and Running the System.
There are two main ways on how to run our event organizer system:
1. Using the online version 2. Use it locally in a computer
1. Using the online version Using the online version of our project is the simplest way to use our event organizer system. All you need is a computer with web browser and connection to the Internet. Open the web browser in the computer and then go to this address: http://davidkeiththomas.freevar.com/eowebsite/ Because using the online version of our system is the simplest way, so we recommend you to use this method. However, if you want to try to run our system locally in your computer, you can follow the guide to use the system locally in the next section.
2. Use it locally in a computer
In order to be able to run our system locally in your computer, you will need to install some software. The first software is XAMPP, it is used to run the PHP and the MySql server. The second software is Argosoft mail server that will act as a local mail server for the computer. The third software is Mozilla Thunderbird to retrieve the e-mail from the mail server. The last software is a web browser, in this guide we will use Mozilla Firefox 3. Installation Steps:
1. Step 1 Download and install XAMPP from its website http://www.apachefriends.org/en/xampp-windows.html Follow the installation wizard and don’t forget to check the option to install Apache and Mysql as a service. We recommend to install it in C:/ Drive’
2. Step 2 Download and install Argosoft mail serve from its website http://www.argosoft.com/RootPages/Download.aspx Download the Mail server freeware (agsmail.exe) Follow the installation wizard, run the argosoft mail server. Then you need to do some configuration.
� Click on tools – option – then go under local domains tab � Add two local domains (localhost and localhost.com) as the local domain � Click ok � Click tools – user – add new user � Enter “webmaster” as user name then enter your full name and password
3. Step 3
158
Download and install Mozilla Thunderbird from its website http://www.mozilla.com/en-US/thunderbird/ Follow the installation wizard. Then open the Mozilla Thunderbird and do some configurations:
� Click file – new – account � Email Account – next � Enter your name as in the argosoft mail server � Enter e-mail address as webmaster@localhost � Click next � Enter “localhost” as the incoming server, click next � Enter your desired incoming name, click next � Enter “webmaster@localhost” as account name, click next � Click Finish � Repeat this configuration with [email protected] as the e-mail
address and account name
4. Step 4 Step 4 is installing Mozilla firefox as a web browser, but you can use any other web browser in your computer, you can download Mozilla firefox from this website http://www.mozilla.com/en-US/firefox/all.html Install and follow the installation wizard
5. Step 5 Copy the “eowebsite” folder found in the CD to “C:\xampp\htdocs” (assumed that you install the XAMPP in “C:\”
6. Step 6 Copy the “eodb” folder found in the CD to “C:\xampp\mysql\data” (assumed that you install the XAMPP in “C:\”
7. Step 7 Open your web browser, then type in the address bar http://localhost/eowebsite Now you can start to use the website
159
4.3.2 Operating Guide
4.3.2.1 Customer Page
In this part, we explain about how to use the website. There are 3 sections in this website, like: Customer page, Administrator page, and Affiliate company page. If you want to login as a visitor, you have to register first. You can choose register link at the left side of the website.
The register form will look like this. All you need to do is to fill in the form and then after you fill the entire box, you just simply click submit to receive the confirmation email to your email inbox. You need go to your email inbox to activate the account then you can login to the website as the customer.
160
That is the layout of the user login page. You can login by entering your email address and your own password. After you login successfully, you will enter this page
In this page, customer is able to change their own profile, make an order, check order status, make a payment, send a feedback, read the user guide and logout.
161
If customer wants to change their profile, the page will look like this:
After customer make a necessary change in their own profile, they need to save changes and then customer will be back into customer main page. If customer chooses to make an order, they can just click the link in the customer main page and the page will go to this page
In this page, customer needs to choose which event between wedding and birthday party that they want us to organize then click submit to continue to the other page.
162
In this page customer can choose which packages they want to and if they want to know about the description of the package they can click the link. After they choose which package they want, they can go to next page.
In this page, customer needs to fill in the date, the time, and additional info. After that they just need to submit it.
163
If the customer wants to check their order status, they can choose order status from the customer main page. If the customer wants to make a payment, they just need go to payment page.
There is status whether the order has been paid, half-paid or unpaid. The customer can make a payment by using paypal. If the customer wants to send a feedback to the organization, they can choose the feedback module in the customer main page.
164
This is the page of feedback form. Customer need to fill the title box and then write the feedback to us in the box below title. After the customer finish write about the feedback, they can send it to our organization.
4.3.2.2 Administrator Page
In this section, I will give the guide about how to use administrator page. All you need to do is login by using email address and password that has been created by administrator. The administrator main page will look like this:
There are 7 modules in the administrator section which are reports, manage order, customer & affiliates, manage news, manage payment, user guide and logout. If the administrator wants to see the reports of the active order, all payment, the income of current month, etc. They can access the reports module from the administrator main page.
165
In this page, administrator can choose which report they want to produce. After choose certain report to produce, they just need to click ‘view report’ to go to next page.
The administrator can choose to print the report or they just want to see it and then go back to previous page and look for another report. If the administrator wants to manage order, they can just go to manage order module in the administrator main menu.
166
In this page, administrator can check whether the affiliate has been confirmed the order or not and also they can check the payment that customer has been made whether it has been fully paid, half-paid, or unpaid. If the administrator wants to see more detail about the order, he/she can just click the detail link on the right side. If the administrator wants to see the list of customer data and affiliate data, they need to go to customer and affiliate module in the administrator main menu.
167
In this page, administrator can choose between customer data or affiliate company data. Administrator also can add a customer or affiliate company data in this page and also if they are able to see more detail information about customer and affiliate company. If administrator wants to manage the news for the main page of this website which is containing about news of this organization event.
168
In this page, administrator can add, edit or delete the news from the database. If the administrator wants to manage the payment of the order, they can choose the manage payment module in the administrator main page. Administrator can add, edit and delete payment in this module. This module is required for producing the report in the report module. There is also user guide module in this administrator main page. This user guide is for a guide that is similar to this. Logout is a module to logout from the administrator main page.
4.3.2.3 Affiliate Company Page
In this affiliate company page section, the affiliate company is able to change their profile, see the order status, send a feedback to the organization, see the user guide and logout.
169
This is the affiliate company main page. If the affiliate company wants to change their profile, they can go to profile module in the main page.
This is affiliate company profile page. If they want to change their profile, they can change it here and after they change the profile, they have to save changes.
170
If the affiliate company wants to see the order detail, they can go to order detail module in the affiliate company main page.
In this page, Affiliate Company can see about their order detail. If the affiliate company wants to send a feedback to the organization, they can choose the feedback module in the customer main page
171
This is the page of feedback form. Affiliate Company needs to fill the title box and then write the feedback to us in the box below title. After the Affiliate Company finish write about the feedback, they can send it to our organization. Logout is a module to logout from the Affiliate Company main page.
172
4.4 Critical Appraisal: Combined
Clover Event Organizer is an online-based system that is developed to make this organization to become a bigger, wider and more effective. From previous method that is we have to make a record manually and search for certain record manually, now we can add and search for a certain record by using computer which is faster and more efficient. This system is using PHP.net and MySQL for programming and database language. There are some major modules that we can see in this system: By combining PHP.net for the online system and MySQL for database will make this system is powerful because you can modify the system easily and retrieve information easily. This system is built in three section which are user section, administrator section and affiliate company section. The user section is for customer who wants to use our service. They have to register first if they want to login. Inside the system, the customer is able to choose the package they want to choose or they can choose the vendor manually. There is also payment service PayPal if they want to make an online payment. The Administrator section is for the administrator who wants to manage the order or confirm the order that has been accepted by the vendor. We can produce a different record. For example records like: payment, income of current month, income for the last three month, etc. There is affiliate and customer module for the list of customer and affiliate company details. And there is user guide module for people who still need a guide about how to use the system. The Affiliate section is for the affiliate company to check the order status or if they want to change their profile. They also can send a feedback to Clover event organizer if they feel something is not suitable or something is wrong with the website. There is also a user guide for Affiliate Company about how to use the website. We try to make this website is user friendly so that the user is not having a hard time to access the website. The last thing to do is to create this documentation and user manual for the end-user so that they can understand about the basic of this system. There are a lot of problems occurred when we develop this system but in the end, we finally finish it. This system is not yet a perfect system. There are still some of things that we have to modify in the future, for example like: Affiliate Company can upload the schedule into the system, so that they can automatically book from the website.
173
4.5 Critical Appraisal: Individual
Critical Appraisal by: David Irawan Adhiguna 018800004337
At the first time I heard that this project will be a group project, I feel relieved because 2 project before I have to do myself. Then we have to choose whether we want to create an offline system or online system. I and my group thought and considered which the best for this project is between online and offline. After all discussion, we finally choose the online system because it will more challenging for us. We start to make a proposal for the system, and for the first try, the proposal is need to revised again because of some point is still not right and we have to change it. The second try, the proposal was accepted and we were very happy. We have to finish this project in two terms time so we complete until analysis documentation in the first term and the second term we start with design documentation. The second term, we have to do coding and we still do not know about the programming language for online-based system so we need to study the programming language first. We choose PHP.net for online programming and MySQL for database. Both language we need to study first and the time given is very short. At first I thought we are not going to make it in time because there are too much to do. But with Thomas magnificent brain, we can overcome the difficulties and we are able to finish it in time. Also there are times that Keith is not able to attend some time when we work together because he was ill and cannot make it to our place. So the work was a little bit delayed. We try to search free hosting website so that we can upload our work there. At first, we found that we can pay them every month so that we can upload our website. We thought we want to pay for it for 2 months but the rules said that we need to rent it for minimum 12 months. After read that rules, our spirit is down for a moment but there is a free hosting website so we still able to upload our website. Thanks God!! We found many problems when we do the coding because the language is very new for me and we need to learn the language from the website that is provide a lesson for this language. There are many challenging situation that we need to think hard to get the logic so we can get what we want in the coding. The lesson that I have learned from making this system is that teamwork is much needed when we have to create a group project because without teamwork, it will never be done in time. Thank you for Thomas and Keith that we have been working together for this project.
174
Critical Appraisal by: Keith �ishan Fernandez 018800004402
I feel excited when I have to do this project because I and my teammate choose to create an online system. I really want to do online system from before I go to college because it looks interesting and fun to do it. We start to do the project and Thomas also starts to split the work among us. With Thomas capability for leadership in the team, we are able to do our job but because my health is not in the good condition, sometimes I cannot attend when we have to gather to think about how the system works and so on. When we choose to use PHP.net and MySQL to create the system, I a little bit worry because we need to learn a whole new programming language with very little time. I worry that time will not be enough for us to do the project but in the end, I am very relieved that the project is finished in time. That is all thanks to teamwork that we have been through. The most important thing in the project that we have to develop in groups is that we have to have a good leader that can manage the whole team so that all of us are able to work together so the work will finish faster and more efficient.
175
Critical appraisal by Thomas Setiabudi (018800004137)
Thanks God that our team is able to finish this project. It is a very satisfying feeling to know that finally we can finish this project. Back then, early term 2 2008, when we start the C2006 module, I do not have any idea about what system that I should make for this module. Then, after my group has been formed, we, David, Keith, and I discussed about what system we should make. We start with a passion and confusion because we suggested some idea to our project lecturer, Ms. Mullai (Second term lecturer is Mr. Pala), and she keep saying that our system idea is just too simple, we just don’t know what we should do that time. The second week, David come out with an idea about making a system for an event organizer. This idea comes from his real life friends who set up an event organizing company. I am interested in this idea and we start to discuss more about this system. The idea of developing a system for event organizer is very interesting as I think that there is not many similar projects like this out there. After we decide that we will make this project as an online system, the next thing that we need to decide is what programming language we want to use. Luckily, we can make a fast decision about this matter. We decide to use PHP and use MySql for the database because I have tried to use PHP and it is quite easy to use. The next thing that I want to do is to put our project in the Internet, so I searched some free web-hosting website and we found the host that we use for our project now, www.ueuo.com, it is free and only have a small number of advertisement. The process of doing this project is sometimes very stressful and not always runs smoothly, but we able to keep our commitment and focus to finish this project. My main part in this project is to do the programming part of the system. It is very challenging to learn the programming language by myself, but luckily we have learn about javascript, html, css, and sql in our diploma, so I just need to focus in studying the PHP. There are some hard times when I just run out of ideas to make some of the system’s process but luckily David is a very good friend to discuss with. He give me many input and inspiration about the programming concept of the system so I able to figure out how to do all the system’s function. The color theme of the website is another thing, I was not so good about color taste but David also help me to choose the light blue color that amazingly looks nice for our website. In conclusion, we have learned many things by the time we finish this two-term project. We have learn that team work is not always runs smooth, human management, commitment, and time management is some very important skill that we need to have in order to survive a long run team project like this. For myself, I have a completely new experience by learning a new programming language by self-study. Finally, I want to say that I will never forget my experience in doing this project, my team, and all the pressure and satisfaction feeling that I get during the project.
176
5. Program Listing (Source Code)
Customer.php
<?php session_start(); if ($_SESSION[status]!="customer") { header("location:login.php"); } else { ?> <html> <head> <LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css"> <title>Clover Company Site</title> </head> <body background="images/elements1.jpg"> <?php include "config/connection.php"; ?> <div align="center" id="general"> <table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <?php include "header.php"; ?> <tr> <td width="200" valign="top"> <?php include "left_pane.php"; ?> </td> <td width="600" valign="top"> <table width="600" border="0" cellspacing="10" cellpadding="0"> <?php if($_GET[info] == "success") { echo" <tr> <td colspan='2' align='center'><font color='green'><b><u></u>Payment process success, please wait maximum of 2 working days for payment status update.</b></font></td> </tr> "; } elseif($_GET[info] == "dateexist") { echo" <tr> <td colspan='2' align='center'><font color='red'><b>Order fail, date already booked</b></font></td>
177
</tr> "; } elseif($_GET[info] == "profilesuccess") { echo" <tr> <td colspan='2' align='center'><font color='green'><b>Profile Updated Successfully</b></font></td> </tr> "; } elseif($_GET[info] == "ordersuccess") { echo" <tr> <td colspan='2' align='center'><font color='green'><b>Your order has been added to database</b></font></td> </tr> "; } else { echo" "; } ?> <tr> <td colspan="2"> Welcome <?php echo "<b>$_SESSION[username],</b>"; ?> <br>This is your <b><font color="blue">Customer Page</font></b>, <br>you can click on the modules below to do the corresponding function: </td> </tr> <tr> <td align="center"> <table border="0" cellspacing="0" cellpadding="15"> <tr> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="profile_cust.php">Profile</a></td> </tr>
178
</table> </td> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="order_form.php?step=1">Make Order</a></td> </tr> </table> </td> </tr> <tr> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="cust_order_status.php">Order Status</td> </tr> </table> </td> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="payment.php?">Payment</a></td> </tr> </table> </td> </tr> <tr> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="feedback.php">Feedback</a></td> </tr> </table> </td> <td> <table> <tr>
179
<td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="customer_guide.php">User guide</a></td> </tr> </table> </td> </tr> <tr> <td colspan="2" align="center"> <table> <tr> <td align="center" width="50" height="20" class="modul"><a style="color:white" class="module" href="logout.php">Logout</a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr> <?php include "footer.php"; ?> </tr> </table> </div> </body> </html> <?php } ?>
Profile_cust.php
<?php session_start(); if ($_SESSION[status]!="customer") { header("location:login.php?mode=customer"); } else { ?> <html> <head> <LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css"> <title>Clover Company Site</title>
180
<SCRIPT LANGUAGE="JavaScript" src="config/validate_date.js"></script> </head> <body background="images/elements1.jpg"> <?php include "config/connection.php";?> <div align="center" id="general"> <table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <?php include "header.php"; ?> <tr> <td width="200" valign="top"> <?php include "left_pane.php"; ?> </td> <td width="600" valign="top"> <form action="cust_prof_process.php" method="post" name="reg_form"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"> <center>YOUR PROFILE <?php if ($_GET[stat]=="empty") { echo "<br><font color='red'>Please fill all the fields</font>"; } elseif ($_GET[stat]=="none") { echo "<br>"; } else { echo "<br>"; } ?> <?php $sql = mysql_query ("SELECT * FROM customer WHERE name = '$_SESSION[username]'"); $userdata = mysql_fetch_array ($sql); ?></center><br><br> </td> </tr> <tr> <td>Name</td> <td>:</td>
181
<td><b><?php echo"$userdata[name]"; ?></b></td> </tr> <tr> <td>Gender</td> <td>:</td> <td><select name="gender"> <?php if($userdata[gender]=="M") { echo " <option value='M' selected>Male</option> <option value='F'>Female</option>"; } else { echo " <option value='M'>Male</option> <option value='F' selected>Female</option>"; } ?> </select> </td> </tr> <tr> <td>date of birth (yyyy-mm-dd)</td> <td>:</td> <td><input name="date" type="text" size="10" maxlength="10" value=<?php echo"$userdata[date_of_birth]"; ?>> </td> </tr> <tr> <td>e-mail address</td> <td>:</td> <td><input name="e_mail" type="text" value=<?php echo"$userdata[e_mail]"; ?>></td> </tr> <tr> <td>IC / Passport number</td> <td>:</td> <td><input name="ic_passport" type="text" value=<?php echo"$userdata[ic_passport]"; ?>></td> </tr> <tr> <td>Phone number</td> <td>:</td> <td><input name="phone" type="text" value=<?php echo"$userdata[phone]"; ?>></td>
182
</tr> <tr> <td>Password</td> <td>:</td> <td><input name="password" type="password" value=<?php echo"$userdata[password]"; ?>></td> </tr> <tr> <td>Confirm Password</td> <td>:</td> <td><input name="password_c" type="password" value=<?php echo"$userdata[password]"; ?>></td> </tr> <tr> <td colspan="3" align="center"> <br><br> <input name="submit" type="submit" value="save changes" onclick="return checkRegister2()"> <input name="back" type="button" value="back" OnClick="javascript:history.go(-1)"> </td> </tr> </table> </form> </td> </tr> <tr> <?php include "footer.php"; ?> </tr> </table> </div> </body> </html> <?php } ?>
Cust_prof_process.php <?php session_start(); if ($_SESSION[status]!="customer") { header("location:login.php?mode=customer"); } else { if($_POST[gender]=="" || $_POST[date]=="" || $_POST[e_mail]==""|| $_POST[ic_passport]=="" || $_POST[phone]=="" || $_POST[password]=="") {
183
header("location:profile_cust.php?stat=empty"); } else { include "config/connection.php"; $sql = mysql_query("SELECT * FROM `customer` WHERE `name` = '$_SESSION[username]'"); $data = mysql_fetch_array ($sql); $sql2 = mysql_query("UPDATE `eodb`.`customer` SET `gender` = '$_POST[gender]', `date_of_birth` = '$_POST[date]', `e_mail` = '$_POST[e_mail]', `ic_passport` = '$_POST[ic_passport]', `phone` = '$_POST[phone]', `password` = '$_POST[password]' WHERE `customer`.`customer_id` = '$data[customer_id]' "); header("location:customer.php?info=profilesuccess"); } } ?>
Order_detail_cust.php <?php session_start(); if ($_SESSION[status]!="customer") { header("location:login.php"); } else { ?> <html> <head> <LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css"> <title>Clover Company Site</title> </head> <body background="images/elements1.jpg"> <?php include "config/connection.php";?> <div align="center" id="general">
184
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <?php include "header.php"; ?> <tr> <td width="200" valign="top"> <?php include "left_pane.php"; ?> </td> <td width="600" valign="top"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"><center>Order Detail</center><br><br></td> </tr> <?php $sql = mysql_query("SELECT * FROM `order` WHERE `order_id` = '$_GET[id]'"); $order = mysql_fetch_array($sql); $sql2 = mysql_query("SELECT `affiliate`.`name`, `affiliate`.`address` FROM `schedule_distribution`, `affiliate` WHERE `schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$_GET[id]' AND `affiliate`.`service` = 'venue'"); $venue = mysql_fetch_array($sql2); $sql3 = mysql_query("SELECT * FROM `customer` WHERE `customer_id` = '$order[customer_id]'"); $customer = mysql_fetch_array($sql3); $sql4 = mysql_query("SELECT * FROM `event` WHERE `event` = '$order[event]'"); $event = mysql_fetch_array($sql4); $sql5 = mysql_query("SELECT `affiliate`.`name`, `affiliate`.`service`, `schedule_distribution`.`confirmation` FROM `affiliate`, `schedule_distribution` WHERE `affiliate`.`affiliate_id` = `schedule_distribution`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$order[order_id]' "); ?> <tr> <td align="left"><b>Order Id</b></td> <td>:</td> <td align="left"><?php echo"$order[order_id]" ?></td>
185
</tr> <tr> <td align="left"><b>Order Made on</b></td> <td>:</td> <td align="left"><?php echo"$order[date]" ?></td> </tr> <tr> <td align="left"><b>Customer Name / id</b></td> <td>:</td> <td align="left"><?php echo"$customer[name] / $customer[customer_id]" ?></td> </tr> <tr> <td colspan="3"><hr></td> </tr> <tr> <td align="left"><b>Event Package</b></td> <td>:</td> <td align="left"><?php echo"$order[event]" ?></td> </tr> <tr> <td align="left"><b>Package Description</b></td> <td>:</td> <td align="left"><?php echo"$event[description]" ?></td> </tr> <tr> <td align="left"><b>Event Date</b></td> <td>:</td> <td align="left"><?php echo"$order[event_date]" ?></td> </tr> <tr> <td align="left"><b>Event Time</b></td> <td>:</td> <td align="left"><?php echo"$order[event_time]" ?></td> </tr> <tr> <td align="left"><b>Venue</b></td> <td>:</td> <td align="left"><?php echo"$venue[name]" ?></td> </tr> <tr> <td align="left"><b>Venue Address</b></td> <td>:</td> <td align="left"><?php echo"$venue[address]" ?></td> </tr> <tr>
186
<td colspan="3"><hr></td> </tr> <tr> <td align="left"><b>Service Price</b></td> <td>:</td> <td align="left"><?php echo"$event[price]" ?></td> </tr> <tr> <td align="left"><b>Payment Mode</b></td> <td>:</td> <td align="left"><?php echo"$order[pay_mode]" ?></td> </tr> <tr> <td align="left"><b>Payment Status</b></td> <td>:</td> <td align="left"><?php echo"$order[pay_status]" ?></td> </tr> <tr> <td colspan="3"><hr></td> </tr> <tr> <td colspan="3"><b><u>Affiliate Company / Vendor Information</u></b></td> </tr> <?php while($affiliate = mysql_fetch_array($sql5)) { echo " <tr> <td align='left'><b>$affiliate[service] vendor</b></td> <td>:</td> <td>$affiliate[name]</td> </tr> <tr> <td align='left'><b>Status</b></td> <td>:</td> <td>$affiliate[confirmation]</td> </tr> <tr> <td colspan='3' align='center'> </td> </tr> "; } ?> <tr> <td colspan="3"><hr></td>
187
</tr> <tr> <td colspan="3"><b>Additional Note From Customer</b></td> </tr> <tr> <td colspan="3"><?php echo"$order[additional_info]";?><br><br></td> </tr> <tr> <td colspan="3" align="center"> <a href="javascript:window.print();">Print</a> - <a href="javascript:history.go(-1);">Back</a> <br><br> </td> </tr> </table> </td> </tr> <tr> <?php include "footer.php"; ?> </tr> </table> </div> </body> </html> <?php } ?>
Feedback.php <?php session_start(); if ($_SESSION[status]!="customer" && $_SESSION[status]!="affiliate") { header("location:login.php"); } else { ?> <html> <head> <LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css"> <SCRIPT LANGUAGE="JavaScript" src="config/validate_date.js"></script> <title>Clover Company Site</title> </head> <body background="images/elements1.jpg"> <?php include "config/connection.php";?> <div align="center" id="general">
188
<table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <?php include "header.php"; ?> <tr> <td width="200" valign="top"> <?php include "left_pane.php"; ?> </td> <td width="600" valign="top"> <form action="feedback_process.php" name="feedback_form" method="post"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" colspan="3"><b><h2>Feedback Form</h2></b></td> </tr> <tr> <td>Title</td> <td>:</td> <td><input name="title" type="text" size="30"></td> </tr> <tr> <td colspan="3">Write Your Feedback in the box below then click "send feedback"</td> </tr> <tr> <td colspan="3"><textarea name="feedback" cols="60" rows="10"></textarea></td> </tr> <tr> <td colspan="3" align="center"> <input type="submit" name="submit" value="send feedback" onclick="return checkFeedback()"> <input type="button" onclick="javascript:history.go(-1)" value="cancel"> </td> </tr> </table> </form> </td> </tr> <tr> <?php include "footer.php"; ?> </tr> </table> </div> </body> </html>
189
<?php } ?>
Admin.php
<?php session_start(); if ($_SESSION[status]!="admin") { header("location:login.php?mode=admin"); } else { ?> <html> <head> <LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css"> <title>Clover Company Site</title> </head> <body background="images/elements1.jpg"> <?php include "config/connection.php"; ?> <div align="center" id="general"> <table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <?php include "header.php"; ?> <tr> <td width="200" valign="top"> <?php include "left_pane.php"; ?> </td> <td width="600" valign="top"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2"> Welcome <?php echo "<b>$_SESSION[username],</b>"; ?> <br>This is your <b><font color="blue">Administrator Page</font></b>, <br>you can click on the modules below to do the corresponding function: </td> </tr> <tr> <td align="center"> <table border="0" cellspacing="0" cellpadding="15"> <tr> <td>
190
<table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="report_generator_ad.php">Reports</a></td> </tr> </table> </td> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="manage_order_ad.php">Manage Order</a></td> </tr> </table> </td> </tr> <tr> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="cust_aff.php?mode=customer">Customer & Affiliate</a></td> </tr> </table> </td> <td> <table> <tr> <td align="center" width="90" height="34" class="modul"><a style="color:white" class="module" href="manage_news_ad.php">Manage News</a></td> </tr> </table> </td> </tr> <tr> <td> <table> <tr> <td align="center" width="90" height="20" class="modul"><a style="color:white" class="module" href="manage_payment_ad.php">Manage Payment</a></td> </tr>
191
</table> </td> <td> <table> <tr> <td align="center" width="90" height="34" class="modul"><a style="color:white" class="module" href="admin_guide.php">User Guide</a></td> </tr> </table> </td> </tr> <tr> <td colspan="2" align="center"> <table> <tr> <td align="center" width="50" height="20" class="modul"><a style="color:white" class="module" href="logout.php">Logout</a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr> <?php include "footer.php"; ?> </tr> </table> </div> </body> </html> <?php } ?>
Report_generator_ad.php
<?php session_start(); if ($_SESSION[status]!="admin") { header("location:login.php?mode=admin"); }
192
else { ?> <html> <head> <LINK rel="stylesheet" type="text/css" href="config/eowebstyle.css"> <title>Clover Company Site</title> </head> <body background="images/elements1.jpg"> <?php include "config/connection.php";?> <div align="center" id="general"> <table width="800" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <?php include "header.php"; ?> <tr> <td width="200" valign="top"> <?php include "left_pane.php"; ?> </td> <td width="600" valign="top"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <?php if($_GET[module] == "select" || $_GET[module] == "") { echo" <tr> <td><center><b>REPORT SELECTOR</b></center><br><br></td> </tr> <tr> <td> <form action='?module=report' method='post'> <table width='600' border='0' cellspacing='0' cellpadding='0'> <tr> <td align='center'>Select Report Type:<br><br></td> </tr> <tr> <td align='center'> <select name='type'> <option value='order_all'>All Order</option> <option value='order_active'>Active Order</option>
193
<option value='order_inactive'>Inactive Order</option> <option value='event_frequency'>Favourite Event Package</option> <option value='affiliate_frequency'>Favourite Affiliate Company</option> <option value='customer_order'>Customer & Order</option> <option value='payment_all'>All Payment</option> <option value='payment_thismonth'>Current Month Income</option> <option value='payment_last3months'>Income from last three months</option> <option value='payment_receivable'>Expected Income</option> </select><br><br> </td> </tr> <tr> <td align='center'><input type='submit' name='submit' value='View Report'></td> </tr> </table> </form> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "order_all") { echo" <tr> <td align='center'> <b>All Order Report</b> </td> </tr> <tr> <td> "; $sql = mysql_query("SELECT * FROM `order` "); while($order_data = mysql_fetch_array($sql)) { echo"
194
<br> <table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='yellow'>Order id</th> <th bgcolor='yellow'>Event package</th> <th bgcolor='yellow'>Event date</th> <th bgcolor='yellow'>Time</th> <th bgcolor='yellow'>Payment mode</th> <th bgcolor='yellow'>Payment status</th> <th bgcolor='yellow'>Action</th> </tr> <tr> <td>$order_data[order_id]</td> <td>$order_data[event]</td> <td>$order_data[event_date]</td> <td>$order_data[event_time]</td> <td>$order_data[pay_mode]</td> <td>$order_data[pay_status]</td> <td><a href='order_detail_ad.php?id=$order_data[order_id]'>Detail</a></td> </tr> <tr> <th colspan='3' bgcolor='#91b9fc'>Vendor name</th> <th bgcolor='#91b9fc'>Service</th> <th colspan='3' bgcolor='#91b9fc'>Status</th> </tr> "; $sql2 = mysql_query("SELECT `affiliate`.`name`, `affiliate`.`service`, `schedule_distribution`.`confirmation` FROM `affiliate`, `schedule_distribution` WHERE `affiliate`.`affiliate_id` = `schedule_distribution`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$order_data[order_id]' "); while($vendor_data = mysql_fetch_array($sql2)) { echo "
195
<tr> <td colspan='3' align='center'>$vendor_data[name]</td> <td>$vendor_data[service]</td> <td colspan='3'>$vendor_data[confirmation]</td> </tr> "; } echo" </table> "; } echo" </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "order_active") { echo" <tr> <td align='center'> <b>Active Order Report</b> </td> </tr> <tr> <td> "; $today = date("Y/m/d"); $sql = mysql_query("SELECT * FROM `order` WHERE `event_date`> '$today' "); while($order_data = mysql_fetch_array($sql)) { echo" <br>
196
<table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='yellow'>Order id</th> <th bgcolor='yellow'>Event package</th> <th bgcolor='yellow'>Event date</th> <th bgcolor='yellow'>Time</th> <th bgcolor='yellow'>Payment mode</th> <th bgcolor='yellow'>Payment status</th> <th bgcolor='yellow'>Action</th> </tr> <tr> <td>$order_data[order_id]</td> <td>$order_data[event]</td> <td>$order_data[event_date]</td> <td>$order_data[event_time]</td> <td>$order_data[pay_mode]</td> <td>$order_data[pay_status]</td> <td><a href='order_detail_ad.php?id=$order_data[order_id]'>Detail</a></td> </tr> <tr> <th colspan='3' bgcolor='#91b9fc'>Vendor name</th> <th bgcolor='#91b9fc'>Service</th> <th colspan='3' bgcolor='#91b9fc'>Status</th> </tr> "; $sql2 = mysql_query("SELECT `affiliate`.`name`, `affiliate`.`service`, `schedule_distribution`.`confirmation` FROM `affiliate`, `schedule_distribution` WHERE `affiliate`.`affiliate_id` = `schedule_distribution`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$order_data[order_id]' "); while($vendor_data = mysql_fetch_array($sql2)) { echo " <tr>
197
<td colspan='3' align='center'>$vendor_data[name]</td> <td>$vendor_data[service]</td> <td colspan='3'>$vendor_data[confirmation]</td> </tr> "; } echo" </table> "; } echo" </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "order_inactive") { echo" <tr> <td align='center'> <b>Inactive Order Report</b> </td> </tr> <tr> <td> "; $today = date("Y/m/d"); $sql = mysql_query("SELECT * FROM `order` WHERE `event_date`< '$today' "); while($order_data = mysql_fetch_array($sql)) { echo" <br>
198
<table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='yellow'>Order id</th> <th bgcolor='yellow'>Event package</th> <th bgcolor='yellow'>Event date</th> <th bgcolor='yellow'>Time</th> <th bgcolor='yellow'>Payment mode</th> <th bgcolor='yellow'>Payment status</th> <th bgcolor='yellow'>Action</th> </tr> <tr> <td>$order_data[order_id]</td> <td>$order_data[event]</td> <td>$order_data[event_date]</td> <td>$order_data[event_time]</td> <td>$order_data[pay_mode]</td> <td>$order_data[pay_status]</td> <td><a href='order_detail_ad.php?id=$order_data[order_id]'>Detail</a></td> </tr> <tr> <th colspan='3' bgcolor='#91b9fc'>Vendor name</th> <th bgcolor='#91b9fc'>Service</th> <th colspan='3' bgcolor='#91b9fc'>Status</th> </tr> "; $sql2 = mysql_query("SELECT `affiliate`.`name`, `affiliate`.`service`, `schedule_distribution`.`confirmation` FROM `affiliate`, `schedule_distribution` WHERE `affiliate`.`affiliate_id` = `schedule_distribution`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$order_data[order_id]' "); while($vendor_data = mysql_fetch_array($sql2)) { echo " <tr>
199
<td colspan='3' align='center'>$vendor_data[name]</td> <td>$vendor_data[service]</td> <td colspan='3'>$vendor_data[confirmation]</td> </tr> "; } echo" </table> "; } echo" </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "event_frequency") { echo" <tr> <td align='center'> <b>Event Package Order Frequency Report</b> </td> </tr> <tr> <td> <br> <table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='#91b9fc' align='center'>Event Package</th> <th bgcolor='#91b9fc' align='center'>Frequency Ordered</th> </tr>
200
"; $sql = mysql_query("SELECT `event`.`event`, Count(*) AS Frequency FROM `event`, `order` WHERE `event`.`event` = `order`.`event` GROUP BY `event`.`event` ORDER BY Count(*)"); while($data = mysql_fetch_array($sql)) { echo" <tr> <td align='center'>$data[event]</td> <td align='center'>$data[Frequency]</td> </tr> "; } echo" </table> </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "affiliate_frequency") { echo" <tr> <td align='center'> <b>Favourite Affiliate Company Report</b> </td> </tr> <tr>
201
<td> <br> <table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='#91b9fc' align='center'>Id</th> <th bgcolor='#91b9fc' align='center'>Name</th> <th bgcolor='#91b9fc' align='center'>Service</th> <th bgcolor='#91b9fc' align='center'>Total order</th> </tr> "; $sql = mysql_query("SELECT `affiliate`.`affiliate_id` , `affiliate`.`name` , `affiliate`.`service` , Count( * ) AS Frequency FROM `affiliate` , `schedule_distribution` WHERE `affiliate`.`affiliate_id` = `schedule_distribution`.`affiliate_id` GROUP BY `affiliate`.`name` ORDER BY Count( * ) DESC"); while($data = mysql_fetch_array($sql)) { echo" <tr> <td align='center'>$data[affiliate_id]</td> <td align='center'>$data[name]</td> <td align='center'>$data[service]</td> <td align='center'>$data[Frequency]</td> </tr> "; } echo" </table> </td> </tr> <tr> <td align='center'>
202
<br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "customer_order") { echo" <tr> <td align='center'> <b>Customer & Order Report</b> </td> </tr> <tr> <td> "; $sql = mysql_query("SELECT * FROM `customer`"); while($data = mysql_fetch_array($sql)) { echo" <br> <table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='#91b9fc' align='center'>Id</th> <th bgcolor='#91b9fc' align='center' colspan='2'>Name</th> <th bgcolor='#91b9fc' align='center' colspan='2'>E-mail</th> <th bgcolor='#91b9fc' align='center' colspan='2'>Phone</th> </tr> <tr> <td align='center'>$data[customer_id]</td> <td align='center' colspan='2'>$data[name]</td> <td align='center' colspan='2'>$data[e_mail]</td> <td align='center' colspan='2'>$data[phone]</td>
203
</tr> <tr> <th bgcolor='#91b9fc' align='center'>Order_id</th> <th bgcolor='#91b9fc' align='center'>Date</th> <th bgcolor='#91b9fc' align='center'>Event</th> <th bgcolor='#91b9fc' align='center'>Event date</th> <th bgcolor='#91b9fc' align='center'>Time</th> <th bgcolor='#91b9fc' align='center'>Pay mode</th> <th bgcolor='#91b9fc' align='center'>Status</th> </tr> "; $sql2 = mysql_query("SELECT * FROM `order` WHERE `customer_id` = '$data[customer_id]'"); while($data2 = mysql_fetch_array ($sql2)) { echo" <tr> <td align='center'>$data2[order_id]</td> <td align='center'>$data2[date]</td> <td align='center'>$data2[event]</td> <td align='center'>$data2[event_date]</td> <td align='center'>$data2[event_time]</td> <td align='center'>$data2[pay_mode]</td> <td align='center'>$data2[pay_status]</td> </tr> "; } $sql3 = mysql_query("SELECT Count(*) AS Total FROM `order` WHERE `customer_id`='$data[customer_id]'"); $data3 = mysql_fetch_array($sql3); echo" <tr>
204
<td align='center' colspan='5'>Total no. of order</td> <td align='center' colspan='2'>$data3[Total]</td> </tr> </table> "; } echo" </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "payment_all") { echo" <tr> <td align='center'> <b>All Payment Report</b> </td> </tr> <tr> <td> <br> <table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='#91b9fc' align='center'>Id</th> <th bgcolor='#91b9fc' align='center'>Order id</th> <th bgcolor='#91b9fc' align='center'>Date</th> <th bgcolor='#91b9fc' align='center'>Amount</th> <th bgcolor='#91b9fc' align='center'>Remain</th>
205
</tr> "; $sql = mysql_query("SELECT * FROM `payment`"); while($data = mysql_fetch_array($sql)) { echo" <tr> <td align='center'>$data[payment_id]</td> <td align='center'>$data[order_id]</td> <td align='center'>$data[date]</td> <td align='center'>$data[amount]</td> <td align='center'>$data[remain]</td> </tr> "; } echo" </table> </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "payment_thismonth") { echo" <tr> <td align='center'> <b>Current Month Income Report</b> </td> </tr> <tr> <td> <br>
206
<table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='#91b9fc' align='center'>Id</th> <th bgcolor='#91b9fc' align='center'>Order id</th> <th bgcolor='#91b9fc' align='center'>Date</th> <th bgcolor='#91b9fc' align='center'>Amount</th> <th bgcolor='#91b9fc' align='center'>Remain</th> </tr> "; $year = date("Y"); $month = date("m"); $sql = mysql_query("SELECT * FROM `payment` WHERE Year(`date`) = '$year' AND Month(`date`) = '$month' "); while($data = mysql_fetch_array($sql)) { echo" <tr> <td align='center'>$data[payment_id]</td> <td align='center'>$data[order_id]</td> <td align='center'>$data[date]</td> <td align='center'>$data[amount]</td> <td align='center'>$data[remain]</td> </tr> "; } echo" </table> </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td>
207
</tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "payment_last3months") { echo" <tr> <td align='center'> <b>Last 3 Months Income Report</b> </td> </tr> <tr> <td> <br> <table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='#91b9fc' align='center'>Id</th> <th bgcolor='#91b9fc' align='center'>Order id</th> <th bgcolor='#91b9fc' align='center'>Date</th> <th bgcolor='#91b9fc' align='center'>Amount</th> <th bgcolor='#91b9fc' align='center'>Remain</th> </tr> "; $year = date("Y"); $month = date("m"); $pmonth = $month - 3; $sql = mysql_query("SELECT * FROM `payment` WHERE Year(`date`) = '$year' AND Month(`date`) BETWEEN '$pmonth' AND '$month' "); while($data = mysql_fetch_array($sql)) { echo" <tr> <td align='center'>$data[payment_id]</td> <td align='center'>$data[order_id]</td> <td align='center'>$data[date]</td>
208
<td align='center'>$data[amount]</td> <td align='center'>$data[remain]</td> </tr> "; } echo" </table> </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } elseif($_GET[module] == "report" && $_POST[type] == "payment_receivable") { echo" <tr> <td align='center'> <b>Expected Income Report</b> </td> </tr> <tr> <td> <br> <table width='600' border='1' cellspacing='0' cellpadding='0'> <tr> <th bgcolor='#91b9fc' align='center'>Order id</th> <th bgcolor='#91b9fc' align='center'>Date</th> <th bgcolor='#91b9fc' align='center'>Event</th> <th bgcolor='#91b9fc' align='center'>Event date</th> <th bgcolor='#91b9fc' align='center'>pay_mode</th>
209
<th bgcolor='#91b9fc' align='center'>Price</th> <th bgcolor='#91b9fc' align='center'>Payable</th> </tr> "; $total = 0; $sql = mysql_query("SELECT * FROM `order` WHERE `pay_status` = 'unpaid' OR `pay_status` = 'half' "); while($data = mysql_fetch_array($sql)) { echo" <tr> <td align='center'>$data[order_id]</td> <td align='center'>$data[date]</td> <td align='center'>$data[event]</td> <td align='center'>$data[event_date]</td> <td align='center'>$data[pay_mode]</td> "; if($data[pay_mode] == "half") { $divide = 2; } else { $divide = 1; } $sql2 = mysql_query ("SELECT `price`, `price`/$divide AS Payable FROM `event` WHERE `event` = '$data[event]'"); $data2 = mysql_fetch_array($sql2); echo" <td align='center'>$data2[price]</td> <td align='center'>$data2[Payable]</td> </tr> "; $total = $total + $data2[Payable]; } echo"
210
<tr> <td bgcolor='#91b9fc' align='center' colspan='5'>Total</td> <td bgcolor='#91b9fc' align='center' colspan='2'>SGD $total</td> </tr> </table> </td> </tr> <tr> <td align='center'> <br><br><a href='javascript:window.print()'>Print This Report</a> - <a href='report_generator_ad.php?module=select'>Back</a> </td> </tr> "; } ?> </table> </td> </tr> <tr> <?php include "footer.php"; ?> </tr> </table> </div> </body> </html> <?php } ?>
Edit_order_process_ad.php <?php session_start(); if ($_SESSION[status]!="admin") { header("location:login.php?mode=admin"); } else { include "config/connection.php"; $esql = mysql_query ("SELECT * FROM `order` WHERE `order_id` = '$_POST[id]'");
211
$order_ori = mysql_fetch_array($esql); $sql2 = mysql_query("SELECT * FROM `schedule` WHERE `date` = '$_POST[date]' AND `date` NOT IN('$order_ori[event_date]')"); $sched_exist = mysql_num_rows($sql2); if($sched_exist >= 1) { header("location:admin.php?info=fail"); } else { if($order_ori[event_date] == $_POST[date]) { $sched_id = $order_ori[schedule_id]; } else { $add_sched = mysql_query("INSERT INTO `schedule` (`date`) VALUES ('$_POST[date]')"); $get_sched = mysql_query("SELECT * FROM `schedule` WHERE `date` = '$_POST[date]'"); $sched_data = mysql_fetch_array($get_sched); $sched_id = $sched_data[schedule_id]; } $sql1 = mysql_query("SELECT * FROM `customer` WHERE `customer_id` = '$_POST[customer]'"); $cust_data = mysql_fetch_array($sql1); $cust_id = $cust_data[customer_id]; $today_date = date("Y/m/d"); $update_order = mysql_query("UPDATE `eodb`.`order` SET `schedule_id` = '$sched_id', `event` = '$_POST[package]', `event_date` = '$_POST[date]', `event_time` = '$_POST[time]', `additional_info` = '$_POST[additional_info]', `pay_mode` = '$_POST[payment_mode]',
212
`pay_status` = '$_POST[pay_status]' WHERE `order`.`order_id` =$_POST[id]"); $title = "Order change for $_POST[date]"; $from = "From: [email protected]\n"; $from .= "Content-type: text/html \r\n"; $message = "There is a change in order detail or You got an order for $_POST[date] please confirm your availability: <br>"; $message .= "<a href='http://localhost/eowebsite/login.php?mode=affiliate'>http://localhost/eowebsite/login.php?mode=affiliate</a>"; if($_POST[venue] != "") { $check_aff = mysql_query("SELECT `schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail` FROM `schedule_distribution`,`affiliate` WHERE `schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$_POST[id]' AND `affiliate`.`service` = 'venue' "); $affiliate_ori = mysql_fetch_array($check_aff); if($affiliate_ori[name] == $_POST[venue]) { $to = $affiliate_ori[e_mail]; mail ($to,$title,$message,$from); } else { $delete = mysql_query("DELETE FROM `schedule_distribution` WHERE `schedule_distribution`.`order_id` = '$_POST[id]' AND `schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]' LIMIT 1 "); $venue_vendor = mysql_query("SELECT * FROM `affiliate` WHERE `name` = '$_POST[venue]'");
213
$venue_data = mysql_fetch_array($venue_vendor); $venue_id = $venue_data[affiliate_id]; $sql3 = mysql_query ("INSERT INTO `schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`) VALUES ('$sched_id','$venue_id','$_POST[id]')"); $to = $venue_data[e_mail]; mail ($to,$title,$message,$from); } } if($_POST[food] != "") { $check_aff = mysql_query("SELECT `schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail` FROM `schedule_distribution`,`affiliate` WHERE `schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$_POST[id]' AND `affiliate`.`service` = 'food'"); $affiliate_ori = mysql_fetch_array($check_aff); if($affiliate_ori[name] == $_POST[food]) { $to = $affiliate_ori[e_mail]; mail ($to,$title,$message,$from); } else { $delete = mysql_query("DELETE FROM `schedule_distribution` WHERE `schedule_distribution`.`order_id` = '$_POST[id]' AND `schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]' "); $food_vendor = mysql_query("SELECT * FROM `affiliate` WHERE `name` = '$_POST[food]'"); $food_data = mysql_fetch_array($food_vendor); $food_id = $food_data[affiliate_id]; $sql4 = mysql_query ("INSERT INTO `schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`) VALUES ('$sched_id','$food_id','$_POST[id]')");
214
$to = $food_data[e_mail]; mail ($to,$title,$message,$from); } } if($_POST[documentation] != "") { $check_aff = mysql_query("SELECT `schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail` FROM `schedule_distribution`,`affiliate` WHERE `schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$_POST[id]' AND `affiliate`.`service` = 'documentation'"); $affiliate_ori = mysql_fetch_array($check_aff); if($affiliate_ori[name] == $_POST[documentation]) { $to = $affiliate_ori[e_mail]; mail ($to,$title,$message,$from); } else { $delete = mysql_query("DELETE FROM `schedule_distribution` WHERE `schedule_distribution`.`order_id` = '$_POST[id]' AND `schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]' "); $doc_vendor = mysql_query("SELECT * FROM `affiliate` WHERE `name` = '$_POST[documentation]'"); $doc_data = mysql_fetch_array($doc_vendor); $doc_id = $doc_data[affiliate_id]; $sql5 = mysql_query ("INSERT INTO `schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`) VALUES ('$sched_id','$doc_id','$_POST[id]')"); $to = $doc_data[e_mail]; mail ($to,$title,$message,$from); } } if($_POST[publication] != "") {
215
$check_aff = mysql_query("SELECT `schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail` FROM `schedule_distribution`,`affiliate` WHERE `schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id` AND `schedule_distribution`.`order_id` = '$_POST[id]' AND `affiliate`.`service` = 'publication'"); $affiliate_ori = mysql_fetch_array($check_aff); if($affiliate_ori[name] == $_POST[publication]) { $to = $affiliate_ori[e_mail]; mail ($to,$title,$message,$from); } else { $delete = mysql_query("DELETE FROM `schedule_distribution` WHERE `schedule_distribution`.`order_id` = '$_POST[id]' AND `schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]' "); $pub_vendor = mysql_query("SELECT * FROM `affiliate` WHERE `name` = '$_POST[publication]'"); $pub_data = mysql_fetch_array($pub_vendor); $pub_id = $pub_data[affiliate_id]; $sql6 = mysql_query ("INSERT INTO `schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`) VALUES ('$sched_id','$pub_id','$_POST[id]')"); $to = $pub_data[e_mail]; mail ($to,$title,$message,$from); } } if($_POST[entertainment] != "") { $check_aff = mysql_query("SELECT `schedule_distribution`.`affiliate_id`, `affiliate`.`name`, `affiliate`.`e_mail` FROM `schedule_distribution`,`affiliate` WHERE `schedule_distribution`.`affiliate_id` = `affiliate`.`affiliate_id`
216
AND `schedule_distribution`.`order_id` = '$_POST[id]' AND `affiliate`.`service` = 'entertainment'"); $affiliate_ori = mysql_fetch_array($check_aff); if($affiliate_ori[name] == $_POST[entertainment]) { $to = $affiliate_ori[e_mail]; mail ($to,$title,$message,$from); } else { $delete = mysql_query("DELETE FROM `schedule_distribution` WHERE `schedule_distribution`.`delete_id` = '$_POST[id]' AND `schedule_distribution`.`affiliate_id` = '$affiliate_ori[affiliate_id]' "); $ent_vendor = mysql_query("SELECT * FROM `affiliate` WHERE `name` = '$_POST[entertainment]'"); $ent_data = mysql_fetch_array($ent_vendor); $ent_id = $ent_data[affiliate_id]; $sql7 = mysql_query ("INSERT INTO `schedule_distribution` (`schedule_id`,`affiliate_id`,`order_id`) VALUES ('$sched_id','$ent_id','$_POST[id]')"); $to = $ent_data[e_mail]; mail ($to,$title,$message,$from); } } header("location:admin.php?info=success"); } } ?>