Tagged: openerp 5.0.16
OpenERP 6.1 Implementation Log : Multi-Currency Pada Journal Voucher
Journal voucher (account.move) pada OpenERP secara sepintas menyediakan dukungan terhadap multi-currency. Hal ini bisa dilihat pada adanya isian Amount Currency dan Currency pada formnya. Pada kenyataannya dukungan terhadap multi-currency journal voucher hanya sebatas pada penyimpanan data nya, bukan perhitungan otomatis ketika menginput manual (tanpa bantuan invoice, payment, bank statement ataupun fitur tambahan lainnya).
Jadi jika ada transaksi
Kas Dr $ 100.00
Modal Cr $ 100.00
Dan user mau memasukannya langsung via Journal Entries maka user harus membuat journal entries (company currency = IDR) dengan journal item sbb :
Account : Cash USD
Debit : 100.000,00
Amount Currency : 100,00
Currency : USD
Account : Fixed Asset
Credit : 100.000,00
Amount Currency : – 100,00
Currency : USD
Semua nominal harus dihitung manual terlebih dahulu. OpenERP tidak akan melakukannya secara otomatis. Kindda sucks …
Bagaimanapun … Jika user melakukannya via Bank Statement, Invoice, Payment, ataupun fitur tambahan lainnya, journal voucher yang dihasilkan sudah akan sesuai dengan perhitungan multi-currency. Dengan kata lain fitur-fitur tambahan itulah yang akan melakukannya untuk user bukan journal voucher
Secata teknis harusnya method untuk melakukan perhitungan multi-currency harusnya diberikan di journal voucher (account.move/account.move.line), sehingga fitur-fitur tambahan hanya memanggil method tersebut.
OpenERP 5.0.16, 6.0.3, 6.04, dan 6.1 Technical Tutorial : Cara Menambahkan Data Dengan Menyertakan Context
Penulsi beberapa kali menemukan kondisi dimana penulis harus melakukan overloading terhadap method create ORM. Pada overloading tersebut ada method yang dijalankan apabila ada nilai context tertentu yang diberikan. Contoh sintaksnya :
def create(cr, uid, value, context={}):
obj_partner = self.pool.get('res.partner')
partner_id = super(res_partner, self).create(cr, uid, value, context)
nilai = context.get('nilai', False)
if nilai : self.lakukan_method(cr, uid, partner_id)
return partner_id
Method di atas menginstruksikan bahwa method lakukan_method akan dijalankan ketika ada key ‘nilai’ dalam parametercontext yang diberikan ketika mengeksekusi method create.
Jika selanjutnya Penulis ingin menambahkan data demo (via xml) dan menyertakan context tersebut, maka sintaks xml nya adalah sebagai berikut :
<record context="{'nilai' : True}" id="some_id" model="res.partner">
...
...
</record>
Perhatikan context=”{‘nilai’ : True}”
OpenERP 5.0.16, 6.0.4, 6.0.3, dan 6.1 Technical Tutorial : Membuat Sequence
Berikut panduan pemrograman untuk membuat sequence pada OpenERP 5.0.16, 6.0.3, 6.0.4 dan 6.1. Mungkin sifatnya hanya algoritma pemrograman saja, codenya silahkan disesuaikan dengan kebiasaan pemrograman masing-masing.
#1 Dapatkan id dari sequence yang ingin digunakan
Contoh menggunakan method search:
obj_sequence = self.pool.get('ir.sequence')
kriteria = [] # contohnya [('name','=','Sale Order')] untuk sequence Sale Order
sequence_id = obj_sequence.search(cr, uid, kriteria)[0]
OpenERP 5.0.16, 6.0.3, 6.0.4 & 6.1 Technical Tutorial : Memperbaiki Relationship many2one
Ketika membuat sebuah field many2one di OpenERP, terkadang developer salah menuliskan ke object mana many2one tersebut direlasikan. Jika field tersebut sudah terbuat, developer tidak bisa serta-merta mengkoreksi file .py untuk membetulkan relasi tersebut.
CONTOH
class object_contoh(osv.osv):
_columns = {
'name' : fields.char(string='Nama', size=100),
'partner_id' : fields.many2one(obj='account.account', string='Partner'),
}
Relasi many2one pada baris ke-4 harusnya ke object res.partner
LANGKAH KOREKSI
OpenERP 5.0.16 Technical Tutorial : Menjalankan Transisi Workflow draft -> confirm Pada stock.picking Dengan Method draft_force_assign
Method draft_force_assign digunakan untuk menjalankan transisi dari draft ke confirm pada object stock.picking (workflow stock.picking.basic).
SINTAKS
draft_force_assign(cr, uid, ids, *arg)