update db with bill counts from machine

This commit is contained in:
Josh Harvey 2015-04-29 17:36:28 -04:00
parent 12cc7dab30
commit d5c69079d5
2 changed files with 34 additions and 6 deletions

View file

@ -336,8 +336,8 @@ exports.cashOut = function cashOut(session, tx, cb) {
});
};
exports.dispenseAck = function dispenseAck(session, tx) {
db.addDispense(session, tx);
exports.dispenseAck = function dispenseAck(session, rec) {
db.addDispense(session, rec.tx, rec.cartridges);
};
exports.fiatBalance = function fiatBalance() {

View file

@ -480,11 +480,39 @@ exports.addInitialIncoming = function addInitialIncoming(session, tx, cb) {
});
};
exports.addDispense = function addDispense(session, tx) {
function insertDispense(client, session, tx, cartridges, transactionId, cb) {
var fields = [
'device_fingerprint', 'transaction_id',
'dispense1', 'reject1', 'count1',
'dispense2', 'reject2', 'count2',
'refill', 'error'
];
var sql = getInsertQuery('dispenses', fields, true);
var dispense1 = tx.bills[0].actualDispense;
var dispense2 = tx.bills[1].actualDispense;
var reject1 = tx.bills[0].rejected;
var reject2 = tx.bills[1].rejected;
var count1 = cartridges[0].count;
var count2 = cartridges[1].count;
var values = [
session.fingerprint, transactionId,
dispense1, reject1, count1, dispense2, reject2, count2,
false, tx.error
];
client.query(sql, values, cb);
}
exports.addDispense = function addDispense(session, tx, cartridges) {
connect(function(cerr, client, done) {
if (cerr) return;
insertIncoming(client, session, tx, 0, tx.fiat, 'dispense', 'authorized', function (err) {
async.waterfall([
async.apply(insertIncoming, client, session, tx, 0, tx.fiat,
'dispense', 'authorized'),
async.apply(insertDispense, client, session, tx, cartridges)
], function(err) {
done();
if (err) logger.error(err);
});
@ -495,9 +523,9 @@ exports.cartridgeCounts = function cartridgeCounts(session, cb) {
connect(function(cerr, client, done) {
if (cerr) return cb(cerr);
var sql = 'SELECT id, count1, count2 FROM dispenses ' +
'WHERE device_fingerprint=$1 ' +
'WHERE device_fingerprint=$1 AND refill=$2 ' +
'ORDER BY id DESC LIMIT 1';
query(client, sql, [session.fingerprint], function(err, results) {
query(client, sql, [session.fingerprint, true], function(err, results) {
done();
if (err) return cb(err);
var counts = results.rows.length === 1 ?