Name
sn_install_base.CSMRelationshipService_InstallBaseRelatedParty
Description
Implements extension point global.CSMRelationshipServiceEP Extension point for CSM Relationship framework.
Script
var CSMRelationshipService_InstallBaseRelatedParty = Class.create();
CSMRelationshipService_InstallBaseRelatedParty.prototype = Object.extendsObject(global.CSMRelationshipService, {
/*
* Return true if this SI is able to handle the services required for given relationship.
*/
canProcess: function(relationship) {
if(gs.nil(relationship))
return false;
return relationship == global.CSMRelationshipConstants.RELATIONSHIP_INSTALL_BASE_RELATED_PARTY;
},
_addAdditionalCriteriaIB: function(relationshipGR) {
if (this.context.current && !gs.nil(this.context.current.install_base_item)) {
relationshipGR.addQuery(global.CSMRelationshipConstants.FIELD_INSTALL_BASE_ITEM, this.context.current.install_base_item);
}
},
_addAdditionalCriteriaAffectedIBs: function(relationshipGR) {
if (this.context.current && this._isChildOf(global.CSMBaseConstants.CASE_TABLE, this.context.current.getTableName())) {
var affectedIBs = new sn_install_base.InstallBaseUtil().getAffectedIBsForCase(this.context.current.sys_id).join();
relationshipGR.addQuery(global.CSMRelationshipConstants.FIELD_INSTALL_BASE_ITEM, "IN", affectedIBs);
return;
}
},
_addAdditionalAccountCriteria: function(relationshipGR) {
if (this.__getAdditionalParam(global.CSMRelationshipConstants.IS_ACCOUNT_QUERY)) {
relationshipGR.addNullQuery(global.CSMRelationshipConstants.FIELD_CONTACT);
relationshipGR.addNullQuery(global.CSMRelationshipConstants.FIELD_CONSUMER);
relationshipGR.addNullQuery(global.CSMRelationshipConstants.DEFAULT_PERSONA_FIELD);
relationshipGR.addNotNullQuery(global.CSMRelationshipConstants.FIELD_ACCOUNT);
this.accountUtil = this._getAccountHelper();
relationshipGR.addQuery(global.CSMRelationshipConstants.FIELD_ACCOUNT, this.accountUtil.getUserAccount());
}
},
_addAdditionalSvcOrgCriteria: function(relationshipGR) {
if (this.__getAdditionalParam(global.CSMRelationshipConstants.IS_SVC_ORG_QUERY)) {
relationshipGR.addNullQuery(global.CSMRelationshipConstants.FIELD_CONTACT);
relationshipGR.addNullQuery(global.CSMRelationshipConstants.FIELD_CONSUMER);
relationshipGR.addNullQuery(global.CSMRelationshipConstants.DEFAULT_PERSONA_FIELD);
relationshipGR.addNotNullQuery(global.CSMRelationshipConstants.FIELD_SERVICE_ORGANIZATION);
this.SOUtil = this._getSOHelper();
relationshipGR.addQuery(global.CSMRelationshipConstants.FIELD_SERVICE_ORGANIZATION, "IN",this.SOUtil.getUserServiceOrgIds(gs.getUserID()).join(','));
}
},
/*
* Generate persona query as userISME OR contactISME OR consumerISME
*/
_addPersonaCriteria: function(relationshipGR) {
var userId = gs.getUserID();
var personaQuery = relationshipGR.addQuery(global.CSMRelationshipConstants.DEFAULT_PERSONA_FIELD, userId);
if(gs.hasRole(global.CSMRelationshipConstants.ROLE_CONTACT)) {
if(!gs.nil(personaQuery)) personaQuery.addOrCondition(global.CSMRelationshipConstants.FIELD_CONTACT, userId);
else personaQuery = relationshipGR.addQuery(global.CSMRelationshipConstants.FIELD_CONTACT, userId);
}
if (gs.hasRole(global.CSMRelationshipConstants.ROLE_CONSUMER)) {
var loggedInConsumerId = new global.CSManagementUtils().getConsumerId();
if(!gs.nil(personaQuery)) personaQuery.addOrCondition(global.CSMRelationshipConstants.FIELD_CONSUMER, loggedInConsumerId);
else relationshipGR.addQuery(global.CSMRelationshipConstants.FIELD_CONSUMER, loggedInConsumerId);
}
},
_addAdditionalCriteria: function(relationshipGR) {
this._addAdditionalAccountCriteria(relationshipGR);
this._addAdditionalSvcOrgCriteria(relationshipGR);
this._addAdditionalCriteriaAffectedIBs(relationshipGR);
this._addAdditionalCriteriaIB(relationshipGR);
},
type: 'CSMRelationshipService_InstallBaseRelatedParty'
});
Sys ID
20f3b6c623311110e32f13d1d7bf6597