Search View adalah fitur Odoo yang digunakan untuk melakukan pencarian, filter dan grouping data pada suatu model. Misal pada Sales Order, Purchase Order, Inventory dll. Fitur Search View menurut saya cukup lengkap dan mudah digunakan.
Search View tidak bisa berdiri sendiri, biasanya digunakan bersama dengan view / tamplate lainnya. Seperti List View atau Kanban View. Jadi di Search View-lah kita melakukan pencarian, filter dan grouping sedangkan hasil pencarian, filter dan grouping tersebut akan ditampilkan di List View atau view lainnya. Tutorial kali ini saya akan membahas apa saja yang bisa kita lakukan dengan Search View. Tetapi saya tidak akan membahas bagaimana membuat Search View dari 0 atau meng-override Search View dengan cara membuat module baru. Tutorial membuat Search View dari 0 akan dibahas di tulisan lainnya jika ada kesempatan. Kali ini kita akan mengubah fungsi Search View lewat User Interface odoo saja.
Pencarian Sederhana
Buka salah satu module Odoo, misal Sale Order. Di pojok kanan atas dibawah navbar akan ada input dengan placeholder “Search” dan sebuah tombol dengan icon kaca pembesar. Inilah Search View. Tempat dimana kita bisa melakukan pencarian, filter dan grouping data di Odoo.
Misal kita ingin mencari Sale Order dengan nama customer mengandung kata “bu”. Cukup ketik “bu” pada Search View maka akan tampil pilihan kita mau melakukan pencarian berdasarkan apa.
Pada module Sale Order pilihan yang diberikan antara lain Search Sales Oder (pencarian berdasarkan nomor dokumen), Search Customer (pencarian berdasarkan nama customer), Search Sales Person (pencarian berdasarkan sales person / user) dll. Karena kita akan mencari Sale Order dengan nama customer mengandung kata “bu” maka pilih Search Customer. Maka dengan segera odoo akan menampilkan semua sales order dengan nama customer mengandung kata “bu”.
Kita bisa memilih Search Customer ini sebanyak yang kita mau. Dan juga bisa digabung dengan pilihan lainnya. Misal kita ingin melakukan pencarin data Sale Order dimana nama customer mengandung kata “bu” atau “han” dan sales person dengan nama yang mengandung kata “bu”. Untuk melakukan pencarian ini cukup ketik kata “bu” kemudian pilih Search Customer, ketik “han” kemudian pilih Search Customer lagi, terakhir ketik “bu” dan pilih Search Sales Person. Hasilnya kira-kira seperti ini.
Bagaimana jika customer yang nama-nya mengandung kata “bu” ini banyak ? Bukankah data yang ditampilkan akan bercampur dengan data customer lain yang tidak ingin kita cari ? Tenang, odoo sudah menyediakan fitur untuk melakukan pencarian dengan lebih akurat. Coba ketik kata “bu” lagi di Search View. Kemudian klik tanda segitiga di samping kiri pilihan Search Customer. Odoo akan menampilkan customer yang nama-nya sesuai dengan pencarian. Klik nama customer yang anda inginkan, dengan begitu kita bisa melakukan pencarian dengan lebih akurat.
Menambah Pilihan Pencarian
Jika pilihan pencarian default odoo kurang banyak. Kita bisa menambahkannya sendiri. Pertama kita harus login sebagai administrator. Kemudian masuk debug mode danga cara masuk menu Setting dan klik Activate the Developer Mode.
Yang kedua pastikan kita tahu nama field yang akan kita tambahkan sebagai pilihan pencarian. Misal kita akan menambahkan pilihan pencarian warehouse, maka kita perlu tahu nama field warehouse ini apa ? Untuk mengetahui nama field cukup arahkan mouse anda pada label suatu field. Maka informasi mengenai field tersebut akan ditampilkan, termasuk nama field yang kita butuhkan untuk menambah pilihan pencarian di Search View.
Dari gambar diatas dapat kita ketahui bahwa nama field warehouse di sale order adalah warehouse_id. Setelah tahu nama field selanjutnya kita bisa menambahkannya di Search View. Kembali ke List View Sale Order, pada navbar cari tombol dengan icon serangga kemudian klik. Selanjutnya klik Edit Search View.
Kemudian tambahkan kode dibawah ini di dalam tag xpath. Posisinya bebas.
<field name="warehouse_id"/>
Klik Save kemudian refresh browser. Kini kita bisa melakukan pencarian Sale Order berdasarkan warehouse.
Pencarian Kompleks
Lalu jika kriteria / field yang ingin kita cari banyak, apakah kita perlu menambahkan semua field tersebut ke pilihan pencarian ? Tidak perlu, field-field yang ditambahkan ke Search View sebaiknya dibatasi agar lebih sederhana. Sebaiknya pilihlah field yang paling sering kita cari saja. Field-field yang lainnya bisa kita cari lewat fitur Advance Search.
Perhatikan Seach View, di bagian kanan terdapat icon kaca pembesar. Jika tanda kaca pembesar tersebut adalah tanda + (plus) klik tombol tersebut hingga tandanya menjadi – (minus). Maka dibawah input Search View akan terdapat tiga drop down yaitu Filters, Group By dan Favorites. Klik drop down Filters maka akan muncul pilihan Add Custom Filters, disinilah kita bisa melakukan pencarian yang lebih komplek di Odoo.
Sebagai contoh kasus, misal kita ingin mencari sale order dengan total diatas Rp. 5.000,00 dengan nama customer tidak mengandung kata “bu”. Berikut ini langkah-langkahnya.
-
Klik Add Custom Filter
-
Isian pertama adalah nama field yang akan kita jadikan acuan sebagai parameter pencarian. Pilih Total
-
Isian kedua adalah kondisi pencarian. Pilihannya tergantung tipe data yang kita pilih di isian pertama. Jika tipe data berupa angka (integer, float) tentu kita bisa memilih pilihan sama dengan, lebih besar, lebih kecil dan sebagainya. Pilih Greater Than karena kita ingin mencari sale order dengan total lebih besar dari Rp. 5.000,00
-
Isian ketiga adalah nilai yang akan kita cari. Isi 5000. Seperti ini contoh tampilan pengisiannya.
Klik tombol Apply untuk memulai pencarian. Maka odoo akan menampilkan data sale order dengan nilai total diatas 5000. Selanjutnya kita mulai pencarian kedua yaitu sale order dengan nama customer yang tidak mengandung kata “bu”.
-
Klik Add Custom Filter lagi.
-
Pada isian pertama cari Customer
-
Pada isian kedua pilih doesn’t contain
-
Pada isian ketiga masukkan kata bu
-
Klik Apply dan pencarian sudah selesai.
Filter
Filter pada dasarnya sama dengan Search atau pencarian. Bedanya kalau search kita perlu mengetik data yang mau kita cari dan memilih kondisi pencariannya, sedangkan filter kondisi dan data parameter pencarian sudah ditentukan dari awal. Jadi kita hanya perlu klik saja. Cara penggunaannya pun cukup mudah. Klik dropdown Filter kemudian klik beberapa filter yang sudah disediakan odoo. Gambar dibawah ini adalah contoh penerapan filter dengan memilih filter To Invoice atau mencari sale order dengan status To Invoice.
Lalu bagaimana jika filter yang disediakan odoo tidak cukup ? Kita bisa menambahkan filter sendiri. Sebagai contoh kita akan menambahkan filter untuk mencari sale order dengan warehouse Gudang Utama
Pertama kita perlu tahu ID dari Gudang Utama ini berapa. ID yang saya maksud ini adalah Primary Key dari warehouse Gudang Utama di database. Untuk mengetahuinya buka menu Inventory >> Configuration >> Warehouses klik warehouse yang dimaksud. Kemudian pada address bar browser cari parameter id
Dari gambar diatas dapat kita ketahui bahwa ID warehouse Gudang Utama adalah 1. Selanjutnya masuk List View sale order lagi, klik tombol dengan icon serangga dan pilih Edit Search View kemudian tambahkan kode dibawah ini.
<separator/> <filter string="Gudang Utama" name="warehouse_id" domain="[('warehouse_id','=',1)]"/>
Klik tombol Save kemudian refresh browser. Filter Gudang Utama sudah berhasil ditambahkan, silakan anda coba.
Grouping
Grouping digunakan untuk mengelompokkan data berdasarkan kondisi tertentu. Misal sale order kita grouping berdasarkan Sales person. Dengan grouping ini kita bisa melihat sales person A sudah berhasil melakukan berapa kali penjualan. Dan kita pun juga mudah untuk melihat data-data penjualannya.
Untuk melakukan grouping pada Search View klik drop down Group By kemudian pilih opsi yang sudah disediakan odoo. Jika opsi yang disediakan tidak cukup kita bisa memilih Add Custom Group kemudian pilih field yang akan kita gunakan sebagai kondisi grouping, kemudian klik Apply. Berikut ini adalah contoh tampilan grouping sale order berdasarkan Sales Person dan Customer
Menyimpan Kondisi Search, Filter dan Grouping
Katakanlah kita memiliki kombinasi Search, Filter dan Grouping yang cukup kompleks. Kita bisa menyimpan kondisi tersebut lewat drop down Favorites di Search View. Sehingga kita tidak perlu capek-capek melakukan Search, Filter dan Grouping secara manual berulang-ulang.
Untuk menyimpan kondisi Search, Filter dan Grouping, pertama lakukan Search, Filter dan Grouping sampai data yang anda inginkan tampil. Kemudian klik dropdown Favorites dan pilih Save Current Search. Isi nama dengan kata-kata yang sesuai dengan kondisi Search, Filter dan Grouping yang sudah dilakukan. Kemudian klik Save
Jika suatu saat kita ingin melakukan Search, Filter dan Grouping lagi kita tinggal klik drop down Favorites dan pilih kondisi yang kita simpan.