M9: kvitt-import Splitwise importer (SPEC §10.8, FR-17)
CLI per §10.8 with --help, --dry-run and a summary; English and Swedish headers with member columns matched by name; CSV quoting; payments as settlements with one allocation; trailing totals row used to reconcile the account balance (mismatch rolls back, exit 4); non-SEK rows abort unless --fx; committed category table data/splitwise_categories.csv; idempotent re-runs through import_key; rows validated with the server's push checks, audited with source import, no pushes; one BEGIN IMMEDIATE transaction. Tests over synthetic fixtures only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
Date,Description,Category,Cost,Currency,Alex Example,Robin Sample
|
||||
|
||||
2025-01-05,Weekly shop,Groceries,300.00,SEK,150.00,-150.00
|
||||
2025-01-06,"Paint, brushes and tape",Household supplies,120.50,SEK,-60.25,60.25
|
||||
2025-01-07,Cinema,Movies,200.00,SEK,0.00,0.00
|
||||
2025-01-08,Bus card,Bus/train,100.00,SEK,-100.00,100.00
|
||||
2025-01-09,Mystery box,Widgets,50.00,SEK,25.00,-25.00
|
||||
2025-01-10,Coffee,Dining out,40.00,SEK,20.00,-20.00
|
||||
2025-01-10,Coffee,Dining out,40.00,SEK,20.00,-20.00
|
||||
2025-01-11,An extremely long synthetic description written only to exercise the truncation rule of the importer at one hundred code points,General,10.00,SEK,5.00,-5.00
|
||||
2025-01-12,Robin paid Alex,Payment,100.00,SEK,-100.00,100.00
|
||||
2025-01-13,"Rent, January",Rent,1000.00,SEK,500.00,-500.00
|
||||
|
||||
2025-01-14,Total balance, , ,SEK,459.75,-459.75
|
||||
|
||||
|
Reference in New Issue
Block a user