Laporan kustom

Odoo dilengkapi dengan framework pelaporan yang kuat dan mudah digunakan. Mesin ini memungkinkan Anda membuat laporan baru, seperti laporan pajak, atau neraca dan laporan laba rugi dengan pengelompokan dan tata letak yang spesifik.

Penting

Aktifkan mode pengembang untuk mengakses antarmuka pembuatan laporan akuntansi.

Untuk membuat laporan baru, buka aplikasi Akuntansi dan navigasi ke Konfigurasi ‣ Laporan Akuntansi. 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 untuk laporan tersebut. Untuk melakukannya, buka laporan dan, pada laporan yang sama, klik ikon (Tindakan), lalu pilih Buat Item Menu. Refresh halaman; laporan sekarang tersedia di bawah Akuntansi ‣ Pelaporan.

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.

Varian

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.

Ketika laporan root dibuka dari salah satu menu utama aplikasi akuntansi, semua variannya ditampilkan di pemilih varian di pojok kanan atas tampilan.

Example

Pada gambar berikut, Laporan PPN (BE) adalah varian dari root 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 sudah ada dengan mengkliknya. Semua baris laporan memerlukan Nama, dan dapat memiliki Kode tambahan opsional (pilihan Anda) jika Anda ingin menggunakan nilainya dalam rumus.

Opsi baris engine.

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, label harus unik di antara ekspresi setiap baris. Mesin Komputasi dan Rumus juga harus ditentukan. Mesin mendefinisikan bagaimana rumus dan subrumus Anda diinterpretasikan. Dimungkinkan untuk mencampur ekspresi menggunakan mesin komputasi yang berbeda di bawah baris yang sama jika Anda memerlukannya.

Catatan

Tergantung pada enginenya, subformula juga mungkin diperlukan.

Mesin 'Odoo Domain'

Dengan mesin ini, rumus diinterpretasikan sebagai domain Odoo yang menargetkan objek account.move.line.

Subformula ini memungkinkan Anda untuk mendefinisikan bagaimana baris pergerakkan yang cocok dengan domain digunakan untuk menghitung nilai dari expression:

sum

Hasilnya adalah jumlah dari semua saldo dari baris pergerakkan yang cocok.

sum_if_pos

Hasilnya adalah jumlah dari semua saldo dari baris pergerakkan yang cocok bila jumlahnya positif. Bila tidak, adalah 0.

sum_if_neg

Hasilnya adalah jumlah dari semua saldo dari baris pergerakkan yang cocok bila jumlahnya negatif. Bila tidak, adalah 0.

count_rows

Hasilnya 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 move yang cocok. Jika tidak, hasilnya adalah jumlah baris move yang cocok.

Anda juga dapat menempatkan tanda - di awal subrumus untuk membalik tanda hasil.

Baris expression dalam laporan baris

Mesin 'Tax Tags'

Rumus yang dibuat untuk mesin ini terdiri dari nama yang digunakan untuk mencocokkan tag pajak. Jika tag tersebut tidak ada saat membuat ekspresi, tag akan dibuat.

Saat mengevaluasi expression, perhitungan expression dapat secara kasar diekspresikan sebagai: (jumlah baris pergerakkan dengan tag + ) - (jumlah baris pergerakkan dengan tag - ).

Example

Jika rumusnya adalah tag_name, mesin mencocokkan tag pajak +tag_name dan -tag_name, membuatnya jika diperlukan. Untuk menjelaskan lebih lanjut: dua tag dicocokkan oleh rumus. Jika rumusnya adalah A, ini akan memerlukan (dan membuat, jika diperlukan) tag +A dan -A.

Mesin 'Aggregate Other Formulas'

Gunakan mesin ini ketika Anda perlu melakukan operasi aritmatika pada jumlah yang diperoleh untuk ekspresi lain. Rumus di sini terdiri dari referensi ke ekspresi yang dipisahkan oleh salah satu dari empat operator aritmatika dasar (penjumlahan +, pengurangan -, pembagian /, dan perkalian *). Untuk merujuk ekspresi, ketik kode baris laporannya diikuti dengan titik . dan label ekspresi (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.

cross_report(xml_id | report_id)

Digunakan untuk mencocokkan ekspresi dari laporan lain yang ditargetkan oleh xml_id atau ID laporan itu sendiri.

Mesin 'Prefix of Account Codes'

Mesin ini digunakan untuk mencocokkan jumlah yang dibuat pada akun menggunakan prefiks kode akun tersebut sebagai variabel dalam ekspresi aritmatika.

Example

21
Ekspresi aritmetika juga dapat merupakan satu awalan, seperti di sini.

Example

21 + 10 - 5
Formula ini menambahkan saldo dari baris-baris pergerakkan yang dibuat pada akun yang kodenya dimulai dengan 21 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)
Formula ini juga bekerja dengan cara yang sama seperti contoh sebelumnya tapi mengabaikan awalan 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)
Formula ini menambahkan saldo dari baris-baris pergerakkan yang dibuat pada akun yang kodenya dimulai dengan 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\()
Formula ini mencocokkan akun yang kodenya dimulai dengan 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)
Rumus ini mencocokkan akun yang tag terkaitnya berisi yang memiliki id 25.

Jika tag yang Anda rujuk didefinisikan dalam file data, xmlid dapat digunakan sebagai pengganti id.

Example

tag(my_module.my_tag)
Formula ini mencocokkan akun yang tag terkaitnya mencakup tag yang ditandai dengan 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) + 10
Saldo akun yang ditandai sebagai my_module.my_tag akan dijumlahkan dengan akun yang terhubung ke tag dengan ID 42 dan akun dengan awalan kode 10

Akhiran C dan D dapat digunakan dengan cara yang sama dengan tag.

Example

tag(my_module.my_tag)C
Formula ini mencocokkan akun dengan tag my_module.my_tag dan saldo kredit.

Pengecualian awalan juga berfungsi dengan tag.

Example

tag(my_module.my_tag)\(10)
Formula ini mencocokkan akun dengan tag my_module.my_tag dan kode yang tidak dimulai dengan 10.

Mesin 'External Value'

Mesin 'external value' digunakan untuk merujuk nilai manual dan carryover. Nilai-nilai tersebut tidak disimpan menggunakan account.move.line, tetapi dengan account.report.external.value. Setiap objek ini langsung menunjuk ke ekspresi yang dipengaruhinya, sehingga sangat sedikit yang perlu dilakukan tentang pemilihannya di sini.

Formula dapat berupa salah satu dari berikut ini:

sum

Jika hasilnya harus berupa jumlah dari semua nilai eksternal dalam periode.

most_recent

Jika hasilnya harus berupa nilai dari nilai eksternal terbaru dalam periode.

Selain itu, subformula dapat digunakan dengan dua cara:

rounding=X

Mengganti X dengan angka akan membulatkan jumlah ke X desimal.

editable

Menunjukkan 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=2
adalah subrumus yang benar yang mencampur kedua perilaku.

Mesin 'Custom Python Function'

Mesin ini adalah sarana bagi pengembang untuk memperkenalkan komputasi kustom dari ekspresi secara kasus per kasus. Formula adalah nama dari fungsi python yang akan dipanggil, dan subformula adalah kunci untuk diambil dalam dictionary yang dikembalikan oleh fungsi ini. Gunakan 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.

Kolom laporan.

Ketika menggunakan fitur perbandingan periode yang ditemukan di bawah tab Options dari laporan akuntansi, semua kolom diulang dalam dan untuk setiap periode.

Pengelompokan baris

Pengelompokan non-standar dimungkinkan dengan menambahkan atau menggunakan field yang ada pada model Journal Item, asalkan field tersebut terkait dan non-stored.

Catatan

Pengelompokan baris memerlukan laporan untuk memiliki baris laporan eksplisit yang dapat diedit. Laporan yang ditangguhkan, misalnya, tidak mendukung pengelompokan baris karena mereka menggunakan baris dinamis yang dihasilkan.

Buat field baru pada journal item

Untuk membuat field non-stored dan terkait dalam model Journal Item, pertama masuk ke Akuntansi ‣ Journal Items, dan klik ikon (bug), lalu klik Fields. Klik New untuk membuat field baru, dan lengkapi field berikut:

  • Field Name: nama teknis untuk field

  • Label Bidang: label yang akan ditampilkan untuk bidang tersebut

  • Jenis Bidang: jenis bidang yang harus dituju oleh bidang terkait ini

  • Disimpan: Biarkan bidang ini tidak dicentang karena hanya bidang yang tidak disimpan dapat digunakan untuk mengelompokkan baris.

  • Model Terkait: Jika jenis bidang adalah one2many, many2many, atau many2one, pilih model dari bidang asli untuk dikelompokkan.

  • Definisi Bidang Terkait: jalur teknis ke bidang yang ingin Anda kelompokkan

    Example

    Untuk mengelompokkan berdasarkan tim penjualan dari mitra komersial, atur definisi bidang terkait menjadi move_id.team_id.

Kelompokkan baris

Untuk mengelompokkan baris, buka tab Baris dari laporan yang diinginkan, klik baris yang ingin Anda kelompokkan, dan edit bidang Kelompokkan berdasarkan. Masukkan nama teknis (Nama Bidang) dari bidang yang akan digunakan sebagai kunci pengelompokan.

Tip

Untuk menemukan daftar semua bidang model dan nama teknisnya, buka Akuntansi ‣ Item Jurnal, lalu klik ikon (bug), kemudian klik Bidang. Nama teknis dari setiap bidang tercantum dalam kolom Nama Bidang.

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 membaca bagian-bagian tersebut sebelum mengatur laporan pajak kustom.

Untuk membuat laporan pajak kustom, buka aplikasi Akuntansi, navigasi ke Konfigurasi ‣ Laporan Akuntansi, lalu klik Baru:

  • Masukkan nama untuk laporan Anda.

  • Pilih Laporan Akar.

  • Di bawah bidang Ketersediaan, pilih Negara Cocok, lalu pilih Negara yang sesuai dengan perusahaan Anda.

Selanjutnya, buat baris laporan dengan mengklik Tambahkan baris. Setelah dibuat, klik baris laporan tersebut untuk mengkonfigurasinya:

  • 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 kisi pajak:

  • Pilih Tag Pajak sebagai mesin komputasi. Odoo menggunakan bidang ini untuk menghubungkan baris laporan ke pajak Anda.

  • Di bidang Formula, ketik pengidentifikasi kisi pendek Anda (misalnya, vat_sales_base). Odoo secara otomatis menghasilkan varian + dan - dari tag ini untuk Anda petakan di dalam Konfigurasi ‣ Pajak.

  • Di bidang Subformula, masukkan base untuk melaporkan jumlah sebelum pajak, atau tax untuk melaporkan jumlah pajak aktual yang dikumpulkan/dibayar.

Ulangi proses ini sesuai kebutuhan. Kemudian, Simpan & Tutup.

Atau, Anda dapat:

  • Pilih Aggregate Other Formulas sebagai mesin komputasi. Odoo menggunakan bidang ini untuk melakukan perhitungan matematis pada baris yang sudah ada dalam laporan daripada memindai transaksi mentah.

  • Pada bidang Formula, gunakan aljabar dasar yang mereferensikan kode baris Anda (misalnya, LINE_10 - LINE_20).

Ulangi proses ini sesuai kebutuhan. Kemudian, Simpan & Tutup.

Pada tab Options dari sebuah Expression, isi bidang Carry Over To dengan formula untuk selalu membawa saldo atau hanya membawanya ketika jumlahnya negatif. Biarkan bidang ini kosong jika Anda tidak ingin menggunakan fitur ini.

Example

if_below(EUR(0))
Formula ini hanya akan membawa jumlah di bawah 0,00 EUR.

Konfigurasi pajak

Selanjutnya, buka Configuration ‣ Taxes dan klik New untuk membuat dan configure new taxes untuk laporan pajak kustom Anda. Buat pajak Sales dan Purchases Anda, dan isi Tax Grids untuk semua pajak menggunakan grid pajak yang sesuai yang telah Anda buat sebelumnya. Terakhir, pastikan untuk specify both a tax payable and tax receivable account untuk setiap pajak.

Example

Konfigurasi grid pajak.

Entri penutupan

Untuk menutup pajak, tax group harus ditentukan pada setiap pajak yang digunakan dalam laporan pajak kustom Anda. Untuk melakukan ini, buka aplikasi Akuntansi, navigasi ke Configuration ‣ Taxes, buka pajak yang memerlukan grup pajak, klik tab Advanced Options, dan pilih grup di bidang Tax Group. Setelah ditetapkan, klik ikon (right arrow) dan atur Tax Payable Account dan Tax Receivable Account.

Tip

  • Setelah semuanya telah diatur, pastikan untuk menguji laporan Anda dengan membuat faktur, tagihan, dan nota kredit menggunakan pajak yang spesifik untuk laporan tersebut. Terakhir, uji entri penutupan itu sendiri.

  • Jika Anda ingin menyembunyikan akun tertentu agar tidak ditampilkan dalam entri penutupan pajak, buka Configuration ‣ Taxes, pilih pajak, dan klik ikon (settings adjust). Dari sana, centang kotak Tax Closing Entry untuk menyesuaikan visibilitasnya.

Lihat juga

Tax closing