Name

sn_itam_workspace.AssetWorkspaceUtil

Description

No description available

Script

var AssetWorkspaceUtil = Class.create();
AssetWorkspaceUtil.prototype = {
  initialize: function() {},

  getMissingData: function(input) {
  	var table = sn_itam_workspace.AssetWorkspaceUtil.CMDB_MODEL_TABLE_NAME;
  	var impActionSetupQueries = new sn_itam_workspace.ImportantActionsSetupQueries();
  	return {
  		tableName: table,
  		missingName: [impActionSetupQueries.getModelImpActionsData(false, table,
  			sn_itam_workspace.AssetWorkspaceUtil.MODEL_NAME, input),
  		impActionSetupQueries.getModelImpActionsData(true, table,
  			sn_itam_workspace.AssetWorkspaceUtil.MODEL_NAME, input),
  		gs.getMessage('Missing name models'),
  		],
  		missingManufacture: [impActionSetupQueries.getModelImpActionsData(false, table,
  			sn_itam_workspace.AssetWorkspaceUtil.MODEL_MANUFACTURER, input),
  		impActionSetupQueries.getModelImpActionsData(true, table,
  			sn_itam_workspace.AssetWorkspaceUtil.MODEL_MANUFACTURER, input),
  		gs.getMessage('Missing manufacturer models'),
  		],
  		missingModelNumber: [impActionSetupQueries.getModelImpActionsData(false, table,
  			sn_itam_workspace.AssetWorkspaceUtil.MODEL_NUMBER, input),
  		impActionSetupQueries.getModelImpActionsData(true, table,
  			sn_itam_workspace.AssetWorkspaceUtil.MODEL_NUMBER, input),
  		gs.getMessage('Missing model number models'),
  		],
  	};
  },

  // Get dropdown values for Select/Typeahead fields
  getDropwdownValues: function(input) {
  	var gr = new GlideRecordSecure(input.table);
  	gr.addEncodedQuery(input.encodedQuery);
  	if (input.hasOwnProperty('orderBy') && input.orderBy) {
  		if (input.hasOwnProperty('sortType') && (!input.sortType || (input.sortType === 'desc'))) {
  			gr.orderByDesc(input.orderBy);
  		} else {
  			gr.orderBy(input.orderBy);
  		}
  	}
  	gr.setLimit(AssetWorkspaceUtil.MAX_DROPDOWN_ITEMS + 1);
  	gr.query();
  	var rowCount = gr.getRowCount();
  	var label = '';
  	if (rowCount === 0) {
  		label = gs.getMessage('No results found');
  	} else if (rowCount <= parseInt(input.limit, 10)) {
  		label = gs.getMessage('Showing 1-{0} of {0}', [rowCount]);
  	} else {
  		if (rowCount <= AssetWorkspaceUtil.MAX_DROPDOWN_ITEMS) {
  			label = gs.getMessage('Showing 1-{0} of {1}', [input.limit, rowCount]);
  		} else {
  			// eslint-disable-next-line max-len
  			label = gs.getMessage('Showing 1-{0} of more than {1}', [input.limit, AssetWorkspaceUtil.MAX_DROPDOWN_ITEMS.toString()]);
  		}
  		gr.setLimit(parseInt(input.limit, 10));
  		gr.query();
  	}
  	var dropdownvalues = [];
  	while (gr.next()) {
  		var sublabel = input.sublabel.split(',').map(function(field) {
  			return gr.getDisplayValue(field);
  		}).filter(function(element) {
  			return element;
  		});
  		dropdownvalues.push({
  			id: gr.getUniqueValue(),
  			label: gr.getDisplayValue(input.label),
  			sublabel: sublabel.join(', '),
  		});
  	}
  	return [{
  		id: 0,
  		label: label,
  		children: dropdownvalues,
  	}];
  },

  getAssetEstateTabs: function() {
  	var assetEstateTabs = {
  		'': {
  			listTitle: '',
  			table: '',
  			listView: '',
  			query: '',
  		},
  		alm_asset: {
  			listTitle: gs.getMessage('All assets'),
  			table: 'alm_asset',
  			listView: 'itam_workspace',
  			query: '',
  		},
  		alm_hardware: {
  			listTitle: gs.getMessage('Hardware assets'),
  			table: 'alm_hardware',
  			listView: 'itam_workspace',
  			query: '',
  		},
  		alm_consumable: {
  			listTitle: gs.getMessage('Consumable assets'),
  			table: 'alm_consumable',
  			listView: 'itam_workspace',
  			query: '',
  		},
  		alm_license: {
  			listTitle: gs.getMessage('Software licenses'),
  			table: 'alm_license',
  			listView: 'itam_workspace',
  			query: '',
  		},
  		alm_asset_other: {
  			listTitle: gs.getMessage('Other assets'),
  			table: 'alm_asset',
  			listView: 'itam_workspace',
  			query: 'sys_class_name=alm_asset',
  		},
  		asset_task: {
  			listTitle: gs.getMessage('Asset tasks'),
  			table: 'asset_task',
  			listView: '',
  			query: '',
  		},

  	};
  	var isSamActive = AssetWorkspaceUtil.isSamActive();
  	var data = [];
  	var tabs = Object.keys(assetEstateTabs);
  	for (var i = 0; i < tabs.length; i++) {
  		if (tabs[i] === 'alm_license' && isSamActive) {
  			continue;
  		} else {
  			data.push(assetEstateTabs[tabs[i]]);
  		}
  	}

  	return data;
  },
  getContractTabs: function() {
  	var contractTabs = {
  		'': {
  			listTitle: '',
  			table: '',
  			listView: '',
  			query: '',
  		},
  		all_contracts: {
  			listTitle: gs.getMessage('All contracts'),
  			table: 'ast_contract',
  			listView: '',
  			query: '',
  		},
  		lease: {
  			listTitle: gs.getMessage('Leases'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.LEASE,
  		},
  		insurance: {
  			listTitle: gs.getMessage('Insurance'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.INSURANCE,
  		},
  		maintenance: {
  			listTitle: gs.getMessage('Maintenance'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.MAINTENANCE,
  		},
  		warranties: {
  			listTitle: gs.getMessage('Warranties'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.WARRANTY,
  		},
  		puragreements: {
  			listTitle: gs.getMessage('Purchasing agreements'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.PURCHASE_AGREEMENT,
  		},
  		purorders: {
  			listTitle: gs.getMessage('Purchase orders'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.PURCHASE_ORDER,
  		},
  		service: {
  			listTitle: gs.getMessage('Service'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.SERVICE_CONTRACT,
  		},
  		software_license: {
  			listTitle: gs.getMessage('Software licenses'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.SOFTWARE_LICENSE,
  		},
  		subscription: {
  			listTitle: gs.getMessage('Subscriptions'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.SUBSCRIPTION,
  		},
  		nondisclousre: {
  			listTitle: gs.getMessage('Non-Disclosure'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'contract_model=' + global.ContractManagementUtils.NDA,
  		},
  		mycontracts: {
  			listTitle: gs.getMessage('My contracts'),
  			table: 'ast_contract',
  			listView: '',
  			query: 'business_owner=' + gs.getUserID() + '^stateINdraft,active',
  		},
  		myapprovals: {
  			listTitle: gs.getMessage('My approvals'),
  			table: 'sysapproval_approver',
  			listView: '',
  			query: 'approver=' + gs.getUserID(),
  		},
  		termsandconditons: {
  			listTitle: gs.getMessage('Terms and conditions'),
  			table: 'clm_terms_and_conditions',
  			listView: '',
  			query: '',
  		},
  	};
  	var data = [];
  	var tabs = Object.keys(contractTabs);
  	for (var i = 0; i < tabs.length; i++) {
  		data.push(contractTabs[tabs[i]]);
  	}
  	return data;
  },
  getProcurementTabs: function() {
  	var procurementTabs = {
  		'': {
  			listTitle: '',
  			table: '',
  			listView: '',
  			query: '',
  		},
  		requests: {
  			listTitle: gs.getMessage('Requests'),
  			table: 'sc_request',
  			listView: '',
  			query: 'active=true^sourceable=true',
  		},
  		items: {
  			listTitle: gs.getMessage('Items'),
  			table: 'sc_req_item',
  			listView: '',
  			query: '',
  		},
  		tasks: {
  			listTitle: gs.getMessage('Tasks'),
  			table: 'sc_task',
  			listView: '',
  			query: 'active=true^request.sourceable=true',
  		},
  		purchase_orders: {
  			listTitle: gs.getMessage('Purchase orders'),
  			table: 'proc_po',
  			listView: '',
  			query: '',
  		},
  		receiving_slips: {
  			listTitle: gs.getMessage('Receiving slips'),
  			table: 'proc_rec_slip',
  			listView: '',
  			query: '',
  		},
  	};
  	var data = [];
  	var tabs = Object.keys(procurementTabs);
  	for (var i = 0; i < tabs.length; i++) {
  		data.push(procurementTabs[tabs[i]]);
  	}
  	return data;
  },
  getRenwalCostAdjustmentTypes: function() {
  	var current_language = AssetWorkspaceUtil.getSessionLanguage();
  	var results = [];
  	results.push({
  		id: 'none',
  		value: '',
  		label: gs.getMessage('-- None --'),
  	});
  	new global.GlideQuery('sys_choice')
  		.where('name', 'ast_contract')
  		.where('element', 'cost_adjustment_type')
  		.where('language', current_language)
  		.select('value', 'sys_id', 'label')
  		.forEach(function(type) {
  			var costType = {};
  			costType.id = type.value;
  			costType.value = type.value;
  			costType.label = type.label;
  			results.push(costType);
  		});
  	return results;
  },
  getRenewOptions: function() {
  	var current_language = AssetWorkspaceUtil.getSessionLanguage();
  	var results = [];
  	results.push({
  		id: 'none',
  		value: '',
  		label: gs.getMessage('-- None --'),
  	});
  	new global.GlideQuery('sys_choice')
  		.where('name', 'ast_contract')
  		.where('element', 'renewal_options')
  		.where('language', current_language)
  		.select('value', 'sys_id', 'label')
  		.forEach(function(option) {
  			var options = {};
  			options.id = option.value;
  			options.value = option.value;
  			options.label = option.label;
  			results.push(options);
  		});
  	return results;
  },

  type: 'AssetWorkspaceUtil',
};
AssetWorkspaceUtil.isSamActive = function() {
  return GlidePluginManager.isActive('com.snc.sam.core') || GlidePluginManager.isActive('com.snc.samp');
};
AssetWorkspaceUtil.isHAMActive = function() {
  return GlidePluginManager.isActive('sn_hamp');
};
AssetWorkspaceUtil.isCSDMActive = function() {
  return GlidePluginManager.isActive('com.snc.cmdb.csdm.activation');
};
AssetWorkspaceUtil.getSessionLanguage = function() {
  return gs.getSession().getLanguage();
};
AssetWorkspaceUtil.CMDB_MODEL_TABLE_NAME = 'cmdb_model';
AssetWorkspaceUtil.HARDWARE_MODEL_TABLE_NAME = 'cmdb_hardware_product_model';
AssetWorkspaceUtil.MODEL_NAME = 'name';
AssetWorkspaceUtil.MODEL_NUMBER = 'model_number';
AssetWorkspaceUtil.USEFUL_LIFE = 'useful_life';
AssetWorkspaceUtil.MODEL_MANUFACTURER = 'manufacturer';
AssetWorkspaceUtil.STOCKROOM_TABLE_NAME = 'alm_stockroom';
AssetWorkspaceUtil.MANAGER = 'manager';
AssetWorkspaceUtil.ASSIGNMENT_GROUP = 'assignment_group';
AssetWorkspaceUtil.TYPE = 'type';
AssetWorkspaceUtil.STOCKROOM_NAME = 'name';
AssetWorkspaceUtil.MAX_DROPDOWN_ITEMS = 250;

Sys ID

c86a8b6b531170103676ddeeff7b123e

Offical Documentation

Official Docs: