Custom Header Report pada External Layout di Odoo 16

Assalamualaikum....

Pada materi kali ini saya akan share cara memodifikasi atau custom Header pada external layout di Odoo 16.

Odoo terdapat layout atau template bawaan report, tetapi terkadang ada kebutuhan untuk mengubah yang ada di dalamnya.

Pada contoh ini saya akan mencoba mengubah alamat Company yang ada di header menjadi alamat pada Warehouse.

Pertama kita tentukan dulu template mana yang akan kita gunakan, disini saya memilih external_layout yang stripped.

Pada modul default Odoo 16 kita cari file xml template external_layout_stripped, lalu perhatikan bagian company_address ini


Di bagian ini kita akan mengubahnya menjadi alamat pada Warehouse.

Untuk mengubahnya kita buat file bernama external_layout.xml di modul yang sudah kita buat, dan jangan lupa tambahkan patch di manifest.py


Setelah itu kita inherit template web.external_layout_stripped

<template id="external_layout_striped_header_inherit" inherit_id="web.external_layout_striped">
<xpath expr="//div[@class='float-start company_address']" position="replace">
<strong>
<t t-if="o">
<t t-if="o._name in ['stock.picking','purchase.order','sale.order','account.move']">
<t t-esc="o.env.user.warehouse_id.partner_id" t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True, "phone_icons": True}'/>
</t>
<t t-else="">
<t t-call="web.external_layout_striped"/>
</t>
</t>
<t t-else="">
<span t-if="company.company_details" t-field="company.company_details"></span>
</t>
</strong>
</xpath>
</template>




Membuat sequence Di Accounting lebih simple