Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Kamis, 15 Desember 2011

Barcode project di Adempiere [versi Kantor ku]

Setelah dipromosikan, bos telepon (salah satu teman menyebut beliau begitu hehehe) melakukan gebrakan. Ingin menggunakan barcode untuk input barang di adempeire! Begitu mendengar berita itu, angan-angan melayang membayangkan aplikasi adempiere yang seperti itu di padukan dengan barcode. Efektifkah???
Sebagai "tukang parkir" ga ada hak bagi saya untuk menolak. Jadi ya kita jalanin aja permintaan si bos. Sekalian nambah jam terbang ngoprek Adempiere. Kali aja di bajak ke ladang yang lebih subur hehehe.

Setelah beberapa kali meeting (sebagai tukang parkir, saya cukup meeting 1x saja), akhirnya di rumuskan bagian mana yang akan di masukkan sistem barcode. Yaitu bagian 1. Input barang produksi (Material Receipt), dan 2 Bagian cek/loading barang untuk pengangkutan (cek shipment).

Dengan base Adempeire 342 maka solusi-solusinya adalah:

1. Barcode untuk Material Receipt

Pada Adempiere 342 sudah support penggunaan barcode. Sejatinya barcode scanner hanya tools untuk membaca barcode dan mengetikkan pada cursor saat itu. Maka kita tinggal set UPC/EAN dengan string barcode. 

UPC/EAN di input sesuai dengan kode barcode nya

Lookup product menggunakan empat kolom untuk searching, yaitu: Value, Name, SKU, dan UPC. 
Code lookup product. Terlihat menggunakan 4 field untuk searching
Dengan mengeset UPC maka tinggal cursor kita arahkan pada field product ketika input material receipt line, kemudian kita tembakkan scanner ke barcode, maka product akan terinput. Hal ini juga berlaku pada form-form lain yang menggunakan lookup Product seperti Order, dan Invoice.

2. Cek Input Loading
Nah sekarang modul cek barang waktu loading. Jadi ceritanya saat menaikkan barang ke truck, di cek menggunakan barcode scanner. Banyak model yang bisa digunakan, misalnya digunakan seperti ship/receipt confirmation. Namun saya putus kan membuat form baru dengan mencontoh form create line form pada saat membuat Material Receipt dari Invoice.
Tampilan Form baru Input Loading
Dalam form baru ini ada field Business Partner dan Locator. Proses input loading memang tidak berdasarkan nomor Shipment, namun berdasarkan Business Partner (Customer). Sedangkan locator hanya sebagai pelengkap karena secara default shipment hanya dilayani oleh satu gudang. Untuk keperluan ini diperlukan beberapa tambahan tabel yaitu: M_Loading dan M_LoadingLine. M_Loading akan berisi Business Partner, Locator, Nomor Loading digunakan sebagai nomor document transaksi loading, dan Tanggal Loading yaitu tanggal saat itu. Sedangkan M_LoadingLine berisi Qty loading, Product, dan ShpmentLine.
Kemudian pada tabel M_InOutLine ditambahkan field isBarcodeChecked untuk menyimpan status MInoutLine yang artinya line sudah terkirim semua dan BarcodeCheckedQty yang digunakan untuk menyimpan total qty yang telah terkirim.
Proses pada form ini pertama adalah mengisikan business partner kemudian locator dan nomor loading. Untuk semetara nomor loading diisikan sembarang. Kemudian masukkan qty barang yang akan di scan barcode dan enter, maka cursor akan aktif pada field barcode. Lakukan scan maka otomatis data masuk pada grid dibagian bawah. Setelah input pertama maka field business partner, locator, serta nomor loading akan readonly. Jadi maksudnya kita lakukan terus scan barcode sampai proses selesai. Setelah selesai tinggal tekan tombol dibawah yang akan menutup proses input pada nomor loading tersebut.

Selain itu diperlukan juga print format yang dapat menampilkan barcode dari produk-produk yang ada. Di adempiere 342 sudah support print barcode, namun ada "bug" nya, yaitu printnya terlalu besar. Tidak bisa dikecilkan via setting di printformat item. Setelah dicoba-coba akhirnya saya berhasil mengecilkan barcode yaitu dengan menset barwidth menjadi 1.
Update code agar ukuran barcode kecil.

Contoh hasil cetak barcode tipe code-128

Untuk mendapatkan file-file class baru serta SQL perubahan data bisa didownload dibawah ini: