Files
PetitTetonMeteor/imports/ui/MiscManagement.js

80 lines
2.7 KiB
JavaScript
Raw Normal View History

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");
}
});