Repository
OCA/l10n-thailand · module folder · Try on Runboat
Module version
1.0.2
Category
Accounting
Folder size
1.81 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-thailand
Last tracking update
2026-08-07 08:43:05
Authors
Odoo Community Association (OCA), Ecosoft
Maintainers
Odoo Community Association (OCA), Ecosoft
Committers
Saran440, OCA-git-bot, oca-ci, Pani-k-folk
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
TAX Report is a report that displays transactions based on the selected tax type within a specific date range (period).
It helps businesses track VAT and Withholding Tax more accurately, and supports both standard and Revenue Department (RD) formats for compliance purposes.
The module also allows customization of report formats and text files for official tax submissions.

Code Analysis

Views touched (32)
XML IDNameModelTypeStatus
header_line_report_withholding_tax header_line_report_withholding_tax ir.ui.view qweb New
header_report_withholding_tax header_report_withholding_tax ir.ui.view qweb New
internal_layout internal_layout ir.ui.view qweb New
line_report_withholding_tax line_report_withholding_tax ir.ui.view qweb New
report_rd_base_company_withholding_tax report_rd_base_company_withholding_tax ir.ui.view qweb New
report_rd_base_partner_vat_withholding_tax report_rd_base_partner_vat_withholding_tax ir.ui.view qweb New
report_rd_base_total_withholding_tax report_rd_base_total_withholding_tax ir.ui.view qweb New
report_rd_company_tax_branch report_rd_company_tax_branch ir.ui.view qweb New
report_rd_tax_report report_rd_tax_report ir.ui.view qweb New
report_rd_tax_report_article report_rd_tax_report_article ir.ui.view qweb New
report_rd_tax_report_header report_rd_tax_report_header ir.ui.view qweb New
report_rd_thai_tax report_rd_thai_tax ir.ui.view qweb New
report_rd_withholding_tax report_rd_withholding_tax ir.ui.view qweb New
report_rd_withholding_tax_pnd1 report_rd_withholding_tax_pnd1 ir.ui.view qweb New
report_rd_withholding_tax_pnd1a report_rd_withholding_tax_pnd1a ir.ui.view qweb New
report_rd_withholding_tax_pnd2 report_rd_withholding_tax_pnd2 ir.ui.view qweb New
report_rd_withholding_tax_pnd3 report_rd_withholding_tax_pnd3 ir.ui.view qweb New
report_rd_withholding_tax_pnd53 report_rd_withholding_tax_pnd53 ir.ui.view qweb New
report_tax_report_base report_tax_report_base ir.ui.view qweb New
report_tax_report_filters report_tax_report_filters ir.ui.view qweb New
report_tax_report_lines report_tax_report_lines ir.ui.view qweb New
report_tax_report_lines_header report_tax_report_lines_header ir.ui.view qweb New
report_tax_report_total_lines report_tax_report_total_lines ir.ui.view qweb New
report_thai_tax report_thai_tax ir.ui.view qweb New
report_wht report_wht ir.ui.view qweb New
report_withholding_tax report_withholding_tax ir.ui.view qweb New
report_withholding_tax_text report_withholding_tax_text ir.ui.view qweb New
res_company_view_form res.company form Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.thai.account res.config.settings form Inherits l10n_th_account_tax.res_config_settings_view_form
tax_report_wizard_form tax.report.wizard.form tax.report.wizard form New
total_line_report_withholding_tax total_line_report_withholding_tax ir.ui.view qweb New
view_withholding_tax_report_wizard withholding.tax.report.wizard.view withholding.tax.report.wizard form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (12)

New fields (5)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> required=False string='Company'
  • date_from Date
    required=True
  • date_range_id Many2one → date.range
    comodel_name='date.range'
  • date_to Date
    required=True
  • show_cancel Boolean
    default=True string='Show Cancelled'
Public methods (5)
  • button_export_html(self)
  • button_export_pdf(self)
  • button_export_xlsx(self)
  • check_date_from_to(self)
    @api.constrains('date_from', 'date_to')
  • onchange_date_range_id(self)
    @api.onchange('date_range_id')
    Handle date range change.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (5)
  • tax_report_format Selection
    default='std' required=True selection=[('std', 'Standard'), ('rd', 'Revenue Department')]
  • wht_report_format Selection
    default='std' required=True selection=[('std', 'Standard'), ('rd', 'Revenue Department')]
  • wht_text_file_pnd1_format Text
    default='%(income_code)s|%(row_number)s|%(partner_vat)s|%(partner_title)s|%(partner_firstname)s|%(partner_lastname)s|%(cert_date)s|%(base)s|%(amount)s|%(cert_tax_payer)s\n' help="Display format to use for text file PND1.\n\nYou can use python-style string pattern with all the fields of the withholding tax (for example, use '%(partner_vat)s' to display the field 'partner_vat') plus\n%(row_number)s: Index\n%(cert_cancel)s: Cancelled\n%(cert_date)s: Date\n%(cert_date_str)s: Date (string)\n%(cert_name)s: Name\n%(cert_tax_payer)s: Tax Payer\n%(cert_tax_payer_display)s: Tax Payer Display\n%(cert_tax_payer_code)s: Tax Payer Code\n%(partner_id)s: Partner ID\n%(partner_name)s: Partner Name\n%(partner_title)s: Partner Title\n%(partner_firstname)s: Partner Firstname\n%(partner_lastname)s: Partner Lastname\n%(partner_address)s: Partner Address\n%(partner_street)s: Partner Street\n%(partner_street2)s: Partner Street2\n%(partner_city)s: Partner City\n%(partner_state)s: Partner State\n%(partner_zip)s: Partner Zip\n%(partner_country)s: Partner Country\n%(partner_vat)s: Partner VAT\n%(partner_branch)s: Partner Branch\n%(partner_bank_account)s: Partner Bank Account\n%(income_code)s: Income Code\n%(base)s: Base\n%(amount)s: Amount" string='Layout in Text File PND1'
  • wht_text_file_pnd3_format Text
    default='%(row_number)s|%(partner_vat)s|%(partner_branch)s|%(partner_title)s|%(partner_firstname)s|%(partner_lastname)s|%(partner_street)s|%(partner_street2)s|%(partner_city)s|%(partner_state)s|%(partner_zip)s|%(loop_cert_date)s|%(loop_wht_cert_income_desc)s|%(loop_wht_percent)s|%(loop_base)s|%(loop_amount)s|%(loop_cert_tax_payer)s\n' help="Display format to use for text file PND3.\n\nYou can use python-style string pattern with all the fields of the withholding tax (for example, use '%(partner_vat)s' to display the field 'partner_vat') plus\n%(row_number)s: Index\n%(cert_cancel)s: Cancelled\n%(cert_date)s: Date\n%(cert_date_str)s: Date (string)\n%(cert_name)s: Name\n%(cert_tax_payer)s: Tax Payer\n%(cert_tax_payer_display)s: Tax Payer Display\n%(cert_tax_payer_code)s: Tax Payer Code\n%(partner_id)s: Partner ID\n%(partner_name)s: Partner Name\n%(partner_title)s: Partner Title\n%(partner_firstname)s: Partner Firstname\n%(partner_lastname)s: Partner Lastname\n%(partner_address)s: Partner Address\n%(partner_street)s: Partner Street\n%(partner_street2)s: Partner Street2\n%(partner_city)s: Partner City\n%(partner_state)s: Partner State\n%(partner_zip)s: Partner Zip\n%(partner_country)s: Partner Country\n%(partner_vat)s: Partner VAT\n%(partner_branch)s: Partner Branch\n%(partner_bank_account)s: Partner Bank Account\n%(income_code)s: Income Code\n%(base)s: Base\n%(amount)s: Amount" string='Layout in Text File PND3'
  • wht_text_file_pnd53_format Text
    default='%(row_number)s|%(partner_vat)s|%(partner_branch)s|%(partner_title)s|%(partner_name)s|%(partner_street)s|%(partner_street2)s|%(partner_city)s|%(partner_state)s|%(partner_zip)s|%(loop_cert_date)s|%(loop_wht_cert_income_desc)s|%(loop_wht_percent)s|%(loop_base)s|%(loop_amount)s|%(loop_cert_tax_payer)s\n' help="Display format to use for text file PND53.\n\nYou can use python-style string pattern with all the fields of the withholding tax (for example, use '%(partner_vat)s' to display the field 'partner_vat') plus\n%(row_number)s: Index\n%(cert_cancel)s: Cancelled\n%(cert_date)s: Date\n%(cert_date_str)s: Date (string)\n%(cert_name)s: Name\n%(cert_tax_payer)s: Tax Payer\n%(cert_tax_payer_display)s: Tax Payer Display\n%(cert_tax_payer_code)s: Tax Payer Code\n%(partner_id)s: Partner ID\n%(partner_name)s: Partner Name\n%(partner_title)s: Partner Title\n%(partner_firstname)s: Partner Firstname\n%(partner_lastname)s: Partner Lastname\n%(partner_address)s: Partner Address\n%(partner_street)s: Partner Street\n%(partner_street2)s: Partner Street2\n%(partner_city)s: Partner City\n%(partner_state)s: Partner State\n%(partner_zip)s: Partner Zip\n%(partner_country)s: Partner Country\n%(partner_vat)s: Partner VAT\n%(partner_branch)s: Partner Branch\n%(partner_bank_account)s: Partner Bank Account\n%(income_code)s: Income Code\n%(base)s: Base\n%(amount)s: Amount" string='Layout in Text File PND53'
Public methods (0)

No public methods.

New fields (2)
  • tax_report_format Selection
    readonly=False related='company_id.tax_report_format' required=True
  • wht_report_format Selection
    readonly=False related='company_id.wht_report_format' required=True
Public methods (0)

No public methods.

New fields (1)
  • tax_id Many2one → account.tax
    comodel_name='account.tax' domain=[('tax_exigibility', '=', 'on_invoice'), ('type_tax_use', 'in', ['sale', 'purchase']), ('include_base_amount', '=', False)] required=True string='Tax'
Public methods (0)

No public methods.

New fields (1)
  • income_tax_form Selection
    required=True selection=[('pnd1', 'PND1'), ('pnd1a', 'PND1A'), ('pnd2', 'PND2'), ('pnd3', 'PND3'), ('pnd53', 'PND53')]
Public methods (1)
  • button_export_txt(self)

Loading…

Loading…

Status
Open migration PR — not merged yet for this version
CI status
checks failing
Open since
158 days ago
Last activity
1 day ago
Repository
OCA/l10n-thailand
Pull request
[19.0][MIG] l10n_th_account_tax_report: Migration to 19.0 (#583)