Release: develop -> main#4126
Merged
Merged
Conversation
…#4125) * feat(balance): value RealUnit shares at the official yearly tax value * refactor(balance): source RealUnit tax values from Config instead of an inline map * fix(balance): read RealUnit tax values from the nested blockchain.realunit config * test(balance): cover the RealUnit tax-value override and its fail-closed path
…e PDF (#4127) Render a committed RealUnit portfolio-statement example (docs/examples/realunit-balance/, DE + EN) straight from BalancePdfService — the same code path the POST /v1/realunit/balance/pdf endpoint uses. The example shows an account holding 350 REALU reported on the 31.12.2025 record date, valued at the official 2025 tax value (CHF 1.37 → CHF 479.50): REALU-only (a stray ZCHF dust balance is filtered out), a hashed address, issuer attribution and a date without a clock time. Regenerate with: GENERATE_RECEIPT_EXAMPLES=true npx jest realunit-balance-example
* refactor(realunit): render the collective receipt as one flat transaction table Merge the separate buy/sell/transfer sections of the RealUnit multi-receipt into a single chronological table. The description column is reduced to the trade direction (buy/sell) — the RealUnit share is implicit on a RealUnit document — while plain wallet-to-wallet transfers stay labelled as transfers so no trade is claimed. Drop the per-section subtotal, fee and payment-method rows from the collective overview; those settlement details remain on the individual single receipts. Update the example test expectations to match the new layout. * refactor(realunit): tidy the transaction-history layout - Drop the receipt number from the title (now just "Transaction History"). - Zero-pad day and month in RealUnit receipt dates (DD.MM.YYYY). - Right-align the total-amount column. - Remove the transaction-details / buyer block from the collective history; it stays on the individual single receipts. - Regenerate the committed example PDFs and update the example test expectations. * fix(realunit): right-align the multi-receipt subtotal amount Keep the total column consistent: the header and data rows were right-aligned, so the sectioned-layout subtotal cell is now right-aligned too. * refactor(realunit): drop the dead non-RealUnit multi-receipt branch generateMultiPdfInvoice is only ever called for RealUnit, so the sectioned buy/sell/transfer fallback was unreachable. Remove it and the now-unused invoice.section.* translations (and the emptyCol helper); the single flat table is the sole layout. The invoice.table.position_row.* keys stay — the single receipt still uses them. * chore(realunit): drop timestamp-only churn on unchanged example receipts The two transaction-confirmation example PDFs have no visible change (their date is already two-digit, so the zero-padding does not apply); only the embedded generation timestamp differed. Keep them at their committed state so the diff carries only the example receipts that actually changed.
…4130) The sale confirmation and the plain-transfer receipt only shipped a German example PDF. Add the English variants so every RealUnit receipt type ships a DE and EN sample, matching the existing buy-confirmation and transaction-history examples. No production code change — example coverage only.
…design (#4128) * feat(realunit): render the portfolio statement in the receipt letter design * style(realunit): prettier-format the balance statement renderer * fix(realunit): fail-closed on unpriced statement holdings and drop dead report branches * test(realunit): drop the superseded report-style statement example (replaced by the letter-design example) * test(realunit): commit the portfolio-statement example reference PDFs * fix(realunit): localize statement title, document the 400, and stabilize the wallet reference casing * chore(realunit): format the controller and refresh the statement example PDFs * fix(realunit): normalize the statement reference date to the Swiss calendar day * fix(realunit): cap the normalized statement reference date at the current instant * fix(realunit): reject future statement reference dates and cover the balance controller
… receipt (#4131) * refactor(realunit): remove the buyer/holder line from the transaction receipt The recipient name is already shown in the letter address block, so the separate "Buyer / Holder" detail line is redundant. Drop it from the single-receipt details section and remove the now-unused buyerName plumbing and buyer_label translations. * test(realunit): regenerate receipt examples without the buyer/holder line
…olio statement (#4132) * refactor(realunit): drop the redundant details section from the portfolio statement Holder, reference date and total value already appear in the recipient address block, the date header and the table total row, so repeating them in the statement details section was redundant (same rationale as the #4131 receipt cleanup). Keep only the wallet reference there and drop the "generated by RealUnit Schweiz AG" footer — the issuer name stays in the sender address block. Remove the now-unused holder_label, reference_date_label and generated_by_realunit translations. * test(realunit): regenerate statement examples without the details section * refactor(realunit): fix stale createBalanceStatement doc comment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic Release PR
This PR was automatically created after changes were pushed to develop.
Commits: 1 new commit(s)
Checklist