Laporan kustom¶
Odoo datang dengan framework pelaporan yang kuat dan gampang digunakan. Engine Odoo memungkinkan Anda untuk membuat laporan baru, seperti laporan pajak, atau neraca keuangan dan laporan laba rugi dengan pengelompokan spesifik dan layout.
Penting
Aktifkan mode developer untuk mengakses antarmuka pembuatan laporan akuntansi.
Untuk membuat laporan baru, buka aplikasi Akuntansi dan buka . Dari sini, Anda dapat membuat laporan root atau varian.
Root reports¶
Root report dapat dianggap sebagai laporan akuntansi yang netral dan umum. Mereka bertindak sebagai model pada mana versi akuntansi lokal akan dibangun. Bila laporan tidak memiliki root report, maka akan dianggap sebagai root report itu sendiri.
Example
Laporan pajak untuk Belgia dan AS akan masing-masing menggunakan versi umum yang sama sebagai dasar dan mengadaptasikannya untuk regulasi domestik.
Saat membuat laporan root baru, Anda perlu membuat item menu untuknya. Untuk melakukannya, buka laporan dan, pada laporan yang sama, klik ikon (Tindakan), lalu pilih Buat Item Menu. Segarkan halaman; laporan sekarang tersedia di bawah .
Catatan
Kasus yang memerlukan pembuatan root report baru itu langka, seperti pada kasus di mana otoritas pajak negara memerlukan tipe laporan yang baru dan khusus.
Variant¶
Variant adalah versi khusus negara dari root report dan, oleh karena itu, selalu merujuk ke root report. Untuk membuat variant, pilih root report umum di field Root Report saat membuat laporan baru.
Saat root report dibuka dari satu menu utama app akuntansi, semua varian-nya ditampilkan di pemilih variant di pojok kanan atas tampilan.
Example
Di gambar berikut, Laporan PPN (BE) adalah varian dari root report Laporan Pajak Umum.
Baris laporan¶
Setelah membuat laporan (baik root atau varian), Anda perlu mengisinya dengan baris laporan. Anda dapat membuat yang baru dengan mengklik Tambahkan baris, atau mengubah baris laporan yang ada dengan mengkliknya. Semua baris laporan memerlukan Nama, dan dapat memiliki Kode tambahan opsional (pilihan Anda) jika Anda ingin menggunakan nilainya dalam formula.
Expression¶
Setiap baris laporan dapat berisi satu atau beberapa ekspresi. Ekspresi dapat dilihat sebagai sub-variabel yang diperlukan oleh baris laporan. Untuk membuat ekspresi, klik Tambahkan baris di dalam baris laporan.
Saat membuat ekspresi, Anda harus memberikan Label yang digunakan untuk merujuk ekspresi tersebut. Oleh karena itu, harus unik di antara ekspresi setiap baris. Mesin Komputasi dan Formula juga harus ditunjukkan. Mesin menentukan bagaimana formula dan subformula Anda diinterpretasikan. Dimungkinkan untuk menggabungkan ekspresi menggunakan mesin komputasi yang berbeda di bawah baris yang sama jika diperlukan.
Catatan
Tergantung pada enginenya, subformula juga mungkin diperlukan.
Engine 'Odoo Domain'¶
Dengan engine ini, formula yang diinterpretasikan sebagai Odoo domain menarget account.move.line objects.
Subformula ini memungkinkan Anda untuk mendefinisikan bagaimana baris pergerakkan yang cocok dengan domain digunakan untuk menghitung nilai dari expression:
sumHasilnya adalah jumlah dari semua saldo dari baris pergerakkan yang cocok.
sum_if_posHasilnya adalah jumlah dari semua saldo dari baris pergerakkan yang cocok bila jumlahnya positif. Bila tidak, adalah
0.sum_if_negHasilnya adalah jumlah dari semua saldo dari baris pergerakkan yang cocok bila jumlahnya negatif. Bila tidak, adalah
0.count_rowsHasilnya adalah jumlah sub-baris dari ekspresi ini. Jika baris laporan memiliki nilai group-by, ini akan sesuai dengan jumlah kunci pengelompokan yang berbeda dalam baris jurnal yang cocok. Jika tidak, ini akan menjadi jumlah baris jurnal yang cocok.
Anda juga dapat menaruh tanda - di awal subformula untuk memutarbalik tanda dari hasil.
Engine 'Aggregat Formula Lain'¶
Gunakan mesin ini ketika Anda perlu melakukan operasi aritmatika pada jumlah yang diperoleh untuk ekspresi lain. Formula di sini terdiri dari referensi ke ekspresi yang dipisahkan oleh salah satu dari empat operator aritmatika dasar (penjumlahan +, pengurangan -, pembagian /, dan perkalian *). Untuk merujuk ke ekspresi, ketik kode baris laporannya diikuti dengan titik . dan label ekspresinya (mis. code.label).
Subformula dapat merupakan salah satu dari yang berikut:
if_above(CUR(amount))Nilai dari ekspresi aritmetika akan dikembalikkan hanya bila lebih besar dari nilai yang disediakan sebelumnya. Bila tidak, hasilnya akan menjadi
0.if_below(CUR(amount))Nilai dari ekspresi aritmetika akan dikembalikkan hanya bila lebih kecil dari nilai yang disediakan sebelumnya. Bila tidak, hasilnya akan menjadi
0.if_between(CUR1(amount1), CUR2(amount2))Nilai dari ekspresi aritmetika akan dikembalikkan hanya bila di antara nilai yang disediakan sebelumnya. Bila tidak, hasilnya akan menjadi
0.if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))Nilai dari ekspresi aritmetika akan dikembalikkan hanya bila nilai ekspresi yang ditunjukkan oleh baris kode dan label expression lebih besar dari nilai yang disediakan sebelumnya. Bila tidak, hasilnya akan menjadi
0.if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))Nilai dari ekspresi aritmetika akan dikembalikkan hanya bila nilai ekspresi yang ditunjukkan oleh baris kode dan label expression lebih kecil dari nilai yang disediakan sebelumnya. Bila tidak, hasilnya akan menjadi
0.
CUR adalah kode mata uang yang huruf besar, dan jumlah adalah jumlah nilai yang diekspresikan dalam mata uang tersebut.
Anda juga dapat menggunakan subformula cross_report untuk mencocokkan expression yang ditemukan di laporan lain.
Engine 'Awalan Kode Akun'¶
Engine ini digunakan untuk mencocokkan jumlah yang dibuat pada akun menggunakan awalan dari kode akun-akun tersebut sebagai variabel di ekspresi aritmetika.
Example
21Example
21 + 10 - 521 dan 10, dan mengurangi saldo dari mereka yang akunnya dimulai dengan 5.Anda juga dapat mengabaikan pilihan sub-awalan.
Example
21 + 10\(101, 102) - 5\(57)101, 102, dan 57.Anda dapat menerapkan 'sub-filter` pada kredit dan debit menggunakan akhiran C dan D. Pada kasus ini, akun hanya akan dianggap bila awalannya cocok, dan bila total saldo baris pergerakkan yang dibuat pada akun adalah kredit/debit.
Example
Akun 210001 memiliki saldo -42 dan akun 210002 memiliki saldo 25. Formula 21D hanya cocok dengan akun 210002, sehingga mengembalikkan 25. 210001 tidak cocok, karena saldonya adalah credit.
Pengecualian awalan dapat digabungkan dengan akhiran C dan D.
Example
21D + 10\(101, 102)C - 5\(57)21 bila debit (D) dan menambahkan 10 bila kredit (C), tapi mengabaikan awalan 101, 102, dan mengurangi saldo dari akun dengan awalan 5, tapi mengabaikan awalan 57.Untuk mencocokkan huruf C atau D di awalan dan tidak menggunakannya sebagai akhiran, gunakan pengecualian kosong ()`.
Example
21D\()21D, terlepas dari tanda saldo.Di atas menggunakan awalan kode untuk mengikutsertakan akun, Anda juga dapat mencocokkan mereka dengan tag akun. Ini berguna terutama, sebagai contoh, bila negara Anda tidak memiliki standarisasi bagan akun, di mana awalan yang sama mungkin digunakan untuk tujuan yang berbeda di perusahaan.
Example
tag(25)Bila tag yang Anda referensikan didefinisikan di file data, xmlid dapat digunakan alih-alih id.
Example
tag(my_module.my_tag)Anda juga dapat menggunakan ekspresi aritmatika dengan tag, mungkin menggabungkannya dengan pemilihan awalan.
Example
tag(my_module.my_tag) + tag(42) + 1010Akhiran C dan D dapat digunakan dengan cara yang sama dengan tag.
Example
tag(my_module.my_tag)CPengecualian awalan juga berfungsi dengan tag.
Example
tag(my_module.my_tag)\(10)10.Mesin 'External Value'¶
Mesin 'nilai eksternal' digunakan untuk merujuk pada nilai manual dan nilai bawa alih. Nilai-nilai tersebut tidak disimpan menggunakan account.move.line, tetapi dengan account.report.external.value. Setiap objek ini langsung menunjuk ke ekspresi yang terpengaruh, sehingga hanya sedikit yang perlu dilakukan terkait pemilihan mereka di sini.
Formula dapat berupa salah satu dari berikut ini:
sumJika hasilnya harus berupa jumlah dari semua nilai eksternal dalam periode.
most_recentJika hasilnya harus berupa nilai dari nilai eksternal terbaru dalam periode.
Selain itu, subformula dapat digunakan dengan dua cara:
rounding=XMengganti
Xdengan angka akan membulatkan jumlah ke X desimal.editableMenunjukkan bahwa ekspresi ini dapat diedit secara manual, memicu tampilan ikon dalam laporan, yang memungkinkan user untuk melakukan tindakan ini.
Catatan
Nilai manual dibuat pada date_to yang saat ini dipilih dalam laporan.
Kedua subformula dapat digabungkan dengan memisahkannya menggunakan ;.
Example
editable;rounding=2Mesin 'Fungsi Python Kustom'¶
Mesin ini adalah sarana bagi pengembang untuk memperkenalkan komputasi kustom dari ekspresi berdasarkan kasus per kasus. Formula adalah nama fungsi python yang akan dipanggil, dan subformula adalah kunci untuk diambil dalam dictionary yang dikembalikan oleh fungsi ini. Gunakan ini hanya jika Anda membuat modul kustom sendiri.
Kolom¶
Laporan dapat memiliki jumlah tidak terbatas kolom untuk ditampilkan. Setiap kolom mendapatkan nilainya dari ekspresi yang dideklarasikan pada baris. Field expression_label dari kolom memberikan label ekspresi yang nilainya ditampilkan. Jika sebuah baris tidak memiliki ekspresi dalam field tersebut, maka tidak ada yang ditampilkan untuk baris itu di kolom ini. Jika beberapa kolom diperlukan, Anda harus menggunakan label ekspresi yang berbeda.
Ketika menggunakan fitur perbandingan periode yang ditemukan di bawah tab Options dari laporan akuntansi, semua kolom diulang dalam dan untuk setiap periode.
Pengaturan laporan pajak kustom¶
Konfigurasi laporan¶
Tip
Semua istilah teknis dan fungsi dari mesin laporan Odoo dijelaskan di bagian sebelumnya dari halaman ini. Kami sangat merekomendasikan untuk membaca bagian-bagian ini sebelum menyiapkan laporan pajak kustom.
Untuk membuat laporan pajak kustom, buka aplikasi Akuntansi, navigasi ke , kemudian klik Baru:
Masukkan nama untuk laporan Anda.
Pilih Laporan Dasar.
Di bawah bidang Ketersediaan, pilih Negara Cocok, kemudian pilih Negara yang sesuai dengan perusahaan Anda.
Selanjutnya, buat baris laporan dengan mengklik Tambahkan baris. Setelah dibuat, klik baris laporan tersebut untuk mengonfigurasinya:
Klik Tambahkan baris lagi untuk membuat Ekspresi dan beri nama.
Di tab Definisi, pilih Mesin Komputasi untuk ekspresi tersebut tergantung pada skenario berikut:
Dalam skenario ini, perusahaan Anda menggunakan grid pajak:
Pilih Tag Pajak sebagai mesin komputasi. Odoo menggunakan bidang ini untuk menghubungkan baris laporan ke pajak Anda.
Di bidang Formula, ketik pengidentifikasi grid pendek Anda (misalnya,
vat_sales_base). Odoo secara otomatis menghasilkan varian+dan-dari tag ini untuk Anda petakan di dalam .Di bidang Subformula, masukkan
baseuntuk melaporkan jumlah sebelum pajak, atautaxuntuk melaporkan jumlah pajak aktual yang dikumpulkan/dibayar.
Ulangi proses ini sesuai kebutuhan. Kemudian, Save & Close.
Atau, Anda dapat:
Pilih Aggregate Other Formulas sebagai mesin komputasi. Odoo menggunakan bidang ini untuk melakukan perhitungan matematis pada baris yang sudah ada di laporan, bukan memindai transaksi mentah.
Di bidang Formula, gunakan aljabar dasar yang merujuk ke kode baris Anda (misalnya,
LINE_10 - LINE_20).
Ulangi proses ini sesuai kebutuhan. Kemudian, Save & Close.
Dalam skenario ini, perusahaan Anda tidak menggunakan kisi pajak. Sebaliknya, perusahaan melacak semuanya secara ketat melalui akun Buku Besar:
Pilih Prefix of Account Codes sebagai mesin komputasi: Odoo menggunakan ini untuk baris yang perlu menarik total keuangan. Alih-alih mencari tag transaksi, Odoo menarik saldo langsung dari bagan akun Anda.
Di bidang Formula, ketik digit awal dari akun yang ingin Anda lacak, (misalnya,
40akan menarik total gabungan dari semua akun pendapatan yang dimulai dengan400000,401000, dll.).
Ulangi proses ini sesuai kebutuhan. Kemudian, Save & Close.
Atau, Anda dapat:
Pilih Aggregate Other Formulas sebagai mesin komputasi. Odoo menggunakan ini untuk menghitung subtotal, pajak bersih, atau total keseluruhan dengan menambahkan atau mengurangkan baris laporan Anda yang lain.
Di bidang Formula, gunakan aljabar dasar yang merujuk ke kode baris Anda (misalnya,
LINE_10 - LINE_20).
Ulangi proses ini sesuai kebutuhan. Kemudian, Save & Close.
Dalam skenario ini, perusahaan Anda memerlukan pemfilteran lanjutan, penggantian manual oleh user, atau logika algoritmik kompleks yang tidak dapat ditangani oleh tag standar dan awalan akun:
Pilih Odoo Domain sebagai mesin komputasi: Odoo menggunakan ini untuk melewati tag pajak sepenuhnya dan memfilter item jurnal mentah (
account.move.line) menggunakan sintaks pencarian Odoo standar.Di bidang Formula, masukkan domain yang valid yang dimulai dengan tanda kurung untuk mengisolasi transaksi bebas pajak untuk kategori partner tertentu.
Atau, Anda dapat:
Pilih External Value sebagai mesin komputasi. Odoo menggunakan ini untuk mencatat penggantian manual atau nilai carryover historis.
Di bidang Formula, ketik
sum(untuk menjumlahkan semua nilai manual dalam laporan multi-periode) ataumost_recent(untuk menampilkan hanya nilai terbaru).Di bidang Subformula, ketik
editableuntuk menampilkan ikon edit pada laporan langsung, memungkinkan user untuk mengubah nilai secara manual. Selain itu, Anda dapat membulatkan angka dengan mengetikrounding=x.
Atau, Anda dapat:
Pilih Custom Python Function sebagai mesin komputasi. Odoo menggunakan ini sebagai mesin eksekusi untuk menjalankan perhitungan spesifik melalui coding backend ketika aturan melibatkan bracket progresif, loop, atau ambang batas multi-tingkat.
Di bidang Formula, masukkan nama teknis yang tepat dari metode Python yang didefinisikan dalam modul lokalisasi kustom Anda.
Ulangi proses ini sesuai kebutuhan. Kemudian, Save & Close.
Di tab Options dari sebuah Expression, isi bidang Carry Over To dengan formula untuk selalu membawa saldo atau hanya membawanya saat jumlahnya negatif. Biarkan bidang ini kosong jika Anda tidak ingin menggunakan fitur ini.
Example
if_below(EUR(0))Konfigurasi pajak¶
Selanjutnya, buka dan klik Baru untuk membuat dan mengonfigurasi pajak baru untuk laporan pajak kustom Anda. Buat pajak Penjualan dan Pembelian Anda, dan isi Kisi Pajak untuk semua pajak menggunakan kisi pajak yang cocok yang telah Anda buat sebelumnya. Terakhir, pastikan untuk menentukan akun pajak terutang dan pajak yang dapat diterima untuk setiap pajak.
Example
Entri penutupan¶
Untuk menutup pajak, grup pajak harus ditentukan pada setiap pajak yang digunakan dalam laporan pajak kustom Anda. Untuk melakukan ini, buka aplikasi Akuntansi, navigasi ke , buka pajak yang memerlukan grup pajak, klik tab Opsi Lanjutan, dan pilih grup di bidang Grup Pajak. Setelah ditetapkan, klik ikon (panah kanan) dan atur Akun Pajak Terutang dan Akun Pajak yang Dapat Diterima.
Tip
Setelah semuanya diatur, pastikan untuk menguji laporan Anda dengan membuat faktur, tagihan, dan nota kredit menggunakan pajak yang khusus untuk laporan tersebut. Terakhir, uji entri penutupan itu sendiri.
Jika Anda ingin menyembunyikan akun tertentu agar tidak ditampilkan dalam entri penutupan pajak, buka , pilih pajak, dan klik ikon (pengaturan sesuaikan). Dari sana, centang kotak Entri Penutupan Pajak untuk menyesuaikan visibilitasnya.
Lihat juga