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