UNPKG

invoice-fs

Version:

Nostalgic command-line invoicing application producing plain text invoices and JSON data structures. Uses the file system as a database

26 lines (22 loc) 1.18 kB
var fs = require('fs'), state = require('../lib/state'), paths = state.get('paths'), out = require('../lib/out'), colors = require('colors'), Invoice = require('../lib/invoice'); module.exports = function(command, extraArguments, flags) { var showPaid = !!flags.indexOf('--paid'); fs.readdir(paths.invoices, function(err, files){ out.writeCliTitle("List Invoices"); for (file in files) { var details = fs.lstatSync(paths.invoices + files[file]); var invoice = new Invoice(files[file].replace('.json', '')); if (showPaid && !invoice.data.isPaid() || !showPaid && invoice.data.isPaid()) { var name = invoice.data.isLocked() ? out.leftColumn(invoice.data.number,12).red : out.leftColumn(invoice.data.number,12).green; out.write(name + out.leftColumn(invoice.data.customer.companyName, 21) + out.rightColumn(invoice.data.total.toFixed(2), 10) + out.rightColumn(new Date(details.mtime.toString()).toDateString(),17)); } } out.writeCliDivider(); out.write(files.length + " invoices" + (files.length > 1 ? "s" : "") + "\n"); }); };