Replace the signature preset dropdown (multiple named signatures) with
a single saved signature per user, mirroring the supplier profile
behavior: Save/Load buttons, auto-loaded on the new invoice screen.
- New signature_profiles table (one row per user), migrated from any
existing signature_presets data.
- New /api/signature GET/PUT/DELETE endpoints replacing
/api/signature-presets.
- Updated frontend to save/load the single signature instead of a
named preset dropdown.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Prefill 'Datum vystaveni' with the current local date when opening a
new invoice, instead of leaving it blank. Also switch date formatting
to use local date components instead of toISOString() to avoid UTC
timezone shifting the displayed date.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Datum vystaveni defaults to today and Datum splatnosti defaults to
14 days after the issue date. Both fields are now optional date
inputs and only override the default when a user enters a custom
value. Applies to the invoice editor and generated PDF.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Adds a drag-and-drop/click upload field on the invoice editor for an
optional 420x210 JPG/PNG signature image. The signature is stored as
part of invoice_data and rendered on the generated PDF directly above
the QR code, right-aligned with sensible margins.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Reduce the item table row height from 25pt to 22.5pt and re-center
the cell text within the shorter rows. The header row height is
unchanged.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Move the payment info card (account number, IBAN, SWIFT) to the
bottom of the invoice page so it sits flush with the footer, and
size the QR code to match the combined height of the three payment
lines instead of a fixed size.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add a per-user invoice_starting_number setting (default 1) instead of
always starting invoice numbering at 001. Adds /api/settings endpoints,
a user_settings table, and a Číslování faktur panel in the account menu
where the user can pick the starting number for a year with no
invoices yet.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- Run tests on push/PR to main
- Build and push Docker image to GHCR as :dev and :dev-<sha> on push to main
- Document image pull/run instructions in README
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The create-screen "print" action used a separate browser-rendered HTML
template while ZIP exports used a PDFKit-rendered PDF, so the two looked
different. Extract the ZIP export's PDF rendering into a shared
renderInvoicePdf function, add a POST /api/invoices/pdf endpoint that
renders the current editor form data through it, and have the print
button download that PDF instead of opening a print window with the old
HTML template.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>