From 2a44aed57434332e4f831fba2e2f98dc71614213 Mon Sep 17 00:00:00 2001 From: kurogeek Date: Thu, 17 Sep 2026 01:10:43 +0000 Subject: [PATCH] feat: Thailand Personal Income Tax slab fixture Submitted Income Tax Slab "Thailand Personal Income Tax" (THB, effective 2017-01-01) with the eight progressive brackets 0% to 35%, using the HRMS from/to convention (150,001-300,000 etc.). standard_tax_exemption_amount is 160,000: the Sec. 42 bis expense deduction (50%, max 100,000) plus the personal allowance (60,000), which every employee gets without filing a declaration. The "Expense Deduction" category and "Personal allowance" sub-category are dropped from the exemption fixtures so they cannot be counted twice; Personal and Family Allowances cap becomes 270,000. --- .../employee_tax_exemption_category.json | 10 +- .../employee_tax_exemption_sub_category.json | 18 --- .../fixtures/income_tax_slab.json | 113 ++++++++++++++++++ default_thai_company/hooks.py | 1 + 4 files changed, 115 insertions(+), 27 deletions(-) create mode 100644 default_thai_company/fixtures/income_tax_slab.json diff --git a/default_thai_company/fixtures/employee_tax_exemption_category.json b/default_thai_company/fixtures/employee_tax_exemption_category.json index 99dcc8f..9938097 100644 --- a/default_thai_company/fixtures/employee_tax_exemption_category.json +++ b/default_thai_company/fixtures/employee_tax_exemption_category.json @@ -3,15 +3,7 @@ "docstatus": 0, "doctype": "Employee Tax Exemption Category", "is_active": 1, - "max_amount": 100000.0, - "modified": "2026-09-16 09:00:00.000000", - "name": "Expense Deduction" - }, - { - "docstatus": 0, - "doctype": "Employee Tax Exemption Category", - "is_active": 1, - "max_amount": 330000.0, + "max_amount": 270000.0, "modified": "2026-09-16 09:00:00.000000", "name": "Personal and Family Allowances" }, diff --git a/default_thai_company/fixtures/employee_tax_exemption_sub_category.json b/default_thai_company/fixtures/employee_tax_exemption_sub_category.json index 5673199..522d949 100644 --- a/default_thai_company/fixtures/employee_tax_exemption_sub_category.json +++ b/default_thai_company/fixtures/employee_tax_exemption_sub_category.json @@ -1,22 +1,4 @@ [ - { - "docstatus": 0, - "doctype": "Employee Tax Exemption Sub Category", - "exemption_category": "Expense Deduction", - "is_active": 1, - "max_amount": 100000.0, - "modified": "2026-09-16 09:00:00.000000", - "name": "Standard expense deduction - 50% of employment income (Sec. 42 bis)" - }, - { - "docstatus": 0, - "doctype": "Employee Tax Exemption Sub Category", - "exemption_category": "Personal and Family Allowances", - "is_active": 1, - "max_amount": 60000.0, - "modified": "2026-09-16 09:00:00.000000", - "name": "Personal allowance" - }, { "docstatus": 0, "doctype": "Employee Tax Exemption Sub Category", diff --git a/default_thai_company/fixtures/income_tax_slab.json b/default_thai_company/fixtures/income_tax_slab.json new file mode 100644 index 0000000..809a5ff --- /dev/null +++ b/default_thai_company/fixtures/income_tax_slab.json @@ -0,0 +1,113 @@ +[ + { + "allow_tax_exemption": 1, + "currency": "THB", + "disabled": 0, + "docstatus": 1, + "doctype": "Income Tax Slab", + "effective_from": "2017-01-01", + "modified": "2026-09-16 09:00:00.000000", + "name": "Thailand Personal Income Tax", + "other_taxes_and_charges": [], + "slabs": [ + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 0.0, + "idx": 1, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 0.0, + "to_amount": 150000.0 + }, + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 150001.0, + "idx": 2, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 5.0, + "to_amount": 300000.0 + }, + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 300001.0, + "idx": 3, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 10.0, + "to_amount": 500000.0 + }, + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 500001.0, + "idx": 4, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 15.0, + "to_amount": 750000.0 + }, + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 750001.0, + "idx": 5, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 20.0, + "to_amount": 1000000.0 + }, + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 1000001.0, + "idx": 6, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 25.0, + "to_amount": 2000000.0 + }, + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 2000001.0, + "idx": 7, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 30.0, + "to_amount": 5000000.0 + }, + { + "condition": "", + "docstatus": 1, + "doctype": "Taxable Salary Slab", + "from_amount": 5000001.0, + "idx": 8, + "parent": "Thailand Personal Income Tax", + "parentfield": "slabs", + "parenttype": "Income Tax Slab", + "percent_deduction": 35.0, + "to_amount": 0.0 + } + ], + "standard_tax_exemption_amount": 160000.0, + "tax_relief_limit": 0.0 + } +] diff --git a/default_thai_company/hooks.py b/default_thai_company/hooks.py index fefa079..0898f2e 100644 --- a/default_thai_company/hooks.py +++ b/default_thai_company/hooks.py @@ -108,6 +108,7 @@ fixtures = [ # HRMS doctypes; skipped by sync_fixtures on sites without hrms {"doctype": "Employee Tax Exemption Category"}, {"doctype": "Employee Tax Exemption Sub Category"}, + {"doctype": "Income Tax Slab", "filters": [["name", "=", "Thailand Personal Income Tax"]]}, ] # Installation