Commit graph

25 commits

Author SHA1 Message Date
8961bb234c PR C: mechanical cleanup (typos, packages, formatting, culture)
- Consolidate decimal.ToFormattedString into Schaad.Accounting.Formatting
- Rename EnsureFileExisits -> EnsureFileExists and
  SplitPredefiniton* -> SplitPredefinition* (class, interface, files, DI reg)
- AccountRepository: single-save year-rollover start-balance seed
- Drop legacy .NET Standard packages redundant on net9.0 and the stale
  Interfaces\Extensions\ folder entry
- Set culture via RequestLocalizationOptions middleware
- Plan: item 9 (unit of work) split off into a dedicated PR D

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-02 20:46:55 +02:00
152d4c3d57 PR B: atomic XML writes and per-file locking
Save<T> writes to a .tmp sibling and atomically renames, so a crash
mid-write leaves the previous file intact. Load<T>, Save<T>, and
EnsureFileExisits share a per-absolute-path lock so concurrent
Save+Save and Save+Load can't observe a half-written file.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-02 20:40:55 +02:00
9f11f6490b PR A: correctness fixes and improvement plan
- Add IMPROVEMENT_PLAN.md with phased plan for follow-up work
- Consolidate DI registrations into a single AddAccounting() extension;
  drop the duplicate service registrations and the PdfParsingService
  self-registration
- TrySetYear: capture this.year before overwriting so rollback actually
  restores the previous value
- DummyFxService: check toCurrency (was checking fromCurrency twice)
- TransactionRepository.GetTransaction: return a copy instead of mutating
  the loaded entity, and guard against unknown ids
- ViewService.GetTransactionViewList(accountId): flip the sign on a copy
  rather than mutating the entity returned by the repository
- FileService.GetTransactionListCsv: same treatment; use a local
  signedValue instead of mutating trx.Value
- ProfitLossReport: use ClassIds.Income/Expenses instead of magic 3/4
- CLAUDE.md: correct the ClassIds documentation (1/2/3/4, not
  1000/2000/3000/4000)

SettingsService lifetime is intentionally left as Singleton for now;
making it Scoped requires persisting year/mandator selection across
page reloads first (tracked in the plan).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-02 20:37:03 +02:00
Claudio Schaad
a16aedcfd8
Display transactions and balances in account currency
- Transaction amounts, totals, and sidebar badges in the Transactions page now show in the account's native currency (EUR, USD, etc.) instead of always CHF
- Fixed FX conversion in SaveTransaction/GetTransaction to fire when either the origin or target account is a foreign-currency account, not only the origin side

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:08:01 +02:00
Claudio Schaad
2c91ac7082
Add fx rate for transaction in UI #4
Add fx rate for transaction in UI
2025-09-27 21:32:57 +02:00
2b1eb0dbb7 Add fx rate for transaction in UI 2025-09-27 21:32:10 +02:00
Claudio Schaad
37d568cbc2
Merge pull request #3
* Make line readonly after save

* Cleanup CSS

* Reorder columns
2025-06-28 11:26:34 +02:00
Claudio Schaad
2d59684469
Merge pull request #2 from clayschaad/fix-dropdown
Hardly reload
2025-06-07 18:26:11 +02:00
b88d3059e9 Hardly reload 2025-06-07 18:24:47 +02:00
Claudio Schaad
541da94d7b
Merge pull request #1 from clayschaad/fix-dropdown
Reload page after save
2025-06-07 18:01:50 +02:00
496408aa70 Reload page after save 2025-06-07 18:00:47 +02:00
a45495c296 Add autocomplete for account 2025-05-15 22:01:48 +02:00
Claudio Schaad
ff075be32d
Create LICENSE 2025-05-14 21:46:47 +02:00
c86edfdde2 Add transaction split dialog 2025-05-14 21:45:52 +02:00
e76644a122 Add empty account 2025-05-13 21:15:04 +02:00
ff2ef4aba0 Footer css 2025-05-10 22:42:47 +02:00
0c537f8816 Show bankpayment matching 2025-05-10 22:33:35 +02:00
0828dd7691 Add bank transaction import 2025-05-07 21:50:01 +02:00
e2802dd797 Set CH culture 2025-05-06 19:19:02 +02:00
ece9618f09 Add transaction dialog and enhance transaction view 2025-05-05 22:49:09 +02:00
d21c49d486 Add mandator dropdown 2025-05-05 22:49:02 +02:00
38a1fb65c5 Add year and mandator dropdown 2025-05-05 22:48:52 +02:00
3c04220437 Delete appsettings 2025-05-04 20:42:52 +02:00
ad75c47709 Add new blazor app 2025-05-04 20:00:42 +02:00
Claudio Schaad
4c598f0827
Initial commit 2025-04-29 20:41:37 +02:00