Professional Documents
Culture Documents
ERPAccounting PDF
ERPAccounting PDF
A C C O U N T I N G
REDHUAN D. OON
ADEMPIERE COMMUNITY
www.adempiere.com
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:
COPYRIGHT NOTICE:
RED1 - www.red1.org
i
2.7 Computer Assisted Accounting System
43
Quiz
45
Glossary
45
Summary
46
References
47
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”
REFERENCES:
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
Learning Objectives
By the end of this chapter, the student shall be able to:
“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
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 doesn’t 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.
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.
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.
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.
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.
See how far humanity has advanced since the days of stone slabs and papyrus.
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 accountant’s 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)
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.
Steven’s 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”.
croo Yes I explained that ... I thought in the wiki page ... but I did it purposely
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 is named so
croo they teach that Gross Profit = Sales less Cost of Sales
croo Cost of Sales = Opening Stock PLUS Purchases LESS Closing 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 we can stock count but only to ensure quantities are correct and account for breakage & theft
croo but typical a debtors ledger keeps track of all the invoices and payments to a customer
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 you must do this before you can get a valid indicator of what your companies standing is
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 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 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 perpetual has no closings in inventory.. that can be understood of its value
croo yes
red1
unlike inventory its a business
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 then end of mth u can just turn on the accounting processor
croo normally you would write to other ledgers like debtors or creditors
croo but when you close a period then you consolidate all those to post into the general ledger
croo the period control does not close off debtors ledgers and post totals to the general ledger
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 no
croo no not it
croo no
red1 or equivalent
croo someone who owes you money is a debtor... so customers are debtors
croo no
croo in a traditional system the period end posts the balance of the many ledgers to the general ledger
croo you have only one book and we cannot write in it at the same time!
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 if you add up what's in your book you do not have the whole story anymore
croo to know if you are making any money or not you must know what is in all books
croo and the balance of that book is the answer to profit & loss
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 we have computers why do we have to put all this in many books?
croo but we can put all this straight in the general ledger
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 looked
red1 actualised?
croo and perpetual fits in with that actual accounting term pertpetual inventory
croo the point steve is making is that this isn't a standard term in accounting
croo if you go to accounting school they will teach the old periodic system
red1 but i see in the context of periods, the word perpetual is apt
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 as I say I do not believe steven was saying it's back or wrong
------------------------------------------------------------------------------------------------------------------------------------------
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.
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"
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.
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.
Colin
Glossary
Term Description
General Ledger A book where journal entries are organised into separate accounts
topics
Peerocratic A term derived from Linus Torvalds description of how the online
Meritocracy community behind an open source project works
2. Modern accounting keeps tracks of transactional elements that have contractual value
between parties and budgeting purposes.
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.
7. Open Source brings about a learning and adoption environment that is collaborative
and evolving that is easily accesible via the web.
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
Learning Objectives
By the end of this chapter, the student shall be able to:
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.
4. We will just fill in the fields coloured pink which are mandatory.
22. Note the total is same as the Control Amount. This helps to manage the hard-copy
source to be correct as entered.
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 today’s 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.
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.
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
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)
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.
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.
What about being Open Source? Wouldn’t 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.
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.
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.
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
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.
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
Quiz
1. When is a transaction rollbacked?
2. In what tasks does a computerised system takes over from an accounts clerk?
Glossary
Term Description
AP Accounts Payable
AR Accounts Receivables
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.
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
Learning Objectives
By the end of this chapter, the student shall be able to:
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.
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.
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
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!
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
• If you have not created your own account you can do so by clicking on the Login on
the top right.
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.
f73e89fd.0 [20]
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.
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.
Figure 3.12 EDI FACT as a standard for data exchange with external systems (source: mentem.com)
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.
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. .
• FIELD: C_EDIFormat_ID
Glossary
Term Description
POS Pont of Sales system that is used for handling sales on the spot
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
2. http://en.wikipedia.org/wiki/X12_EDIFACT_Mapping
Learning Objectives
By the end of this chapter, the student shall be able to:
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.
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.
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)
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
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
The defaults are assigned here and they shall come into play during auto-postings
where Used In as shown in the table series below.
REALIZEDGAIN_ACCT Allocation
REALIZEDLOSS_ACCT Allocation
PPVOFFSET_ACCT MatchPO
B_INTERESTEXP_ACCT Bank
B_INTERESTREV_ACCT Bank
B_INTRANSIT_ACCT Bank
Cash
Payment
B_PAYMENTSELECT_ACCT Allocation
Payment (PO)
B_UNALLOCATEDCASH_ACCT Allocation
Payment (SO)
C_RECEIVABLE_ACCT Allocation
Invoice (SO)
PAYDISCOUNT_EXP_ACCT Allocation
PAYDISCOUNT_REV_ACCT Allocation
WRITEOFF_ACCT Allocation
CB_DIFFERENCES_ACCT Cash
CB_RECEIPT_ACCT Cash
CH_REVENUE_ACCT Bank
Cash
Inventory
Invoice
Payment
P_COGS_ACCT InOut
P_COSTADJUSTMENT_ACCT Invoice
P_EXPENSE_ACCT InOut
Invoice (PO)
MatchInv
Order (PO)
ProjectIssue
Requisition
P_INVOICEPRICEVARIANCE_ACCT MatchInv
P_PURCHASEPRICEVARIANCE_ACC MatchPO
T
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
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 won’t commit any error when defining or
changing them to another accounting element (see next figure below).
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 Daniel’s work in the wiki here http://www.adempiere.com/
index.php/COA_Editor.
3.