You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sims-hq/apps/hq
Thomas Joise bc140fc54c feat(documents): invoice due dates — terms default + override, honest overdue chase (Phase 1, D18)
- document.due_date additive column; billing.payment_terms_days seeded (15)
- issueDocument stamps doc_date+terms on INVOICE when absent — covers manual
  issue, convert-and-send and recurring generation in one place
- drafts accept dueDate (INVOICE only, validated); composer date field
  auto-filled from GET /settings/billing; invoice PDF prints Due Date
- overdue scan + reminder anchor on COALESCE(due_date, doc_date); email says
  'was due on X and is now N day(s) overdue' when a due date exists
- legacy fixtures pinned to due_date=NULL (sanctioned: they test the doc_date
  anchor); 9 new tests; suite 309/309 across 60 files

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5 days ago
..
scripts docs(hq): go-live runbook, env template and S3 backup script 1 week ago
src feat(documents): invoice due dates — terms default + override, honest overdue chase (Phase 1, D18) 5 days ago
test feat(documents): invoice due dates — terms default + override, honest overdue chase (Phase 1, D18) 5 days ago
.env.example docs(hq): go-live runbook, env template and S3 backup script 1 week ago
build-server.mjs feat(hq): server assembly, build script and e2e smoke (HQ-1 task 14) 2 weeks ago
package.json feat(hq): seed + apex csv importer with verification and series seeding (HQ-1 task 13) 2 weeks ago
schema.sql docs+chore: HQ DDL snapshot, gitignored import-drop, Postgres locked pre-go-live (D15) 2 weeks ago
tsconfig.json feat(hq): app skeleton with health endpoint (HQ-1 task 1) 2 weeks ago