CW-004 · ภ.ง.ด.1 withholding-tax filing export
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- backend
Research direction
Start in backend/src/modules/payroll/ and read docs/payroll-thailand.md to understand the existing payroll runs and Thailand-specific export context. Implement the monthly ภ.ง.ด.1, annual ภ.ง.ด.1ก, and per-employee 50 ทวิ exports with reconciliation and Revenue Department rounding rules. Done means seeded-company totals match hand calculations, mismatched periods name the difference and produce no file, and rounding is covered by tests.
Written by the indexing model from the issue text.
Description
Priority P1 · Area payroll · Estimate L · Phase 4
Payroll computes withholding correctly but there is no way to file it. Every Thai employer must submit ภ.ง.ด.1 monthly and ภ.ง.ด.1ก annually; today that means re-keying from payslips, which is exactly the error-prone step the system exists to remove.
Scope
- ภ.ง.ด.1 monthly export in the Revenue Department's text layout.
- ภ.ง.ด.1ก annual summary.
- 50 ทวิ withholding certificate per employee (pairs with CW-008).
- Reconcile totals against the runs in the period and refuse to export when they disagree.
Acceptance
- Export for the seeded demo company matches hand-computed totals.
- A period whose runs do not reconcile produces an error naming the difference, not a file.
- Rounding matches the Revenue Department's rules, with tests.
Files backend/src/modules/payroll/, docs/payroll-thailand.md
Phase 4: a week of work on a Thailand-specific file format, with nobody yet filing anything. It moves up the moment a real organisation needs to file.
Tracked in docs/backlog.md.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SuruchBoss/Cwork
-
good first issue mobile P2
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SuruchBoss/Cwork#11 ·
-
documents P1 payroll phase-3
Difficulty 4/5 3-5 days Newbie friendliness 64/100
SuruchBoss/Cwork#47 ·
-
P1 payroll phase-3
Difficulty 4/5 3-5 days Newbie friendliness 48/100
SuruchBoss/Cwork#46 ·
-
P1 payroll phase-3
Difficulty 4/5 3-5 days Newbie friendliness 48/100
SuruchBoss/Cwork#45 ·
-
P1 payroll phase-3
Difficulty 4/5 3-5 days Newbie friendliness 42/100
SuruchBoss/Cwork#44 ·
All issues in SuruchBoss/Cwork
Similar issues
-
comp/dashboard P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·