A Web Based Financial and Accounting Software Application

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

Journal of Applied Computer Science & Mathematics, no.

7 Special Issue

A Web Based Financial and Accounting Software Application


1

Doru E. TILIUTE, 2Ionut BALAN


Stefan cel Mare University of Suceava, Romania
1

[email protected], [email protected]

Abstract-The Client-server applications become more attractive


in comparison with their counterpart desktop-type due to some
incontestable advantages. Among the client-server applications
some uses the Web environment providing full access from
anywhere and anytime to all application features. The present
work presents the fist results in the achievement of a web based
financial and accounting application using open-sources
technologies and programming languages (Apache, MySQL,
PHP and JavaScript)
Keywords: Web
application

technologies,

financial

and

Fig. 1 The architecture of the system

Thus the applications do not depend on the success or on


the failure of the project mentioned above. Besides the
advantages already outlined our proposed solution has some
more advantages: all data is stored in one place and may be
managed easier; data may be shared among different
categories of users; software update and patches are applied
centralized, usually when users are not disturbed from they
work and data backup is more facile [2].

accounting

I. INTRODUCTION
Web technologies become more and more attractive for
designing software applications from many reasons: a lot of
them are distributed for free, from operating system (Linux,
Free BSD), Web serves (Apache, Xerver), Database
Management Systems (Postgree SQL, MySQL, SQLite) to
the interpreters of programming languages (PHP,
JavaScript). Moreover, the clients of web-based application
are the web browser themselves that are either included in
the operating systems (as Internet Explorer) either freeware
(Mozilla Firefox, Chrome).
And, equally important, software engineers are not
constrained to design custom clients for their application so
they can focus on the interfaces design and application itself.
As a sign that people moves to the mobile applications, in
November 2009 Google launched its first freeware operating
system entirely based on web: no local application installed,
all applications are web based. Even if the Google Chrome
OS is currently released for only for notebooks, it will be
available in the near future for desktop and laptop
computers. Aside from polemic if Chrome is or is not a true
operating system, it is clear that it is fast, lightweight and
fully based on the Web. For application developers, the web
is the platform.
All web-based applications will automatically work and
new applications can be written using your favorite web
technologies.[1].
And, what we consider as being very important, the
applications developed for Chrome OS are able to run within
any different modern browser on any OS.

II. THE PRINCIPLE


Accounting software is a category of software that records
and processes accounting transactions. Accounting software
modules include general ledger, accounts payable, accounts
receivable, payroll, inventory, billing, purchase orders and
sales orders [3]. Many accounting software are desktop-type
applications that are used by the small companies. Many
companies cannot afford other types of systems (clientserver) due to high prices at which they can be purchased.
Among such software we mention: SYSPRO, EPICOR,
Microsoft Dynamics GP, SAGE, Intacct, etc.
The principle applies to our application is quite common
to all web applications. In order to optimize the functionality
we split the tasks between client and server, writing separate
pieces of programs for the two sides. The architecture of the
system is displayed in fig.1.
The client-side applications are written in the most
common scripting language, JavaScript, which is recognized
and executed by all modern web browsers.
They are designed to provide mainly the following
functionalities:
Dynamically generate the user interface,
Checking the correctness of user data,
Performing some local calculations,

25

Journal of Applied Computer Science & Mathematics, no.7 Special Issue

Providing Help interface for users.


On the other hand, server-side applications provide:
Data storage (consistency, security)
Dynamically generation of client-side pieces of
code
Data backup
Complementary user data checking.
Because both JavaScript and PHP are general purpose
scripting languages, there where some difficulties in the
implementation of the interface in a shape the users are
familiar to and in acquiring data by the server. We will show
further how these issues have been solved.

If all data are correct a new row is inserted and the data in
Date field of previous row is copied in the corresponding
field of the new row; the button n the right side of the
previous row is cleared, as it shown in fig. 3.
The pseudo-code associated to the plus button is given
bellow:
Begin
If date has the right format
If date is valid
If document field is filled
If article is filled
If article is valid
If debit<>0 AND credit<>0
If debit<>credit
Insert new row
Copy date field into new row
Hide plus button from previous row
Update row index
Else prompt for error 1
Else prompt for error 2
Else prompt for invalid article
Else prompt for empty article field
Else prompt for empty document field
Else prompt for invalid date
Else prompt for invalid date format
End.
where error1 and error2 are messages related to the events
credit value equals the debit value respectively the credit
value and debit value are simultaneous null.
The user fills row by row until the last one is fulfilled and
then he presses the button Register. Before passing data to
the server, same verifications as when plus button is pressed
are done for the last row but no row is added to the form.
Each row and each field within a row have their unique
identifier. Because the row numbers is variable, depending
on the particular registration, the index of the current row
must be stored into a variable. As while all things happen
onto the browser window, the variable is stored into a hidden
type control of the form. This variable is read and updated
each time a new row is inserted.
The question mark image within the form helps the user to
find the appropriate account number within a popup window,
figure 3.
The problem with the regular popup windows is that when
they loose focus they are minimized in a button on the
taskbar (or panel in Gnome or KDE graphical interfaces for
Linux).

III. THE APPLICATION


A. Client-side application
Client-side application provides the user interfaces and the
functionality already mentioned in previous section. Bellow
is presented the interface for introduction data in our
database which will provide financial statements needed for
a firm.
In the first instance the form contains a single row with the
fields to be completed by user. The row has, on its right side,
a plus button that is pressed down after the required fields
are fulfilled.
Two actions are accomplished when the button is pressed
down: data checking and the addition of a new row. Data
checking consists in the inspection of each field to find out if
data have the right format (i.e Date field that has
dd.mm.yyyy format) or is of the correct type.

Fig. 2 The user is prompted if the fields in row contain errors

Fig. 3. When all data are correct, a new row is inserted

For each error encountered the user is prompted and asked


to correct the mismatch, fig. 2.

26

Journal of Applied Computer Science & Mathematics, no.7 Special Issue

Cod_cont
Den_cont

Nota_ctb

Data
Doc

Tip_cont

Plan

Journal
N

Cod_cont

Sold_i_activ
Sold_i_pasiv

Debit
Credit
Fig. 4. Database structure for annual bookkeeping

In Romania is available the double-entry bookkeeping


system. Double-entry bookkeeping is a system in which each
financial transaction is recorded as two separate accounting
entries to maintain the balance shown in the accounting
equation (assets equal with liabilities).
The basic principle of double-entry bookkeeping is that
every transaction has twofold effect: a value is received, and
a value is yielded with. Both effects, which are equal in
amount, must be entered completely in the bookkeeping
records. One entry changes the left side of the equation
(assets), and the other entry changes the right side
(liabilities).
The above statements underlay the structure of database.
Thus, Cod_cont must be unique in the table Plan, because
with his property we can identify an element of heritage. The
articles that are used in our application can be assets,
liabilities, or may have both functions. Regarding the last
two fields, should be clear, to have accurate data, we must
have the value 0 or greater than 0 for assets in Sold_i_activ,
0 or greater than 0 for liability accounts in Sold_i_pasiv, and
in case of accounts with a double feature value greater than 0
at Sold_i_activ or Sold_i_pasiv. These tests are necessary to
display every financial situation that takes data form the
table Plan, to eliminate any doubt as to the final situation.
For the values of the Cod_cont from the Journal table, we
must mention that they should coincide with the values
encountered in the same field form the Plan table. When a
disparity is detected, it is recommended to use an existing
account code or to create a new article. As we said above,
the left side of equation must be equal with the right side of
accounting equation. For this table and for the second table
should be respected a certain equality. This equality can be
verified at the client-side, or at the server-side. It puts face in
face the debit side with the credit side. If on the client level
can check only the values related to one accounting set, at
the server we can perform this check for all available data
until that time.
Values to be inserted in the Journal table will be taken by
pressing the Register button from the form used to input
data. After some tests, that will be done at the client level,
there are inserted into this table only the data lines with valid
data in date field, article field and one of that two fields used
for monetary amounts. It also requires that the amount of

Fig. 3. The popup window helps to find the appropriate account number

When, subsequently, the user press on the question mark


image to get help, the windows doesnt open again, it
remains as a button on the taskbar.
Furthermore, many browsers or associated tools can block
the popup windows; hence the application may not work on
some computers.
The solution we found to prevent these drawbacks uses
layer-based popup window. The layer includes an internal
frame (<iframe>) which displays a document generated
dynamically by a server-side script. Without frame, working
with the interface may be difficult because the document
generated is very long and may require numerous up and
down scrolling in the main window.
B. Server-side application
Our application has the purpose to storage the information
for many companies, information that can be introduced by
multiple users. Each of these users will have its own
database and to access it he will need a password. In this
database the user can store accounting information about one
or more companies.
A minimum structure of the database which will be used
to store accounting information necesary for a company in a
given yaer is represented in figure 4.
In table Plan we have five fields: Cod_cont which is the
article number used to record the information in accounting,
Den_cont which is the article name (the Cod_cont name),
Tip_cont is the type of article used for accounting purpose
(assets, liabilities, article with both features), Sold_i_debit
which store the initial value for an assets, Sold_i_credit
which store the initial value for a liability. The second table
contains details during a certain accounting period (during a
year). The fields that are important for our problem are:
Nota_ctb which identifies a set of records, Data which
represents the date taken from the financial documents, Doc
documents (bills, invoices, receipts, etc.), Cod_cont same
like Cod_cont from Plan, Credit and Debit which are used to
store the values for any article.

27

Journal of Applied Computer Science & Mathematics, no.7 Special Issue

afford expensive accounting software. Most times they use


cheap or free software that in most cases can work only on
one computer. Others, with more resources, use applications
with client-server architecture, which can be accessed in a
small perimeter. Only the strongest companies from the
industry afford to buy complex systems, which unlike those
listed above allow full access to them from any point on the
globe connected to the Internet.
The first barrier to purchase such a system should be their
high costs, the second can be the distrust of many people in
such systems.
In the following we want to improve this application by
providing certain information necessary to professional
accountant, improving tools for keeping information about
costumers, suppliers, certain operation at the end of the
period, introduction of mechanism for employers accounting
and improving the security services.

debit to be equal with the amount of credit. The number of


lines with data fields sent to the server is given by a variable
stored in a hidden control from the input form. The database
structure presented in the fig. 4 is useful only when we are
dealing with a single calendar year (accounting period).
Since a company can have an unlimited lifespan, it is
necessary to store information for several years (information
than can be used for financial controls, statistics, etc.). In
Romania, the required retention period for the accounting
records is at least five years. The years before current year
will not be stored in these two tables, primarily because with
this we will overloaded with useless tables with data, and
secondly because we can make it harder to obtain certain
required financial results at a time. Because of this we appeal
to create two more tables that store information from
previous years. These tables are similar with the formats
shown in figure 4, having one extra field, which indicate the
year for which data were taken. Thus, at the end of each
year, the data from the Journal table will be added in the
table with same structure, but which store the historical data,
then this data will be removed, while the data from Plan will
be added to the table who store Plans history, after which
values from Sold_I_activ and Sold_I_pasiv will be
recalculated.

REFERENCES
[1] Official Google Blog:
http://googleblog.blogspot.com/2009/07/ introducinggoogle-chrome-os.html
[2] Ashutosh Deshmukh. Digital Accounting: The Effects
of the Internet and ERP on Accounting. Idea Group
Publishing, 2005
[3] http://www.2020software.com/comparesoftware/category/2/ Accounting-Software/

IV. CONCLUSION AND FURTHER WORKS


Most small and medium enterprises from Romania cannot

28

You might also like