SuruchBoss / SuruchBoss/Cwork

CW-045 · ภ.ง.ด.1 monthly withholding filing

Open
#44 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

P1 payroll phase-3
Dominant language
TypeScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Priority P1 · Area payroll · Estimate M · Phase 3

Parent

#3 (CW-004), which bundled the monthly filing, the annual summary and the 50 ทวิ certificate. This is the monthly filing alone.

What to build

A payroll officer picks a month and downloads a ภ.ง.ด.1 file in the Revenue Department's text layout, ready to submit. Every Thai employer files this monthly; today the figures are correct in Cwork and have to be re-keyed into whatever is used to file them, which is the error-prone step this system exists to remove.

Rounding is where this goes wrong quietly, so it is tested against the Revenue Department's rules rather than left to whatever the language does by default.

Acceptance criteria

  • The export for the seeded demo company matches hand-computed totals, line by line.
  • The layout matches the published specification — field widths, ordering, padding.
  • Rounding follows the Revenue Department's rules, with tests covering the boundary cases.
  • A period that does not reconcile produces the error from #43, not a file.
  • The export is audited like any other.

Blocked by

  • #43 — reconciliation, permission, download and audit come from there; this ticket is the formatter.

The rules being formatted here have not been reviewed by anyone qualified — see #36.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with #43 to understand the reconciliation, permission, download, and audit boundary, then review the Revenue Department's published text-layout specification and the unresolved rules concern in #36. Done means the seeded demo company's export matches hand-computed totals, layout and boundary-case rounding tests pass, unreconciled periods return the #43 error, and the export is audited.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.