Skip to content

Statements: pick several at once, check them, import on a button - #15

Merged
armysyn merged 2 commits into
mainfrom
feat/batch-upload
Oct 9, 2026
Merged

armysyn merged 2 commits into
mainfrom
feat/batch-upload

Conversation

@armysyn

@armysyn armysyn commented Oct 7, 2026

Copy link
Copy Markdown
Owner

What

Collecting statements before importing them.

  • The uploader takes one or many PDFs, picked or dropped. They are not imported yet.
  • Each file is parsed for a preview:
    • card and period;
    • number of operations;
    • whether the header totals match;
    • whose statement it is;
    • whether it is already imported.
  • The waiting list is kept per account on disk, for a week at most.
    • What can be imported is ticked.
    • A broken file cannot be ticked.
    • Another person's statement and an already imported one start unticked.
    • Files can be removed one by one or all at once.
    • Another person's statement can go to a new account with its own password, entered in a proper form.
  • "Import N statements":
    • imports the ticked ones, oldest period first;
    • sets the account's holder from the first;
    • shows what each statement brought.
  • The home page says when statements are waiting.

Checks

  • go test -race ./... passes, including the ClickHouse tests.
  • golangci-lint: 0 issues.
  • New tests:
    • a broken file is listed with its error, cannot be imported and can be removed;
    • two real statements are collected without importing, listed oldest first, imported with results, and set the holder;
    • the same statement added again shows "already imported" (skipped without statements in statements/).
  • Looked at the list with two real statements and a broken file.

🤖 Generated with Claude Code

armysyn and others added 2 commits October 8, 2026 01:03
- The uploader takes one or many PDFs, picked or dropped. They are not
  imported: each is parsed for a preview — card, period, operations, whether
  the totals match, whose it is, whether it is imported already — and waits in
  the account's list (on disk, a week at most).
- The list ticks what can go in; a broken file cannot be ticked, another
  person's statement and an already imported one start unticked. Files can be
  removed one by one or all at once, and another person's statement can go to
  a new account with its own password.
- "Import N statements" imports the ticked ones, oldest period first, sets the
  account's holder from the first, and shows what each brought; the home page
  says when statements are waiting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both branches added a template at the end of parts.html; both are kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@armysyn
armysyn merged commit 6c54984 into main Oct 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant