Jun 30

Import Data Faktur Pajak dari Goodwill ERP ke e-Faktur

Anda pasti sudah mendengar bahwa mulai 1 Juli 2015 Pengusaha Kena Pajak (PKP) yang dikukuhkan pada Kantor Pelayanan Pajak di Jawa dan Bali diwajibkan membuat faktur pajak berbentuk elektronik (e-Faktur).

Pemberlakuan e-Faktur merupakan wujud peningkatan layanan Direktorat Jenderal (Ditjen) Pajak bagi PKP yang dimaksudkan untuk memberikan kemudahan, kenyamanan, dan keamanan dalam melaksanakan kewajiban perpajakan khususnya pembuatan Faktur Pajak.

Pemberlakuan e-Faktur tentu saja membawa perubahan cara bekerja bagi semua orang. Selama ini para pemakai Goodwill ERP sudah langsung membuat dan mencetak Faktur Pajak dari menu Sales Invoice. Setelah 1 Juli 2015, nantinya kita harus membuatnya melalui aplikasi e-Faktur yang disediakan oleh Ditjen Pajak. Dan Faktur Pajak nantinya tidak usah dicetak lagi, tapi cukup diapprove secara online lewat aplikasi e-Faktur.

Tentunya ini menimbulkan persoalan jika kita harus mengentri ulang semua data penjualan dan pembelian ke dalam e-Faktur. Oleh sebab itu sebagai komitmen kami untuk selalu memberikan layanan terbaik kepada Anda, kami sudah merilis fitur baru yakni Tax Allocation dengan dua kemampuan yakni:

1. Alokasi PPN Keluaran dan PPN Masukan sehingga Anda bisa dengan mudah menghitung kurang/lebih bayar-nya.

2. Ekspor data pajak ke file CSV. Nantinya file ini bisa diimport masuk ke dalam aplikasi e-Faktur.

Untuk lebih jelasnya, kami juga sudah menyediakan video demonstrasi cara mengimport data faktur pajak dari Goodwill ERP ke e-Faktur di bawah ini. Semoga bermanfaat.

Bagian ke-2

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!

Sep 25

Cara Mencetak Custom Paper dengan Adobe Reader di Firefox

Permasalahan yang sering kami temukan saat implementasi adalah user ingin menggunakan custom paper akan tetapi hasil print tidak sesuai dengan apa yang diharapkan, oleh karena itu kami menulis blog mengenai bagaimana cara agar dapat menghasilkan print sesuai harapan.

Tujuan instalasi ini adalah agar custom paper yang telah di setting dapat di print sesuai dengan ukuran kertasnya.

Langkah Pertama

Pastikan instalasi dilakukan pada komputer yang terhubung dengan printer, download Adobe Reader di http://get.adobe.com/reader/

 step-1

 

Lalu klik tombol Install now seperti pada gambar diatas yang sudah dilingkari.

Kemudian dilanjutkan dengan proses instalasi.

step-2

Klik Next, tunggu proses download dan instalasi.

step-4

Selesai langkah pertama.

Langkah kedua

Setelah melewati langkah pertama dilanjutkan dengan tahap konfigurasi ,

tahap konfigurasi ini dibagi menjadi 3 konfigurasi yaitu ;

  1. Web Browser (Firefox).

Konfigurasi ini dilakukan agar web Browser dapat mengenali addons yang akan digunakan untuk membuka file PDF.

Klik  logo  kemudian  pilih Options, cari Tab Application Panel

lalu Portable Document Format (PDF) kemudian pilih Adobe Acrobat(in firefox). Untuk lebih jelas ada pada gambar di bawah ini.

step-5

   2. Printer (Custom Paper).

 

Masuk ke Control Panel cari Devices and Printers, pilih printer yang akan di gunakan, pada bagian atas ada tepatnya dibawah path folder pilih Printer server properties, akan muncul seperti gambar di bawah ini.

step

Centang Create a new form dan masukan ukuran kertas yang diinginkan lalu tekan tombol Save form.Pastikan untuk mengukur kertas yang hendak digunakan.

    3.Adobe Reader.

Konfigurasi pada Adobe Reader pastikan pada saat print, printer yang digunakan sudah benar, dan klik tombol Page Setup untuk memilih ukuran kertas yang diinginkan.

step-3 Pada gambar diatas terdapat lingkaran merah pastikan tidak tercentang.

Semoga Membantu.

May 16

Goodwill menawarkan layanan Cloud ERP on-demand

Generasi Baru Software ERP Indonesia

Goodwill ERP adalah software ERP modern dengan teknologi cloud yang aman, cepat dan handal. Software ERP ini merupakan aplikasi bisnis lengkap, mulai dari inventory, supply chain, finansial, akuntansi, manajemen proyek, sampai manufacturing yang dirancang khusus untuk kebutuhan usaha di Indonesia. Kehadiran Goodwill ERP memungkinkan banyak perusahaan dapat mengimplementasikan software ERP tanpa harus mengeluarkan biaya besar dan proses implementasi yang rumit. Dengan teknologi Cloud Computing, pemakai dapat langsung “menyewa” sistem ERP siap-pakai (software, server, storage, dan lainnya) dengan nilai ekonomis yang sangat terjangkau dan proses go-live yang cepat.Goodwill ERP sudah diimplementasikan di banyak bidang usaha sejak tahun 2005, mulai dari distributor, pabrik, jasa, otomotif hingga ke perkebunan sawit. Dan mulai versi 3.7, Goodwill ERP diluncurkan sebagai produk dan layanan berbasiskan Cloud dengan antar-muka web yang sangat cepat dan ringan. Pemakai kemudian dapat memilih menggunakan Goodwill ERP dengan model layanan SaaS (on-demand) atau private cloud hosting di data center dalam/luar negeri. Selain itu, Goodwill ERP juga dapat dideploy secara on premise di server kantor Anda sendiri.

Cloud on-demand

Dunia semakin berkembang ke arah digitalisasi dan globalisasi. Siap tidak siap, kita semua harus dapat mengikuti kemajuan zaman ini, diantaranya dengan kehadiran teknologi komputasi terdistribusi yang lazim disebut dengan “Cloud Computing”. Teknologi Cloud memungkinkan banyak perusahaan untuk dapat memanfaatkan software ERP sebagai sebuah layanan on-demand yang mudah dan cepat. Dengan model layanan ini, pengguna diuntungkan dengan tidak perlu mengeluarkan biaya lisensi software dan investasi hardware yang besar.

Dengan berlangganan mulai dari 300 ribu rupiah per bulan, Anda sudah bisa menikmati fitur-fitur aplikasi ERP kelas dunia.

Private Server

Goodwill ERP telah menciptakan cara bekerja yang baru dan modern dimana kita tidak lagi terikat oleh keterbatasan waktu dan tempat. Untuk menambah kenyamanan Anda dalam bekerja, kami juga dapat menyediakan layanan Goodwill ERP dalam server pribadi Anda sendiri, yang hanya bisa diakses oleh Anda saja. Dengan model layanan ini, Anda memiliki fleksibilitas yang tinggi untuk mengatur konfigurasi software ERP Anda.

Layanan ini merupakan sebuah “win-win solution” yang memadukan manfaat cloud ERP dan privasi layaknya sebuah ERP in-house. Layanan ini sangat spesifik dan individual. Harap untuk menghubungi kami untuk informasi lebih jauh.

Goodwill ERP

Goodwill ERP dapat diakses dalam beragam gadget

Keunggulan Goodwill ERP

1. Akses Tanpa Batasan

Dengan antar-muka web, pemakai dapat terhubung secara aman dari mana pun, kapan pun, dan menggunakan device apa pun. Sangat cocok untuk bisnis yang letak geografisnya berbeda-beda (misal, banyak outlet dan cabang).

2. Investasi Rendah

Pemakai tidak perlu keluar biaya besar untuk membeli lisensi software, server baru, UPS, data storage, dan sebagainya. Pemakai cukup membayar sesuai pemakaian.

3. Pengelolaan Resiko

Sistem dan data pemakai dijaga dan dipelihara dengan standard keamanan tingkat tinggi dalam sebuah data center. Sebaliknya menyimpan data di kantor jauh lebih berisiko (kebakaran, staff yang tidak kompeten, kegagalan backup, dll)


FAQ

1. Software apa saja yang harus diinstal ?

Anda cukup pakai browser seperti Mozilla Firefox atau Google Chrome versi terbaru.

2. Bagaimana kalau mau konsultasi dulu sebelum berlangganan ?

Anda bisa menghubungi sales person kami untuk mengatur jadwal demo ke tempat Anda.

3. Berapa kecepatan bandwidth internet yang diperlukan?

Dalam penggunaan normal, Goodwill ERP dapat diakses mulai dari kecepatan 128 Kbps.

4. Bagaimana dengan keamanan data saya ?

Data anda dijaga dan dibackup dalam data center yang sudah disertifikasi ISO 27001:2005 (Information Security).

5. Dimanakah data saya berada?

Data center terletak di IDC Duren 3, Jakarta Selatan, yang merupakan jantung dari peering Internet Indonesia yang terbesar yaitu OpenIXP dengan bandwidth 1 Gbps.

6. Apakah saya bisa migrasi ke sistem lain dengan mudah ?

Anda bisa mengekspor data anda ke dalam format spreadsheet (xls).

7. Dimana saya bisa mendapatkan informasi lebih jauh ?

Anda bisa membuka websitenya di GoodwillERP.com

atau dengan menghubungi :

PT Goodwill Bintang Utama
Office: +62 (21) 661-2164
Sales: +62 (21) 707-95895
Email: sales@goodwill.co.id

Mar 10

Cara Instalasi Adempiere di Cloud

Rasanya sudah lama kami tidak mengulas topik mengenai instalasi. Makanya untuk meneruskan tradisi ini, dalam postingan kali ini saya akan menerangkan bagaimana cara instalasi Adempiere di cloud.

KONFIGURASI

Pada prinsipnya instalasi di cloud sama dengan yang biasa kita lakukan di server sendiri (on-premise). Saya mengasumsikan anda sudah menyiapkan dua buah virtual machine dengan sistem operasi CentOS 64 bit. Satu untuk application server dan satu lagi untuk database servernya. Dalam contoh di bawah, asumsikan IP masing-masing adalah 10.210.10.101 dan 10.210.10.102. Kalau anda mau coba-coba di local machine, anda bisa juga menggunakan VirtualBox. Untuk spek virtual hardwarenya, saya menganjurkan 2 CPU core dan 4 GB RAM.

Kalau anda sudah mempunyai VM, anda bisa memeriksa dulu konfigurasi VM anda tersebut.

Cara memeriksa versi CentOs:

# cat /etc/redhat-release

Cara memeriksa OS 32 bit atau 64 bit :

# uname -a

Kalau hasilnya seperti ini artinya 64 bit.
Linux hostname 2.6.9-55.0.2.ELsmp #1 SMP Tue Jun 12 17:58:20 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

Kalau hasilnya seperti ini artinya 32 bit.
Linux hostname 2.6.9-55.0.2.ELsmp #1 SMP Tue Jun 12 17:59:08 EDT 2007 i686 i686 i386 GNU/Linux

Memeriksa CPU info :

# cat /proc/cpuinfo

# lspci -vv

INSTALL DATABASE

Ok, sekarang sudah siap ? Let’s get started. Kita sekarang login pakai root ke database servernya dulu.

Download PostgreSQL

# wget http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm
# rpm -i http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm
# yum install postgresql92-server postgresql92-contrib

# service postgresql-9.2 initdb

# service postgresql-9.2 start

Set PostgreSQL 9 Environment:

# su – postgres
# nano .bash_profile

[ -f /etc/profile ] && source /etc/profile
PGDATA=/var/lib/pgsql/9.2/data
export PGDATA
PATH=$PATH:$HOME/bin:/usr/pgsql-9.2/bin
export PATH

Jangan logout dulu, sekarang kita harus ganti password postgres:

# psql

postgres=# ALTER USER postgres WITH PASSWORD ‘mySecurePassword’;
postgres=# \q
# exit

# passwd postgres
– mySecurePassword

Kemudian jangan lupa konfigurasi file pg_hba.conf dan postgresql.conf:

# nano /var/lib/pgsql/9.2/data/pg_hba.conf

# nano /var/lib/pgsql/9.2/data/postgresql.conf

Sekarang kita nyalakan service-nya.

# service postgresql-9.2 restart

Supaya service-nya otomatis dinyalakan pada waktu booting:

# chkconfig –level 234 postgresql-9.2 on
# chkconfig –list postgresql

Setelah itu, buatlah user ‘adempiere’ di PostgreSQL (don’t change the user name!)

# su – postgres
# psql

postgres=# CREATE USER adempiere WITH PASSWORD ‘adempiere’;
postgres=# CREATE DATABASE starprise;
postgres=# \q

Sampai disini, database server sudah siap.

INSTALL JDK

Kita sekarang login pakai root ke application server. Pertama-tama kita install dulu Oracle JDK. Bisa juga pakai OpenJDK sebagai alternatif. Untuk mengunduhnya, Oracle mensyaratkan kita untuk menyetujui halaman perjanjian lisensi terlebih dahulu. Tapi karena kita sekarang sedang berada dalam VM yang tidak mempunyai GUI, maka kita perlu sedikit trik supaya server Oracle mengira kita sudah menyetujui halaman tersebut. Cobalah perintah di bawah ini.

# wget –no-cookies –header “Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com” http://download.oracle.com/otn-pub/java/jdk/6u38-b05/jdk-6u38-linux-x64-rpm.bin

Ok, kalau sukses, anda segera lanjutkan dengan menginstall JDK-nya.

# sh jdk-6u14-linux-i586-rpm.bin
accept license

# ln -s -f /usr/java/jdk1.6.0_38/bin/java /usr/bin/java

# java -version

Set java home and path:

# cd /etc/profile.d
# nano /etc/profile.d/starprise.sh

Isi dari file starprise.sh ini adalah sebagai berikut:

export JAVA_HOME=/usr/java/jdk1.6.0_38/
export ADEMPIERE_HOME=/opt/Adempiere
export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

Sampai disini anda jangan logout dulu dari Application Server.

INSTALL ADEMPIERE

Sebelum anda melanjutkan ke langkah berikutnya, coba dulu apakah Application Server anda bisa connect ke Database Server.

# psql -h 10.210.10.102 -p 5432 -U adempiere -d starprise

Kalau tidak bisa, anda harus periksa ulang konfigurasi pg_hba dan iptables di Database Server.
Jika berhasil, maka anda lanjutkan dengan menginstall Adempiere.

# useradd adempiere
# passwd adempiere

Pastikan resolusi nama server dengan IP Public:

# hostname
# nano /etc/hosts

tambahkan seperti ini kira-kiranya: 118.99.99.99 GoodWill

# unzip Adempiere_370.zip -d /opt/

Copy juga file AdempiereEnv.properties yang sudah dikonfigurasi sebelumnya.

scp AdempiereEnv.properties root@118.99.99.99:/opt/Adempiere

Ubah port ke 8080 & 4433 di dalam file ini (karena non root tidak boleh pakai port < 1000)

Supaya Adempiere service otomatis dijalankan ketika booting:

# chmod +x /etc/init.d/adempiere

# chkconfig adempiere on

Salah satu masalah yang sering dialami oleh para nubie adalah masalah kepemilikan log file. Seringnya gara-gara owner-nya adalah root, oleh sebab itu anda harus ganti menjadi user dan group anda.

# cd /opt
# chown -R adempiere Adempiere
# chgrp -R adempiere Adempiere

# cd Adempiere/
# chmod +x *.sh
# chmod +x utils/*.sh
# chmod +x utils/postgresql/*.sh

Sekarang anda boleh login dengan menggunakan user adempiere.

# sh RUN_silentsetup.sh

Konfigurasi Adempiere.properties
– ubah MaxPoolSize kurang dari PostgreSQL max_connections

Import Database

# sh utils/RUN_DBRestore.sh

Nyalakan servernya:

# service adempiere start

Selamat! Anda telah berhasil melakukan instalasi Adempiere ke cloud. Sekarang anda boleh coba buka IP Public anda di dalam browser, sambil jangan lupa menambahkan port 8080. Jika tidak ada masalah, maka anda akan segera masuk ke halaman muka Adempiere. Jika masih belum berhasil, anda harus periksa kembali konfigurasi port di dalam Iptables Application Server.

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 www.goodwillerp.com

Dec 08

Recalculating average costing backwardly

Dealing with average costing could be a nightmare for most of us. Chuck Boecking, a fellow Adempiere consultant based in US explained it very well in his blog why we (not to) choose average costing in a ERP.

ERP is a perpetual inventory accounting system. Therefore, the system  will post every inventory transaction as they happen. When you use average invoicing, your inventory valuation will almost always be inaccurate. For example, Let’s assume you buy a bunch of products over time over different costs. Then, over time, you sell all product. The resulting inventory GL balance will almost always be non-zero. Therefore, you will have a phantom inventory balance. If your operations are even a little complex, the variances that result from average invoice costing can be difficult to track and explain.

Most of the time we heard about recommendation on using Standard Costing as a way to escape from this nightmare. In earlier release of Compiere (v. 2.5), even there are only Standard Costing and Last PO price method. However in Indonesia, the requirement for standard accounting practice is to use either Average Costing or FIFO/LIFO. I still can recall back in 2005 how our team had to develop our own average costing functionality to satisfy the clients’ need.

Eventually Compiere overhauled its costing engine and introduced average costing and FIFO/LIFO. But it’s so poor and immature we could hardly use it in real world. Our team once again drilled down the costing engine and did some major hacks. We contributed it back to community in 2006 although we know it’s not crystal clear perfect yet. At least now we had a working average costing in Adempiere (Hengsin Low later added more workarounds in 2010).

One culprit we still found anyway is the fact that the ERP is allowing a back-dated transaction. Since we are using a moving (weighted) average costing, we could have trouble if user is entering transactions in a not so chronological manner.

I am thinking to have a process where we could tell the ERP to recalculate the costing for a given period. Our team had made a good effort so far. However I’m still not satisfied and then I stumbled on this link referenced by one of my client, whom now became a good friend of mine.

The idea is to calculate the average costing backwardly, instead of from the beginning which is very time and resource consuming. I copy the content of the link here, in case it’s lost.

So let’s begin.

There are two tables:
-the one that holds inventory transactions, and
-the one that holds the latest inventory valuation

I am trying to make an inventory valuation report using average costing method based on a certain date. Doing it the normal way, calculating from the beginning until that specific date, will yield variable response time. Imagine calculating on five years worth of data ( and thousands different inventory items ). It will take considerable amount of time ( and my company is not silicon-valley grade. meaning, 2 core cpu and 8 GB of RAM only) so I am calculating it backwardly: from the latest (current) backtrack to that specific date.

(Every month the accounting dept will check on data, so the calculation will only deal with 1 month’s worth of data, forever. equal to consistent unchanging performance)

I have merged the table into one on the script below

create table test3 ( rn integer, amt numeric, qty integer, oqty integer);
insert into test3 (rn,amt,qty,oqty) values (0,2260038.16765793,8,0);
insert into test3 (rn,amt,qty,oqty) values (1,1647727.2727,3,0);
insert into test3 (rn,amt,qty,oqty) values (2,2489654.75326715,0,1);
insert into test3 (rn,amt,qty,oqty) values (3,2489654.75326715,0,1);
insert into test3 (rn,amt,qty,oqty) values (4,1875443.6364,1,0);
insert into test3 (rn,amt,qty,oqty) values (5,1647727.2727,3,0);
insert into test3 (rn,amt,qty,oqty) values (6,3012987.01302857,0,1);
insert into test3 (rn,amt,qty,oqty) values (7,3012987.01302857,0,1);

select * from test3; (already sorted desc so rn=1 is the newest transaction)

rn  amt        qty  oqty
0   2260038.168 8   0    --> this is the current average
1   1647727.273 3   0
2   2489654.753 0   1
3   2489654.753 0   1
4   1875443.636 1   0
5   1647727.273 3   0
6   3012987.013 0   1
7   3012987.013 0   1

Average Costing Method backtracking ( given current avg calculate last transaction avg, and so on until nth transactions )

Avg (n) = ((Avg(n-1) * (Cum Qty(n)+In Qty(n))) – (In Amount(n) * In Qty (n)) + (Avg(n-1) * Out Qty(n))/(Cum Qty(n)+Out Amount(n))

Cumulative qty for backtracking transactions would be minus for in, plus for out. So if current qty is 8, transaction in qty before is 3, then cumulative qty for that transaction is 5.

To calculate the average for one transaction before last, then we use current average to use in that transaction calculation.

with recursive
runsum (id,amt,qty,oqty,sqty,avg) as
    (select data.id, data.amt, data.qty, data.oqty, data.sqty, data.avg
     from (
        select rn as id,amt,qty, oqty,
        sum(case when rn=0 then qty else
             case when oqty=0 then qty*-1
                else oqty end end) over (order by rn) as sqty, lag(amt) over (order by rn) as avg
          from test3 ) data
         ),
counter (maximum) as
         (select count(rn)
          from test3
         ),
trans (n, id,amt,qty,oqty,sqty,prevavg,avg) as
    (select 0 n, id,amt,qty,oqty, sqty,avg,avg
      from runsum
     union
    select trans.n+1, runsum.id,trans.amt,trans.qty, trans.oqty, trans.sqty,
    lag(trans.avg) over (order by 1),
    case when runsum.sqty=0 then runsum.amt else
    ((trans.prevavg*(runsum.sqty+trans.qty))-(runsum.amt*trans.qty)+(trans.prevavg*trans.oqty))/(runsum.sqty+trans.oqty)
    end
    from runsum join trans using (id)
    where trans.n<(select maximum*2 from counter))
select *
from trans
where prevavg is null and avg is not null
order by id;

The result is supposed to be like this

rn  amt        qty oqty sqty sum avg
1   1647727.273 3   0   5   2627424.705
2   2489654.753 0   1   6   2627424.705
3   2489654.753 0   1   7   2627424.705
4   1875443.636 1   0   6   2752754.883
5   1647727.273 3   0   3   3857782.493
6   3012987.013 0   1   4   3857782.493
7   3012987.013 0   1   5   3857782.493

I hope we could have something working in near future. So stay tuned.

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 www.goodwillerp.com

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 22

Flexible Precision In Numeric Display Type

Hi all,

Today I would like to share my approach to provide  flexible precision in numeric display type. As you know there are several numeric display types in Adempiere / Idempiere. You can find them in the list of Reference Type in Table & Column window. You can see you can have either Number, Amount, Cost+Price, Quantity or Integer. While Integer is obviously for whole number, there is confusion to know the difference between the rest.

The differences are easily tracked down in DisplayType class which you can find in org.compiere.util. It is the minimum number of digits allowed in the fraction portion of a number. So there you have:

Integer  : None
Quantity : None
Amount   : 2
Cost+Price: 2
Number   : 1

As you can see Cost+Price is having the same number of digits as Amount. You can not tell the difference between the two. So let’s make some difference. My workaround is to modify one line in DisplayType class. I would change the code so the minimum fraction digits for Cost+Price is taken from System Configuration that I can manage later. It even gives me better flexibility!

else if (displayType == CostPrice)
{
format.setMaximumIntegerDigits(MAX_DIGITS);
format.setMaximumFractionDigits(MAX_FRACTION);
format.setMinimumFractionDigits(
MSysConfig.getIntValue(“DISPLAY_TYPE_COSTPRICE_FRACTION”, AMOUNT_FRACTION, Env.getAD_Client_ID(Env.getCtx())));
}

In implementation you would probably need to have a numeric display type where it can support more than 2 number of digits in the fraction portion. I hope the modification I share with you today can help you in this situation.

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 www.goodwillerp.com