Nov 11

Financial Report improvement featuring Multi report sources

When doing implementation we often struggle to produce Financial Report with complex multi-dimensional accounting layouts. One of the case is when we would like to breakdown an account by Cost Centers or by Sales Regions. In traditional accounting, we used to find a structure of Chart of Account which composed of many duplicated accounts, for example one set of travel expense accounts for General activity and another set of the same travel expense accounts for Sales activity. With multi-dimensional feature that Adempiere has, we often suggest our clients to get rid of those duplicated accounts and tell them that later on they can break them down by any other dimensions they want.

Sample report breakdown by Dept dimension

Sample report breakdown by Dept dimension

Well, not that easy. When it comes to Financial Report, we get hit by the wall that it is so difficult to prepare such a layout using the existing functionality. There is Combination feature in Report Source tab introduced sometimes ago but it is also not offering an easy way we thought. You can use that feature if the dimension only contains small data but what if you have hundreds of records, such as “tell me how much is the Revenue breakdown by products”.

Team Goodwill have tried to improve the current Report Source tab to allow combining multiple report sources in one Report Line using the And/Or condition. Future development would include support for condition in parentheses. For example you can combine two report sources, Account “AND” Business Partner, to produce a Receivables detail report showing the balance for each customer.

Just take a look at the sample report above. The sample #1 is a Report Line using single report source, which is only Account type. By choosing a summary account, it can then expand all its child accounts.

The sample #2 is a Report Line using two report source, one is Account type, and the other is Activity. The Activity is purposely left empty because we want to show all. The system would always expand the details of the report source with the highest Sequence Number, in this case the Activity.

Travel Expense - ALL DEPT (breakdown by Dept)

Travel Expense – ALL DEPT (breakdown by Dept)

Here, we used Activity dimension as “Departments”.

The Tree of Activity as Departments

The Tree of Activity as Departments

Ok, let’s take a look another examples. In sample #5, we show Travel Expense and filtered by General departments only.

Sample Report Filtered and Breakdown

Sample Report Filtered and Breakdown

This is how we do it. We add two report sources like above. But this time we enter “General” activity. In this sample, when the Sequence number is the same, the system would expand the details of the last report source we entered. And since “General” is a summary level activity, system will show all its children.

Travel Expense - General only (breakdown by Dept)

Travel Expense – General only (breakdown by Dept)

In sample #6, thing is getting serious. We want to show Travel Expense, filtered by Sales dept and breakdown by Sales Region. Here how we do it.

Travel Expense - Sales Dept (breakdown by Sales Region)

Travel Expense – Sales Dept (breakdown by Sales Region)

That’s it folks. We would like hearing your feedback on how to improve this functionality. Let’s make Adempiere great again ๐Ÿ™‚

Nov 07

Alokasi pembayaran multi-currency

Di Indonesia kita tentunya tidak lepas dari transaksi yang mempergunakan mata uang asing. Di bagian Finance, kita lazim melakukan pelunasan invoice dalam mata uang asing dengan mempergunakan mata uang Rupiah. Karena perbedaan mata uang ini, biasanya kita mendapati perbedaan selisih kurs antara kedua mata uang tersebut.

Pertanyaannya, bagaimanakah kita menangani proses transaksi yang demikian di dalam Goodwill ERP ? Mudah atau sulitkah ?

Sebenarnya proses transaksi demikian tidak memiliki perbedaan dengan transaksi yang sama mata uang. Untuk lebih jelasnya dalam video berikut ini kami memeragakan bagaimana melakukannya di dalam window Payment.

Youtube channel Goodwill ERP – Alokasi pembayaran beda mata uang.

Untuk transaksi yang lebih kompleks, seperti pembayaran multi payment atau parsial, seperti biasa Anda bisa melakukannya lewat form Payment Allocation, dengan memperhatikan dua hal berikut ini.

  • Kolom Currency di Payment Allocation harus dipilih sesuai dengan Currency Invoice yang kita mau alokasikan.

Jika Invoice kita dalam USD maka pilihlah Currency “USD”. Kemudian centanglah kolom Multi-Currency. Maka baik Invoice maupun Payment Anda yang beda mata uang tersebut akan muncul di layar.

  • Kolom Date di Payment Allocation harus dipilih sesuai dengan Tanggal Payment yang kita mau alokasikan.

Tanggal yang dipilih sebagai tanggal Payment Allocation akan menentukan kurs mana yang akan digunakan. Oleh sebab itu jika Anda melakukan pelunasan dengan 2 atau lebih Payment, Anda harus mencermati tanggal-tanggalnya.

  • Jika tanggal masing-masing Payment sama semua, maka Anda bisa melakukan satu kali alokasi sekaligus.
  1. Invoice A Dialokasikan dengan Payment 1, 2 & 3 (tanggal sama semua). Proses.

  • Jika tanggal masing-masing Payment berbeda-beda, maka alokasi dilakukan secara bertahap dengan urutan seperti berikut :
  1. Invoice A Dialokasikan dengan Payment 1 (sesuai tanggal Payment 1). Proses.

  2. Invoice A Dialokasikan dengan Payment 2 (sesuai tanggal Payment 2). Proses.

  3. Invoice A Dialokasikan dengan Payment 3 (sesuai tanggal Payment 3). Proses.

Semoga penjelasan ini bermanfaat. Selamat mencoba!

Nov 27

Invoicing and payment terms

Commonly used invoice payment terms and their meanings

This list explains many of the terms commonly used on invoices.

Invoice payment terms

Net 7 Payment seven days after invoice date
Net 10 Payment ten days after invoice date
Net 30 Payment 30 days after invoice date
Net 60 Payment 60 days after invoice date
Net 90 Payment 90 days after invoice date
EOM End of month
21 MFI 21st of the month following invoice date
1 % 10 Net 30 1 per cent discount if payment received within ten days otherwise payment 30 days after invoice date
COD Cash on delivery
Cash account Account conducted on a cash basis, no credit
Letter of credit A documentary credit confirmed by a bank, often used for export
Bill of exchange A promise to pay at a later date, usually supported by a bank
CND Cash next delivery
CBS Cash before shipment
CIA Cash in advance
CWO Cash with order
1MD Monthly credit payment of a full month’s supply
2MD As above plus an extra calendar month
Contra Payment from the customer offset against the value of supplies purchased from the customer
Stage payment Payment of agreed amounts at stages

Many of them are working out-of-the-box in our Goodwill ERP. However in implementations we sometimes find a very unusual requirement. Like in one case, in Karawang, they sellย  motorcycles with payment term “after harvesting” (what?) which means the customer will pay you after the next harvest season. Only in Indonesia, grrr…. ๐Ÿ˜€

Anyway, if you need a special treatment for your business case, let us know. We can help you.

Nov 11

Payment Term with Fixed Payment Schedule date

How often you wish you could do something to tweak your ERP ? The blessing to use an open source ERP is you have access to its source codes. Isn’t it great if you could just make a lil bit change so you can get exactly what you want, and not to depend on what your software dictates you.

During one implementation in a car dealer, we were facing with one requirement to support installment sales. We thought it should be easy as we knew Adempiere has already payment schedule feature. Just open up Payment Term window and create a new payment term with Fixed Due Date being checked.



And then we entered all the schedules with equally divided percentages, for example if it is a one-year installment than the percentage is 100/12, which 8.3333. The net days is how Adempiere will determine the due date of each schedule, which in this case is the accumulation of 30 days that end up to 360 days (supposedly equal to one year length).

Payment Schedule

Payment Schedule

However, the Fixed Due Date option didn’t give what we expected. The Due date is falling on different date each month! And the worst is in one occasion, two schedules can due on the same month (see month of July in the picture below).

Order Schedule before tweak

Order Schedule before tweak

How it happens ? Because every month has a different length in days, you can’t just accumulate the net days with an exact 30-day length. That explains how we end up with 360 days a year, and not 365 days as in actual.

Luckily we are using open source ERP. There is nothing can stop us. The show must go on. So what we did it back in the day is to bring a new option called Fixed Payment Schedule date. This option will complement the existing Fixed Due date feature.



The following is how the schedule is generated using this new option. It exactly gives what our client wants that for each month of the installment period, the Due date will certainly fall into the same date. And that shows the power of open source ERP!

Order Schedule after fixed

Order Schedule after fixed

If you think this feature is worthy enough to be included in the next release of Adempiere or Idempiere, let us know. We will also be grateful to have your feedback. Until next time!

Goodwill Consulting is a long time Adempiere / Idempiere supporter since their inception. We are offering software-as-a-service solution on the cloud based on Adempiere / Idempiere. For more information, you can drop us a visit at