Added a lot of functionality; Fixed a large number of bugs; Removed Bootstrap from the mix and replaced it with SimpleGrid and some choice bits from the bootstrap system; Pricing, Sales, and Product management all now function at basic levels.
This commit is contained in:
@@ -62,23 +62,42 @@ let SalesSchema = new SimpleSchema({
|
||||
Sales.attachSchema(SalesSchema);
|
||||
|
||||
if(Meteor.isServer) {
|
||||
Meteor.publish('sales', function(query, limit = 100) {
|
||||
let dbQuery = {};
|
||||
Meteor.publish('sales', function(query, limit = 100, skipCount) {
|
||||
let dbQuery = [];
|
||||
|
||||
if(query) {
|
||||
// _.each(_.keys(query), function(key) {
|
||||
// if(_.isObject(query[key])) dbQuery[key] = query[key];
|
||||
// else if(_.isNumber(query[key])) dbQuery[key] = query[key];
|
||||
// else dbQuery[key] = {$regex: RegExp.escape(query[key]), $options: 'i'};
|
||||
// });
|
||||
|
||||
_.each(_.keys(query), function(key) {
|
||||
if(_.isObject(query[key])) dbQuery[key] = query[key];
|
||||
else if(_.isNumber(query[key])) dbQuery[key] = query[key];
|
||||
else dbQuery[key] = {$regex: RegExp.escape(query[key]), $options: 'i'};
|
||||
})
|
||||
if(_.isObject(query[key])) dbQuery.push({[key]: query[key]});
|
||||
else if(_.isNumber(query[key])) dbQuery.push({[key]: query[key]});
|
||||
else {
|
||||
let searchValue = query[key];
|
||||
let searches = searchValue && searchValue.length > 0 ? searchValue.split(/\s+/) : undefined;
|
||||
|
||||
for(let search of searches) {
|
||||
dbQuery.push({[key]: {$regex: '\\b' + search, $options: 'i'}});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if(!_.isNumber(limit)) limit = 100;
|
||||
if(!_.isNumber(skipCount) || skipCount < 0) skipCount = 0;
|
||||
|
||||
return Meteor.collections.Sales.find(dbQuery, {limit: limit, sort: {date: -1}});
|
||||
dbQuery = dbQuery.length > 0 ? {$and: dbQuery} : {};
|
||||
return Meteor.collections.Sales.find(dbQuery, {limit: limit, sort: {date: -1, createdAt: -1}, skip: skipCount});
|
||||
});
|
||||
|
||||
Meteor.methods({
|
||||
getSalesCount: function(query) {
|
||||
//TODO: Validate the query?
|
||||
return Sales.find(query).count();
|
||||
},
|
||||
insertSale: function(sale) {
|
||||
//TODO: Check the structure of sale. Use: check(sale, {name: String, ...});
|
||||
sale.createdAt = new Date();
|
||||
|
||||
Reference in New Issue
Block a user