How to pass Multiple SN Record picker values to update a single record

Reddy
Kilo Sage

Hello All,

 

image

 

I'm able to update the single SN record picker value to the asset record but I want to update the New Department and New service center values at once on click submit button.

 

HTML:

<div  class="col-md-10 center-div">


<form class="form-horizontal">
<div>
  <table class="table" class="table table-striped" class="table table-bordered border-primary" >
  <thead style="background-color: #6c7ae0;color: white;line-height: 30px;">
     
    <tr >
    <!--  <th>Picture</th> -->
    <th>Asset Tag</th>
   <th>Department</th>
    <th>Assigned to</th> 
    <th>Service Center</th>
    <th>Mobile Number</th>
    <th>New Department</th>
      <th>New Service Center</th>
       <th>Action</th>
       
    </tr>
  </thead>
  <tbody>
    <tr ng-repeat="catalogItemValue in data.incidents track by $index">
     <td><a href="alm_hardware.do?sys_id={{catalogItemValue.sys_id}}" target = '_blank' >{{catalogItemValue.assettag}}</a></td>
      <td><a>{{catalogItemValue.department}}</a></td>
         <td><a>{{catalogItemValue.assignedto}}</a></td>
      <td>{{catalogItemValue.servicecenter}}</td>
 <td><a>{{catalogItemValue.mobileno}}</a></td>
            <td>
               
        <span class="fa fa-asterisk mandatory" ng-class="{'mandatory-filled': field.mandatory_filled()}" style="padding-right: .25em" aria-label="Mandatory " aria-hidden="false"></span>
             <sn-record-picker 
                             field="department"  
                             table="'cmn_department'" 
                             placeholder="${Select a new department}" 
                             display-field="'name'" 
                             value-field="sys_id" 
                             search-fields="'name'" 
                             >
             
        </sn-record-picker>
           <!--    <sn-record-picker field="department"   table="'cmn_department'" display-field="'name'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker> -->

      </td>
               <input name="myInputModel" class="form-control" ng-model="c.data.reason" type="hidden" />
       <td>
            <span class="fa fa-asterisk mandatory" ng-class="{'mandatory-filled': field.mandatory_filled()}" style="padding-right: .25em" aria-label="Mandatory " aria-hidden="false"></span>
     <sn-record-picker 
                        field="u_name" 
                        table="'u_service_centers'" 
                        placeholder="${Select a new service center}" 
                        display-field="'u_name'" value-field="'sys_id'" 
                        search-fields="'u_name'" 
                         >
        </sn-record-picker>  
         <!--  <sn-record-picker field="serviceCenter" table="'u_service_centers'" display-field="'u_name'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker> -->
               
      </td>
      
             
               <input name="myInputModel2" class="form-control" ng-model="c.data.servicecenter" type="hidden" />
  <td> 
    
    <button type="button" class="btn btn-primary"  ng-click="updatePrice(catalogItemValue.sys_id,myInputModel,myInputModel2)" >SUBMIT</button>

</tr>
  </tbody>
</table>
</form>
<!--
<script>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Put whatever text you want here</h4>
</div>
<div class="panel-body wrapper-xl">
Thank you {{c.data.name}}, a ticket has been created on your behalf.<p>
<b><font size='4'>You are number {{c.data.count}} in the queue.</font size></b><p>
You will now be redirected to the Service Portal Home page.
</div>
</div>
</div>
</script>
-->
</div>
  

CLIENT:

function($scope, spUtil) {
var c = this;
    
$scope.$on('record.updated', function(name, data) {
spUtil.update($scope);
});
var department = '';
$scope.$on("field.change", function(evt, parms) {
confirm(parms.field.name + ' parms.newValue ' + parms.newValue + ' parms.displayValue ' + parms.displayValue);
//if (parms.field.name == 'reason_picker'){
    department = parms.displayValue;
c.data.reason = parms.newValue;
  c.server.update().then(function(response) {         

               spUtil.update($scope);

       })
//}

});
    $scope.$on('record.updated', function(name, data) {
spUtil.update($scope);
});
    var servicecenter = '';
$scope.$on("field.change", function(evt, parms) {
confirm(parms.field.name + ' parms.newValue ' + parms.newValue + ' parms.displayValue ' + parms.displayValue);
//if (parms.field.name == 'reason_picker'){
    servicecenter = parms.displayValue;
c.data.servicecenter = parms.newValue;
  c.server.update().then(function(response) {         

               spUtil.update($scope);

       })
//}

});
    
  var c = this;

    $scope.updatePrice = function(newPrice, catItemName, sysiD, value,index,priceValue,OldPrice) {
spUtil.addInfoMessage("Record has been Updated Successfully!");
        //alert('Catalog Item: ' + catItemName+'`s price has been changed from $'+OldPrice + " to $"+ priceValue );
        c.data.selected = $scope.selection;
        c.data.newPrice = newPrice;
        c.data.sysID = sysiD
        c.data.value = value;
        c.data.index = index;
        c.server.update(c.data).then(function() {});
        spUtil.update($scope);
    }

    $scope.data.selection = [];
    $scope.selectedList = function(y) {
        alert(y);
    }

}

SERVER:

(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
var grlogged = gs.getUser().getDepartmentID();
gs.log('dl Mobile input evt ' + input.reason);
data.incidents = [];
var gr = new GlideRecord('alm_hardware');
//gr.orderBy('category');
//gr.addActiveQuery();
gr.addEncodedQuery("^u_device_type=Cell Phone");
gr.addQuery('department', grlogged);
gr.query();
var grcount = gr.getRowCount();
while (gr.next()) {
var catalogItemValue = {};
catalogItemValue.assettag = gr.getDisplayValue('asset_tag');
catalogItemValue.department = gr.getDisplayValue('department');
catalogItemValue.assignedto = gr.getDisplayValue('assigned_to');
catalogItemValue.servicecenter = gr.getDisplayValue('u_service_center');
catalogItemValue.mobileno = gr.getDisplayValue('u_mobile');
catalogItemValue.sys_id = gr.getUniqueValue();
data.incidents.push(catalogItemValue);
}

if(input.newPrice){
//gs.log('input.myInputModel'+input.myInputModel + ' value returns '+input.myInputModel[input.index]);
    //var priceEntered = input.myInputModel[input.index];
//if(priceEntered != 0){
    
    var gr1 = new GlideRecord('alm_hardware');
    if(gr1.get(input.newPrice)){
        
        gr1.department = input.reason;
        gr1.u_service_center = input.servicecenter;
        gr1.update();
        
        
    }}
//}


})();
0 REPLIES 0