kurogeek 6dd557ee97 feat: Social Security deduction component
Employee's Social Security Fund contribution (Sec. 33): 5% of wages,
wages taken as at least 1,650 and at most 17,500 a month (2026-2028
ceiling), fractions of a baht rounded half up. Computed from the Basic
earning rather than `base` so a partial month is 5% of the wages
actually paid and the ceiling applies after proration. The contribution
is deductible from taxable income in full, so the component is
exempted_from_income_tax. Withheld amounts are held in "Social Security
Payable" (ประกันสังคมค้างจ่าย) until remitted.

Created once a Thai company exists (Company.on_update, install hooks,
scheduler, the setup_salary_components patch); the Salary Component
validate hook links every Thai company.
2026-11-04 09:54:01 +00:00
2026-09-01 16:01:23 +07:00
2026-09-01 16:01:23 +07:00
2026-09-01 16:01:23 +07:00
2026-09-01 16:01:23 +07:00
2026-09-01 16:01:23 +07:00
2026-09-01 17:20:43 +07:00
2026-09-01 16:01:23 +07:00
2026-09-01 16:34:04 +07:00

Default Thai Company

Default Company Settings

Installation

You can install this app using the bench CLI:

cd $PATH_TO_YOUR_BENCH
bench get-app $URL_OF_THIS_REPO --branch develop
bench install-app default_thai_company

Thai language

Every string the app adds (custom field labels, messages, print format and letter head text, Tax Withholding Category names) is translated in translations/th.csv; the same file overrides the upstream Thai for the standard labels the print formats show. The print formats embed Sarabun (public/fonts, OFL) so PDFs render Thai on servers without a Thai system font. Switch a user or the print language to th to use it.

Addresses in more than one language

Address lines, city, county and state are translatable: the Address form shows a translate button next to each, which stores the other language in a Translation record. The Thailand Address Template renders those fields through _(), so the print formats and letter head show the company's and the party's address in the document's print language (the company address is re-rendered at print time; party addresses are re-rendered from the linked Address instead of printing the stored address_display). The withholding tax certificate always takes the Thai translation. Translations are keyed on the exact text, so one translation of a city or province serves every address that uses it. The same goes for the bank details on the Sales Invoice: Account Name on the Bank Account and Bank Name on the Bank are translatable.

Withholding tax certificate

A paid Purchase Invoice with Apply Tax Withholding Amount gets a Withholding Tax Certificate button that downloads the Revenue Department's Sec. 50 bis form (หนังสือรับรองการหักภาษี ณ ที่จ่าย, two copies) as a PDF: the Withholding Tax Certificate print format lays the invoice's data over the official form (public/images). The row the payment is reported on comes from Type of Income Paid on the Tax Withholding Category (set for the shipped categories; pick it for your own), and the ภ.ง.ด. return is ticked from the Supplier's type: ภ.ง.ด.53 for juristic payees, ภ.ง.ด.1ก / 2 / 3 by income type for individuals. เล่มที่ / เลขที่ (certificate book numbers) and ลำดับที่ (the line in the return) are left for the accountant.

Contributing

This app uses pre-commit for code formatting and linting. Please install pre-commit and enable it for this repository:

cd apps/default_thai_company
pre-commit install

Pre-commit is configured to use the following tools for checking and formatting your code:

  • ruff
  • eslint
  • prettier
  • pyupgrade

License

gpl-3.0

S
Description
No description provided
Readme GPL-3.0
832 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 84.8%
HTML 11.9%
JavaScript 3.3%