Menghitung total dari order yang ada

Menghitung order.py

Buka order.py

Karena akan menghitung jumlah dari orderan yang mana kita akan menghitung dari Jenis sewa mobil yang dipilih maka masukan tambahkan compute di dalam kelas Ordermobil kelas pertama 

lalu masukan oofcompute

jml_order = fields.Integer(compute='_compute_jml_order', string='Total Order')
@api.depends('detailjenis_ids')
def _compute_jml_order(self):
for record in self:
record.jml_order += len(record.detailjenis_ids)

len panjang jumlah pesanan ada berapa atau totalkan yang ada di detailjenis_ids atau Jumlah dari jenis sewa mobil yang dipilih

lalu tambahkan juga buaka menu stylerent_order.xml dan tambahkan 

pada tree atau didepan menu order dan tambahkan juga didalamnya supaya formnya diketahui jumlah ordernya berapa dengan memanggil function jml_order yang 

<!-- stylerent.ordermobil tree view -->
<record id="stylerent_ordermobil_view_tree" model="ir.ui.view">
<field name="name">stylerent.ordermobil.view.tree</field>
<field name="model">stylerent.ordermobil</field>
<field name="arch" type="xml">
<tree>
<!-- Add your fields here -->
<field name="pemesan_id"/>
<field name="tanggal_pesan"/>
<field name="jml_order"/>
</tree>
</field>
</record>
<!-- stylerent.ordermobil form view -->
<record id="stylerent_ordermobil_view_form" model="ir.ui.view">
<field name="name">stylerent.ordermobil.view.form</field>
<field name="model">stylerent.ordermobil</field>
<field name="arch" type="xml">
<form string="">
<sheet>
<group>
<field name="pemesan_id" />
</group>
<group>
<field name="tanggal_pesan" />
<field name="jml_order"/>
</group>

Menghitung total harga yang harus dibayarkan

buat api model pada dibawah dari @api_depens dari jml_order dengan
total_order = fields.Integer(compute='_compute_total_order', string='Total yang harus dibayar')
@api.model
def _compute_total_order(self):
for record in self:
total = sum(self.env['stylerent.detailorder'].search([]).mapped('jumlahnya'))
record.total_order = total
dimana self.env diambil dari kelas detail order dan cari mapped atau yg berupa list karena yang berupa list adalah jumlahnya maka ambil jumlahnya (compute dari harga sewa dikali lama sewa) yang ada di kelas stylerent.detailorder

buka stylerent_order.xml
tambahkan di form menjadi 
<!-- stylerent.ordermobil form view -->
<record id="stylerent_ordermobil_view_form" model="ir.ui.view">
<field name="name">stylerent.ordermobil.view.form</field>
<field name="model">stylerent.ordermobil</field>
<field name="arch" type="xml">
<form string="">
<sheet>
<group>
<field name="pemesan_id" />
<field name="tanggal_pesan" />
</group>
<group>
<field name="jml_order"/>
<field name="total_order"/>
</group>
Restart server dan upgrade lalu akan muncul 

Filter agar total order hanya by id saja

jumlahkan jumlahnya yang order id nya berdasarkan id foreign key atau order_id
tambahkan didalam search tadi 
menjadi
total = sum(self.env['stylerent.detailorder'].search([('order_id','=', record.id)]).mapped('jumlahnya'))

lalu restart server odoo tanpa harus upgrade maka apabila kita memiliki orderan 2 orang tidak akan terjumlah semuanya melainkan by id yang ada



Apabila tidak menggunakan filter atau tidak diisi berdasarkan foreign keynya maka total yang harus dibayar akan terjumlah semua