supply cartridges id; don't update cartridge counts on dispense
This commit is contained in:
parent
668f745a5e
commit
aebdc618bc
2 changed files with 9 additions and 48 deletions
|
|
@ -191,7 +191,7 @@ exports.logEvent = function event(session, rawEvent) {
|
|||
db.recordDeviceEvent(session, rawEvent);
|
||||
};
|
||||
|
||||
function buildCartridges(counts) {
|
||||
function buildCartridges(rec) {
|
||||
var cartridges = cachedConfig.exchanges.settings.cartridges;
|
||||
var virtualCartridges = cachedConfig.exchanges.settings.virtualCartridges;
|
||||
if (!cartridges) return null;
|
||||
|
|
@ -199,14 +199,15 @@ function buildCartridges(counts) {
|
|||
cartridges: [
|
||||
{
|
||||
denomination: cartridges[0],
|
||||
count: counts[0]
|
||||
count: rec.counts[0]
|
||||
},
|
||||
{
|
||||
denomination: cartridges[1],
|
||||
count: counts[1]
|
||||
},
|
||||
count: rec.counts[1]
|
||||
}
|
||||
],
|
||||
virtualCartridges: virtualCartridges
|
||||
virtualCartridges: virtualCartridges,
|
||||
id: rec.id
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -480,51 +480,11 @@ exports.addInitialIncoming = function addInitialIncoming(session, tx, cb) {
|
|||
});
|
||||
};
|
||||
|
||||
function lastDispenseCount(client, session, transactionId, cb) {
|
||||
var sql = 'SELECT count1, count2 FROM dispenses ' +
|
||||
'WHERE device_fingerprint=$1 ' +
|
||||
'ORDER BY id DESC LIMIT 1';
|
||||
client.query(sql, [session.fingerprint], function(err, results) {
|
||||
if (err) return cb(err);
|
||||
if (results.rows.length === 0) return cb(null, transactionId, [0, 0]);
|
||||
cb(null, transactionId, [results.rows[0].count1, results.rows[0].count2]);
|
||||
});
|
||||
}
|
||||
|
||||
function insertDispense(client, session, tx, transactionId, counts, cb) {
|
||||
var fields = [
|
||||
'device_fingerprint', 'transaction_id',
|
||||
'dispense1', 'reject1', 'count1',
|
||||
'dispense2', 'reject2', 'count2',
|
||||
'refill', 'error'
|
||||
];
|
||||
|
||||
var sql = getInsertQuery('dispenses', fields, true);
|
||||
|
||||
var dispense1 = tx.billDistribution[0].actualDispense;
|
||||
var dispense2 = tx.billDistribution[1].actualDispense;
|
||||
var reject1 = tx.billDistribution[0].rejected;
|
||||
var reject2 = tx.billDistribution[1].rejected;
|
||||
var count1 = Math.max(counts[0] - (dispense1 + reject1), 0);
|
||||
var count2 = Math.max(counts[1] - (dispense2 + reject2), 0);
|
||||
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) {
|
||||
connect(function(cerr, client, done) {
|
||||
if (cerr) return;
|
||||
|
||||
async.waterfall([
|
||||
async.apply(insertIncoming, client, session, tx, 0, tx.fiat,
|
||||
'dispense', 'authorized'),
|
||||
async.apply(lastDispenseCount, client, session),
|
||||
async.apply(insertDispense, client, session, tx)
|
||||
], function(err) {
|
||||
insertIncoming(client, session, tx, 0, tx.fiat, 'dispense', 'authorized', function () {
|
||||
done();
|
||||
if (err) logger.error(err);
|
||||
});
|
||||
|
|
@ -534,7 +494,7 @@ exports.addDispense = function addDispense(session, tx) {
|
|||
exports.cartridgeCounts = function cartridgeCounts(session, cb) {
|
||||
connect(function(cerr, client, done) {
|
||||
if (cerr) return cb(cerr);
|
||||
var sql = 'SELECT count1, count2 FROM dispenses ' +
|
||||
var sql = 'SELECT id, count1, count2 FROM dispenses ' +
|
||||
'WHERE device_fingerprint=$1 ' +
|
||||
'ORDER BY id DESC LIMIT 1';
|
||||
query(client, sql, [session.fingerprint], function(err, results) {
|
||||
|
|
@ -543,7 +503,7 @@ exports.cartridgeCounts = function cartridgeCounts(session, cb) {
|
|||
var counts = results.rows.length === 1 ?
|
||||
[results.rows[0].count1, results.rows[0].count2] :
|
||||
[0, 0];
|
||||
cb(null, counts);
|
||||
cb(null, {id: results.rows[0].id, counts: counts});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue