2017-05-26 11:17:32 -07:00
|
|
|
|
|
|
|
|
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");
|
2017-10-08 08:56:15 -07:00
|
|
|
},
|
|
|
|
|
"click .enhanceSaleDates": function(event, template) {
|
|
|
|
|
Meteor.call("enhanceSalesDateFields");
|
2017-05-26 11:17:32 -07:00
|
|
|
}
|
|
|
|
|
});
|