invoice-fs
Version:
Nostalgic command-line invoicing application producing plain text invoices and JSON data structures. Uses the file system as a database
18 lines (13 loc) • 706 B
JavaScript
var obj = require('javascript-object-paraphernalia'),
state = require('./state');
function InvoiceNumberGenerator() {}
InvoiceNumberGenerator.prototype.padWhenNarrow = function(width, number) {
var text = "" + number;
return text.length >= width ? text : new Array((width + 1) - text.length).join('0') + text;
};
InvoiceNumberGenerator.prototype.getInvoiceNumber = function(callback) {
var invoiceNumber = state.get("numberPrefix") + this.padWhenNarrow(state.get("minimumNumberWidth"), state.get("number")) + state.get("numberSuffix");
state.set('number', parseInt(state.get("number"), 10) + 1, callback);
return invoiceNumber;
};
module.exports = new InvoiceNumberGenerator();