Name

sn_nb_action.ActionDetailOrder

Description

A class to encapsulate Action Detail Order.

Script

var ActionDetailOrder = Class.create();
ActionDetailOrder.prototype = {
  initialize: function() {
  	this.actionGroups = {};
  },

  getRule: function() {
      return this.ruleSysId;
  },

  setRule: function(ruleSysId) {
      this.ruleSysId = ruleSysId;
  },

  getActionDetail: function() {
      return this.actionDetailId;
  },

  setActionDetail: function(actionDetailId) {
      this.actionDetailId = actionDetailId;
  },

  getInterOrder: function() {
      return this.interOrder;
  },

  setInterOrder: function(interOrder) {
      this.interOrder = interOrder;
  },

  getIntraOrder: function() {
      return this.intraOrder;
  },

  setIntraOrder: function(intraOrder) {
      this.intraOrder = intraOrder;
  },

  getRoles: function() {
      return this.roles;
  },

  setRoles: function(roles) {
      this.roles = roles;
  },

  isActive: function() {
      return this.active;
  },

  setActive: function(active) {
      this.active = active;
  },

  getActionDetailOrderId: function() {
      return this.actionDetailOrderId;
  },

  setActionDetailOrderId: function(actionDetailOrderId) {
      this.actionDetailOrderId = actionDetailOrderId;
  },

  getHint: function() {
      return this.hint;
  },

  setHint: function(hint) {
      this.hint = hint;
  },
  
  getActionGroups: function() {
      if (gs.nil(this.actionGroups)) return;
      var actionGroups = Object.keys(this.actionGroups);
      if (gs.nil(actionGroups) || actionGroups.length <= 0) return;
      return actionGroups;
  },
  getActionGroupsAsCommaSeparatedString: function(){
  	if (gs.nil(this.actionGroups)) return "";
      var actionGroups = Object.keys(this.actionGroups);
      if (gs.nil(actionGroups) || actionGroups.length <= 0) return "";
      return actionGroups.join(",");
  },
  containsActionGroup: function(actionGroup) {
      if (this.actionGroups.hasOwnProperty(actionGroup))
          return true;
      return false;
  },
  setActionGroupsFromString: function(actionGroups) {
      if (gs.nil(actionGroups)) return;
      var contextGroups = actionGroups.split(",");
      for (var i = 0; i < contextGroups.length; i++) {
          var actionGroup = contextGroups[i];
          this.actionGroups[actionGroup] = actionGroup;
      }
  },
  
  appendActionGroup: function(actionGroup) {
      if (gs.nil(actionGroup)) return;
      this.actionGroups[actionGroup] = actionGroup;
  },


  isValid: function() {
      if (gs.nil(this.ruleSysId) ||
          gs.nil(this.intraOrder)
      )
          return false;
      return true;
  },

  equals: function(actionDetailOrderObj) {
      if (this.intraOrder != actionDetailOrderObj.getIntraOrder())
          return false;
      if (this.interOrder != actionDetailOrderObj.getInterOrder())
          return false;
      if (this.active != actionDetailOrderObj.isActive())
          return false;
      if (this.ruleSysId != actionDetailOrderObj.getRule())
          return false;
      return true;
  },

  type: 'ActionDetailOrder'
};

ActionDetailOrder.createFromRule = function(ruleSysId, interOrder, intraOrder, hint, groups) {
  actionOrderDetObj = new ActionDetailOrder();
  actionOrderDetObj.setRule(ruleSysId);
  actionOrderDetObj.setInterOrder(interOrder);
  actionOrderDetObj.setIntraOrder(intraOrder);
  actionOrderDetObj.setActive(true);
  actionOrderDetObj.setHint(hint);
  actionOrderDetObj.setActionGroupsFromString(groups);
  return actionOrderDetObj;
};

ActionDetailOrder.createFromRecord = function(actionDetailOrderRecord) {
  actionDetOrderObj = new ActionDetailOrder();
  actionDetOrderObj.setRule(actionDetailOrderRecord.getValue(sn_nb_action.Constants.COL_RULE));
  actionDetOrderObj.setInterOrder(actionDetailOrderRecord.getValue(sn_nb_action.Constants.COL_INTER_ORDER));
  actionDetOrderObj.setIntraOrder(actionDetailOrderRecord.getValue(sn_nb_action.Constants.COL_INTRA_ORDER));
  actionDetOrderObj.setActive(actionDetailOrderRecord.getValue(sn_nb_action.Constants.COL_ACTIVE) == '1');
  actionDetOrderObj.setActionDetail(actionDetailOrderRecord.getValue(sn_nb_action.Constants.COL_NEXT_BEST_ACTION));
  actionDetOrderObj.setActionDetailOrderId(actionDetailOrderRecord.getUniqueValue());
  actionDetOrderObj.setHint(actionDetailOrderRecord.getValue(sn_nb_action.Constants.COL_RECOMMENDATION_HINT));
  actionDetOrderObj.setActionGroupsFromString(actionDetailOrderRecord.getValue(sn_nb_action.Constants.COL_CONTEXT_GROUPS));
  return actionDetOrderObj;
};

ActionDetailOrder.appendGroups = function(originalActionDetailOrderObj, newGroups) {
  var originalGroups = originalActionDetailOrderObj.getActionGroups();

  if ((gs.nil(originalGroups) && gs.nil(newGroups)) ||
      (!gs.nil(originalGroups) && gs.nil(newGroups))
  ) return false;

  var updated = false;
  for (var i = 0; i < newGroups.length; i++) {
  	if(originalActionDetailOrderObj.containsActionGroup(newGroups[i])) continue;
      originalActionDetailOrderObj.appendActionGroup(newGroups[i]);
  	updated = true;
  }
  return updated;
};

Sys ID

d0898564eb1220106fd0b6302a5228f6

Offical Documentation

Official Docs: