banker
Version:
Downloads transactions and balances from online banking websites using Zombie.js.
47 lines (39 loc) • 1.3 kB
JavaScript
var moment = require('moment'),
utils = require('../utils');
exports.parse = function(qif, cb) {
var transaction = {},
transactions = [];
utils.readLines(qif, function(err, line) {
var marker = line.substring(0, 1),
value = line.substring(1);
switch (marker) {
case 'D':
transaction.date = moment(value, 'MM/DD/YYYY');
break;
case 'P':
transaction.description = value;
break;
case 'T':
transaction.amount = utils.decimal(value);
break;
case 'M':
transaction.memo = value;
break;
case 'N':
transaction.checkNumber = value;
break;
case '^':
if (Object.keys(transaction).length) {
if (transaction.memo && !transaction.description) {
transaction.description = transaction.memo;
transaction.memo = '';
}
transactions.push(transaction);
transaction = {};
}
break;
}
}, function(err) {
cb(err, transactions);
});
};