OpenERP 5.0.16, 6.0.3, 6.0.4 & 6.1 Technical Tutorial : Pengurutan data tanpa menggunakan method search

Penggunaan method browse atau read biasanya didahului dengan method search. Method search digunakan untuk mendapatkan list dari id resources yang akan dibrowse atau read. Namun pada beberapa kasus dimana data harus diurutkan terlebih dahulu, method search mempunyai keterbatasan. Pengurutan data memang bisa dilakukan pada method search dengan menyertakan parameter order. Namun teknik ini mempunyai kekurangan dimana field yang bisa diurutkan hanya field yang dipunyai oleh object tsb, tidak bisa digunakan untuk mengurutkan field yang berada pada tabel referensi.

Pada kasus kasus seperti ini harus digunakan teknik yang berbeda, yaitu dengan menggunakan sintaks sql langsung untuk mendapatkan list dari id yang akan dibrowse/read

Tutorial selengkapnya dapat dilihat dibawah ini

STUDI KASUS

Ada kebutuhan untuk melakukan browse terhadap invoice penjualan (account.invoice). Namun hasil browsenya harus diurutkan berdasarkan nama konsumen (alphabet). Untuk itu digunakan method execute yang dilanjutkan dengan method fetchall milik object cursor.

account_invoice_ids = []
str_sql = """
          SELECT A.id
          FROM account_invoice AS A
          JOIN res_partner AS B ON A.partner_id = B.id
          WHERE A.type = 'out'
          ORDER BY B.name
          """
self.cr.execute(str_sql)

for (account_invoice_id) in self.cr.fetchall():
    account_invoice_ids.append(account_invoice_id[0])

account_invoice = self.pool.get('account.invoice').browse(cr, uid, account_invoice_ids)

Pada contoh kode di atas kita lihat bahwa variabel account_invoice_ids diperoleh bukan melalui method search tapi melalui sql syntax

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s