Esempio n. 1
0
 _.each(results, function(compare) {
     if(compare.get('main') && compare.get('community_name') === deal.get('community_name')){
         var dayStart = moment(compare.get('deal_start_date')).startOf('day');
         var dayEnd = moment(compare.get('deal_start_date')).endOf('day');
         if(moment(deal.get('deal_start_date')).isBetween(dayStart,dayEnd)){
             conflict = true;
         }
     }
 });
Esempio n. 2
0
Parse.Cloud.beforeSave("Deal", function(request, response) {
    var user = request.user;
    if(user && (user.get('Role').id == "MkaiYN8pDC" || user.get('Role').id == "uGBZhZM8LM")){
        var dayStart = moment(request.object.get('deal_start_date')).startOf('day');
        var dayEnd = moment(request.object.get('deal_start_date')).endOf('day');
        var err = {happened: false, message: ''};
        request.object.set('start_utc', parseInt(moment(request.object.get('deal_start_date')).format('x')));
        request.object.set('end_utc', parseInt(moment(request.object.get('deal_end_date')).format('x')));

        var Deal = Parse.Object.extend("Deal");
        var sameDay = new Parse.Query(Deal);
        sameDay.greaterThanOrEqualTo("deal_start_date", dayStart.toDate());
        sameDay.lessThanOrEqualTo("deal_start_date", dayEnd.toDate());
        sameDay.equalTo('venue',request.object.get('venue'));
        sameDay.equalTo('venue',request.object.get('venue'));
        sameDay.notEqualTo('objectId',request.object.get('objectId'));

        var sameMain = new Parse.Query(Deal);
        sameMain.greaterThanOrEqualTo("deal_start_date", dayStart.toDate());
        sameMain.lessThanOrEqualTo("deal_start_date", dayEnd.toDate());
        sameMain.equalTo('main',true);
        sameMain.notEqualTo('objectId',request.object.get('objectId'));

        var query = null;
        if(request.object.get('main')){
            query = Parse.Query.or(sameMain,sameDay);
        } else {
            query = sameDay;
        }
        
        query.find({
            success: function(results){
                if(!err.happened){
                    if(results.length > 0){
                        err.happened = true;
                        err.message = "Error: another deal is scheduled for that day at this venue"
                    }

                    if(!err.happened){
                        response.success();
                    } else {
                        response.error(err.message);
                    }
                } else {
                    response.error(err.message);
                }
            },
            error: function(error){
                response.error("Error: " + error.code + " " + error.message);
            }
        });
    } else {
        response.success();
    }
});
Esempio n. 3
0
 roleQuery.get(user.get('Role').id, function(userRole){
     var query = new Parse.Query(Deal);
     query.greaterThanOrEqualTo("deal_start_date", moment().endOf('day').toDate());
     query.find({
         success: function(results){
             var out = [];
             _.each(results, function(deal) {
                 if(!deal.get('main')){
                     var conflict = false;
                     _.each(results, function(compare) {
                         if(compare.get('main') && compare.get('community_name') === deal.get('community_name')){
                             var dayStart = moment(compare.get('deal_start_date')).startOf('day');
                             var dayEnd = moment(compare.get('deal_start_date')).endOf('day');
                             if(moment(deal.get('deal_start_date')).isBetween(dayStart,dayEnd)){
                                 conflict = true;
                             }
                         }
                     });
                     if(!conflict){
                         deal.set('eligible_main', true)
                     } else {
                         deal.set('eligible_main', false)
                     }
                     deal.save()
                 }
                 if(deal.getACL().getRoleReadAccess(userRole) || deal.getACL().getReadAccess(user.id)){
                     out.push(deal)
                 }
             });
             return response.success(out);
         },
         error: function(error){
             response.error("Error: " + error.code + " " + error.message);
         }
     });
 });