Three new CSVs in the export bundle, with matching README entries:
- company_bank_accounts.csv
- company_cards.csv (last4 only, joined with linked bank account name)
- company_addresses.csv
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extends the employees.csv builder to include all 14 new fields
(DOB, gender, nationality, marital status, full Thai address,
emergency contact). Order matches the on-screen detail page so
auditors and accountants get the complete record.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace raw `ANY(${array})` SQL with drizzle's inArray() in
src/lib/server/export/financial.ts; the raw form sent UUID arrays
in a malformed Postgres array literal causing 500 on download
- Add static/favicon.svg (Thai baht symbol on blue square) and point
app.html at it; remove the empty favicon.png
- Redirect /favicon.ico to /favicon.svg in hooks.server.ts so
browsers' implicit fallback request stops 404'ing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Install jszip dependency (~100KB, pure JS)
- New src/lib/server/export/financial.ts builds a year-scoped ZIP
with one CSV per logical table: company, projects, parties (incl
archived), employees (incl terminated), budget_allocations, expenses,
invoices + line items, salary_history (effective on/before year end),
payslips + line items, packages (with carrier label and customs link),
external_transactions (with provider label and matched expense),
company_log
- All CSVs prefixed with UTF-8 BOM for Excel/Thai support
- Reference tables include soft-deleted rows so historical FKs resolve
- Routes and UI to follow in next commit
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>