Williams Chukwudi

Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

Chukwudi Kingsley Williams

Online Invoice Management System


Software as a Service

Metropolia University of Applied Sciences


Bachelor of Engineering
Information Technology
Thesis
9 November 2017
Abstract

Author Chukwudi Kingsley Williams


Title Online Invoice Management System
Software as a Service
Number of Pages 31 pages
Date 9 November 2017

Degree Bachelor of Engineering

Degree Programme Information Technology

Specialization Software Engineering

Instructors Daniel Zaririyan, CEO Web2Fix Oy


Kari Aaltonen, Principal Lecturer

This project aims at developing a robust online invoicing application based on the Software
as a Service model. The system, called ProInvoicer, is designed to contain five important
modules: Customer Relationship, Inventory Management, Order Management, Invoice
Management and Report modules. With Small and Medium-sized Enterprises in mind, it
serves as a cost-efficient alternative to expensive software solutions provided by installing
business applications for companies on their premises.

In addition to generating and sending invoices in an easy and automated fashion, the sys-
tem will enable its users to manage their customer information, stock details, orders and
sales more effectively. However, since invoices are one of the most important documents
exchanged between business partners, they should be presented in conformity with mod-
ern day technology and through digitized channels, which include web and SMS. This re-
sults in positive business outcomes and taxation transparency.

Though Software as a Service is one of the cloud computing service models, this thesis
does not discuss cloud computing in detail. Instead, the emphasis is on the features and
functionality of the application being developed in this project. The project was carried out
in a startup IT company, Web2Fix Oy, based in Helsinki Finland.

Keywords Invoice, SaaS, Invoicing system, E-invoicing, Online invoicing,


PHP, MySQL
Contents

List of Abbreviations

1 Introduction 1

2 Software as a Service 2

2.1 History 2
2.2 The Software as a Service Concept 3
2.3 Single-Tenant 4
2.4 Multi-Tenant 5
2.5 Benefits of Software as a Service 5

3 Invoice Management 8

3.1 Paper Invoicing 10


3.2 Electronic Invoicing (E-invoicing) 11
3.3 Online Invoicing 11
3.4 Benefits of Online Invoicing 12

4 Application Overview 14

4.1 The ProInvoicer System 14


4.2 Customer Relationship Module 15
4.3 Order Management Module 18
4.4 Inventory Management Module 20
4.5 Invoice Management Module 22
4.6 Reports Module 23
4.7 System Functionality and Features 24

5 System Development 26

5.1 Development Tools and Technologies 26


5.2 Implementation 29

6 Conclusion 31

References 32
List of Abbreviations

ERP Enterprise Resource Planning.

IMS Inventory Management System.

CRM Customer Relationship Management.

SaaS Software as a Service.

SMEs Small and Medium-sized Enterprises.

LAN Local Area Network.

ASP Application Service Provider.

EDI Electronic Data Interchange.

XML Extensible Markup Language.

AJAX Asynchronous JavaScript and XML.

API Application Programming Interface.

IDE Integrated Development Environment.

SSH Secure Shell.

ODBC Open Database Connectivity.

PDO PHP Database Object.

PHP Hypertext Pre-processor.

JSON JavaScript Object Notation.

HTML Hypertext Markup Language.


CSS Cascading Style Sheet.
1

1 Introduction

The internet, without doubt, has played an important role in digitalizing business pro-
cesses across companies and organizations of all sizes. It has introduced multiple new
channels through which businesses can interact with their customers. A report by Gart-
ner, an Information Technology (IT) research institution, reveals that 70% of all customer
interactions will move towards digital, more interactive settings and would be experi-
enced on demand through mediums such as web, mobile and social media platforms by
2017. The generation of today understands technology more than ever and require ser-
vices delivered as quickly as possible, whenever and wherever they desire.

Nowadays, invoices, which are one of the most important documents exchanged be-
tween business partners, should be produced with the intention of disseminating them
to a broader range of devices through multiple channels which include web and SMS.
Handling invoices, product inventory, customer relations and other business transactions
via the internet have been found to be a cost-effective way of accomplishing such tasks.
Industry experts predict that communication via internet invoices will enable issuers in-
fluence customer behavior in a positive way.

To achieve all these, companies do not have to make huge capital investments by pur-
chasing and maintaining software licenses for applications like Enterprise Resource
Planning (ERP), Inventory Management System (IMS) and Customer Relationship Man-
agement (CRM) systems and installing them on individual hardware on the business
premises. They can instead contain costs, deploy solutions quicker and minimize risk by
signing up to use the same application but hosted by a third party and delivered over the
internet. This concept is called Software as a Service (SaaS). It is a software licensing
and distribution model where applications are hosted by a service provider and delivered
to multiple clients over the internet. This is the model that has been adopted in creating
ProInvoicer, the application whose development has been described in this thesis.

ProInvoicer is a feature-rich business application in which Customer Relationship, Inven-


tory Management, Order Management and Invoice Management Systems have been
integrated and served to customers over the internet. Its purpose is to bring an inexpen-
sive and easy solution to the business operation needs of customers especially the Small
and Medium-sized Enterprises (SMEs). The system allows users to create and send
2

invoices in their own language while their customers receive the invoices in customer-
preferred language. It is owned, developed and maintained by Web2Fix Oy, a small IT
company based in Helsinki, Finland.

2 Software as a Service

2.1 History

In the 1960s, computers were relatively large but limited in capacity compared to what
they are today. IBM’s computers at the time, had more processing power but were quite
a lot more expensive and costly to maintain. Rather than spending fortunes in acquiring
these machines, organizations such as banks, educational institutions and government
establishments leveraged the services of IBM by utilizing their mainframe’s capabilities
to host data from another physical location while the organizations themselves con-
nected their keyboards and monitors with no CPUs, via hubs to multiple terminals. This
model was called "time sharing system" and because of its nature, it was considered the
first introduction to the SaaS concept. The popularity of this system continued throughout
the 1970s and 1980s. It was during this time that the first ever CRM came to life. The
system was run via allocated modem and phone line for data transmission to and from
clients. [1; 2.]

As the prices and sizes of computers began to fall during the 1990s, businesses thought
it necessary for their staff to have personal computers within their work environment
which were equipped with on premise applications. This eliminated the need for reliance
on time-sharing system. However, this did not bring about the total eradication of SaaS.
It instead transformed through Local Area Networks (LANs). This time, applications were
installed and hosted on machines in-house, while business data was stored on a central
server. Therefore, connections were made through LAN to access data and applications.
This arrangement can be viewed as cloud computing in its early form. [2.] This method-
ology, however, also had its constraints as the sizes of software grew in volume and
complexity more than computer hardware could handle. These issues became even
more difficult to solve with the high cost of hard drives despite their small capacity. In the
years following, the availability of fast broadband connections paved way for the intro-
duction of the idea of storing and hosting data off-site and accessing it via internet. Ini-
tially, this concept was called Application Service Provider (ASP) instead of SaaS. The
3

practice was a failure due to ASP companies’ inability to deliver on their promise. These
companies hosted and offered multiple client-server applications provided by third-party,
while SaaS companies develop their own applications and deliver them using a multi-
tenant model which has proven to be a reliable and technically feasible means of data
management and software delivery till date. [3.] Figure 1 concisely illustrates the evolu-
tion of SaaS since the first conception of the idea to its maturity and wider adoption.

Figure 1. SaaS timeline. Reprinted from Brandall (2017) [1].

As illustrated in Figure 1, the steady growth of SaaS is a pointer to the future of software
services. This trend has continued till date, with most SaaS providers such as salesforce,
offering subscription-based, off-premise, enterprise grade applications using the multi-
tenant architecture.

2.2 The Software as a Service Concept

SaaS is a software licensing and distribution model where applications are hosted by a
service provider and delivered to multiple clients over the internet. These applications
are accessed via internet browsers by users who are charged subscription fees on re-
curring bases monthly or annually. The cost directly reflects the level of usage.
Salesforce.com, a CRM tool, is a typical example of this model in use. A typical SaaS
deployment model removes the responsibility of installing and maintaining additional
hardware or software from the customer and puts it on the vendor. This implies that the
4

vendor owns the entire cost of infrastructure, training, support, upgrades, storage, data-
base, and security responsibilities. [4.] Figure 2 clearly illustrates the architecture of a
typical SaaS model.

Figure 2. SaaS architecture. Reprinted from Cloud Computing and Software as a Service: An
Overview for Security Professionals [5].

As shown in figure 2, all the infrastructure within the area covered by a dotted rectangle
is owned and maintained by the SaaS provider. The end user or group of users are only
given remote access to a finished and fully operational application with no extra respon-
sibility. What differentiates the SaaS model architecture from that of a traditional software
model is the number of tenants or customers the application can support.

2.3 Single-Tenant

This model is depicted in traditional software models where a customer purchases and
installs a single instance of a software on a server which runs the application just for that
particular customer user group. This architecture allows no room for sharing.
5

2.4 Multi-Tenant

The idea of this model is that multiple customers share a single instance of a software
application and the accompanying back-end hardware infrastructure, while customer
data in the database are uniquely and logically separated for each customer. SaaS mod-
els are usually multi-tenant in architecture. [4.]

2.5 Benefits of Software as a Service

There is a countless number of advantages associated with the use of SaaS solutions
for business applications. These advantages have been described below.

• Cost

Gartner reported that over 75% of total IT budget goes into the maintenance and
running of existing software and systems infrastructure. They also estimated that
the cost of ownership and management of software applications in one year can
be four times that of the software license itself. In addition, the Wall Street Journal
was told by Microsoft in 2002 that the initial cost of a program only amounts to
5% of its total cost of ownership and maintenance. After its analysis of the web
conferencing industry, IDC, a global research enterprise, postulated that 70% of
the total cost of running conferencing software on premise is spent on hidden
personnel costs. The IT expenditure for a typical organization is shared between
software, hardware and people services. However, based on the above reports,
it can be discovered that hardware and professional services consume the most
portion of IT budgets. [4.]

With the SaaS model, the customer is offered an immense saving potential since
the SaaS provider assumes the responsibility of purchasing and maintaining all
the server hardware, hosting and supporting relevant applications with the at-
tendant personnel teams; all at the vendor location, in exchange for subscription
fees. In this way, the customers do not have to buy software licenses. They only
pay for what they use and the subscription can be cancelled anytime without any
substantial loss of initial investment. [4.]
6

• Mobile ready

SaaS solutions, unlike traditional applications, are technically more adapted to


today’s world which has a high mobile usage trend. Majority of the available SaaS
applications are currently built to also support compatibility with mobile interfaces
and clients. This consequently impacts less on the desktop computers and helps
extend their lifecycle, thereby creating more savings for the customer. [6;4.]

• Easy Deployment (Saves Time)

Implementation procedures required for using SaaS applications consume only


a fraction of the time and cost required for traditional applications. In view of the
fact that the software is already operative on the SaaS provider’s servers, the
user only requires Internet connection, browser and user account setup to start
using the application. Contrary to this, traditional software implementation in-
volves lengthy installation and configuration processes with all the issues that
may arise while carrying out these tasks. [7.]

• Fast and Easy Upgrade

In traditional applications, gaining access to technology enhancements and up-


grades, most times require customers to wait until the next upgrade is released.
In some cases, an organizational infrastructure improvement would be required
or a change in operating system. The implementation of a new release some-
times becomes infeasible given the size of additional capital expense involved.
This is however, significantly less cost-efficient and much easier with a SaaS
solution. Ongoing product improvements are instantly available to all customer
organizations immediately they are released. And since the SaaS vendor is re-
sponsible for all updates and upgrades, customers are relieved from the burden
of downloading or installing any patches. This also implies that at any given time,
customers are served with the latest version of the application. [7;8.]

• Scalability and Flexibility

There is always the assurance that the application can be scaled up in tandem
with growing customer demand. Therefore, consumers do not have to worry
7

about acquiring additional computing infrastructure. Notably, this is one of the


advantages offered by the multi-tenant architecture. [4.]

• Accountability of the SaaS Vendor

Since SaaS customers only pay an ongoing subscription based fee for the dura-
tion of their contract term, providers are obligated to be more accountable than
traditional software vendors. And because the SaaS providers’ performance is a
critical factor to their remaining in business, they undoubtedly would be commit-
ted to giving excellent service to their customers. On the other hand, traditional
software vendors receive large upfront payments as license fees; and their re-
sponsibility is considerably reduced after software deployment. [4.]

• Easy Access

Since SaaS applications are available on the web, customers only require a com-
puter or mobile device that is equipped with internet access and a web browser
to access their application anytime, anywhere. Since most of the current cus-
tomer population are always engaged in online activity, they therefore expect or-
ganizations to communicate with them via their medium of choice. This also pro-
vides traveling employees remote access to real-time work data which enhances
productivity and convenience. Also, the learning curve for SaaS applications is
relatively short, with almost the entire modern day population having internet use
experience. [8.]
8

3 Invoice Management

An invoice is a commercial document which contains billing information that derives from
sales transactions between a supplier and a buyer. In other words, it represents a written
verification of the delivery of goods and services from a seller to a buyer. Invoices are an
important part of the bookkeeping and accounting processes of any business because
they hold sales and transaction records. [9.]

According to Enterprise Finland, the minimum data to be contained in an invoice is stip-


ulated by the Value-Added Tax Act, which includes:

• Date of issue of the invoice.


• Identifier for individualising the invoice.
• The seller’s VAT ID (Business ID).
• The purchaser’s VAT ID in cases of reverse charge in value added taxation
and in intra-Community trade.
• The seller’s and purchaser’s name and address.
• The quantity and nature of the goods, and/or the extent and nature of the
services.
• The delivery date for the goods and/or date of providing services or the
date of advance payment.
• Tax basis, tax-free price by tax rate, unit price excluding tax and refunds
and discounts, if not taken into account in the unit price.
• The tax rate.
• The amount of tax to be paid.
• Reason for tax exemption or for reverse charge in value added taxation.

In special cases, it is required that the invoice should also carry other information. [10.]
However, it is important to acknowledge the fact that the invoice is not a solitary docu-
ment. As portrayed in figure 3, it is associated with several other supply chain business
processes, which include contracting, order, delivery, payment and taxation.
9

Figure 3. Invoice in a business process. Reprinted from Ali (2016) [11].

Invoices constitute some of the most valuable documents exchanged between business
partners, including government institutions. Companies exchange enormous number of
invoices daily, both in electronic and paper formats. The real obstacle lies on how effi-
ciently and quickly the invoicing process is handled from order initiation to delivery and
payment for goods or services. An invoice management system helps to simplify and
organise this process and thereby enhance process transparency. [12.]

The invoice management system generates, sorts and classifies invoices automatically.
It also monitors invoice status and sends notifications where necessary. Invoices are
automatically archived for the long term. With invoice management structures in place,
the quality of invoice data is improved.

Although invoices can be issued in a traditional printed format, e-invoicing provides meth-
ods of invoice transmission and processing via electronic means. The major difference
between e-invoices and traditional paper invoices is the automated process involved in
e-invoices. [9.]
10

3.1 Paper Invoicing

In spite of today's extensive advancement in digital technology, 90% of the estimated 30


billion invoices exchanged annually in Europe are in paper format. Manual processing of
paper invoices has been seen to be among the greatest issues faced by the accounting
departments in various businesses. It is time consuming, expensive, labour intensive
and susceptible to error, and it has negative environmental effects. With manual han-
dling, invoice reconciliation processes are bound to be slow, and this may give rise to
delayed payments and may further affect business relationships.

Since manually processed invoices are printed and sent by mail, there exists the possi-
bility or risk of invoices getting lost in transit. According to Quocirca, the average cost of
raising a single unit of paper invoice is €8, while the receiving cost is €10. On the other
hand, generating electronic invoices cost only €2. [13.] Figure 4 illustrates a typical man-
ual invoicing process.

Figure 4. Manual invoicing process. Reprinted from Fernandes et al (2011) [13].

Companies where invoices are manually processed have unsafe exposure to avoidable
financial burdens in various areas including storage and archiving of paper invoices;
losses may also be incurred in resolution of invoicing disputes. Reliance on paper in-
voices is a source of additional challenges for bookkeeping and auditing functions. Even
meeting European VAT audit requirements may become quite difficult. [13.]
11

3.2 Electronic Invoicing (E-invoicing)

E-invoicing is not a completely new concept. It has been in existence since the 1960s,
but was only used by large aviation and car manufacturing companies. It was adopted
by these companies for the purpose of speeding up business information processing
tasks to enhance their competitive advantage. The form of e-invoicing solutions available
in those days were called EDI (Electronic Data Interchange). These solutions required a
very compact relationship between trading partners and were more suitable for large
enterprises. Though EDI implementation is very cost-intensive, it has remarkably re-
mained one of the predominant invoicing channels among big organizations till date;
however, it is rarely used by smaller companies. The modern method being adopted
today for the transfer of standardised text files is XML (Extensible Markup Language).
This standard has not been widely accepted since XML is a relatively new technology.
The more generally prevalent medium for electronic invoice transfer is as a PDF attach-
ment to an email. [13.]

The legal framework in most countries (Europe, North America, Pacific etc.) describes
e-invoices as invoices exchanged in any electronic format which is devoid of paper [14].
Electronic invoicing has been confirmed to be one of the most crucial sources of im-
proved productivity across Europe [15].

3.3 Online Invoicing

A recent Gartner research disclosed that service providers are eager to eliminate paper
invoices by sending invoices to their customers via email. On the other hand, customers
are very much willing to move online. Findings from a Coleman Parkes consumer re-
search revealed that consumers are ready to embrace self-service. Almost all respond-
ents claimed that they would be happy to recommend their service provider should their
self-service channel be more user-friendly. [16.]

Online Invoicing is a web based service that provides businesses with a simplified and
strategic way of generating and receiving invoices, tracking payments, monitoring sales
and more. It enables customers to view, save and pay bills using their web browser or
personal financial management software. An invoice can be directly presented from an
12

issuer's web site, or sent through a consolidator company's service or portal. Online in-
voicing solutions offer an inexpensive way of delivering invoice information to customers.
They also provide robust and advanced platforms that aid in keeping track of customer
information and transaction history, thereby enhancing customer care endeavours. This
way, companies can better channel their marketing programs, improve sales in a cost-
efficient way and widen their competitive edge. [17.]

3.4 Benefits of Online Invoicing

The following are some of the advantages of using online invoicing.

• Consumers:

1. Convenience

Various investigations have revealed that the processing time for a single paper
invoice costs consumers about five to ten minutes on the average. These pro-
cesses demand that the invoice be retrieved, sorted, opened, analysed, paid,
reconciled, mailed, and filed. In a month, this time could grow into two long hours
depending on the amount of invoice received. This lengthy and time consuming
process can be significantly shortened using online invoicing means. [17.]

2. Ease

Electronic invoicing adds speed and much needed efficiency to the bill payment
process by making invoices easy to access and manage. It makes the process
less cumbersome with a few mouse clicks. [17.]

• Invoice Issuers:

1. Low Cost
13

Reduced cost is one of the most significant reasons why companies adopt elec-
tronic invoicing. It whittles down, if not totally eliminate paper and postage costs.
Payment delays due to invoice handling are also eliminated. [17.]

2. Increased Functionality and Time Savings

By providing their customers with time saving functionalities and services


through technology, invoice issuers utilize every available opportunity to distin-
guish themselves from their competitors. Digitalizing business processes such
as the invoice-receiving and payment process would have a positive effect on a
company's image, and endear them to their customers. It also increases their
efficiency and enables them invest the saved time on their core business.
[17;15.]

3. User accounts held by invoice issuers can be a source of useful customer infor-
mation such as consumer preferences and buying patterns. This can enable
companies refine their marketing activity and provide the right marketing content
for their customers, and increase revenue. [17.]
14

4 Application Overview

4.1 The ProInvoicer System

The ProInvoicer system is a robust, cloud based and feature-rich invoicing system dis-
tributed under the Software as a Service model. Clients are given subscription based
access to the application, which requires payment of monthly or yearly subscription fees.
The fee rate depends on the package they subscribe to. Each package contains a range
of functionalities unlocked for a specific user group. Depending on the package, clients
are availed the opportunity to enter and maintain their customer information, enlist un-
limited number of products to their inventory, track their products and their availability on
each of their warehouses or store locations and even which shelves the products are
stored. They are also given unrestricted access to send unlimited invoices to any number
of customers. The system is equipped with multilingual capability. This allows users to
create and send invoices in their own language while their customers receive the in-
voices in customer-preferred language. The system has also been designed to be re-
sponsive and accessible through any device or screen size.

ProInvoicer incorporates five tightly integrated components: CRM module, Inventory


Management Module, Order Management Module, Invoice Management Module, and
Reports module. This means that there is quick and easy access to these services from
a single console. Its broad array of functionality is further enriched by integrations with
other third party services such as banking, email and SMS services. Currently, ProIn-
voicer is mainly targeted towards SMEs, most of whom do not have the large upfront
capital resources required to invest in full ERP systems. Most SMEs still struggle with
manual, paper-driven and labour-intensive processes. This system provides affordable
and automated invoice processing solution to their businesses, while facilitating other
business areas.

Though generated invoices can be printed and sent by post, the main target channel is
through email and SMS. With the ProInvoicer system, no software installation is required
on the part of the customer, neither is investment in new hardware infrastructure neces-
sary. Signing up to the service is done at http://www.prolasku.com/, which is at the final
15

stages of its development. After that, the users are redirected to the back-end admin-
istration panel where they can start using the system. As shown in figure 5, the ProIn-
voicer user interface is designed to be simple and easy to use.

Figure 5. The ProInvoicer Homepage.

The simplicity of the system’s homepage, as displayed in figure 5, makes it easy to nav-
igate all the modules contained in the application with a single click. From the dashboard,
a user can quickly access the customers, orders, invoicing, inventory or the reports mod-
ules.

4.2 Customer Relationship Module

The customer relationship module is tightly bound to the other modules, especially the
order management and invoicing modules. This module is of immense importance within
the system because it holds all customer details with which interactions are made with
customers; and these details are properly organised in logical order within the database.
A user or administrator can add, view, modify and delete customers at any time.

Opening the customer module from the dashboard reveals a list of already existing cus-
tomers that has been previously added. On top of these is an “add new customer” button.
When it is clicked, a form is displayed where the new customer details can be entered
and saved. There is also an option to send newsletters to the customer which can be
16

triggered by a checkbox. The idea is to give user companies and businesses the avenue
to influence customer behaviour and channel their marketing content to the right audi-
ence. The status checkbox is used for setting a customer profile active or inactive. An
inactive customer’s detail will remain stored in the database but a search for it within the
system will return an empty result. A user can also choose the language with which to
interact with the customer. By so doing, the invoices and notifications sent to the cus-
tomers are automatically converted to the customer's language before they are sent.
This eliminates any language barrier in communication. Figure 6 displays an “add new
customer” form.

Figure 6. Form to add new customer.

As shown in figure 6, the business information of the customer is to be entered in the


customer form, since they also appear in invoices sent to the customer as required by
law. The billing address details are required, whereas the shipping address details is
optional. They are only required if different from the billing address. Other optional con-
tents in the form are the credit limit offered to the customer, discount in percentage, and
payment period for issued invoices. When the form is completed and submitted, its fields
are verified and validated by a custom PHP function. On success, the form data is in-
serted into the appropriate database tables. Displayed in figure 7 is a customer profile
page.
17

Figure 7. Customer profile.

As shown in figure 7, each customer profile contains five menu items: Summary, Orders,
Invoices, emails and SMS. The Summary item holds three panels which includes Cus-
tomer details, Credit and Customer balance. The Customer details panel contains the
customer’s email address, website URL, billing address, phone number and the cus-
tomer’s preferred language. The Credit panel holds the credit limit the supplier has as-
signed to its customer. This means that when the total amount of invoice bills exceeds
this limit, the system immediately notifies the supplier. The Customer balance panel
shows the customer’s available balance. This balance is the total sum of all the cus-
tomer’s overpaid invoices.

The Orders menu item contains all Orders from that specific customer and they are dis-
played within cards which can be sorted in several ways. These include:

• Total orders – all orders from the customer


• Total draft orders – all orders still in draft mode, that is, those that have not
been delivered
• Total uninvoiced orders – all orders which their invoices have not been sent
• Total invoiced orders – all orders which their invoices have been sent
• Total cancelled orders – all cancelled orders
18

Clicking any of these cards will display all the orders in that category in a tabular list
under the following headers: Order number, Invoice number, Customer, Order total, Or-
der date, Shipping method, Delivery date, Reference, and Status. By employing AJAX
(Asynchronous JavaScript and XML) technology, the orders are listed according to the
header item selected by the user. These orders can be copied, printed or downloaded in
excel or PDF format. The Invoices menu item is quite similar to the Orders menu item.
All Invoices from a customer are displayed within cards and like the Orders, they are
sorted in the following ways:

• Total invoices
• Draft invoices
• Unpaid invoices
• Paid invoices
• Partially paid invoices
• Overdue invoices
• Collections invoices
• Cancelled invoices
• Refunded invoices

The email and SMS menu items contain the emails and SMS’s sent out to the customer
respectively.

4.3 Order Management Module

All customer purchase requests are first entered into the system as orders and this is
done in the Order Management Module. Orders are linked to the customer who has ini-
tiated them in the Customer Management Module. They are also linked to the products
the customer intends to purchase in the Inventory Management Module and orders can
easily be converted to invoices with a single click. Figure 8 shows a form for creating
new order.
19

Figure 8. Create new order form.

As shown in figure 8, the Order Management Module has two main submenus: The “Or-
der list” and the “Add new order” menu. When the “create new order” button is clicked, a
draft order is automatically created and a form is displayed which contains both prefilled
and empty fields for the order. The prefilled fields show the supplier company’s name,
business ID and address. Under this is a section for listing existing customers and sub-
sequently selecting the customer which the order belongs to. Another set of prefilled
fields shows the order number, order date, reference number, contact personnel and
delivery date. Above these are drop down menus where the supplier selects the shipping
method for delivering the item, the order status, the type of notifications to send to cus-
tomer’s email and phone: whether order confirmation, cancellation, modification, update
or pickup. The default order currency is the Euro, but there are multiple currency options
to choose from. The user can decide whether or not to include VAT to the product prices
by toggling the “VAT inclusive order” button. By clicking “Add an order line” button, mul-
tiple items can be ordered at the same time. In summary, each item’s quantity, discount,
unit price and total price are listed under the item and the order can be printed, down-
loaded or viewed in PDF format. Figure 9 shows a screen shot of an order list.
20

Figure 9. Order list.

On the other hand, as displayed in figure 9, the Order list pane shows all the orders and
their current status in a well organised tabular list. Orders can automatically be converted
to invoices by selecting the orders and clicking the “Convert to invoice” button. Orders
can also be combined into a single order by simply selecting a set of orders and clicking
the “Combine orders” button. However, above these is a collection of checkboxes repre-
senting all possible order statuses. They can be used for filtering the orders displayed
on the table depending on the status.

4.4 Inventory Management Module

The Inventory Management Module is the most complex module within the ProInvoicer
system. It is however, an important module as the functionality of the other modules
revolve around it in one way or another. In this module, users can enlist their products
and efficiently keep track of their inventory levels in their various warehouses or store
locations. Also, product records can be organised based on shelves existing within the
same or separate store locations. The system automatically updates inventory infor-
mation in real-time as orders and sales are made. Furthermore, users are notified when
21

products begin to run out of stock. For perishable items, products can also be tracked
depending on their expiry dates.

As can be seen in figure 10, the Inventory Management Module contains seven sub-
menus. They are: Product list, Categories, Stock units, Brands, Suppliers, Ware-
houses/Stores and Shelves.

Figure 10. Product list.

As figure 10 shows, in the Product list page, all items are organised in tables and can be
sorted based on which table header parameter is selected. Among the headers are
photo, name, category, reference number, barcode, selling price, selling price after VAT
and status. To easily find a product item, the search bar above the table can be used for
that purpose. On the left side of the table are product categories. Selecting any of them
will display only the items in that category within the table. However, it is pertinent to note
that products cannot be created without the existence of at least one category. Therefore,
it is important to create a single or more categories before adding a product. It is optional
to create brands, suppliers, stock units, warehouses and shelves. But these make prod-
uct identification easier.
22

Stock unit is an indication of the unit parameter applied in selling a product. For example,
drinks are sold in bottles, while books are sold in pieces; meaning that the stock unit for
drinks is bottle while that of books is piece. Brands play a role in differentiating products,
likewise suppliers. Products that share similar characteristics can easily be identified by
their brands and suppliers.

The Warehouse/Store functionality helps store owners maintain updated stock infor-
mation across shop or warehouse locations. Its accuracy and precision is even improved
when combined with the Shelves functionality. The user or administrator sees the most
recent product quantity anytime, from anywhere.

4.5 Invoice Management Module

The Invoice Management Module is where invoices are created and sent to customers.
The Customer Relation, Inventory and Order modules all function together to create in-
voices. There are two methods for creating an invoice: first is by clicking “Create new
invoice” button in the Invoice Management Module and filling the invoice form fields;
second is by converting an existing order to invoice. Invoices can be sorted according to
their status: Draft, Unpaid, Paid, Partially paid, Overdue, Collections, Cancelled and Re-
funded. Generated invoices can be sent to customers by email or SMS and the custom-
ers can make their payments through the invoice by connecting to their banks. This is
made possible by integrating Checkout Finland’s online payment API (Application Pro-
gramming Interface), a third-party payment service provider in Finland. Checkout offers
online payment solutions including payment connections with several Finnish financial
institutions, Visa, MasterCard, MobilePay and more. Invoices can also be viewed or
downloaded in PDF format.
23

Figure 11. PDF invoice.

Figure 11 shows a standard PDF invoice. It has been ensured that all necessary data
required by law for an invoice document is added to our invoices.

4.6 Reports Module

This module presents a summary of all transactions in concise and logical order. They
are presented as report summary, invoice reports, order reports, customer invoice re-
ports and income report. The report summary shows all orders, invoices and total income
24

in graphical illustration. Invoice reports and order reports show all invoice and order re-
lated transactions and their status. These can be filtered by date. Customer reports can
be viewed based on invoices for each individual customer as well as all customers. The
income report shows a summary of all income, the currencies applied, VAT percentage
rate and VAT amounts. The reports module provides significant advantage for book
keeping and accounting purposes.

4.7 System Functionality and Features

Although the ProInvoicer system has multiple features, only the most important from the
point of view of this study will be discussed here.

• Multilingual Capability: Users can send invoices in their own language by email
and SMS while their customers receive the invoices in customers' own language
of choice, anywhere in the world.

• Document Storage: All invoices and orders are stored in the database along with
payments and invoice status. They can be viewed or edited at any time and every
user gets unlimited storage capacity.

• Export to PDF: The system has an in-built PDF converter that allows invoices to
be viewed, downloaded or attached and sent via email in PDF format. Invoice or
order lists can also be downloaded in PDF, Excel or CSV (Comma Separated
Values) formats.

• Email and SMS Functionality: An invoice can be emailed as a PDF straight away
to a customer immediately it is generated. The system is also integrated with
SMS web service with which invoices can also be sent via SMS.

• Security: The system’s login and authentication system is military grade en-
crypted with double hashed 512bits encryption. This is done by combining the
login details of the visitor on each login attempt. After five failed login attempts,
the user's IP address is banned.
25

To restrict unwarranted access, three account types have been created for users:
The Administrator, the User and the Accountant account types. The administrator
account has unrestricted authorization to all permissions and has rights to create
new users and accountants. But a user account's rights are limited compared to
the administrator account, while an accountant's account is even more restricted.

• Location Management: ProInvoicer system enables users to add and manage an


unlimited number of store or warehouse locations and shelves in those locations
with ease. With this, they have access to the most up-to-date inventory levels
and ability to make adjustments with the click of a button.

• VAT Selector: Users are given the flexibility to create and apply VAT rates to
orders or invoices while generating them.

• Data Search: Specific invoices, orders or products can be searched from long
lists with any parameter such as ID, name or number.

• Currency Flexibility: Using Google API, the system applies relevant exchange
rates when currencies are being converted in invoices.

More features are being added to the system on a continuous basis. This is to ensure
that all customer needs are fully met and even exceeded.
26

5 System Development

5.1 Development Tools and Technologies

To enhance compatibility, the application was mostly developed and tested under a real
production environment. This is technically advisable since various development envi-
ronments may differ from the production environment in requirements; for instance, the
Apache version running on the server.

The application is hosted on a Linux based web server running Apache 2.4. The appli-
cation’s domain name is www.easycms.fi/admin. The server side scripting language
adopted was PHP, with MySQL as the Relational Database Management System. Ja-
vaScript was used for the client side scripting with jQuery library and AJAX technology.
Invariably, HTML and CSS were used for content presentation semantics and application
design. Sublime Text was the IDE (Integrated Development Environment) used and it
was connected to the remote server over the Internet using SSH (Secure Shell) en-
crypted tunnels.

• PHP

PHP stands for Hypertext Pre-processor, but it formerly stood for Personal Home
Pages. PHP is a server side scripting language used for creating dynamic web
content; that is, websites that users can interact with; that are not served stati-
cally. It can be used to store and retrieve data from a database and then present
it on a web page. To generate HTML, the PHP parser and a web server are
required. When a user requests a page, the PHP script is interpreted at the web
server by the PHP interpreter (also called parser), by executing the operations
prompted in the script. Notably, this process does not consume CPU resources.

Nowadays, PHP is also popularly used for generating XML documents, Flash
animations, graphics, PDF files, [19] which has become very important in the
project development. According to Greg Michillie from Google, three-quarters of
the entire website population around the world was powered by PHP in May
2013. However, by July 2016, this statistic had increased to more than 82%.
27

The entire back-end scripting of the ProInvoicer system has been done with PHP.
There are many good reasons for choosing PHP such as the ones listed below.

Performance: PHP codes execute with much faster speed than those of other
scripting languages such as ASP.NET or JSP. One server is enough to withstand
millions of hits in a single day.

Portability: PHP is compatible with all the major operating systems such as Mi-
crosoft Windows, Mac OS X and various Unix variants like Linux, FreeBSD,
Debian, Solaris and Ubuntu which is the operating system installed on Web2Fix
Oy’s computers. A functional PHP script can always be run on another platform
with ease.

Database Integration: PHP is known for having support for a vast array of data-
bases. It has flexible connectivity to all major database systems such as MySQL,
PostgreSQL, MS-SQL, Oracle, Sybase, DB2, and more. It is also compliant to
the Open Database Connectivity (ODBC) standard, with which connection can
be established with any database running the ODBC driver. Furthermore, there
is a database abstraction layer in PHP known as PHP Database Objects (PDOs),
which provides constant access and enhances secure programming practices.

Inbuilt Libraries: PHP comes with multiple inbuilt functions for various opera-
tions. With a few lines of code, PHP can easily perform a significant number of
tasks on the fly; for instance: generating PDF documents, GIF, JPEG, and PNG
images, parsing XML, connecting to web services, using cookies, sending emails
and much more.

Ease of Learning: It is quite easy to learn PHP. Since its syntax was adapted
from C and Perl. Having knowledge of these programming languages would en-
able beginners learn at a higher speed.

Cost: PHP is free for anyone to use and its latest version can be downloaded at
http://www.php.net.

• MySQL
28

MySQL is believed to be the most popular Open Source database management


system for web servers. It powers some of the most-high profile web applications.
It operates at extremely high speed without putting heavy pressure on system
resources and its usage comes at no financial cost. It is highly scalable, as it
grows proportionately with the website it stores data for.

• JavaScript

JavaScript is popularly known as the programming language for the web and it is
most commonly used for client-side development. It is compatible with a majority
of web browsers like Chrome, Firefox, Safari, Edge, Opera, and most browsers
in mobile devices. JavaScript was built to enable scripting manipulation of all the
elements of a HTML document. With it, users can dynamically interact with web
pages, enabling a more user-friendly experience such as animations, interactive
maps, validating form inputs and displaying prompts. To make our development
process much faster and easier, we utilized JavaScript via the jQuery library.

• jQuery

jQuery is a lightweight, fast and feature-rich JavaScript library which simplifies


tasks like DOM manipulation, event handling and Ajax. It makes it easier to create
extensive functionality with much less code than when regular JavaScript is em-
ployed. It is currently the most popular JavaScript library available and it is free
to download and use. Importantly, by abstracting away browser differences,
jQuery eliminates the need to write separate JavaScript code for different brows-
ers due to incompatibilities.

• Ajax

Ajax stands for Asynchronous JavaScript and XML. Ajax is a technology that pro-
vides a means by which data can be sent and retrieved from the server without
refreshing a web page. This communication between the browser and server
takes place in the background, and they are initiated by JavaScript code. Typi-
cally, when a response is received after a request is sent to a URL, the response
is handled by a call-back function. Due to the asynchronous nature of the request,
29

other parts of the code carry on with their execution as the request is being pro-
cessed. Although browsers have varying implementations for the Ajax API,
jQuery solves this issue by providing cross-browser Ajax support. In most jQuery
applications, data is being transported as plain HTML or JSON (JavaScript Ob-
ject Notation) rather than with XML.

• HTML

HTML (Hypertext Markup Language) is the web's most basic building block and
it is used for giving structure to a web page and its content. Meaning that it tells
the browser how to display a webpage. HTML is made up of a collection of ele-
ments which can be used for wrapping different parts of a web content.

• CSS

CSS stands for Cascading Style Sheets. It is a stylesheet language used for de-
scribing the appearance or presentation of a document written in HTML or XML.
It provides an easy mechanism for adding style to web documents. Being one of
the fundamental languages of the open web, CSS has cross-browser standardi-
zation which is determined by W3C specification.

5.2 Implementation

• Testing

At the end of every development cycle, the accomplished working prototype was
sent to a third-party software testing and evaluating company located in Amster-
dam, Netherlands. The bug results were then debugged.

• User Training

In some cases, users of the application require training to smoothly navigate the
system and utilize its features adequately. The extent of the training required is
determined by several factors. The most prominent of these are: the scope of use
30

which is determined by the package that has been subscribed, personnel tech-
nical ability and motivation.

For this reason, personnel from the first set of customer companies were brought
on site to undergo a few training sessions. On other occasions, staff from
Web2Fix Oy had to visit the customer. The adverse effect of this practice is the
loss of valuable time and cost. Also, the company has ambitions to grow in the
future to locations all over Finland and beyond. This would make dependence on
the present consultation strategy impractical. Consequently, free video tutorials
are being prepared to serve this purpose to enable users easily learn from any
location and at any time. Also, a plan is being made to produce a properly written
documentation to provide usage guidance for customers.

• Configuration

The only procedure required to begin using the system is signing up to the service
at http://www.prolasku.com. After that, a database is automatically created for the
user who is immediately redirected to the administration panel where usage of
the system can commence. Subsequently, users will have to correctly configure
their SMTP settings to be able to send emails and notifications. This configuration
can be done in the accounts area.
31

6 Conclusion

The main goal of this project was to develop an online invoicing system based on the
Software as a Service model. This has almost been accomplished, although wider dis-
tribution of the product has not commenced. The front-end website that will handle cus-
tomer subscriptions is currently under development at the time of writing and bugs are
still being fixed on the back-end administration panel. This is done in close cooperation
with a few early customers whose ongoing use of the system exposed some previously
hidden bugs.

Personally, I have acquired a significant amount of professional experience and expo-


sure to company environments and work ethics. I have also made progress in personal
adaption to teamwork.

There are plans to build the system into a full ERP solution in the future that would serve
even the most advanced enterprises and be able to scale with the growing needs of each
company. This requires high level enhancements to the system and addition of improved
hardware infrastructure. With growing appetite for convenience among the wider popu-
lation, companies are compelled to be more flexible and innovative in their product im-
plementation and service delivery.
32

References

1 Brandall B. The needlessly complex history of SaaS, simplified [online]. 30 Au-


gust 2017. URL: https://www.process.st/history-of-saas/. Accessed 2 September
2017.

2 Hur J. The history of SaaS [online]. URL: https://bebusinessed.com/history/the-


history-of-saas/. Accessed 2 September 2017.

3 CORVID PayGate. The history of SaaS [online]. URL: https://www.corvid-


paygate.com/uploads/news/history-of-saas-final.pdf. Accessed 2 September
2017.

4 Software & Information Industry Association. Software-as-a-Service; a compre-


hensive look at the total cost of ownership of software applications [online]. Sep-
tember 2006. URL: http://www.winnou.com/saas.pdf. Accessed 3 September
2017.

5 ASIS International. Cloud computing and Software as a Service: An overview for


security professionals [online]. February 2010. URL: https://www.brivo.com/wp-
content/uploads/2014/08/CloudComputing_ASIS_WP.pdf. Accessed 3 Septem-
ber 2017.

6 PeopleMatter Institute. SaaS for the service industry [online]. URL:


https://www.peoplematter.com/system/files/resources/PeopleMatter-White_Pa-
per-SaaS_0.pdf. Accessed 5 September 2017.

7 Trumba Corporation. Five benefits of Software as a Service [online]. 10 February


2007. URL: https://www.trumba.com/connect/knowledgecenter/pdf/Saas_pa-
per_WP-001.pdf. Accessed 5 September 2017.

8 Salesforce. Benefits of SaaS [online]. 2000. URL:


https://www.salesforce.com/saas/benefits-of-saas/. Accessed 5 September 2017.

9 Mytilinos N. Adoption of e-invoicing by SMEs: the business document standards


aspect [online]. Utrecht, The Netherlands: Faculty of Science, Utrecht University;
26 April 2013. URL: https://dspace.library.uu.nl/handle/1874/276052. Accessed
10 September 2017.

10 Enterprise Finland. E-invoice [online]. URL: https://www.yrityssuomi.fi/en/verkko-


laskutus. Accessed 23 September 2017.

11 Ali N. Adapting e-invoicing: benefits, challenges and future strategies to over-


come challenges [online]. Vaasa, Finland: Vaasan Ammattikorkeakoulu; 29
February 2016. URL: https://publications.theseus.fi/bitstream/han-
dle/10024/108392/Ali_Nazish.pdf?sequence=1. Accessed 2 October 2017.
33

12 Kühne K, Kosch L, Cuylen A. Will xml-based electronic invoice standards suc-


ceed? – An explorative study [online]. 2015. ECIS 2015 Completed Research Pa-
pers. Paper 113. URL: http://aisel.aisnet.org/ecis2015_cr/113. Accessed 2 Octo-
ber 2017.

13 Fernandes L, Longbottom C. E-invoicing: Ready for prime time [online]. Quocirca


Ltd; July 2011. URL: https://www.ricoh-europe.com/Images/e-invoicing-whitepa-
per_t_57-29043.pdf. Accessed 2 October 2017.

14 Koch B. E-Invoicing/E-Billing digitisation and automation [online]. Switzerland: Bil-


lentis; 27 May 2016. URL: http://www.billentis.com/E-Invoicing_Report2016.pdf.
Accessed 2 October 2017.

15 Penttinen E, editor. Electronic invoicing initiatives in Finland and in the European


union – taking the steps towards the real-time economy [online]. Helsinki, Fin-
land: Helsinki School of Economics; 3 June 2008. URL:
http://epub.lib.aalto.fi/pdf/hseother/b95.pdf. Accessed 2 October 2017.

16 Amdocs. Designing the next-generation bill [online]. 2015. URL: http://solu-


tions.amdocs.com/rs/647-OJR-802/images/OCBE_next_genera-
tion_bill_WP_rev.pdf. 10 October 2017.

17 Assimakopoulos NA, Riggas NA, Kotsimpos GK. A systemic approach for an


open internet billing system [online]. Department of Informatics, University of Pi-
raeus. URL: http://www.afscet.asso.fr/resSystemica/Crete02/Assimakopou-
los,%20Riggas,%20Kotsibos.pdf. Accessed 2 October 2017.

18 Kashiwagi Y. PHP [online]. Austin: University of Texas. URL:


http://www.edb.utexas.edu/minliu/multimedia/PDFfolder/PHPKashiwagi.pdf. Ac-
cessed 3 November 2017.

19 Tatroe K, MacIntyre P, Lerdorf R. Programming PHP, Third Edition [online]. Se-


bastopol, CA: O’Reilly Media, Inc.; 2013. URL: http://wtf.tw/ref/tatroe.pdf. Ac-
cessed 1 November 2017.

20 Tutorial Republic. PHP Introduction [online]. URL: https://www.tutorialrepub-


lic.com/php-tutorial/php-introduction.php. Accessed 1 November 2017.

21 Welling L, Thomson L. PHP and MySQL web development, Fifth Edition. USA:
Pearson Education, Inc.; 2017.

22 Nixon R. Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5, Fifth
Edition [online]. Sebastopol, CA: O’Reilly Media, Inc.; 2015. URL:
https://doc.lagout.org/programmation/Learn-
ing%20PHP,%20MySQL%20%26%20JavaS-
cript_%20with%20jQuery,%20CSS%20%26%20HTML5%20(4th%20ed.)%20%5
BNixon%202014-12-14%5D.pdf. Accessed 3 November 2017.
34

23 Sridhar J. What is JavaScript and how does it work? [online]. 2 October 2017.
URL: http://www.makeuseof.com/tag/what-is-javascript/. Accessed 8 November
2017.

24 Doyle M. What is jQuery? [online]. 3 February 2010. URL:


https://www.elated.com/articles/what-is-jquery/. Accessed 8 November 2017.

25 The jQuery Foundation. Ajax [online]. 11 March 2015. URL:


http://learn.jquery.com/ajax/. Accessed 8 November 2017.

26 Mozilla Developer Network. HTML [online]. 13 October 2017. URL: https://devel-


oper.mozilla.org/en-US/docs/Web/HTML. Accessed 9 November 2017.

27 Mozilla Developer Network. CSS [online]. 5 November 2017. URL: https://devel-


oper.mozilla.org/en-US/docs/Web/CSS. Accessed 9 November 2017.
Appendix 2
1 (1)

You might also like