Saya Kurniawan. Di kantor kami sedang menggunakan Odoo versi 10 dan saat ini kami punya kebutuhan untuk melakukan custom pada layout slip gaji (payslip) HRD.
Misalnya, kami ingin menambahkan logo perusahaan di bagian header, mengatur ulang posisi beberapa informasi karyawan atau detail gaji, atau mungkin ada informasi tambahan yang perlu ditampilkan di slip gaji tersebut yang belum ada di template bawaan.
Nah, saya mau tanya nih, kira-kira bagaimana ya alur atau langkah-langkah yang biasa dilakukan untuk mengedit atau custom template layout payslip di Odoo 10 ini? Apakah biasanya perlu modifikasi file QWeb report-nya langsung via XML, atau ada cara lain yang mungkin lebih efisien untuk melakukan penyesuaian seperti ini?
Mungkin ada rekan-rekan yang punya pengalaman atau tips terbaik untuk kasus seperti ini? Mohon pencerahannya ya dari yang sudah pernah otak-atik layout payslip di Odoo 10.
Terima kasih banyak sebelumnya atas bantuan dan sharing ilmunya!
Balasan (1)
Admin Odoo ForumAdmin & AI Support12 Oct 2026, 13:48
Halo Mas Kurniawan, Sobat Odoo!
Wah, ini pertanyaan yang sering banget muncul dan memang jadi kebutuhan standar di banyak perusahaan, nih. Mengatur layout slip gaji agar sesuai dengan branding dan kebutuhan informasi perusahaan memang penting banget. Apalagi di Odoo 10, ada beberapa cara yang bisa kita lakukan, tapi yang paling umum dan disarankan adalah melalui modifikasi QWeb report via modul kustom.
Mari kita bahas langkah-langkah atau alurnya ya, biar Mas Kurniawan ada gambaran.
1. Pahami Konsep QWeb di Odoo 10
Odoo menggunakan QWeb sebagai engine untuk membuat report, termasuk payslip. QWeb ini seperti template engine yang menggunakan XML untuk strukturnya dan bisa mengambil data dari objek Odoo. Di Odoo 10, kita tidak bisa langsung edit template dari UI seperti di versi lebih baru. Modifikasi harus dilakukan di level kode.
2. Pentingnya Modul Kustom
Ini adalah langkah paling fundamental dan wajib. Jangan pernah mengedit file inti Odoo secara langsung! Selalu buat modul kustom sendiri. Kenapa?
Agar perubahan Mas Kurniawan tidak hilang saat Odoo di-update.
Memudahkan manajemen dan maintenance kode.
Memungkinkan Odoo di-upgrade ke versi yang lebih baru di kemudian hari dengan lebih minim konflik.
Jadi, Mas Kurniawan atau tim perlu membuat folder modul baru di dalam `addons` path Odoo, misalnya `my_payslip_custom`.
3. Identifikasi Template Payslip Bawaan
Template payslip bawaan di Odoo 10 biasanya berada di modul `hr_payroll`. Nama template-nya seringkali adalah `report_payslip` atau `report_payslip_template` di dalam `views/report_payslip.xml` atau sejenisnya.
Untuk memastikannya, Mas Kurniawan bisa mengaktifkan Developer Mode (debug mode). Setelah itu, pergi ke menu Technical > Reports > Reports. Cari report yang berkaitan dengan Payslip (biasanya namanya "Payslip" atau "Employee Payslips"). Klik dan lihat bagian `Report XML ID` dan juga `File` yang mengarah ke template QWeb-nya. Contohnya mungkin seperti `hr_payroll.report_payslip`.
4. Teknik Modifikasi dengan Inheritance QWeb
Setelah Mas Kurniawan membuat modul kustom, di dalamnya kita akan membuat file XML baru (misalnya `views/payslip_report_custom.xml`) untuk memodifikasi template payslip bawaan. Kita akan menggunakan fitur template inheritance yang disediakan QWeb.
Konsepnya seperti ini: kita akan "mewarisi" template bawaan, lalu menggunakan `t-xpath` untuk menunjuk bagian mana yang ingin kita modifikasi (tambah, hapus, atau ganti).
Contoh struktur XML-nya di modul kustom Mas Kurniawan:
```xml
```
Sekarang mari kita bahas contoh modifikasinya:
Menambahkan Logo Perusahaan di Header:
Biasanya, logo perusahaan sudah ada di objek `res_company`. Mas Kurniawan perlu mencari bagian header di template asli menggunakan `t-xpath` (misalnya di dalam `div` yang menampilkan nama perusahaan atau alamat).
```xml
``` Penting: `t-attf-src="data:image/png;base64,{{o.company_id.logo}}"` ini adalah cara untuk menampilkan gambar logo yang disimpan dalam format base64 di database.
Mengatur Ulang Posisi Informasi Karyawan atau Detail Gaji:
Ini sedikit lebih rumit karena Mas Kurniawan perlu identifikasi struktur HTML/QWeb dari bagian yang ingin diubah. Misalnya, jika Mas Kurniawan ingin memindahkan tabel detail gaji, Mas Kurniawan perlu mencari elemen `
` atau `
` yang membungkus informasi tersebut.
```xml
Employee Name:
Job Position:
```
Untuk memindahkan, Mas Kurniawan biasanya akan menggunakan `position="replace"` untuk menghapus di tempat lama, lalu `position="after"` atau `position="before"` untuk menempatkannya di tempat baru.
Menambahkan Informasi Tambahan:
Misalnya, Mas Kurniawan ingin menampilkan nomor rekening karyawan atau informasi pajak yang belum ada. Pastikan field tersebut sudah ada di objek payslip (`o`), employee (`o.employee_id`), atau objek terkait lainnya.
```xml
Bank Account:
Tax ID:
```
Alur yang Biasa Dilakukan:
1. Aktifkan Developer Mode di Odoo Mas Kurniawan.
2. Cari template payslip yang ingin dimodifikasi (misalnya `hr_payroll.report_payslip`). Mas Kurniawan bisa melihat struktur XML-nya dari menu Technical > User Interface > Views (cari view yang berhubungan dengan report payslip tersebut).
3. Buat modul kustom (misal `my_payslip_custom`) dengan `__manifest__.py` dan `__init__.py`. Jangan lupa tambahkan `hr_payroll` sebagai `depends`.
4. Di modul kustom tersebut, buat folder `views` dan file XML (misal `payslip_report_custom.xml`).
5. Tulis kode QWeb inheritance di file XML tersebut, gunakan `t-xpath` untuk menunjuk elemen mana yang akan diubah.
6. Setelah itu, instal modul kustom Mas Kurniawan.
7. Print payslip dan lihat hasilnya. Jika ada error, periksa log Odoo. Jika tata letak belum sesuai, ulangi langkah 5.
Tips Tambahan:
Mulai dari yang Sederhana: Jangan langsung coba mengubah semua bagian. Coba tambahkan logo dulu, lalu ubah posisi satu elemen, baru tambahkan informasi. Gunakan Inspect Element di Browser: Meskipun report-nya PDF, Mas Kurniawan bisa melihat preview HTML dari report di Odoo (jika ada opsi "Print Preview" atau sejenisnya) dan menggunakan `Inspect Element` di browser untuk memahami struktur HTML-nya sebelum mengkonversi ke PDF. Ini sangat membantu untuk menentukan `xpath` yang tepat. Pelajari QWeb dan XPath: Sedikit pemahaman tentang cara kerja XPath akan sangat membantu dalam menargetkan elemen-elemen di template. Backup: Selalu backup database Odoo Mas Kurniawan sebelum melakukan modifikasi besar!
Jadi, intinya memang perlu modifikasi file QWeb report langsung via XML di dalam modul kustom. Ini adalah cara yang paling fleksibel dan profesional untuk melakukan penyesuaian seperti yang Mas Kurniawan inginkan di Odoo 10.
Semoga pencerahan ini membantu Mas Kurniawan dan tim di kantor ya! Selamat mencoba, dan jangan sungkan bertanya lagi jika ada kendala. Kita sama-sama belajar di sini, Sobat Odoo!
Berikan Tanggapan
⚠️ Anti-Spam Aktif: Dilarang menyertakan tautan/URL di dalam form ini.