Setiap transaksi baik itu Sale Order, Purchase atau Invoice biasanya memiliki nomor dokumen yang unik untuk membedakan satu dokumen dengan dokumen lainnya. Pada odoo penomoran dokumen ini sangatlah mudah. Kita bisa mengatur format penomoran dokumen ini lewat menu Settings > Technical > Sequences & Identifiers > Sequences kemudian cari nomor dokumen yang ingin anda ubah. Tentu saja anda harus login sebagai administrator dan dalam mode debug untuk mengakses menu ini.
Berikut ini adalah beberapa hal yang bisa anda atur terkait penomoran dokumen pada odoo.
Next Number
Next Number adalah nomor urut dokumen yang digunakan pada transaksi selanjutnya. Next Number akan selalu berganti setiap ada transaksi baru. Umumnya kita jarang mengubah nilai field ini kecuali pada kondisi tertentu, misal karena transaksi sebelumnya salah dan dihapus, jadi kita ingin mereset nomor dokumen mulai dari nomor tertentu. Saat anda menggganti nilai field ini pastikan nomor tersebut belum digunakan pada dokemun terkait, karena jika ada nomor yang double akan terjadi error.
Step
Step adalah nilai yang ditambahkan pada Next Number setelah transaksi menggenerate nomor dokumen. Misal jika nilai Next Number sekarang adalah 10, sedangkan nilai Step adalah 1 maka saat membuat SO, SO tersebut akan mendapat nomor dokumen 10, sedangkan Next Number (nomor dokumen selanjutnya) akan jadi 11. Sangat tidak disarankan untuk mengganti nilai field ini selain 1, karena nomor dokumen akan jadi tidak urut.
Sequence Size
Sequence Size digunakan untuk mengatur berapa jumlah minimal karakter nomor dokumen. Misal Next Number saat ini adalah “24” sedangkan Sequence Size-nya adalah “4”, saat transaksi dibuat, transaksi ini akan memiliki nomor dokumen “0024”. Jika jumlah karakter pada Next Number lebih kecil dari Sequence Size nomor dokumen akan ditambahkan karakter “0” sebelum Next Number hingga jumlah karakternya sama dengan Sequence Size. Sebaliknya jika jumlah karakter Next Number lebih besar dari Sequence Size nomor dokumen akan sama dengan Next Number tanpa ditambah atau dikurangi karakternya.
Prefix
Prefix adalah karakter yang ditambahkan sebelum Next Number pada nomor dokumen. Misal Prefix diset “SO” sedangkan Next Number saat ini adalah “10” maka nomor dokumen nantinya akan jadi “SO10”. Prefix juga bisa menggunakan Legend atau frase special pada odoo untuk menggenerate nilai-nilai tertentu pada nomor dokumen, misal tahun atau bulan transaksi itu dibuat. Kita bisa menggunakan beberapa Legend pada satu Prefix untuk membuat nomor dokumen yang unik.
Jika anda menggunakan Legend pada Prefix, gunakan tanda pemisah yang jelas antar Legend tersebut agar mudah dibaca, misal menggunakan karakter “/” atau “-” seperti gambar dibawah ini.
Gambar diatas adalah contoh pengisian Prefix dengan menggunakan Legend tahun dan bulan dengan pemisah antar Legend menggunakan karakter “/”. Hasilnya akan terlihat seperti gambar dibawah ini.
Gambar dibawah adalah contoh pengisian Prefix dengan menggunakan Legend tahun dan bulan dengan pemisah antar Legend menggunakan karakter “-“.
Hasilnya akan terlihat seperti gambar dibawah ini.
Suffix
Suffix adalah karakter yang ditambahkan setelah Next Number pada nomor dokumen. Pengisiannya sama dengan Prefix, hanya saja ditambahkan di akhir nomor dokument. Berikut ini adalah contoh pengisian Suffix dengan Legend tangal dan jam.
Hasilnya akan seperti ini.
Use subsequences per date_range
Centang pilihan ini jika anda ingin nomor dokumen (Next Number) direset pada periode tertentu. Misal direset mulai dari 1 lagi tiap ganti tahun. Secara default periode-nya adalah satu tahun. Seperti pada gambar dibawah ini.
Jika anda menginginkan nomor dokumen kembali jadi 1 saat ganti tanggal edit date range secara manual seperti gambar dibawah ini.
PENTING !!!
Jika anda mencentang pilihan Use subsequences per date_range ini pastikan Prefix atau Suffix menggunakan Legend tahun dan bulan. Jika tidak akan ada transaksi dengan nomor dokumen yang sama dan bisa mengakibatkan error.
Update
Ada pertanyaan dari saudara Pulung mengenai pengguaan prefix atau suffix (range_year)s di bagian komentar. Saya akan menjawabnya disini . Jika kita mencentang pilihan Use subsequences per date_range maka akan muncul keterangan dengan bunyi When subsequences per date range are used, you can prefix variables with ‘range_’ to use the beginning of the range instead of the current date, e.g. %(range_year)s instead of %(year)s. Artinya jika kita menggunakan prefix %(range_year)s maka tahun yang digunakan sebagai nomor dokumen selanjutnya adalah tahun awal dari range sequence, bukan tahun dimana transaksi dibuat.
Sebagai contoh saya mengubah sequence Sale Order di odoo 13 seperti dibawah ini. Perhatikan range tahun dan tanggal pada field From dan field To, pada gambar di bawah ini, saya membuat sequence dari tangal 1 Januari 2019 sampai 31 Desember 2020.
Coba tebak, jika saya membuat Sale Order di tanggal 19 November 2020, tahun berapakah yang digunakan untuk membentuk nomor dokumen ? 2020 ? Ternyata tidak. Tahun yang digunakan adalah tahun 2019, tahun dari field From. Perhatikan Sale Order ini.
Jadi seperti yang dibilang odoo, jika kita menggunakan prefix atau suffix %(range_xxx)s tangal yang diambil sebagai dasar nomor dokumen adalah tanggal awal dari range sequence (dari field From) bukan tanggal dimana transaksi dibuat.
Implementation
Ada dua pilihan yaitu Standard dan No Gap. Banyak orang mengira jika kita memilih No Gap maka nomor dokumen tidak akan loncat (tidak urut) jika kita menghapus transaksi terakhir kemudian buat transaksi baru. Kenyataannya adalah baik kita memilih Standard atau No Gap nomor dokumen akan loncat jika kita menghapus transaksi terakhir kemudian buat transaksi baru. No Gap hanya memastikan nomor dokumen tidak loncat jika terjadi error saat mengisi nomor dokumen pada suatu transaksi, misal pada saat membuat Sale Order, saat klik tombol Save terjadi error, jika kita memilih pilihan Standard Next Number pada sequence akan bertambah, sehingga saat berhasil save Sale Order nomor dokumen jadi loncat, sedangkan jika memilih No Gap Next Number pada sequence tidak berubah.
Untuk test download dan install terlebih dahulu module force_sale_error ini. Buka sequence Sale Order, pastikan implementation-nya adalah Standard dan catat Next Number-nya, dalam gambar dibawah ini adalah 12.
Buat SO baru, saat klik Save dan terjadi error seperti ini cek sequence SO lagi.
Terlihat Next Numbernya berubah. Jika anda klik tombol Save sebanyak 4 kali dan muncul error 4 kali juga, Next Number akan bertambah 4 x Step juga. Sekarang coba ganti implementation-nya jadi No Gap lalu save SO lagi. Apakah Next Numbernya berubah ? Seharusnya tidak.
10 Replies to “Setting Nomor Dokumen atau Sequence pada Odoo”
kalau fungsi range_ itu digunakan untuk apa? contoh SO (range_year)s
Halo gan, saya sudah update artikelnya untuk menjawab pertanyaan diatas. Maaf jawabannya lama.
kalau ingin set agar sequence number nya, di reset setiap awal tahun itu bagaimana ya?
Silakan baca bagian “Use subsequences per date_range” di atas pak.
NOTE : kalau mau reset tiap bulan tidak perlu buat pengaturan manual kalau pakai module ini => https://apps.odoo.com/apps/modules/12.0/sequence_reset_period/
Kalau penomoran diisi manual bisa kah ?
gak bisa by default. harus custom
Gan, kalo misalnya format PO spt ini 002/PO/II/2023, itu setting sequence di depan gimana ya? Teirma kasih.
Prefixnya biarin kosong, lalu di suffix isi begini => /PO/II/%(year)s
jika muncul tampilan seperti “Reference must be unique per company!” itu kenapa ya?
ada value yang sudah dipakai sama record lain, coba ganti