docparse-generate-invoice-id

Generate a unique _id for invoices by taking a sha1 hash of the supplierCode, billingSupplierCode, billID, fromDate, and toDate fields of an invoice

npm install docparse-generate-invoice-id
1 downloads in the last week
4 downloads in the last month

Generate Invoice ID

When invoices are saved into the couchdb database, they need an _id to uniquely identify themselves. It is possible to let couchdb generate the _id value. However using couchdb-generated _id values means that we need to perform existance checks client-side before saving a invoice to ensure uniqueness

There should only every be a single record for a given invoice in the database. Couchdb internally requires that each document have a unique _id value. If the _id for a invoice is generated manually we can ensure each invoice only gets saved once.

Example

Each invoice can be uniquely identified using the following fields.

  • supplierCode
  • billingSupplierCode
  • billID
  • fromDate
  • toDate

To generate the _id this module concatenates these values and calculates the sha1 hash value of the concatenated string. The sha1 hash is then used as the _id value

var generateInvoiceID = require('docparse-generate-invoice-id')
var generateData = {
  supplierCode: 'NST',
  billingSupplierCode: 'HES',
  billID: 'fooBillID',
  fromDate: '2011-01-19 00:00:00 +00:00',
  toDate: '2011-02-20 00:00:00 +00:00'
}
generateInvoiceID(generateData, function (err, invoiceID) {
  if (err) {
    console.dir('error generating invoice id')
    console.dir(err)
    return
  }
  console.dir('generated invoice id', invoiceID)
})

Implementation

See index.js for a implementation details

Tests

To run the tests execute in the shell

# install development dependencies
npm install
# run tests
npm test
npm loves you