import './MiscManagement.html'; import '/imports/util/selectize/selectize.js' let PREFIX = "MiscManagement"; Meteor.subscribe("logs"); Meteor.subscribe("products"); Meteor.subscribe("venues"); Meteor.subscribe("measures"); Template.MiscManagement.helpers({ logs: function() { return Meteor.collections.Logs.find({}, {sort: {date: 1}}); }, logCount: function() { return Meteor.collections.Logs.find({}).count(); } }); Template.MiscManagement.events({ "click .cleanDates": function(event, template) { Meteor.call("cleanDates"); }, "click .importMissingSalesData": function(event, template) { console.log("Calling importMissingSales"); Meteor.call("importMissingSales"); }, "click .clearLogs": function(event, template) { Meteor.call("clearLogs"); }, "click .countDuplicateSales": function(event, template) { Meteor.log.info("Starting to count duplicates..."); let products = Meteor.collections.Products.find({}).fetch(); let venues = Meteor.collections.Venues.find({}).fetch(); let measures = Meteor.collections.Measures.find({}).fetch(); let productNameMap = {}; let venueNameMap = {}; let measureNameMap = {}; 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; } Meteor.call("countSales", function(err, result) { if(err) Meteor.log.error(err); else { let salesCount = result; Meteor.call("countDuplicateSales", function(err, result) { if(err) Meteor.log.error(err); else { Meteor.log.info("Duplicate Sales Counted: " + result.length + " out of " + salesCount + " total sales."); for(let i = 0; i < result.length; i++) { let sale = result[i][0]; Meteor.log.info("\tdate: " + sale.date + " product: " + productNameMap[sale.productId] + " venue: " + venueNameMap[sale.venueId] + " measure" + measureNameMap[sale.measureId] + " price: " + sale.price.toFixed(2) + " amount: " + sale.amount + " id: " + sale._id); sale = result[i][1]; Meteor.log.info("\tdate: " + sale.date + " product: " + productNameMap[sale.productId] + " venue: " + venueNameMap[sale.venueId] + " measure" + measureNameMap[sale.measureId] + " price: " + sale.price.toFixed(2) + " amount: " + sale.amount + " id: " + sale._id); Meteor.log.info(" -- "); } } }); } }); }, "click .deleteDuplicateSales": function(event, template) { Meteor.call("deleteDuplicateSales"); }, "click .enhanceSaleDates": function(event, template) { Meteor.call("enhanceSalesDateFields"); } });