Cara mendapatkan nilai SUM menggunakan ORM odoo

Assalamu'alaikum saya akan sharing bagaimana mendapatakan nilai SUM sebagaimana SUM pada sql query tetapi kali ini menggunakan ORM di Odoo.

    Pada contoh kali ini saya menggunakan objek sale.order.line dan akan mentotal nilai price_subtotal dan group by product dengan sintaks sebagai berikut:

def contoh_sum(self):        
        domain = []
        hasil = self.env['sale.order.line'].read_group(
                domain,  # Domain untuk memfilter record
                ['product_id', 'price_subtotal:sum'],  # Atribut grouping dan agregasi sum
                ['product_id'],  # Field yang digunakan untuk grouping
            )

        for x in hasil:
            print(x)


Penejelasanya adalah : menggunakan fungsi read_group yang ada pada environtment yang sudah di siapkan di odoo yaitu self.env[nama.objek] fungsi tersebut bisa di gunakan dengan cara seperti contoh di atas. grouping tersebut juga bisa lebih kompleks lagi dengan cara menambahkan parameter seperti contoh pada source code original odoo berikut :    


        debit_groups = analytic_line_obj.read_group(
            domain=domain + [('amount', '<', 0.0)],
            fields=['account_id', 'currency_id', 'amount'],
            groupby=['account_id', 'currency_id'],

        )

Berikut adalah hasilnya:





Cara menggunakan Plain Sql Query di Odoo