Odoo 17 menggunakan format angka bawaan yang mengikuti standar lokal, tetapi terkadang Anda perlu mengubah pemisah ribuan (thousands separator) dan desimal agar sesuai dengan kebutuhan bisnis Anda. Misalnya:
- Format default di Indonesia: 1.000.000,50 (menggunakan titik untuk ribuan dan koma untuk desimal)
- Format default di Amerika Serikat: 1,000,000.50 (menggunakan koma untuk ribuan dan titik untuk desimal)
Jika format angka di Odoo tidak sesuai dengan standar yang Anda inginkan, Anda bisa mengubahnya dengan beberapa metode berikut.
1. Mengubah Pemisah Ribuan dan Desimal dari UI Odoo
Metode ini paling mudah dan tidak memerlukan pengkodean.
Langkah-langkah:
- Masuk ke Odoo sebagai admin.
- Pergi ke Settings → Translations → Languages.
- Pilih bahasa yang ingin Anda ubah (misalnya, "Bahasa Indonesia" atau "English").
- Cari kolom Decimal Separator dan Thousands Separator.
- Ubah sesuai keinginan:
- Decimal Separator: "," (koma) atau "." (titik)
- Thousands Separator: "." (titik) atau "," (koma)
- Klik Save dan refresh halaman untuk melihat perubahan.
2. Mengubah Format Angka di Python (Backend)
Jika Anda ingin mengubah format angka dalam perhitungan atau tampilan data secara langsung di model Python, gunakan locale atau format.
Contoh dalam Model Odoo
pythonSalinEditimport locale from odoo import models, fields, api class CustomModel(models.Model): _name = 'custom.model' _description = 'Custom Model' amount = fields.Float(string="Amount") @api.depends('amount') def format_amount(self): locale.setlocale(locale.LC_NUMERIC, 'id_ID.UTF-8') # Ubah ke Indonesia for record in self: record.formatted_amount = "{:n}".format(record.amount) # Pemisah otomatis sesuai lokal
Penjelasan:
- locale.setlocale(locale.LC_NUMERIC, 'id_ID.UTF-8') memastikan format angka sesuai dengan Indonesia.
- "{:n}".format(record.amount) akan menyesuaikan pemisah ribuan dan desimal sesuai lokal.
3. Mengubah Format di QWeb Report (Laporan PDF)
Jika Anda ingin mengubah format angka dalam laporan PDF atau tampilan cetak, Anda bisa memodifikasi template QWeb.
Contoh dalam QWeb Template:
xmlSalinEdit<t t-esc="'{:,.2f}'.format(record.amount).replace(',', 'X').replace('.', ',').replace('X', '.')"/>
Penjelasan:
- '{:,.2f}'.format(record.amount) → Menghasilkan angka dalam format ribuan dan desimal standar.
- replace(',', 'X').replace('.', ',').replace('X', '.') → Mengubah format ke Indonesia.
Contoh hasil:
- Jika angka adalah 1000000.50, maka akan tampil sebagai 1.000.000,50.
4. Mengubah Format di JavaScript (Frontend)
Jika Anda ingin mengubah tampilan angka dalam formulir atau daftar tampilan di UI Odoo, gunakan JavaScript.
Contoh di JavaScript:
javascriptSalinEditodoo.define('custom_module.format_number', function (require) { "use strict"; var fieldRegistry = require('web.field_registry'); var basicFields = require('web.basic_fields'); var CustomNumberField = basicFields.FieldFloat.extend({ _formatValue: function (value) { return value.toLocaleString('id-ID', { minimumFractionDigits: 2 }); }, }); fieldRegistry.add('custom_number', CustomNumberField); });
Penjelasan:
- Menggunakan toLocaleString('id-ID') untuk mengubah format angka ke Indonesia.
- minimumFractionDigits: 2 memastikan angka selalu memiliki dua desimal.
Kesimpulan
Mengubah pemisah ribuan dan desimal di Odoo 17 bisa dilakukan dengan beberapa cara:
- Melalui UI dengan mengedit pengaturan bahasa.
- Melalui Python untuk mengubah format angka dalam model dan database.
- Melalui QWeb Report untuk menyesuaikan tampilan angka dalam laporan PDF.
- Melalui JavaScript untuk mengubah tampilan angka di UI Odoo.
Metode yang dipilih tergantung pada kebutuhan Anda. Jika hanya ingin mengubah tampilan tanpa pengkodean, gunakan metode UI. Namun, jika ingin kontrol lebih lanjut, gunakan Python atau JavaScript.
Semoga bermanfaat! 🚀