Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var payCount = 0;
- var propertyUser = gs.getProperty('non_payment_users');
- for(var i = 0; i < propertyUser.length; i++) {
- propertyUser[i] = propertyUser[i];
- }
- //getting all users that are active and not locked out
- var userRec = new GlideRecord('sys_user');
- userRec.addQuery('active', 'true');
- userRec.addQuery('locked_out', 'false');
- userRec.query();
- //going through each user
- while(userRec.next()) {
- var userRole = new GlideAggregate('sys_user_has_role');
- //counting the roles of the user
- userRole.addAggregate('COUNT');
- userRole.addQuery('user', userRec.sys_id);
- userRole.query();
- if(userRole.next()) {
- countRole = userRole.getAggregate('COUNT');
- //if he/she has at least one role, check if it has only not paying roles
- if(countRole > 0) {
- if(propertyUser.length < 1) {
- payCount++;
- continue;
- }
- var allRoles = new GlideAggregate('sys_user_has_role');
- allRoles.addAggregate('COUNT');
- allRoles.addQuery('user', userRec.sys_id);
- allRoles.groupBy('user');
- var notPayQuery = allRoles.addQuery('role.name', 'NOT IN', propertyUser[0]);
- for(i = 0; i < propertyUser.length; i++) {
- notPayQuery.addOrCondition('role.name', 'NOT IN', propertyUser[i]);
- }
- allRoles.query();
- var role = 0;
- if(allRoles.next()) role = allRoles.getAggregate('COUNT');
- if(role == 0) continue;
- payCount++;
- }
- }
- }
- var resultRec = new GlideRecord('u_license');
- resultRec.initiliaze();
- resultRec.u_number = payCount;
- resultRec.u_datetime = gs.nowDateTime();
- resultRec.insert();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement