cjhowald / ynab-csv Goto Github PK
View Code? Open in Web Editor NEWThis project forked from halloffame/ynab-csv
Tool for making your CSV files ready to import into YNAB
License: MIT License
This project forked from halloffame/ynab-csv
Tool for making your CSV files ready to import into YNAB
License: MIT License
Once you select a value for a field, you can change it but you can't re-select the initial empty value. This is annoying when you accidentally change the wrong field.
When a payee from export has a comma in it, the import silently fails for that row.
For example:
Booking date;Value date;Transaction Type;Beneficiary / Originator;Payment Details;IBAN;BIC;Customer Reference;Mandate Reference;Creditor ID;Compensation amount;Original Amount;Ultimate creditor;Number of transactions;Number of cheques;Debit;Credit;Currency
11/07/2016;11/07/2016;"Debit Card Payment";;REAL,- BERLIN-WEDDI//BERLIN/DE 06-11-2016T14:38:30 Folgenr. 07 Verfalld. 1220;;;;;;;;;;;-105.27;;EUR
Converts to:
Date,Payee,Category,Memo,Outflow,Inflow
11/07/2016,REAL,- BERLIN-WEDDI//BERLIN/DE 06-11-2016T14:38:30 Folgenr. 07 Verfalld. 1220,,,,-105.27
This only cropped up recently, and I don't know if it's a change in my bank's CSV, the converter, or YNAB. In any case, i have a CSV that uses negative values in its "outflow" field. Those negative values are loyally entered into the YNAB CSV, and YNAB then imports them... as inflows.
There is probably an occasional use case for a negative value in "outflow" meaning an inflow, but that would be an isolated transaction. Add handling to detect if all the outflow values are negative, and multiply by -1.
The way DB splits incoming and outgoing sometimes results in all (or just a few) rows being swapped following import.
Examples to follow as I find them.
This library came with no tests. I need to add tests.
Different banks use different formatting for amounts, particularly in the "outflow" column. For example, I've seen outflow values like these:
It comes down to the fact that banks seem to treat these values as strings, and we have to convert them to decimal values. Right now it seems like we have a pretty naive conversion process. I think we can make it more robust:
Dragging in multiple files in the same format seems to work. But if you drag in a new one, it does not. You have to reload first.
DB always has the same columns. Should have the mapping default appropriately so I don't have to select them each time.
Example headers:
Credit card transactions;;Customer number: xxxx
MasterCard xxxxx
Outstanding/current transactions till: 01/08/2017
Billing date: 01/25/2017
Voucher date;Date of receipt;Reason for payment;Foreign currency;Amount;Exchange rate;Amount;Currency
Expect all but the last row to be automatically removed on import.
My import source has a duplicate column header: "amount" appears twice. If I select either "amount" column in the converter, it only displays the values from the second "amount" column.
I know, this is a violation of whatever spec we could imagine for CSV. Still, it happens. Perhaps in parsing we could append a _1 to the end of duplicate column titles or something.
Typically, I'm importing several files in one go. Would be nice to have this supported in the UI.
European currency formats use , as a decimal separator. YNAB supports this on import, but currently this tool assumes a US number format and strips them. So 1,50€ (1 Euro and 50 cents) is handled as 150€.
I believe that if we leave the commas in place, YNAB will import the values properly. Not 100% on that, though.
Add a dialog to choose a source and destination currency, and automatically do the conversion for the average rate on the date of each transaction.
Original CSV line:
01/02/2017;01/02/2017;"SEPA-Standing Order";<address>;<desc>;<IBAN>;<BIC>;;;;;;;;;-X,YZA.BC;;EUR
Converted CSV line:
01/02/2017,<desc>,,<address>,-X,YZA.BC,
Expected (absolute value for outflow):
01/02/2017,<desc>,,<address>,X,YZA.BC,
DB adds a bunch of header rows before the real header row. This breaks the import, so they have to be manually deleted before converting. Same for a footer row with the sum.
For example:
Credit card transactions;;Customer number: ***
MasterCard ***
Outstanding/current transactions till: 11/13/2016
Billing date: 11/25/2016
Voucher date;Date of receipt;Reason for payment;Foreign currency;Amount;Exchange rate;Amount;Currency
...
Online-Balance:;;;;;;***;EUR
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.