Multi Company pada Odoo 13

Saat artikel ini ditulis, odoo 13 sudah rilis lebih dari 1 tahun yang lalu. Bahkan sudah ada versi yang lebih baru, odoo 14. Dibandingkan dengan odoo 12 banyak perubahan dari sisi source code mereka, seperti dihapusnya model account.invoice, dihapusnya decorator @api.multi, dihapusnya field view_type dari model ir.actions.act_window dan masih banyak lagi.

Perubahan-perubahan di atas langsung saya rasakan efeknya. Bahkan saat pertama kali mengerjakan proyek odoo 13. Karena hal-hal di atas adalah hal yang umum dilakukan.

Tetapi ada juga perubahan yang baru saya sadari baru-baru ini, yaitu tentang bagaimana mendapatkan company yang aktif saat ini, jika dalam satu database odoo memiliki banyak company. Hal ini biasa diistilahkan dengan Multi Company.

Banyak proyek yang telah saya kerjakan sejak odoo versi 10. Tetapi tidak banyak proyek yang memakai multi company. Mungkin ini adalah salah satu alasan kenapa saya terlambat menyadari ada perubahan di source code odoo tentang multi company ini. 🙂

Ok. Berikut ini adalah beberapa perubahan yang terjadi pada odoo 13 dibandingkan dengan odoo 12, tentang multi company.

Pada odoo 12, anggaplah kita memiliki 3 company seperti pada gambar di bawah ini.

Daftar perusahaan di odoo 12

Lalu di master user kita atur agar user bisa membuka semua company di atas.

Mengatur perusahaan yang bisa diakses oleh user pada odoo

Pada odoo 12, kita hanya bisa membuka data dari satu company. Jika ingin membuka data dari company lain kita harus mengganti company yang aktif saat ini, dengan company lain yang kita ingin buka datanya. Perhatikan gambar di bawah ini.

Memilih perusahaan yang aktif pada odoo

Untuk mendapatkan nama company yang aktif atau company yang dipilih user saat ini, kita bisa menggunakan kode seperti ini.

print('=======Get Active Company=======')
print('Company id => ',self.env.user.company_id.id)
print('Company name => ', self.env.user.company_id.name)
print('=======Get Active Company=======')

Hasilnya kira-kira seperti ini.

Mendapatkan perusahaan yang aktif pada odoo

Jika kita memilih company lain sebagai company yang aktif, kode di atas tetap akan memberikan hasil yang benar.

Mendapatkan perusahaan yang aktif pada odoo

Lalu apa yang berubah di odoo 13 ?

Di odoo 13, sekarang kita bisa memilih lebih dari satu company. Artinya kita bisa membuka transaksi dari beberapa company sekaligus.

Memilih perusahaan aktif di odoo 13

Selain itu, kode di bawah ini juga tidak berjalan seperti di odoo 12.

self.env.user.company_id

Perhatikan gambar di bawah ini.

Gagal mendapatkan perusahaan yang aktif pada odoo 13

Lalu kode untuk mendapatkan company aktif di odoo 13 yang benar seperti apa ?

Gunakan kode ini.

print('=======Get Active Company=======')
print('Company id => ',self.env.company.id)
print('Company name => ', self.env.company.name)
print('=======Get Active Company=======')

Perhatikan beberapa gambar di bawah ini.

Mendapatkan perusahaan yang aktif pada odoo 13
Mendapatkan perusahaan yang aktif pada odoo 13

Perlu anda ingat cara kerja odoo 14 sama dengan odoo 13.

Tulisan Serupa

Leave a Reply