57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
|
|
|
||
|
|
|
||
|
|
Meteor.methods({
|
||
|
|
// Cleans up all Date objects that don't have a time component. Removes any time component.
|
||
|
|
"cleanDates": function() {
|
||
|
|
|
||
|
|
// Update the sales dates.
|
||
|
|
|
||
|
|
let sales = Sales.find({}).fetch();
|
||
|
|
|
||
|
|
for(let i = 0; i < sales.length; i++) {
|
||
|
|
if(sales[i].date && _.isDate(sales[i].date)) {
|
||
|
|
let date = ~~(moment(sales[i].date).format("YYYYMMDD"));
|
||
|
|
|
||
|
|
console.log("Converted " + sales[i].date + " to " + date);
|
||
|
|
|
||
|
|
// Save to the database.
|
||
|
|
Sales.update(sales[i]._id, {$set: {date}}, function(err, id) {
|
||
|
|
if(err) console.log(err);
|
||
|
|
}, {bypassCollection2: true});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log("+++++++++++++++++++++++++++++++ FINISHED Sales +++++++++++++++++++++++++++++");
|
||
|
|
|
||
|
|
// Update the product price effective dates.
|
||
|
|
|
||
|
|
let products = Products.find({}).fetch();
|
||
|
|
|
||
|
|
for(let i = 0; i < products.length; i++) {
|
||
|
|
let product = products[i];
|
||
|
|
let hasChanges = false;
|
||
|
|
let prices = product.prices;
|
||
|
|
|
||
|
|
if(prices) {
|
||
|
|
for(let prop in prices) {
|
||
|
|
if(prices[prop] && prices[prop].effectiveDate) {
|
||
|
|
if(_.isDate(prices[prop].effectiveDate)) {
|
||
|
|
let oldDate = prices[prop].effectiveDate;
|
||
|
|
|
||
|
|
prices[prop].effectiveDate = ~~(moment(prices[prop].effectiveDate).format("YYYYMMDD"));
|
||
|
|
console.log("Converted " + oldDate + " to " + prices[prop].effectiveDate + " for the product " + product.name);
|
||
|
|
hasChanges = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Save the changes.
|
||
|
|
if(hasChanges) {
|
||
|
|
Products.update(product._id, {$set: {prices}}, function(err, id) {
|
||
|
|
if(err) console.log(err);
|
||
|
|
}, {validate: false, bypassCollection2: true});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|