Sie sind auf Seite 1von 98

E R P

A C C O U N T I N G

REDHUAN D. OON

ADEMPIERE COMMUNITY

www.adempiere.com

Nahmitzer Damm 32 12277 Berlin Germany telephone: +49-30-69203854-0 fax: +49-30-69203854-9


E R P
A C C O U N T I N G

C602 - Asian Executive Master in


Open Source Software ERP

Conquering The World of Industry and Commerce

Nahmitzer Damm 32 12277 Berlin Germany telephone: +49-30-69203854-0 fax: +49-30-69203854-9


E R P
A C C O U N T I N G
Study Approach
The mode of study is self research under guidance and discussion. The student is
encouraged to be communicative, sociable, creative, resourceful and critical. Wise non-
conformity is a plus. Publishing or writing one's works and thoughts in the suggested
places and in own original words can give excellent marks.
From day one, the student joins Web 2.0 projects such as the chatroom, blogs, forums,
wikiversity and SourceForge where exposed interactivity can occur with the community at
large. Those who can solicit participation from others are considered successful advocates.
The students are to use heavily the web and to derive source materials for creating their
own pages based on the whole course roadmap which is purposely indicative and not
exhaustive.
The students have to act as a whole team to devise ways to make a better impression to
attract the right attention and build a professional image.

Nahmitzer Damm 32 12277 Berlin Germany telephone: +49-30-69203854-0 fax: +49-30-69203854-9


E R P
A C C O U N T I N G
Study Schedule Schema
A. Credit Hour: 3 hours (120 learning hours per semester)
1. Self Independent Study - 42

2. Tutorial / Face-to-Face Interaction - 12

3. Online Interaction - 30
4. Doing Assignments - 18

5. Examination Preparation - 18
B. Teaching Method: Self Independent Study, Tutorial and On-line Participation

C. Assessment Detail:

1. On-line Participation 10%


2. Individual Assignment 10%

3. Case Study/Group Assignment 20%


4. Mid Term Exam 20%

5. Final Examination 40%

Module Topics Schema


This course module comprises of 6 chapters. This student manual is the raw content for the
online e-learning facility under production by Asia e-University.

COPYRIGHT NOTICE:

THIS WORK HAS PARTS DERIVED FROM THE ADEMPIERE COMMUNITY. IT IS


ARRANGED AND AUTHORED BY RED1 FOR ASIA E-UNIVERSITY AND HEREBY
ENTRUSTED ALL CONTENT TO THE CREATIVE COMMONS 3.0 LICENSING.

RED1 - www.red1.org

Nahmitzer Damm 32 12277 Berlin Germany telephone: +49-30-69203854-0 fax: +49-30-69203854-9


Table of Contents
MODULE 5 - ERP Accounting 1

Chapter 1 - How Far Has Accounting Gone? 1


Learning Objectives 1
Introduction 2
1.1 Accounting Conventions 3
Having Fun With ADempiere 7
1.2 The Balance Sheet 10
1.3 Consistency of Standards 11
1.4 Conservative Rule 13
Peer Review I 16
Peer Review II 18
Power of the Bazaar 25
Quiz 26
Glossary 26
Summary 27
References 28

Chapter 2 - Accounting Using Computers 29


Learning Objectives 29
Introduction 30
Do You Know That? 30
2.1 Using the GL Journal 31
2.2 Suspense Balancing 37
2.3 GL Distribution 37
2.4 What Does ERP Handle? 39
2.5 What about Fraud? 40
2.6 Necessity of Standards 42
A D e m p i e r e C o m m u n i t y ERP Software Engineering

i
2.7 Computer Assisted Accounting System 43
Quiz 45
Glossary 45
Summary 46
References 47

Chapter 3 - Accounting On The Web 48


Learning Objectives 48
Introduction 49
3.1 Using the Application Server 51
3.2 POSterita POS 52
3.3 Web Store 54
3.4 Further Security 58
3.5 Electronic Data Interchange 59
Quiz 66
Glossary 66
Summary 67
References 68

Chapter 4 - Default Accounts 69


Learning Objectives 69
Introduction 70
1.1 What is the Charts of Accounts? 71
1.2 The Default Accounts 76
1.3 Default Accounts Usage 77
1.4 Listing of Default Accounts from AccountingUS.xls 87
1.5 COA Editor by Daniel Tamm 89

A D e m p i e r e C o m m u n i t y ERP Software Engineering

ii
He who does not know how to give himself an
account of three thousand years may remain in the
dark, inexperienced, and live from day to day

- Johann Wolfgang von Goethe

REFERENCES:

ASHUTOSH DESHMUKH, DIGITAL ACCOUNTING: THE EFFECTS OF THE INTERNET AND


ERP ON ACCOUNTING, 2006, IRM PRESS, USA.

J. R. EDWARDS, A HISTORY OF FINANCIAL ACCOUNTING, 1989, ROUTLEDGE, GREAT


BRITAIN.

LESZEK MACIASZEK, BRUC LEE LIONG , ADDISON WESLEY (AUGUST 9, 2004),


PRACTICAL SOFTWARE ENGINEERING: A CASE-STUDY APPROACH

WALT SCACCHI, INSTITUTE FOR SOFTWARE RESEARCH, PROCESS MODELS IN


SOFTWARE ENGINEERING, (FEBRUARY 2001 ) UNIVERSITY OF CALIFORNIA, IRVINE

ERIC RAYMOND, THE MAGIC CAULDRON, (1999) HTTP://WWW.CATB.ORG/~ESR/


WRITINGS/MAGIC-CAULDRON/

A D e m p i e r e C o m m u n i t y ERP Software Engineering

iii
MODULE 5 - ERP Accounting
This module is meant for students who feel that the subject of Accounting for the ERP
is daunting. It helps them to examine up to ERP financials management that is now
electronic and enterprise-ready for most organisations.

Module Outline
This module brings the student a fresh approach to grasping the accounting subject
matter and how it operates within a FOSS ERP such as ADempiere. It gives practical
hands-on exercses where useful to allow students a more gentler path to tackle this
difficult domain of Financials Integration in an ERP Application.

Learning is fun Graduating is more fun Ultimate fun when your life is fulfilled

Prior Knowledge
This course module assumes some basic business understanding and previous Course
Modules 1 through 4.

Module Objectives
1. To understand accounting practice in ERP Software
2. To get under the hood of how accounting works in ERP Software
3. To have hands-on capability in handling important accounting processes
4. To cover more breadth of the many features involving accounting

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 1
Chapter 1 - How Far Has Accounting Gone?

Learning Objectives
By the end of this chapter, the student shall be able to:

1. Give a conceptual perspective of Financial Accounting;

2. List important purposes of accounting in business;

3. Describe the important concepts and conventions in accounting;

4. Introduce the use of ADempiere for accounting.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 1
Introduction
Charlie Munger, a famous wealthy investor was quoted as saying [1],

You have to know accounting. It's the language of practical business life. It was a very
useful thing to deliver to civilization. I've heard it came to civilization through Venice
which of course was once the great commercial power in the Mediterranean. However,
double entry bookkeeping was a hell of an invention.

Accountants were the scribes and priesthood in ancient history. They occupied a high
position next to feudal lords for able to say for sure about anything. They could as they
know how to count and know how to write the figures down. Their role was ever
prominent from the dawn of banking right through the ages of industrial revolution[2].

Figure 1.1 - Ancient Egyptian maths, to keep track of resources and expenditure

I myself see accounting as the art of measuring relevant human activity in terms of the
materials consumed and produced in a particular endeavour. This art of measuring
started since ancient recorded history such as in the times of the pyramid builders. If the
Egyptians could not calculate how many stone blocks they need, they would have no

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 2
answer in the forced labour required. That in turn will impact their ability to determine
the right amount of food to replenish the collective toil. There will be constant wastages
and delays, and no one can be sure when the pyramid will get completed. As the saying
goes, If you cannot measure it, you cannot manage it.

1.1 Accounting Conventions


Accounting therefore underwent some rules building through the ages. Some of its
habits are picked up from ancient times and stuck to it since then. The unit of measure
for accounting today is abit
different from ancient times in
that it is now done with a
common denominator of
money whether it be in USD or
any local currency. The reason
will be obvious shortly.
Accounting goes further by
having a measuring
mechanism by which
categories or accounting
elements are used to
appropriate such information
so that the manager can see
what and how resources are
dispensed so that he or she can
plan on meeting the input of
such resources. In other words,
unlike the ancient pharaohs
who can exact resource by
force in the form of slaves, the
modern manager today has to
purchase them and that is
done by hard currency or
capital and s/he has to keep
track of that or else the
resources run out and the
venture is unfulfilled. Of
which the business will go
down and cease. Figure 1.2 - A more modern looking financial statement

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 3
In a later chapter, we shall get to know the Chart of Accounts which is the common
reference table for those accounting elements touched on above. Another concept is the
double-entry, where for every debit or credit there is an opposing one. The balance at
every entry accumulates and there is no concept of subtraction perhaps due to the fact
that ancient slabs or the likes of it have no eraser! Well, either that, or it is because there
is some rule that everything noted cannot be erased - they must be accounted for.

Modern accounting today is mainly for business concerns. It seeks to provide clues on
how well a business is doing. A trained accounting mind can look at the books of a
company and tell if it is healthy or not. It doesnt matter if that company has lots of
cash, or lots of invoices. There are factors only an accountant can say if the business is
going to make it or go bankrupt.
The accounting department before the advent of computerised tools, is liken to a huge
department of clutter of desks and book-keeping clerks that detail every item that
occurs in the company, be they a few cents from a smallest transaction. At the end of the
day, their books must balanced up - correct to the last cent.

Figure 1.3 - An Income Statement from ADempiere

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 4
Figure 1.4 - A mindmap depiction of the
accountng equation

This illustration on this page is


from QTunnel Business
Consulting, Inc. [3] It gives a big
picture in detailed descriptive
language how modern
accounting is organised. It
shows how accounting data is
first brought about by a double-
entry posting and then
represented in the General
Ledger in the form of an
Accounting Equation.

Double-entry is one convention


that stems from the importance
accountants placed on the value
of accuracy and avoidance of
mistakes by entering the same
figure twice in two places.

The Accounting Equation


divides accounting information
into Assets, Liabilities, and
Owners Equity.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 5
For being so detailed and precise, it is no surprising that the computer age is most
useful to this area of commercial activity and management. Among the first things the
computers probably did is to give the clerks a good rest. No more counting numbers to
the last digit of which an electronic computing device is absolutely ideal for. No longer
is there a need to summarise balances at the end of the day as the computer program
does that automatically. Particularly at the end of the month or accounting period. From
month to month those pesky columns of Balance c/f (carried forward) and Balance b/
f (brought forward) are granted. It is an easy electronic copy/paste. The modern
computer is a tool that once infomation is recorded, it will always remember it. Today
diskspace is dirt cheap. A thumb drive has now surpassed the 200 gigabytes volume
mark.

Periodic accounting where the management has to look at the bottom line properly at
the end of the period or sometimes end of the financial year, can now get a peek before-
hand at anytime. This is coined as perpetual accounting[4] by Colin Rooney (see Peer
Review II below). In Compiere/ADempiere, this feature does not override the concept
of periodic control. Periods are still used, and the acts of opening, closing and final
closing of periods are still available for the accounting manager to maintain control over
the entry into the books.

Figure 1.5 - Period Control in ADempiere

Today there are stated and published understanding of how accounting should be such
as GAAP (Generally Accepted Accounting Principles). The convention about value is
also peculiar where if you recorded or post to the General Ledger and accounting value
of say Ringgit Malaysia 0.50 for a lunch in 1970, you do not change that value even if
Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering
Page 6
you are presenting that information today where the price of the lunch has certainly
inflate to around Ringgit Malaysia 5.00. This is more important for assets such as land
where its original cost is very low. To show its real value today, accountants use what is
called book value which is that original cost less depreciation which is certainly
negative depreciation (appreciation) and shall be much higher. More details about some
of these conventions later.

Having Fun With ADempiere


Now let us start playing around with our ERP software to see what can it do for us on
the topic of Financial Management. Lets say we want to take a look at the Balance
Sheet.

1. Launch your ADempiere


application as GardenAdmin.

2. Go through the main menu.

3. Expand the menu tree under


Performance Analysis, then
Financial Reporting.

4. You will see the figure on the


right.

5. Click on Financial Report.


You will see a window below.
Figure 1.5 - Financial Report Creation

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 7
6. Uncheck the List Sources box. Click on the Create Report button at the lower screen.

Figure 1.6 - Create Report Parameter Selection Screen

7. Pull down the Period field to select Sep-02. This will access the Accounting Facts
posted for GardenWorld sample client of that period. You shall see the figure below.

Figure 1.7 - Balance Sheet preview

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 8
8. Look at the top menu bar. At the right side, next to the exit button is the export icon .
Click on that to call the export function.

Figure 1.8 - Export Format Selection

9. Pull down the Files of Type selection to choose xls - Excel file. This means we are going
to save our report as a Microsoft Excel file format. Put in a File Name. Note the location
you Save In.

There may various reasons why we are exporting it. Certainly it is to make life easier
when we can send an output in the format desired. We can save it as a PDF file which is
much nicer looking. Or we can have it in this excel format where the accountant can
dress up further the output so to edit or add in further details before a final presentation
with all the accompanying information. On the next screen below is how the Balance
Sheet looks in Microsoft Excel format. You can note that it is presentable in a single page
instead of 2 during the preview earlier.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


Page 9
Figure 1.9 - Excel Spreadsheet to view the exported Balance Sheet

See how far humanity has advanced since the days of stone slabs and papyrus.

1.2 The Balance Sheet


Since we are on the subject of Balance Sheet, we shall ponder on it closer to reflect why
it exist and for what purpose. As alluded to earlier, business is now measured in terms
of cash value. That will be simple if we all deal in cash and cash alone. But that is not
the case with modern commerce. Value though still measured in cash takes many forms
and meanings. There are cash that are given on loan to the business. There are cash
changed into assets that cannot be turned back to cash readily. Those assets may
undergo maintenance, depreciation, appreciation or even tax by the authotiries.
The loan given to a business is to be paid back and thus is a liability or constraint on it.
Or as a starting capital or equity to enjoy dividends from the business when it gathers a
profit at the end of the fiscal year. Or it may suffer losses. All such occurences and
values are recorded in the General Ledger or books of the company and in order to
undertand the companys position is to look at its Balance Sheet. The Balance Sheet thus
comprised of Owners Equity, Assets and Liabilities.
The balance in the end will be added with either profit or subtracted if there is a loss.
That will affect the balance. In short, if there is good profit, the balance will increase.
Thus at one glance the creditors, owners or shareholders can tell if the business is going

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 10
up or going down the tube. If it is good, it is said to have a strong balance sheet. If not,
then you call it with demeaning terms such as a weak or poor balance sheet.
Balance sheets together with income statements form part of the common financial
statements that public companies often prepare for relevant external parties in
compliance with statutory boards and regulations such as FASB (in USA), Securities
Commission and the Inland Revenue Service.

1.3 Consistency of Standards


GAAP was created by the Financial Accounting Standards Board (FASB) in 1973. As it
came about in accordance with the AICPAs (American Institute of Certified Public
Accountants) Code of Professional Conduct, it is regarded as an american preference.
The rest of the world is said to be following IFRS or International Financial Reporting
Standards. GAAP requires members to provide financial statements free of unqualified
opinions. GAAP guidelines provide publicly traded and privately held firms the
various methods considered appropriate for conducting accounting business. They
consist of assumptions, principles, and constraints that are the basic building blocks
of the whole idea of GAAP.
Some regard such standards as a set of rules to follow particularly during the making of
Financial Statements. GAAP seems more for external reporting or public consumption
such as the use of cost principle, matching principle, and full disclosure. At the same
time GAAP is said to allow more creativity in such reporting and is thicker than the
simpler and static IFRS guidelines book. There can be a difference depending on which
standard you use such as the appearance of higher value as in the case of an European
bank in 2008 if it uses IFRS[5].
If the company shares are publicly traded, its financial statements will have to follow
rules established by the U.S. Securities and Exchange Commission (SEC). This includes
having its financial statements audited by an independent CPA (Certified Public
Accountant) firm.
The Compiere/ADempiere family is made to follow GAAP by its creator Jorg Janke, but
USA is considering transition to IFRS particularly after the Enron fiasco, to keep up with
the world where about 100 countries are already following it. ADempiere wiki has
started some insight into using IFRS[6]. Malaysia is said to be lagging in catching up
with the 2012 deadline[7].
Whatever standards one choose to follow, it has to be consistent to avoid confusion and
misleading representation of accounting data throughout a business.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 11
COMMENTS BY HEE K.N.
* The COA follows accounting classifications underlying General Accepted Principles
of Accounting (GAAP) in practice throughout the world.
* Most GAAP are based on the following principles
- Historical Cost Accounting - it means if you pay rent of $200 per month but the value
of the rent in that area is $400, you still show it as an expense of $200 and not $400.
- Matching rule - you should match income to an expense in the same accounting
period. In order to generate income, you most likely need to spend (an expense). So
both income and expense should be posted to the same accounting period so that one
can compare the net effect of doing business.
- Prudence - when it comes to income, you should not post to P&L unless you sure of
getting it. When it comes to expense, if there is a possible chance that it may happen,
you should post it to P&L. Basically a pessimistic way of looking at things. Sometimes,
it contradicts the Matching rule but then accounting is full of contradictions.
- Materiality - principles only apply to items of a material value, which is judgemental.
Things of immaterial value need not follow GAAP.
GAAP is the foundation of accounting and in each country there are Accounting
Standards which are intended to expand on the GAAP, and address very specific areas
of accounting.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 12
1.4 Conservative Rule
Accounting assumes a rule that if a deal is not made it is not commited to the books.
That is why a Sales Order when processed has no accounting consequence in
ADempiere. It is merely a Sales Order where goods have not been delivered nor
payments made. However for governmental accounting there is another principle of
Commitment Accounting. For the government to issue a Purchase Order, it is
considered to have committed to pay the vendor. Thus we can enter the books that the
PO is committed for cash settlement. In ADempiere, we can switch such PO
Commitment on. Follow the screens below to see how.
How to get PO Commitment
* First we login as a ClientAdmin, in this case we are using GardenAdmin sample
* Then we go to the Accounting Schema window as seen below
* We set the Commitment Type field to PO Commitment only
* It will ask you to restart your application server.

Figure 1.10 - Settting the PO Commitment in Accounting Schema

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 13
Test with a Purchase Order
* Now we try that out to
see if indeed a
completed PO can
generate the accounting
facts
* Previously there will
not be any posting
* Go to a Purchase
Window and create and
complete a PO
* Ensure your Server2.sh
is being launched
before-hand

Figure 1.11 - Purchase OrderLine

Look up Account Viewer


* Click on the top menu bar, on the
View pull down
* Select Account Info
* Note from the shortcut you can
also call this up by keyboard Ctrl
+Alt+I combination keys

Figure 1.12 - Launching the Account Viewer

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 14
* It will launch the Account Viewer window.

Figure 1.13 - Account Viewer set to query on date of account posting

* Click on the View Result tab.


* Note that before you process your PO or start your application server, there are no
results for the same day you try this.
* After the PO is completed or app server started you will note the results.
* Note also that the Posting Type can be set to Commitment to view such facts only. .

Figure 1.14 - PO Commitment accounting facts posted

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 15
Such PO commitment is mostly practiced by government agencies where cash is
encumbered or withheld whenever a purchase is made. Government is not in the
business of making money but spending it according to budget. Private businesses are
about making money and so they do not constrain their cash flow to allot for such
purchase commitments.
In ADempiere we also have Sales Commitment where the reverse will happen. If a
sales is made, then it is assumed to be paid. During the preparation of financial reports,
we can select the Posting Type to allow examination of what cash is available or
committed or expected. This in a way can assist in making an accounted Cash Flow
Analysis if coupled with Payment Terms. Later we shall see how Aging Analysis is
already using Payment Terms to derive its analysis. A cash on delivery payment term is
good for its cash flow, but a long term credit such as in 90 days will affect it.
Purchases are also noted as Accounts Payables or AP where the company is liable to pay
others. Sales are Accounts Receivables or AR where the company expects due
payments. From here we can see that accounting tries to keep track of a business
performance from these commitments and actual cash basis.
When we were calling up the Account Viewer above, we are looking into the accounting
facts as they happen almost realtime. That is the example of perpetual accounting we
talked about earlier. That is something new to traditional accounting which is already
stated as periodic and manual. All such accounts posting in non-computerised
environment would have to be done by hand and usually through a General Ledger
journal entry. In the following chapter we will look more into how the computer has
affected traditional accounting practice.

Peer Review I
This review is done by Hee K.N., Singapore, who is an accountant experienced in SAP
(Europe). He is now a frequent visitor to our project chatroom and he repsonded to my
public post to review from an accountants point of view on my text above. He has
graciously done so here[8].
1. Page 6 - Balance b/d (brought down) and b/f (brought forward) are granted
It is more common to use the terms Balance C/F (carried forward and Balance B/F
(brought forward) (edited in the text above)

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 16
2. We call this whole thing that you just described below - Historical Costing
Accounting.
The convention about value is also peculiar where if you recorded or post to the General Ledger and accounting
value of say Ringgit Malaysia 0.50 for a lunch in 1970, you do not change that value even if you are presenting that
information today where the price of the lunch has certainly inflate to around Ringgit Malaysia 5.00. This is more
important for assets such as land where its original cost is very low. To show its real value today, accountants use
what is called book value which is that original cost less depreciation which is certainly negative depreciation
(appreciation) and shall be much higher. More details about some of these conventions later

3. I have a different understanding of Balance Sheet


To me, balance sheet is to report the financial position of an entity at a specific point in
time. Financial position means Assets (something that adds value to the entity) and
Liabilities (something that reduce value). So it should look like this :
Owners Equity = Assets less Liabilities + (profit or loss for the accounting period) where
Assets less Liabilities measures the FUTURE net value. That is why this is normally
known as net asset value
Profit and Loss measures CURRENT net asset value. So the rule is if a financial
transaction derives future value, you put in the Balance Sheet and if it derives current
value to the business, u put it in the profit and loss.
So the end is Owners Financial Position is FUTURE VALUE + CURRENT VALUE =
(Assets less Liabilities) plus (Revenue less Expense).

4. Definition of GAAPS and Standards


There are not the same things.
GAAPS are the foundation of accounting. It has a few rules that must be follow for the
reader to understand the meaning. So it is like you want to learn Taiji.
Standards are implementations of GAAPS that are specific to each country. So most
countries will have its country level Standards. If you dont have one, then you can
follow the IFRS (which is like United Nations stds for accounting. You can choose to
follow or ignore....). So standards is like u want to learn Chen Taiji, Wu Taiji, Yang Taiji,
etc. Different implementation of similar thing...well almost ...
So if you say your accounting standards follow US GAAP, it means u follow US
Standards plus certain basic accounting practices (like you need do Taiji walk and
breathing...) that US Standards are based...the accounting practices....

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 17
5. More about Commitment Accounting
Before computers were invented, if you want to keep track of information, one way is to
post it into the financial books because it is probably the only place you write things
down diligently. But if you do that, the info may get mixed up with the real financial
information. So to differentiate the information, these type of info is called
Commitments. Over time, with computerised accounting, you can keep all this info in
the database and the usefulness of commitment accounting disappeared. Of course, 3M
invented a new type of commitment accounting when they came out with the 3M sticky
notes. We stick them all over the place - on you computer monitor, the wall, and on
documents.
The only place where it is still used and of value is in financial institutions. Read here
http://en.wikipedia.org/wiki/Off-balance-sheet .

Peer Review II
Steven Sackett, a prominent member of the ADempiere project, who happens to be a
qualified and practicing accountant from Melbourne, Australia, took exception of the
coined term perpetual accounting as used by Colin Rooney, another prominent
member from Ireland. Colin has more than 20 years experience implementing ERP
systems in Europe.
Stevens comments are as follows:
Red1, note that accountants do not use these terms. Colin created them due to a misunderstanding
of something I told him. He confused it with Perpetual Inventory.

I then related Stevens remarks to Colin who in return responded in a chat-room


conversation with me below.

croo Yes I explained that ... I thought in the wiki page ... but I did it purposely

croo I made up this new term :)

croo indeed I had known about perpetual inventory

croo which is the official term for the way the inventory workd

croo which is the official term for the way the inventory works

croo but there is not term for how the accounting differes

croo but perpetual accounting is a good description and is similar to the perpetual inventory

croo perpetual inventory

croo is named so

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 18
croo because in accounting 101

croo they teach that Gross Profit = Sales less Cost of Sales

croo and that

croo Cost of Sales = Opening Stock PLUS Purchases LESS Closing STock

croo so to do this and say what yuo profit is

croo you must count your stock

croo but counting a stock every QTR or more is not really practical

croo and in big multinationals with potentially large stock columns inTRansit at any time not even possible

croo so the shift to perpetual inventory

croo we change how we calc Cost of Goods sold

croo now we count the item cost as we ship to a customer

croo just as adempiere does

croo we can stock count but only to ensure quantities are correct and account for breakage & theft

croo now also in accounts 101

croo we have Debtors & Creditors ledgers

croo and typically a Nominal Ledger

croo but actually you can have as many as you wish

croo but typical a debtors ledger keeps track of all the invoices and payments to a customer

croo these are not posted to the General Ledger

croo but at the QTR end or whenever

croo when you want to create your profit & loss and r balance sheet

croo these accounts are all added up and the balance from each is posted to the General Ledger

croo As with the inventory

croo you must do this before you can get a valid indicator of what your companies standing is

croo and in fact

croo in truth you can only say on this day (4 days a year if you post per qtr) this is how we stand

croo but you cannot say what is it today or what was it last week

croo but the accounting we use in Adempiere

croo by passes all the debtors, creditor and any other ledgers and post immediately directly to the
General Ledger

croo so at any moment we can say ... what is my Profit and Loss

croo what is my balance sheet

croo they are perpetual ... always available

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 19
croo so I named our accounting approach Perpetual Accounting - because I could not find a description
for this approach anywhere else

croo end of story

croo I thought I had added this to the article discussion in the wiki but I don't see it ... it must have
been somewhere else

croo I did bold the here in the opening sentence ... ADempiere implements the modern Accounting
Theory referred to here as 'Perpetual Accounting'.

red1 yes now i recollect .. about c/f and b/f .. they do not show if you are within a period

red1 but maybe steve mean is that those periods always matter

red1 u have to close off

red1 interim figures are not that useful yet

croo no what steve said stands

red1 perpetual has no closings in inventory.. that can be understood of its value

red1 as inventory is ongoing

red1 but for accounts.. its an offline affair

croo yes

croo not in adempiere

red1
unlike inventory its a business

croo in accounting 101 it is

red1 offline in the sense that u can withhold processing until the next working day

red1 u can put on hold all acounting and let the business process run

croo because the ledger does not include ALL transactions until a period is closed

red1 u can buy, sell, move...

red1 then end of mth u can just turn on the accounting processor

croo you could do that but that's not the same

red1 yeah u re rite with that

red1 so in what way is it perpetual?

croo normally you would write to other ledgers like debtors or creditors

croo in fact you can have an number of ledgers

croo but when you close a period then you consolidate all those to post into the general ledger

croo only a period end

croo we post now

croo so the accounts are always valid now

croo the period control does not close off debtors ledgers and post totals to the general ledger

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 20
croo our period control simple stops additional posting in a period

croo in the basic 101 accounting you cannot post in a previous period because well it;s been totalled and
posted to the ledger anyway

croo making changes there would not effect the general ledger from which the P&L and Balance Sheet
reports are craeted

croo so it's perpetual because it always is the correct balance

red1 how will it be then in non perpetual accounting prior?

croo the thing is there is no definition of either way

croo I google all over

croo well I said how it was above

croo I make a sale... I post it to be debtor ledger

red1 i reckon nothing change with traditional accounting in significant way

red1 just that it is more tedious previosly

croo why are so many people confused then?

croo no

red1 cos we are not accountants?

croo it is different in that we have many books in stead of one

croo no not it

red1 so in adempiere there are also 'debtors'?

croo no

croo debtors ledger

red1 or equivalent

red1 so no debtors ledger?

croo someone who owes you money is a debtor... so customers are debtors

croo but we do not keep a debtors ledger

croo no

red1 but we do have that in another form

red1 under BPartner defaults

red1 its Trade Receivables or sumtin

croo in a traditional system the period end posts the balance of the many ledgers to the general ledger

croo that's an account in the general ledger

red1 ah so its the timing then

red1 ok i can explain that

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 21
croo think about it this way

croo we have no computers

croo you are the acocntant for a company

croo you write in a book everything they sell

croo and everything you receive

croo now you get very busy

croo so I join up as a second

croo you have only one book and we cannot write in it at the same time!

croo so we make two books

croo but to keep it organised you say .. you look after all the people we sell to

croo and you give me a book and call it the debtors ledger

croo at the end of the month./qtr/year whenever

croo if you add up what's in your book you do not have the whole story anymore

croo you must consolidate what is in my book with yours

croo no supposed we have lots & lots of busienss

croo so you hire lots and lots of clerks

croo each is given a book!

croo some might be a book for one customer

croo some a book for one supplier

croo to know if you are making any money or not you must know what is in all books

croo so everyone totals up their books

croo and the balances go into a general book

red1 ok so in our computerised system we wont need to do that

croo and the balance of that book is the answer to profit & loss

red1 we can 'perpetually' close anytime?

croo when we moved to computers the programmers said to the accountants

croo tell me how you work and I will write a program

croo and the accountants said well, we have many books called ledgers

croo some are for debtors, some creditors, some are nominal or general, this is what goes in each

croo then at the end of the month we totals them and put the balance in this general ledger

croo what compiere/adempiere does is said

croo we have computers why do we have to put all this in many books?

croo when it's in many books I cannot say what my balance is

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 22
croo because the balance is from the general ledger

red1 so now we can automatically total up into the GL

red1 summary is granted

croo but we can put all this straight in the general ledger

croo and beacuse it is

red1 so thats what you mean when u say 'perpetual'?

croo wel always know what our P&L or Balance sheet is not just at that moment of the end of a period

croo and because it is not only available at a period end but always

croo I called it perpetual

croo Steve was not saying my term was wrong!

red1 i think there is a better word

croo just that it is not at term accountant use

croo and they have no term for it

croo I looked

red1 based on this understanding i would say the GL is 'virtual'

croo it actual not virtual

red1 you have a 'virtualised' GL

red1 virtually actual

red1 actualised?

croo and perpetual fits in with that actual accounting term pertpetual inventory

croo I think perpetual is better

croo the point steve is making is that this isn't a standard term in accounting

croo but there is no term to describe it

red1 vs virtual machine

croo because it is not a universal way of doing it

red1 hmm we can invent this then

red1 how about 'realised'?

croo if you go to accounting school they will teach the old periodic system

croo well exactly that;s what I did

red1 realising the GL

red1 but i see in the context of periods, the word perpetual is apt

red1 it gives the context

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 23
red1 periodic vs perpetual

croo exactly

red1 i will put this conversation and your mailed one as a 'proffesional review'

croo you cannot simple say it is the standard accounting term used

croo you must describe it AND coin the term

croo as I say I do not believe steven was saying it's back or wrong

croo just that it's not a standard term

red1 as long as we bare its discovery

red1 i will caveat its not a standard term

croo well I looked for an official term to describe it

croo I had been reading about perpetual inventory

croo and I thought well ... that's a good fit

------------------------------------------------------------------------------------------------------------------------------------------

Guys
I read it and I think it will confuse the readers! It certainly confused me ;-)
Maybe you could say something like this.

The standard accounting equation of Assets - Liabilities = Equity is only correct if the year end closing
entries have been made so that the sum of the P&L accounts is zero. There was traditionally a manual
process that actually did this.

Before those period-end entries happen the equation is actually


Assets - Liabilities = Equity +Revenue- Expense. This is because it is only if you include the Revenue
and Expenses accounts that the sum of ALL accounts will be zero (so nothing will balance!).

In years gone by it was traditional to put all purchases of inventory into a purchases expense and then do
a stocktake at year end, put the value ascribed to the stock into the balance sheet and reduce the
purchases amount by that value. The accounting system thus only showed the value for inventory at the
end of the period.

This process was replaced over time by methods where every purchase of stock was put into the balance
sheet inventory account and every sale caused a reduction in the balance sheet inventory account. This
meant that there was always a value of inventory in the company's books. This process was called
"Perpetual Inventory"

[perpetual inventory - Definition


Keeping book inventory continuously in agreement with stock on hand within specified time periods. In
some cases, book inventory and stock on hand may be reconciled as often as after each transaction,
while in some systems these two numbers may be reconciled less often. This process is useful in keeping
track of actual availability of goods and determining what the correct time to reorder from suppliers might
be. Sometimes also called continuous inventory.]

Similarly the process where Assets - Liabilities = Equity +Revenue- Expense gives rise to a balance sheet
that always balances because the Equity value contains the Revenue - Expenses figure at all times.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 24
Colin coined the term "Perpetual Accounting" to describe this method to non-accountants reading the
ADempiere forums.

Colin ... Is that a fair statement of what happened?

regards
Steven

===============================================

Hi Guys,

Well I do agree with Steven in that it is not 100% clear & precise. But
I also think only accountants will understand Steven's explanation ...
or the initial bit at least. :)

But I'm not sure how to make it simple for non-accountants and yet still
technically correct. Maybe if you clearly describe Revenue & Expenses,
Assets & Liabilities, and Equity first.

My understanding was; typical Accounting 101 approach was periodic


because pre computers it required multiple physical books. So these had
to be periodically consolidated. The first programs to computerise
accounts simply this mimicked this procedure.

Perpetual Inventory was a first step to rationalise this in a modern


computing business environment.

"Perpetual Accounting" is a further extension of this rationalization.


How it changed is precisely how Steven describes. But Steven I used
this term because I could not find an "official" term to describe it.
There is obviously a difference between the old accounts 101 periodic
approach you learn in school and this approach which large
multinational's computing systems are beginning to adopt because finally
someone has realised that we computerised a procedure that actually is
not required once you have computers. We addressed the manual procedure
to solve this problem rather than the actual problem itself. How to
determine how much money I made (Profit & Loss) and what is the current
state of my affairs (Balance Sheet).

Colin

Power of the Bazaar


The above here is a demonstration of Web2.0 or web facilitated interactivity in evolving
learning among the community irrespective of level of expertise and experience. It is a
peerocratic meritocracy in action.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 25
Quiz
1. What is the main purpose of accounting?

2. What does Colin Rooney mean by perpetual accounting?

3. What is the difference between GAAP and IFRS?

Glossary

Term Description

Giving an To provide relevant, important and complete but balanced set of


account information

Double-entry Accounting practice where for every debit there is an opposing


and equal credit and vice versa

Accounting Accounting information showing the balanced sum of Assets,


Equation Liabilities and Owner's Equity

Journal Chronological entry of accounts

General Ledger A book where journal entries are organised into separate accounts
topics

GAAP Generally Accepted Accounting Principles

IFRS International Financial Reporting Standards

Aging Analysis Details of terms of payments maturity over a date-time range

Financial Accounting Facts presented in conventional formats such as


Statements Balance Sheet and Profit & Loss Statement

PO Commitment Occurence of PO has accounting consequence in the books

Perpetual A term invented by Colin Rooney to best explain the impact of


Accounting electronic computing on some aspect of accounting practice

Peerocratic A term derived from Linus Torvalds description of how the online
Meritocracy community behind an open source project works

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 26
Summary
1. Accounting has a long history from ancient times to count resources and record them.

2. Modern accounting keeps tracks of transactional elements that have contractual value
between parties and budgeting purposes.

3. Accounting standards are important to help prevent misrepresentation of financial


reports.

4. GAAP is now giving way slowly to IFRS as the defacto international accounting
standard system to follow.

5. Though ERP systems still have periodic control, they allow perpetual views of
Financials statements.

6. In Compiere/ADempiere there is GardenWorld sample data to generate accounting


reports from.

7. Open Source brings about a learning and adoption environment that is collaborative
and evolving that is easily accesible via the web.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 27
References
1. http://www.woopidoo.com/business_quotes/authors/charlie-munger/index.htm

2. http://acct.tamu.edu/giroux/Shorthistory.html

3. http://www.qtunnelconsulting.com/Controlling/Cg_DE_Accounting.html

4. http://www.adempiere.com/index.php/Perpetual_Accounting

5. http://www.aleablog.com/ifrs-vs-us-gaap-european-banks-leverage-overstated-
picture/

6. http://adempiere.com/index.php/IFRS

7. http://biz.thestar.com.my/news/story.asp?file=/2009/2/7/business/
3212426&sec=business

8. http://sites.google.com/site/red1accountingmodulereview/my-review-notes

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 28
Chapter 2 - Accounting Using Computers

Learning Objectives
By the end of this chapter, the student shall be able to:

1. Map out the areas covered by computerised accounting;

2. Identify the issues and concern with computerised accounting;

3. Detail the compliance standards needed for computer based accounting.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 29
Introduction
The computer has the greatest impact on the age-old accounting practice. Its ability to
crunch numbers, maintain high accuracy, repeat processes and organise large data
storage makes it perfect for accounting. Tedious redundant clerical work such as
budgetary control, making copies of documents and posting its values to the General
Ledger can now be done by computer software.

Object Oriented software such as Java can model closely the accounting structure and
processes to be precise and integrated. Java having enterprise capability allow the
subject of accounting to be portable and usable in large organisations having a wide
network of locations and different departmental functions.

Computing precision guarantees an error free application for accounting. Double entry
is always balanced. Otherwise the program will rollback the operation. Each activity in
the computer can also be logged and tracked for audit requirement which is an
important one in accounting discipline. All these are very possible, but it is up to the
final implementation to ensure that is fully complied.

Computing has further impact in the way accounting information is stored and
organised. Computer technology allows information to be gathered at a single virtual
location or database system. This means high integration and efficiency or non-
redundancy of information reference and integrity. However it also opens to a new way
of committing fraud, by unethical practice of course. There will be requirements of
safeguarding from new methods of intrusion and manipulation.

Do You Know That?


The Java language data type to hold financial amounts is BigDecimal? The
mathematical precision of BigDecimal is higher than Float[1]. Compiere/ADempiere
uses BigDecimal to represent any financial figure in its code logic.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 30
2.1 Using the GL Journal
Here we call up ADempiere again to do journal entries into the General Ledger. We start
seeing how the computer has an electronic version of the traditional General Ledger
book-keeping.

1. Launch your ADempiere application as GardenAdmin.

2. Go through the main menu or search for GL Journal.

Figure 2.1 - Calling up GL Journal

3. The following window will open. It has 3 tabs:-

a. Batch - for maintaining the whole batch.

b. Journal - for maintaining the batch information.

c. Line - for entering the journal posting details.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 31
Figure 2.2 - The GL Journal window

4. We will just fill in the fields coloured pink which are mandatory.

Figure 2.3 - Filling in mandatory fields in GL Batch

5. Select GL Journal as Document Type.

6. Go to the Journal tab (see next page).

7. Fill in a Control Amount of 100.00.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 32
Figure 2.4 - Filling in the Control Amount

8. Go to the Line tab.

9. Click on the icon on the right of


the Combination field.

10. Note the open Combination


window below.
Figure 2.5 - Combination window pop-up

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 33
11. Give any text value for Alias.

12. Select an Organization.

13. Click on the icon at the right of the Account field.

14. Choose a value such as Salaries.

Figure 2.6 - Combination Account selection

15.Click on the Save icon on the


right side.

16. Note the new line in the lower


panel.

17. Click on the OK button at the


bottom right.

18. Give an amount value of 50.00


in the source debit field.

Figure 2.7 - Journal Line value

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 34
19. Do another Journal entry line for Rental

Figure 2.8 - Another Combination for Rental

20. Put in an amount of 50.00 in the same field too.

21. Go back to the Journal tab.

22. Note the total is same as the Control Amount. This helps to manage the hard-copy
source to be correct as entered.

Figure 2.9 - Journal Tab completed

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 35
23. Press the Complete button

24. Ok the Complete option

25. Note that the Journal batch is


processed and a completed status
should appear at the button and at
the status bar on the bottom left

26. After starting the Application Service so that accounts posting can take place
automatically, go to the top menu.

27. From the View menu pull-down, select the Account Viewer. Select todays date and
click on the OK button on the bottom right

28. Alternatively you can just click on the Posted button of the Journal window after a
refresh.

Figure 2.10 - GL Journal accounts concequence

You will note some strange things in the accounts posted. Can you see what it is? First
there is this line called Suspense balancing. Where did it come from? Then there is this
Intercompany lines. Furthermore, the Salaries line seems to be contraed and split into 2
lines with one for Store Central organization! Interesting. Now you will get to
appreciate the power of the computer in doing those stuff in the background without
you knowing or caring about it.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 36
2.2 Suspense Balancing
Suspense account is created when there is a human fault in the double entry process. In
our above case, we did not do our double-entry! Bad accountant. The Pharaoh will have
your head. We should have make an equivalent debit entry into some Expense
account so that we have equal amounts on both sides of the General Ledger.

So is it with the 2nd entry. Another Expense debit against the Rental credit. Then the
computer would not kick in and do the dirty work for us, and put a corresponding
amount on the debit side. But heh, that is what we are trying to prove here. The
computer can now do all the dirty manual clerical work which is very much redundant
now.

2.3 GL Distribution
There is another cool and automatic feature in ADempiere to do GL Distribution. It
allows any posting to any account be distributed among different organisations. You
can specify the percentages for each organisation

Figure 2.11 - GL Distribution

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 37
1. Go and look up the menu item GL Distribution

2. You will notice that there is already an entry for Salaries (previous page)

3. Examine its contents and you can see the distribution logic (below)

Figure 2.12 - Distribution Percentages

As seen above, computing capability allows such accounting work to go through


without the handicap of human error and redundancy. You need not check what you
have entered to ensure all accounts are posted. You can easily search what is done, and
obtain a listing to refer to. You need not remember what rules of distribution are being
set. They just automatically enact when an amount is posted to the set account element.
That saves alot of manual effort. Avoiding manual or human intervention also reduce
possibility of fraud or omissions. Explain about these benefits next time you have to
convince an end-user who has no such system in place.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 38
2.4 What Does ERP Handle?
With programmability, we can do more things than just a smart GL Journal processing.
Thinking ERP system, we can handle document processing involving Sales Orders,
Invoices, and Payments, and trigger associated accounting consequences such as the
Debits and Credits for each document process.

Previously what an accounting system does is allowing the electronic data entry to do
Journal entries into the General Ledger, but the above description goes one step further
in allowing document processing to trigger such GL entries. This is called event-based
accounting. Being event-based, makes it a perpetual accounting system rather than
periodic. After capturing such business process, the ERP outputs Financial Statements
such as Profit and Loss, and Balance Sheet. A Chart of Accounts (COA) detailing the
specific element IDs will determine where each posting is made to. The COA will be
looked in detail at a later chapter. Below is a diagram showing a big picture.

Figure 2.1 - Event-based Accounting has automated postings

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 39
From the above diagram, we can better see that with the advent of computing software,
the boring and manual repetitive work of keeping the General Ledger and doing
double-entry posting is being removed, in stages. This redundant work is taken away
when an event associated with a trigger that does the double accounts posting during
such an occurence.

Now it is up to how much of business events are being resolved. For a start, it is the
normal common business process such as Purchasing and Sales. Then its the materials
movements, into and out of the organisation. All these affect the respective accounts. In
the Default Accounting chapter we shall see exactly what are the accounts programmed
to be posted during events in ADempiere.

We shall examine in depth under the Accounts Posting chapter how such postings take
place when a document is processed.

2.5 What about Fraud?


You may feel happier to do much less work now with such an automated ERP
Financials system. Now, are you aware that another form of danger may crop up? Sure,
most of your staff or yourself wouldnt know how to twitch the codes or even
comprehend how the system does what it does. Everything will run as programmed
and that is all behind the scenes and under the hood. As the software running your
system is provided by a vendor, that vendor or its coders know exactly what is
happening in your system. In future, if one of them have access to your system,
intrusions unknown to you can happen. Bad news is that they have happened before
and are happening all the time. In US alone, there is a reputed $6 billion worth of fraud
being committed yearly[2].

What about being Open Source? Wouldnt that be even more dangerous? Now that even
your own staff knows about the codes. The answer is not necessary. On the contrary it is
much safer for you. For two simple reasons:

1. The vendor can no longer lock you in. What they know, you also know. Or other
experts that you can engage independently also knows. That isolate the first
predicament.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 40
2. But this leads to the second predicament. How about your staff? Precisely that even if
they know, so do the rest of the world. Anything they might do can be exposed, by
again engaging and outside expert.

You thus have to protect yourself by instituting security procedures such as proper
documentation and audit of code changes done by authorised coders within your
management. Sometimes mishaps occur innocently due to improper update or change
process to the codes or scripts or data. There has to be a strict set of best practice that are
clear and understandable at least by middle management. The latest tales of Enron and
Satyam fraudulent declaration of financial data is only the tip of an iceberg. Many must
have escaped the weak human eyes.

A standard open source routine secured server referenced by remote financials system
can be an ingenious way to prevent fraud because the system is verifiable at a single
point and not replicable to a closed instance. For example, the server can act as an ID
issuance hub where each ID given is a unique running number. it can be used by others
to verified that all taken IDs for financial transations are accounted for. It can be some
sort of a digital certification that is easily understood. If such a routine is disabled in the
financials system, we can know as it becomes a mainstream open source feature.
Another way can be a self-checking routine rendered active via embedded code checks
or locks within the binary that can be secured via jar signature matching with the main
project release binary signature.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 41
2.6 Necessity of Standards
Now, though computers seem to work like magic but it cannot make our life any easier
without a certain basis. Things have to be standardised. Computers are after all dumb
machines and rely on human input. Garbage in, Garbage Out. Particularly when the
input is not following standard datatypes, formats, value reference and process.

As seen above, Financial Statements are printed based on certain standards such as the
Accounting Equation and Charts of Accounts. The GL Distribution works because it is
tied via accounting element IDs. And the whole thing works because they are
intergrated from the ground up. They followed an overall master design that must work
in tandem and not in disparate silos.

In the previous chapter we touched on standards such as IFRS but here we mean
standards as in standardisation from the usage, data-model and technical systems point
of view. We often refer to a standard design or interface, standard integration,
standard data dictionary, ecetera. It can also refer to the the standard use of periods,
unit of measures (UOM), currencies and other common contemporary accounting
terminology.

One important aspect of standards is the issuing or certifying body. This is usually the
an accountancy regulatory organisation such as an Association of Chartered
Accountants. It has to be a recognised responsible body by the public or other
professionals relevant to the industry such as managers and financial officers of both
public and private sectors. In this way the standards assume legitimacy and industrial
acceptance.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 42
2.7 Computer Assisted Accounting System
Computer Assisted Accounting System or CAAS is a description of such systems and
there is a compliance advisory that lays out the standards and safeguards to be in place
for any such accounting system that uses computing technology such as stated in an
online PDF document about GAAP/CAAS[3].

Figure 2.2 - GAAP-CAAS Document from Germany

The referenced document stresses the importance of sound accounting rules such as
GAAP and the audit trail preservation of the data. Since computer data is in mangetic
form whether on disk or other backup media, they are erasable or modifiable. Thus
compliance rules are introduced about what documents are allowed to be kept on such
media. For example, tax related documents are scanned into microfiche or microfilm if

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 43
they are archived or linked to magnetic media transactions. Then when calling such
transactions by auditors they are assured that the scanned orignals are present and
traceable as well as verifiable.

At the moment ADempiere does not have a microfiche/microfilm linkage but it is


something that is easy and viable for an open source project. A very important attribute
for CAAS to be in compliance with GAAP or other standards is the audit trail
traceability all along the process chain, with forward and backward document type
referencing and its content details matching.

ADempiere already has 3-way document matching for its Orders-Invoices-Receipts. In


the accounts postings, there are also intermediate accounting such as Non-Inoviced
Receipts to keep track of shipments or receipts that have not being invoiced and thus
left out of the payment or AR/AP (accounts receivable/accounts payable) list.

ADempiere also disallow arbitrary deletion of records and the conventional advice is to
deactivate any record instead of outright deletion. This pertains to documents such as
Business Partners (Vendors, Customers, Employees), Products, and Organisations
where financial reportings may still refer to such information. By deactivating them
instead, make them still referenced but not allowed for being used in any further
transactions. In this way, no information is destroyed or wiped out and is archived
instead.

Figure 2.3 - Active checkbox for deactivating a record

It is important to note that even though the term paperless office and save a tree
sounds contemporary and futuristic, it is seriously not applicable in the financials
world. Hardcopy and printed documents served very important purpose of being

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 44
traceable, enforceable, and legally acceptable in court. A magnetic media is not as it can
be easily forged. A piece of paper can be tested in a forensics lab for tampering. That is
why I often advice a journal proof and hardcopy end-of-day printouts to capture the
daily transactions. It serves as an important backup and sound practice against
runaway manipulation of a computer system that is waiting to happen as information
and systems usage explode exponentially[4]. it is getting bigger due to the cheap cost of
computing but the human element of control and fraud-prevention is not human-
intervention-independent. You still need a human and a trusted one at the end of the
line. And s/he cannot be dependent on a digital system to tell him or her that everyhing
is under control. There must be a verifiable physical evidence.

Quiz
1. When is a transaction rollbacked?

2. In what tasks does a computerised system takes over from an accounts clerk?

3. What are the disadvantages of using a computerised ERP system?

Glossary

Term Description

Redundancy Repetitive acitivity that humans leave to computers to handle

Rollback Cleanly aborting by reversing back to the original state

CAAS Computer Assisted Accounting System

COA Chart of Accounts

AP Accounts Payable

AR Accounts Receivables

Journal proof Hardcopy printout of a transaction with accounting consequence

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 45
Summary
1. Accounting being mathematical is perfect for computing technology to manage it.

2. An ERP system automates much of the double-entry balance checking and accounting
consequences of document processing.

3. ADempiere has a General Ledger Journal entry system that does Suspense balancing
and GL Disctribution.

4. You can view the state of the accounting facts through the Account Viewer.

5. Fraud can still occur in computerised system if there are no proper compliance to
audit standards and human surveillance

6. Open source can help to prevent internal fraud as its codes are open to outside peer
review.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 46
References
1. http://epramono.blogspot.com/2005/01/double-vs-bigdecimal.html

2. http://findarticles.com/p/articles/mi_m4325/is_n5_v35/ai_n25020854/

3. www.it-audit.de/assets/artikel/IT_AUDIT_GoBS_englisch.pdf

4. h t t p : //e ddb l og on l i n e . b l og sp ot . com/2 0 0 9 /0 8 /i s- vi r t u a l i z a t i on - cl o u d -


prerequisite.html

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 47
Chapter 3 - Accounting On The Web

Learning Objectives
By the end of this chapter, the student shall be able to:

1. Understand the use of web application server in accounts processing;

2. Describe the shopping cart process via the web;

3. List the requirements for web transaction security.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 48
Introduction

Figure 3.1 - Web computing means enterprise service to many users

The Web opens up enterprise computing. It means now many more users will be
accessing an application that is web-enabled. This demands performance from the
system. It must be scalable to perhaps thousands of online users at one time. Though
this is the more of the work of hardware, CPU speed and large RAM size, it is also
important to have the application designed in a distributable way and using optimal
object componentisation such as what EJB 3.0 can offer.

At the moment ADempiere has not become EJB 3.0 ready yet but with some fundings or
added developer resource, it can easily get there as it is already in Java with a
knowledgable community behind it.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 49
ADempiere is still robust for the web as it already has Web Services capability where a
certain component is called exclusively by another 3rd party web application. This is
ideal for many web service providers such as online stores or B2B (business to business)
systems.

The most common type of websites with accounting requirements are e-shops or e-
commerce ones. Private closed systems are also beginning to use web-based services or
protocols such as https because they are now cheaper and easier to manage. Certain
legacy protocols are now usable in ADempiere such as EDI (electronic data
interchange). EFT (electronic fund transfer) is more for the banking industry which is
very closed and will not expose what system they are using. However, ADempiere can
easily utilise such EFT standards if decided so by a bank, discretely. Banking after all is
now a very competitive business on the net.

Accounting on the web exposes even more to security issues. For previously stated
reasons, being Open Source is the best option for higher security, over-the-web systems
at normal costs[1].

The most common use of web with accounting systems is for e-commerce integration
where shopping or transactions done over the web is processed at the backoffice of the
system. The trasaction record does not end there but are further processed as
documents of sales orders or invoices for completion such as checking of stock
availability and payment clearance if it is using some form of online payment such as
via a credit card.

It must be noted that using the web is actually pushing the workload of a backoffice in
handling a sales transaction to the end-users. That is why this is also called self-service.
Thus having the web in the picture is going one bigger step forward for automation and
supply-chain management or economics. It is removing the role of the middleman sales
or downsizing the backoffice depending on how you look at it.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 50
3.1 Using the Application Server
Accounts processing in ADempiere is done via an applications server such as JBoss or
Glassfish. Reason being that it is a transational activity and requires perfect accuracy
and higher performance. It also needs to handle multiple transactions at the same time
and OLTP (online transaction processing) rules such as exact balanced postings or
rollback are managed. We shall see in a later chapter how that is done within the codes.

Though JBoss like any J2EE server, already has specifications such as JTA (Java
transaction API) but ADempiere is not using that but its own Java coded balance
checking and rollback mehanism when it does not balance. A possible reason being
Compiere, its parent, was created around 1999 that has not seen the maturity of such
JTA yet. However I feel this self-customised implementation can be lighter and easier to
maintain, since its quite simple in purpose as you can see from its codes later.

In the GL Journal example above, we noted that we need to start the application server.
This is done by going to the ADempiere application home or binary folder and further
to its subfolder called /utils. There we execute either the shell script or batch file called
RUN_Server2.sh or RUN_Server2.bat respectively.

Figure 3.2 - Launching the application server for web clients to access the application

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 51
3.2 POSterita POS
Selling goods across the web usually uses an e-shopping cart that has a credit card
payment gateway to capture the agreed sale and process the transactions. ADempiere
has a web client that does that. Once we launched the application server as shown
above we can get to that shopping cart via a web browser and calling its URL as shown
below, in this case its IP address is http://10.37.129.2/admin/ .

Figure 3.3 - ADempieres web interface main page

The IP address is obtained from the Server2.sh launch terminal prompt. Otherwise you
can use localhost or the computer host name. Note that there is two e-commerce
applications appearing there. One is the Web Based POS or point of sales system. The
other is the Web Store.

As you can also see, the Web Application is there as the old UI HTML or ZK Ajax UI.
You can still do those GL Journal entries done earlier over the web here, even from
home. Now you can cut down the transport costs of your clerical staff!

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 52
First we take a peek into the Posterita Web POS. Click on the link and you shall see a
new screen. Look for the GardenWorld sample store on the right panel and click on it. In
the POS Login displayed below, key in SuperUser/System for Username/Password and
the Pin number should be 1234. Figure 3.4 - Posterita POS Login

You then select a till, in


this case its Garden-
World, and it will come
to the main menu as
shown below. From there
you can play around
clicking on the links. It is
ok to try out as it is a
sample client and not a
live production site. That
is a good way to learn.
Posterita is a 3rd party
vendor that contributed
this POS to the ADempiere project and any business inquiry should be directed to them
at their website http://www.posterita.org/.

Figure 3.5 - Posterita POS Main Menu

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 53
3.3 Web Store
Now we go through some e-commerce process through a self-service mode in the Web
Store of ADempiere.

Go back to the admin web page and see that there is a self-service area with Web Store
and Request links. The Web Store allows ordering of goods over the web and the
Request is for raising trouble-tickets and triggering email notifications to those in
charge. We will now try to add some orders and go through a payment process using
the credit card payment facility.

We have to login again through a secure protocol by adding the SSL port setting:

https://10.37.129.2:4443/admin

Click on the Web Store link.

Figure 3.6 - Web Store window

If you have not created your own account you can do so by clicking on the Login on
the top right.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 54
Figure 3.7 - Creating User Account

Click on the New User button.

Fill in the coloured boxes with your details.

Click on the Create New User when completed.

You can then login with your email-id and password.

Figure 3.8 - Web Basket of orders

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 55
We shall order some things into the Web Basket. I have created a product before that
called Tiket. I will have one of that and 2 of Azalea Bush. Then click on the Create Secure
Order.

Figure 3.9 - Confirm Personal Information

Figure 3.10 - Credit Card payment submission

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 56
It will ask you to confirm your personal information. Check that and click on Submit
Info.

Fill in your credit card number and other details as requested. If your system is setup
with the credit card merchant certificate your payment will go through. If not you will
get the following error in your log.

21:14:37,845 ERROR [STDERR] ===========> PP_PayFlowPro.<init>: No cert file /Applications/Adempiere/lib/

f73e89fd.0 [20]

Click on the My Orders link on the right panel of the screen.

Figure 3.11 - My Orders page

You will see that a Sales Order is made but In Progress for today (Sep 23, 2009). From
here you can see that you are able to do a virtual self-service throughout. You need not
bother calling up the business operator for many details. You can check if your sales is
completed, and see if shipment is being made. You can print out your own invoice for
your own record. All this is done securely across the web. You can also check the
Account Viewer and see that the accounting consequence will kick in once Invoice or
Shipments are made. You can check more if you have access via the Ajax UI or old
HTML UI.

This proves importantly that commerce can be conducted safely via the web and is
integrated fully to the whole ERP system in the backoffice. For large scale operations
over the web, it is important to separate the Application server and the Database server.
Any file attachments should also be set onto a different directory so that backup is more
optimal. DB space can run into gigabytes easily if not structured well.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 57
3.4 Further Security
Besides https encryption, there are further security concerns and steps that can be taken.
Earlier we alluded about the use external auditors to look at the computerised
accounting system. We also touched on sound audit trail practice where each
transaction is traceable. There is also need of the computerised system to be efficient in
extracting data and such data has to be complete and comprehensive in giving a 360
degrees view of the business.

Such strigent measures will discourage or prevent fraud from happening without
detection for long. The designed financials system must have human checks to prevent
a programmable fraud from accidently happen. Checks of amounts to be written in
cheques for example or flagged out for more exceptional reporting if they are above a
ceiling control.

Large firms that exposes its application to the web can engage security consultants that
keep up to date on latest security developments and measures.

Much security breaches are done in very creative manner and that often involves
experts with inside knowledge of the system. Some popular exploits are based more on
social engineering rather than technical ingenuity. To ensure more security is thus an
awareness among the end-users and implementors to invest resources in security
thinking, that look out for holes, to perform continous analysis of security loopholes
that may happen when we are not looking.

One of our community members managed to find one shocking hole in our old web UI
where using a short URL could expose the User record window and thus the password
in it. It was not shocking to that person who found it because he is used to noticing such
scripts and knows that its insecure. It is shocking to the rest of us because we do not
bother to look. That hole was immediately patched, and the patch was sent also to our
parent project, Compiere, and thus took subsequent action to patch their code.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 58
3.5 Electronic Data Interchange
EDI is a popular buzz word for the communication of business data from one host
system to another. It determines a standard format language of data content so that
disparate remote systems can electronically exchange any information with each other.
EDI is mostly used for commercial networks such as banking and international trading.
EDI started in the 1960s and became associated with the X12 ANSI standard[2].

Figure 3.12 EDI FACT as a standard for data exchange with external systems (source: mentem.com)

Example in Wikipedia: EDIFACT source code


A name and address (NAD) segment, containing customer ID and customer address, expressed
in EDIFACT syntax:
NAD+BY+CST9955::91++Candy Inc+Sirup street 15+Sugar Town++55555'

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 59
In ADempiere, EDI was integrated into the trunk and made available in recent releases.
It uses the Electronic Data Interchange for Administration, Commerce and Transport
(EDIFACT) document translation standards. The following is from the wiki pages in
www.adempiere.com contributed by Trifon Trifonov.

Sponsored Development: EDI Fact Import/Export

Figure 3.13 - EDI function in Invoice

Requirement Steps In the Invoice (Customer) window Press the Submit EDI button
which is active only after document is Completed.
The submit button runs process that:
Look up the DocumentType to see what "Doc Type" to use.
Look up the BPartner
Look up right "EDI Format", "EDI Processor" for BPartner and DocType.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 60
Read the EDI Format
and the document lines
to construct the EDI
document.
Get the data strings
using ColumnID, and
use Type to decide
which separator to use.
Order them by position.
Truncate lengths,
validate usage.
Using the info from
C_EDIProcessor submit
the EDI document. .

Figure 3.14 - Successful submission via EDI

Inbound Processing
Use the scheduler to schedule a process that will poll according to the rules configured
on C_EDIProcessor
Look up the Business Partner and EDI_DocType to determine which format to use to
parse the file and which document type to create.
EDI element ST01 stores EDI code. Read this code and look it up in
C_EDI_DocType.EDI_Code to return C_EDI_DocType_ID
EDI element ISA06 stores Interchange Sender ID. This represents a Business
Partner. Read this code and look it up in C_Bpartner.C_EDI_Sender to return
C_BPartner_ID.
Use C_EDI_DocType_ID and C_BPartner_ID to find the right C_BPartner_EDI record.
This will tell you which doctype (AD_DocType_ID) to create, and which format
(C_EDI_Format_ID) to use to translate the file.
As an alternative, C_EDIProcessor could define a JMS queue to post to.
Then we could manage the movement of the data with ServiceMix. .

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 61
Create new windows

Figure 3.15 - EDI Features in ADempiere

Add Table: "C_EDI_DocType"

FIELDS: C_EDI_DocType_ID; Value, Name, Description, Help, C_EDI_DocCode


(String, used to match with EDI element ST01)
Samples: (850 PO, 810 Invoice)

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 62
Add to "Document Type" window

FIELD: C_EDIFormat_ID

Add Table: "C_EDIFormat"

FIELDS: C_EDIFormat_ID, EDI Format Name, Value, C_EDI_DocType_ID,


AD_Table_ID, SegmentSeparator, FieldSeparator

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 63
Add Table: "C_EDIFormat_Line"

FIELDS: C_EDIFormat_ID, Position, Value, Name, Comments, Type(Element,


Segment)

Add Table: "C_EDIFormat_LineElement"

FIELDS: C_EDIFormat_LineElement_ID, Position, Value, Name, IsMandatory,


ElementType(Constant, Field), ConstValue, MinFieldLength

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 64
Add Table: "C_EDIProcessorType"

FIELDS: Host, Account, Password Info, C_EDIProcessorType_ID


Add Table: "C_BPartner_EDI"

FIELDS: C_BPartner_ID, C_EDIFormat_ID, Inbound(Y,N), C_EDIProcessor_ID,


C_DocType_ID

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 65
Quiz
1. How does an application allow remote users to access it?

2. What kind of industry will generally use EDI?

3. Elaborate if accounts posting is affected by the Web layer.

Glossary

Term Description

Enterprise System that can cater to a high number of users


Computing

EDI Electronic Data Interchange - for business data information


communication format between 3rd party systems

API Application Programming Interface, a software library of standard


functionals to be used by 3rd party software

GL General Ledger that stores all operational accounting and


transactions and records for later analysis and reporting

POS Pont of Sales system that is used for handling sales on the spot

Event Accounts posting done when there is a document process


Accounting activated from a business event such as Sales of Shipment.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 66
Summary
1. The Web extends the power of applications with financials capability to remote users.

2. The ADempiere application framework is suitable for extensions such as EDIFACT.

3. Posterita and Web Store is a UI layer for self service, e-commerce across the web

4. Web layer is an alternative user interface whereas the ERP backend is similiar and
able to exceute the accounts posting automatically

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 67
References
1. http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/open-
source-security.html

2. http://en.wikipedia.org/wiki/X12_EDIFACT_Mapping

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 68
Chapter 4 - Default Accounts

Learning Objectives
By the end of this chapter, the student shall be able to:

1. Describe the Chart of Accounts and its format;

2. Explain the usage of default accounts in ERP;

3. Use the COA Editor.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 69
Introduction
We see earlier during a Sales or Purchase cycle where accounts are automatically posted
to its categories in the General Ledger. This is because those accounts categories are
associated with their respective events. Likewise, we see during the demonstration on a
GL Journal entry where suspense balancing is affected. Again, default postings happening
on its own. In fact, all standard document types have its own accounts postings that:

(a) happens in the document-type java classes or sourcecode, and;

(b) does double entry to a set of credit/debit account elements or ID pairs.

Figure 4.1 ERP Accounting Flow

The above shows how documents refers to the COA to post to the respective accounts.
The right panel are the financial reports that will derive from such postings. This give a
big picture of the accounting flow environment in an ERP.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 70
We shall look at these in detail within this chapter. The figure below depicts this again
in a more technical sense. Compare this with the earlier figure. The document-type
action happens in the Document Engine.

The double-entry is done in the Accounting


Engine. You can see the role of the COA
there to dictate the use of the default
settings.

ADempiere being an international ERP


system, inherited from Compiere, allows
internationalisation or localisation
according to country and language. For
accounts postings that means different
accounting or tax rules. That is usually
handled in the exception ModelValidator
or Callout scripts.

Figure 4.2 Automatic Accounts Posting in action

1.1 What is the Charts of Accounts?


The COA is a reference table of accounts for use by the business or operations. It lists
out each type of posting title and is numbered in an orderly fashion. The COA is
segmented according to the Accounting Equation such as Assets, Liabilities and P & L
items such as Revenue and Expenses.

In our COA, some of the items are marked as DEFAULT and they are mandatory and
cannot be altered as to their markings. The COA in use by Compiere/ADempiere is laid
out in the following pages.

The COA is refered to everytime an accounts posting is to be done. Either via the GL
Journal where direct postings is done, or via the automated document-type based
postings. Below is the sample Chart of Accounts that you can find as an excel file stored
in the adempiere_home/utils/ folder. Note the column for Default Accounts.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 71
Figure 4.2 Chart of Accounts

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 72
Each country or even company have have different set of accounts in their COA. But the
main segments of accounts shall be present. So is it with the DEFAULTS. Later we shall
see how the ERP system knows about the DEFAULTS.

Below is a wiki article started by Michael Judd, an accountant based in London, and a
long time community member since Compiere days. (from http://adempiere.com/
index.php/COA)

Chart of Accounts Design

A Chart of Accounts (COA) means literally a list of accounts that are available in
the system. Some of these accounts may be postable and others may not - such as
summary accounts or those accounts controlled by the system.
However, managers think of COAs as more than just a list of accounts. In practise,
they think of all of the controlling data structures that (should) reflect the
informational needs of the business. These should answer questions like what is the
loan default rate on various portfolios of mortgages, how much revenue do we
make per kilometre of optical fibre owned/operated, or simply what is our revenue
this month/quarter/year from this product, product group business area. Whilst these
are all legitimate informational requests, I often find that businesses' financial
system are unable to serve quality data to report users.
ADempiere users may import their COA using an excel spreadsheet that users may
adapt to their own format. This file can then be saved as a comma separated value
file or accting.csv and imported into ADempiere.
Daniel Tamm has created a nice COA Editor to access that csv file to change or
create a new COA without looking at the excel file.
The COA follows accounting classifications underlying General Accepted
Principles of Accounting (GAAP) in practice throughout the world.
This section is designed to provide assistance with COA design and provide you
with a few examples of what to do and what not to do when implementing your
chart of accounts. A chart of accounts is different for every organisation because:
* in many countries there is no hard and fast rule requiring COAs to be conforming
to a specific structure (however there are suggested forms like the EU level 7
schedule of accounts which has been adopted to various degrees of prescription in
EU member states)
* the chart of accounts should reflect the informational needs of the organisation
which include the needs of the regulatory environment(s) in which the operation
Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering
P a g e 73
(industries, countries, etc), the needs of the share holders & stakeholders (private,
public owned businesses, banks, private equity firms etc) and the needs of
management and various other reporting/informational requirements.
It is difficult (if not impossible) to satisfy all of the informational needs with a
single dimensional chart of accounts. ADempiere provides the following
dimensions which can be 'sliced and diced' in order to meet your reporting
requirements:
* organisation
* element
* product
* business partner
* sales region
* activity
* project
* campaign

TIP: You should use these for the purpose they are intended rather than trying to
recreate dimensions within your account elements. A common mistake is to build
your products in to the account elements in order to report revenue / margin by
product. In one case (a Telecoms company), one of their subsidiary businesses had
over 130,000 accounts to account for a relatively small part of the business. This is
by no means uncommon and I've seen it literately dozens of times. Obviously, as a
result of the large number of accounts, there was a large amount of administration
around changing an account and new accounts were still being added. A target to
aim for in large businesses is around 1000-1400 accounts. This can be difficult
when you operate in many countries and use of permissions in the system can be
used to control access to posting to account combinations which allows accountants
to feel happier about sharing account codes rather than creating specific accounts
that belong only to them. (i.e. the people own a slice of the matrix of the code rather
than the whole code and this is enforced with user permissions) TIP: Create a
process for adding and re-organising account codes and other organisational
dimensions. Find and allocate owners in build them in to the approval process (you
can use summary accounts to delegate sub-groups of your structure) Each country
has special requirements imposed by the government and in some cases, reflective
of that societies values. For example, when doing some work on a global chart of
accounts for a business, the Japanese contingent explained to me that it is polite in
Japanese culture when requesting payment from your customer, to provide them
with a bank account at the same bank that they use for which they can use to pay

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 74
you. As Japan has many banks, this requires polite organisations to maintain many
bank accounts in order not to offend their business partners. Whilst I accept this is a
business need, we do not need to manage these accounts at a management level
(whilst I accept they need to be reconciled and accounted for separately). You can
gain informational benefits by using sub-accounts to record the myriad of bank
accounts. A similar technique can be used to sub-ordinate information about local
payroll deductions and other social costs and taxes. TIP: Use sub accounts to deal
with local variations and names whilst preserving your COA structureMany
organisations find themselves in a position where in each new region they have
entered, they have allowed the accountant to select an accounting system and get on
with it - knowing they will ensure the correct forms are lodged and that the business
has complied with the filing requirements. However, with no common strategy
defined, it is common to select an accounting system and structure your COA on
your local financial and other reporting requirements. Whilst this practise is a fast
track route to satisfying the requirements of external users, it does not balance the
need for internal users and hence many organisations find themselves in a position
where satisfying the internal users for never ending informational requests is time
consuming. Whilst the use of a good BI tool and some analysts can mitigate this
issue in some businesses, a better solution is to balance the informational needs
when designing your COA (and other master data structures) TIP: Consider
designing your COA structure on your Management COA rather than your Financial
COA.

Summary List of COA


Here we lay out the general structure of the COA by displaying only the top level
summary elements. The rest of the elements will have subequent digits added to
those and appearing under the leading summary digit.

Account Value Account Name Account Type


1 Assets Asset
2 Liabilities Liability
3 Owner's Equity/Net Worth Owner's Equity
4 Sales Revenue
5 Cost of Goods Sold Expense
6 Expenses Expense

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 75
1.2 The Default Accounts
Some of the elements in COA are reserved as DEFAULT accounts. Their description
markings are not to be changed as they are hard-coded in the ADempiere software.
However their accounting IDs or numbers in use can be changed. It is advisable that
those are edited before commencing a new client in the system. Once accounts are
posted against those IDs, changing them will break its association with new ones. If
accounts have not been posted, the DEFAULT can be changed and refreshed. There is a
movie in the SoureForge files download to show how that is done if need be.

In other words, the DEFAULT accounts are mappings of common accounting


transactions. ADempiere (as an ERP) is quite different from Accounting systems
because in ERP, the documents you enter into the system have rules and these rules
generate the majority of the accounting transactions. The default accounts are a
mapping between the rules that create accounting entries and the chart of accounts.

The following is written by Carlos Ruiz in the wiki.

Prefixes in Default Columns

Most of default accounts are prefixed this way:

Prefix Table

B C_BankAccount_Acct
C C_BP_Customer_Acct
V C_BP_Vendor_Acct
CB C_CashBook_Acct
CH C_Charge_Acct
PJ C_Project_Acct
T C_Tax_Acct
P M_Product_Acct
W M_Warehouse_Acct

M_Product_Acct default accounts are inherited from M_Product_Category_Acct (but


can be modified)

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 76
Some C_BP_Customer_Acct and C_BP_Vendor_Acct are inherited from
C_BP_Group_Acct (but can be modified)

1.3 Default Accounts Usage

Figure 4.3 Default Accounts settings in Accounting Schema > Defaults

The defaults are assigned here and they shall come into play during auto-postings
where Used In as shown in the table series below.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 77
The table here shows how each DEFAULT element is represented in the Window, Tab
(in the ERP main menu), existing in which Table and Column, and in what process is it
used. You can see that the column value is one-to-one corelation with each DEFAULT
name.

Window, Tab Table Column Used in

Not A_ASSET_ACCT A_ACCUMDEPRECIATION_ACCT Not Used


Available

A_ASSET_ACCT Not Used

A_DEPRECIATION_ACCT Not Used

Not A_ASSET_GROUP_ACCT A_ACCUMDEPRECIATION_ACCT Not Used


Available

A_ASSET_ACCT Not Used

A_DEPRECIATION_ACCT Not Used

Accounting C_ACCTSCHEMA_DEFAULT B_ASSET_ACCT Default Level 1 ->


Schema -> Bank
Defaults

B_EXPENSE_ACCT Default Level 1 ->


Bank

B_INTERESTEXP_ACCT Default Level 1 ->


Bank

B_INTERESTREV_ACCT Default Level 1 ->


Bank

B_INTRANSIT_ACCT Default Level 1 ->


Bank

B_PAYMENTSELECT_ACCT Default Level 1 ->


Bank

B_REVALUATIONGAIN_ACCT Default Level 1 ->


Bank

B_REVALUATIONLOSS_ACCT Default Level 1 ->


Bank

B_SETTLEMENTGAIN_ACCT Default Level 1 ->


Bank

B_SETTLEMENTLOSS_ACCT Default Level 1 ->


Bank

B_UNALLOCATEDCASH_ACCT Default Level 1 ->


Bank

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 78
Window, Tab Table Column Used in

B_UNIDENTIFIED_ACCT Default Level 1 ->


Bank

C_PREPAYMENT_ACCT Default Level 2 ->


BP_Group

C_RECEIVABLE_ACCT Default Level 2 ->


BP_Group

C_RECEIVABLE_SERVICES_ACCT Default Level 2 ->


BP_Group

CB_ASSET_ACCT Default Level 1 ->


CashBook

CB_CASHTRANSFER_ACCT Default Level 1 ->


CashBook

CB_DIFFERENCES_ACCT Default Level 1 ->


CashBook

CB_EXPENSE_ACCT Default Level 1 ->


CashBook

CB_RECEIPT_ACCT Default Level 1 ->


CashBook

CH_REVENUE_ACCT Default Level 1 ->


Charge

E_EXPENSE_ACCT Default Level 1 ->


BP_Employee

E_PREPAYMENT_ACCT Default Level 1 ->


BP_Employee

NOTINVOICEDRECEIPTS_ACCT Default Level 1 ->


BP_Group

NOTINVOICEDRECEIVABLES_ACCT Default Level 1 ->


BP_Group

NOTINVOICEDREVENUE_ACCT Default Level 1 ->


BP_Group

P_ASSET_ACCT Default Level 2 ->


Product_Category

P_COGS_ACCT Default Level 2 ->


Product_Category

P_COSTADJUSTMENT_ACCT Default Level 2 ->


Product_Category

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 79
Window, Tab Table Column Used in

P_EXPENSE_ACCT Default Level 2 ->


Product_Category

P_INVENTORYCLEARING_ACCT Default Level 2 ->


Product_Category

P_INVOICEPRICEVARIANCE_ACCT Default Level 2 ->


Product_Category

P_REVENUE_ACCT Default Level 2 ->


Product_Category

P_TRADEDISCOUNTGRANT_ACCT Default Level 2 ->


Product_Category

P_TRADEDISCOUNTREC_ACCT Default Level 2 ->


Product_Category

PAYDISCOUNT_EXP_ACCT Default Level 1 ->


BP_Group

PAYDISCOUNT_REV_ACCT Default Level 1 ->


BP_Group

PJ_ASSET_ACCT Default Level 1 ->


Project

PJ_WIP_ACCT Default Level 1 ->


Project

REALIZEDGAIN_ACCT Allocation

REALIZEDLOSS_ACCT Allocation

T_CREDIT_ACCT Default Level 1 ->


Tax

T_DUE_ACCT Default Level 1 ->


Tax

T_EXPENSE_ACCT Default Level 1 ->


Tax

T_LIABILITY_ACCT Default Level 1 ->


Tax

T_RECEIVABLES_ACCT Default Level 1 ->


Tax

UNEARNEDREVENUE_ACCT Default Level 1 ->


BP_Group

UNREALIZEDGAIN_ACCT Default Level 1 ->


BP_Group

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 80
Window, Tab Table Column Used in

UNREALIZEDLOSS_ACCT Default Level 1 ->


BP_Group

V_LIABILITY_ACCT Default Level 2 ->


BP_Group

V_LIABILITY_SERVICES_ACCT Default Level 2 ->


BP_Group

V_PREPAYMENT_ACCT Default Level 2 ->


BP_Group

W_DIFFERENCES_ACCT Default Level 1 ->


Warehouse

W_INVACTUALADJUST_ACCT Default Level 1 ->


Warehouse

W_INVENTORY_ACCT Default Level 1 ->


Warehouse

W_REVALUATION_ACCT Default Level 1 ->


Warehouse

WITHHOLDING_ACCT Default Level 1 ->


Withholding

WRITEOFF_ACCT Default Level 1 ->


BP_Group

Accounting C_ACCTSCHEMA_GL COMMITMENTOFFSET_ACCT MatchInv Order


Schema -> (PO) Requisition
General
Ledger

CURRENCYBALANCING_ACCT General Fact

INCOMESUMMARY_ACCT Not Used

INTERCOMPANYDUEFROM_ACCT General Fact

INTERCOMPANYDUETO_ACCT General Fact

PPVOFFSET_ACCT MatchPO

RETAINEDEARNING_ACCT Not Used

SUSPENSEBALANCING_ACCT General Fact

SUSPENSEERROR_ACCT Not Used

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 81
Window, Tab Table Column Used in

Bank -> C_BANKACCOUNT_ACCT B_ASSET_ACCT Bank


Account ->
Accounting

B_INTERESTEXP_ACCT Bank

B_INTERESTREV_ACCT Bank

B_INTRANSIT_ACCT Bank
Cash
Payment

B_PAYMENTSELECT_ACCT Allocation
Payment (PO)

B_REVALUATIONGAIN_ACCT Not Used

B_REVALUATIONLOSS_ACCT Not Used

B_SETTLEMENTGAIN_ACCT Not Used

B_SETTLEMENTLOSS_ACCT Not Used

B_UNALLOCATEDCASH_ACCT Allocation
Payment (SO)

B_UNIDENTIFIED_ACCT Not Used

Business C_BP_CUSTOMER_ACCT C_PREPAYMENT_ACCT Allocation


Partner ->
Payment
Customer ->
Customer
Accounting

C_RECEIVABLE_ACCT Allocation
Invoice (SO)

C_RECEIVABLE_SERVICES_ACCT Invoice (SO)

Business C_BP_EMPLOYEE_ACCT E_EXPENSE_ACCT Not Used


Partner ->
Employee ->
Employee
Accounting

C_BP_EMPLOYEE_ACCT E_PREPAYMENT_ACCT Not Used

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 82
Window, Tab Table Column Used in

Business C_BP_GROUP_ACCT C_PREPAYMENT_ACCT Default Level 1 ->


Partner BP_Customer
Group ->
Accounting

C_RECEIVABLE_ACCT Default Level 1 ->


BP_Customer

C_RECEIVABLE_SERVICES_ACCT Default Level 1 ->


BP_Customer

NOTINVOICEDRECEIPTS_ACCT InOut MatchInv

NOTINVOICEDRECEIVABLES_ACCT Not Used

NOTINVOICEDREVENUE_ACCT Not Used

PAYDISCOUNT_EXP_ACCT Allocation

PAYDISCOUNT_REV_ACCT Allocation

UNEARNEDREVENUE_ACCT Invoice (SO)

V_LIABILITY_ACCT Default Level 1 ->


BP_Vendor

V_LIABILITY_SERVICES_ACCT Default Level 1 ->


BP_Vendor

V_PREPAYMENT_ACCT Default Level 1 ->


BP_Vendor

WRITEOFF_ACCT Allocation

Business C_BP_VENDOR_ACCT V_LIABILITY_ACCT Allocation


Partner ->
Invoice (PO)
Vendor ->
Vendor
Accounting

V_LIABILITY_SERVICES_ACCT Invoice (PO)

V_PREPAYMENT_ACCT Allocation Payment

Cashbook -> C_CASHBOOK_ACCT CB_ASSET_ACCT Cash


Accounting

CB_CASHTRANSFER_ACCT Allocation Cash

CB_DIFFERENCES_ACCT Cash

C_CASHBOOK_ACCT CB_EXPENSE_ACCT Cash

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 83
Window, Tab Table Column Used in

CB_RECEIPT_ACCT Cash

Charge -> C_CHARGE_ACCT CH_EXPENSE_ACCT Bank


Accounting
Cash
Inventory
Invoice Payment

CH_REVENUE_ACCT Bank
Cash
Inventory
Invoice
Payment

Currency -> C_CURRENCY_ACCT REALIZEDGAIN_ACCT Not Used


Accounting

REALIZEDLOSS_ACCT Not Used

C_CURRENCY_ACCT UNREALIZEDGAIN_ACCT Not Used

C_CURRENCY_ACCT UNREALIZEDLOSS_ACCT Not Used

Not C_INTERORG_ACCT INTERCOMPANYDUEFROM_ACCT Not Used


Available

C_INTERORG_ACCT INTERCOMPANYDUETO_ACCT Not Used

Project -> C_PROJECT_ACCT PJ_ASSET_ACCT ProjectIssue


Accounting

C_PROJECT_ACCT PJ_WIP_ACCT ProjectIssue

Revenue C_REVENUERECOGNITION P_REVENUE_ACCT Created


Recognition _PLAN
-> Revenue
Recognition
Plan

C_REVENUERECOGNITION UNEARNEDREVENUE_ACCT Created


_PLAN

Tax Rate -> C_TAX_ACCT T_CREDIT_ACCT Invoice (PO)


Accounting

C_TAX_ACCT T_DUE_ACCT Invoice (SO)

C_TAX_ACCT T_EXPENSE_ACCT Invoice (PO)

C_TAX_ACCT T_LIABILITY_ACCT Not Used

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 84
Window, Tab Table Column Used in

C_TAX_ACCT T_RECEIVABLES_ACCT Not Used

Withholding C_WITHHOLDING_ACCT WITHHOLDING_ACCT Not Used


->
Accounting

Product -> M_PRODUCT_ACCT P_ASSET_ACCT InOut


Accounting
Inventory
Movement
Production
ProjectIssue

P_COGS_ACCT InOut

P_COSTADJUSTMENT_ACCT Invoice

P_EXPENSE_ACCT InOut
Invoice (PO)
MatchInv
Order (PO)
ProjectIssue
Requisition

P_INVENTORYCLEARING_ACCT Invoice (PO)


MatchInv

P_INVOICEPRICEVARIANCE_ACCT MatchInv

P_PURCHASEPRICEVARIANCE_ACC MatchPO
T

P_REVENUE_ACCT Invoice (SO)

P_TRADEDISCOUNTGRANT_ACCT Invoice (SO)

P_TRADEDISCOUNTREC_ACCT Invoice (PO)

Product M_PRODUCT_CATEGORY_A P_ASSET_ACCT Default Level 1 ->


Category -> CCT Product
Accounting

P_COGS_ACCT Default Level 1 ->


Product

P_COSTADJUSTMENT_ACCT Default Level 1 ->


Product

M_PRODUCT_CATEGORY_A P_EXPENSE_ACCT Default Level 1 ->


CCT Product

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 85
Window, Tab Table Column Used in

P_INVENTORYCLEARING_ACCT Default Level 1 ->


Product

P_INVOICEPRICEVARIANCE_ACCT Default Level 1 ->


Product

P_PURCHASEPRICEVARIANCE_ACC Default Level 1 ->


T Product

P_REVENUE_ACCT Default Level 1 ->


Product

P_TRADEDISCOUNTGRANT_ACCT Default Level 1 ->


Product

P_TRADEDISCOUNTREC_ACCT Default Level 1 ->


Product

Warehouse & M_WAREHOUSE_ACCT W_DIFFERENCES_ACCT Inventory


Locators ->
Accounting

W_INVACTUALADJUST_ACCT Not Used

W_INVENTORY_ACCT Not Used

W_REVALUATION_ACCT Not Used

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 86
1.4 Listing of Default Accounts from AccountingUS.xls
Here we list the DEFAULT accounts again for convenient and simple reference.

B_ASSET_ACCT
B_INTRANSIT_ACCT
B_UNIDENTIFIED_ACCT
B_UNALLOCATEDCASH_ACCT
CB_ASSET_ACCT
CB_CASHTRANSFER_ACCT
C_RECEIVABLE_ACCT
C_RECEIVABLE_SERVICES_ACCT
NOTINVOICEDRECEIVABLES_ACCT
V_PREPAYMENT_ACCT
E_PREPAYMENT_ACCT
T_CREDIT_ACCT
T_RECEIVABLES_ACCT
INTERCOMPANYDUEFROM_ACCT
W_INVENTORY_ACCT
P_ASSET_ACCT
P_WIP_ACCT
P_FLOORSTOCK_ACCT
PJ_ASSET_ACCT
PJ_WIP_ACCT
V_LIABILITY_ACCT
NOTINVOICEDRECEIPTS_ACCT
V_LIABILITY_SERVICES_ACCT
B_PAYMENTSELECT_ACCT
C_PREPAYMENT_ACCT
T_DUE_ACCT
T_LIABILITY_ACCT
WITHHOLDING_ACCT
INTERCOMPANYDUETO_ACCT
RETAINEDEARNING_ACCT
P_REVENUE_ACCT
UNEARNEDREVENUE_ACCT
NOTINVOICEDREVENUE_ACCT
P_TRADEDISCOUNTGRANT_ACCT
PAYDISCOUNT_EXP_ACCT
P_COGS_ACCT
P_COSTOFPRODUCTION_ACCT
P_SCRAP_ACCT
P_OUTSIDEPROCESSING_ACCT
P_EXPENSE_ACCT
P_COSTADJUSTMENT_ACCT
P_INVENTORYCLEARING_ACCT
W_DIFFERENCES_ACCT
W_INVACTUALADJUST_ACCT
W_REVALUATION_ACCT
P_INVOICEPRICEVARIANCE_ACCT
P_PURCHASEPRICEVARIANCE_ACCT
PPVOFFSET_ACCT
P_USAGEVARIANCE_ACCT
Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering
P a g e 87
P_METHODCHANGEVARIANCE_ACCT
P_RATEVARIANCE_ACCT
P_MIXVARIANCE_ACCT
P_TRADEDISCOUNTREC_ACCT
PAYDISCOUNT_REV_ACCT
E_EXPENSE_ACCT
B_EXPENSE_ACCT
T_EXPENSE_ACCT
WRITEOFF_ACCT
CB_DIFFERENCES_ACCT
DEFAULT_ACCT
SUSPENSEBALANCING_ACCT
SUSPENSEERROR_ACCT
CB_EXPENSE_ACCT
CB_RECEIPT_ACCT
CH_EXPENSE_ACCT
CH_REVENUE_ACCT
B_INTERESTREV_ACCT
B_REVALUATIONGAIN_ACCT
B_SETTLEMENTGAIN_ACCT
UNREALIZEDGAIN_ACCT
REALIZEDGAIN_ACCT
B_INTERESTEXP_ACCT
B_REVALUATIONLOSS_ACCT
B_SETTLEMENTLOSS_ACCT
UNREALIZEDLOSS_ACCT
REALIZEDLOSS_ACCT
CURRENCYBALANCING_ACCT
P_LABOR_ACCT
P_BURDEN_ACCT
P_OVERHEAD_ACCT
INCOMESUMMARY_ACCT
COMMITMENTOFFSET_ACCT
COMMITMENTOFFSETSALES_ACCT

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 88
1.5 COA Editor by Daniel Tamm
Amending or building a COA using the Excel spreadsheet can be difficult. Now it is
much easier with a tool created by Daniel Tamm of Sweden.

Figure 4.3 Daniel Tamms Account Editor for COA

As seen in the figure above, the Account Editor is a new standalone software that allows
us to call up the accounting*.xls file and have it configurable in a structured and
controlled manner. The sub-accounting elements are in a tree to the left of the box. As
each item is selected its details can be filled in on the right side. DEFAULT accounts are
remembered in a pull down list, so that you wont commit any error when defining or
changing them to another accounting element (see next figure below).

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 89
Figure 4.4 Selection of DEFAULT account

A confirmation dialog will pop up reminding you what you are doing.

Once that is accepted, the new account element will be there, replacing the one before.
You can read more of Daniels work in the wiki here http://www.adempiere.com/
index.php/COA_Editor.

3.

Copyright (C) 2009 Redhuan D. Oon ERP Software Engineering


P a g e 90

Das könnte Ihnen auch gefallen