Kamis, 20 Maret 2014

Tagged under: ,

Implementasi Barcode Project di Adempiere




'Skylib, Barcode Project di Adempiere - Tutorial ini saya dapat dari blog seseorang yang telah menolong problem saya beberapa waktu lalu tentunya dia lebih berpengalaman dari saya. ok tidak perlu lama lagi kita masuk ke topik yang mana akhirnya dirumuskan 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:

[ Sumber ]