Redesigned the querying for the sale duplicates screen to use aggregation; Finished the styling of the sale duplicate screen; Tested the functionality of sale duplicates; Added a way to show hidden (ignored) duplicates.
This commit is contained in:
76
imports/ui/MiscManagement.js
Normal file
76
imports/ui/MiscManagement.js
Normal file
@@ -0,0 +1,76 @@
|
||||
|
||||
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");
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user