Files
PetitTetonMeteor/server/exportMissing.js

48 lines
1.5 KiB
JavaScript

let fs = require('fs');
Meteor.methods({
"exportMissingSales": async function() {
try {
let products = await Products.find({}).fetchAsync();
let venues = await Venues.find({}).fetchAsync();
let measures = await Measures.find({}).fetchAsync();
let productNameMap = {};
let venueNameMap = {};
let measureNameMap = {};
let sales = await Sales.find({createdAt: {$gte: moment.utc("2017-01-28", "YYYY-MM-DD").toDate(), $lt: moment.utc("2017-01-29", "YYYY-MM-DD").toDate()}}).fetchAsync();
let output = "";
for(let i = 0; i < products.length; i++) {
productNameMap[products[i]._id] = products[i].name;
}
for(let i = 0; i < venues.length; i++) {
venueNameMap[venues[i]._id] = venues[i].name;
}
for(let i = 0; i < measures.length; i++) {
measureNameMap[measures[i]._id] = measures[i].name;
}
for(let i = 0; i < sales.length; i++) {
let sale = sales[i];
let saleOutput = '{\n\t"date": ' + sale.date + ',\n\t "amount": ' + sale.amount + ',\n\t "price": ' + sale.price + ',\n\t "venue": "' + venueNameMap[sale.venueId] + '",\n\t "product": "' + productNameMap[sale.productId] + '",\n\t "measure": "' + measureNameMap[sale.measureId] + '",\n\t "createdAt": "' + sale.createdAt + '"\n}';
if(output.length > 0) {
output += ",\n";
}
else {
output = "[";
}
output += saleOutput;
}
fs.writeFile("./exportedMissingSales.json", output, function(err) {
if(err) console.log(err);
});
output += "]";
console.log(output);
} catch(err) {
console.log(err);
}
}
});