EOS/Scripts/out/files/Ticket_TicketAdministrationReassign.js.html
Nidhi Bhargava f0c1ab20e1 code push
2025-09-04 16:25:07 +05:30

814 lines
36 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Ticket\TicketAdministrationReassign.js</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
</head>
<body class="yui3-skin-sam">
<div id="doc">
<div id="hd" class="yui3-g header">
<div class="yui3-u-3-4">
<h1><img src="../assets/css/logo.png" title=""></h1>
</div>
<div class="yui3-u-1-4 version">
<em>API Docs for: </em>
</div>
</div>
<div id="bd" class="yui3-g">
<div class="yui3-u-1-4">
<div id="docs-sidebar" class="sidebar apidocs">
<div id="api-list">
<h2 class="off-left">APIs</h2>
<div id="api-tabview" class="tabview">
<ul class="tabs">
<li><a href="#api-classes">Classes</a></li>
<li><a href="#api-modules">Modules</a></li>
</ul>
<div id="api-tabview-filter">
<input type="search" id="api-filter" placeholder="Type to filter APIs">
</div>
<div id="api-tabview-panel">
<ul id="api-classes" class="apis classes">
<li><a href="../classes/CallFeedbackRating.html">CallFeedbackRating</a></li>
<li><a href="../classes/CloseTicketReport.html">CloseTicketReport</a></li>
<li><a href="../classes/ConsolidatedReport.html">ConsolidatedReport</a></li>
<li><a href="../classes/CustomerReport.html">CustomerReport</a></li>
<li><a href="../classes/DealerWiseCallDetails.html">DealerWiseCallDetails</a></li>
<li><a href="../classes/DeclinedCalls.html">DeclinedCalls</a></li>
<li><a href="../classes/DropDownData.html">DropDownData</a></li>
<li><a href="../classes/EicherPromise.html">EicherPromise</a></li>
<li><a href="../classes/EosCallCount.html">EosCallCount</a></li>
<li><a href="../classes/GeoAnalysis.html">GeoAnalysis</a></li>
<li><a href="../classes/HdBusLmdContrCallFeedbackRatingibution.html">HdBusLmdContrCallFeedbackRatingibution</a></li>
<li><a href="../classes/HdBusLmdContribution.html">HdBusLmdContribution</a></li>
<li><a href="../classes/HistoryTracking.html">HistoryTracking</a></li>
<li><a href="../classes/LiveTracking.html">LiveTracking</a></li>
<li><a href="../classes/ManageEscalation.html">ManageEscalation</a></li>
<li><a href="../classes/ManageFleet.html">ManageFleet</a></li>
<li><a href="../classes/ManageFleet_Detail.html">ManageFleet_Detail</a></li>
<li><a href="../classes/ManageFleet_details.html">ManageFleet_details</a></li>
<li><a href="../classes/ManageOwner.html">ManageOwner</a></li>
<li><a href="../classes/ManageReason.html">ManageReason</a></li>
<li><a href="../classes/ManageVechile.html">ManageVechile</a></li>
<li><a href="../classes/ManageVehicle.html">ManageVehicle</a></li>
<li><a href="../classes/NonVecvUserManagement.html">NonVecvUserManagement</a></li>
<li><a href="../classes/Notifications.html">Notifications</a></li>
<li><a href="../classes/OpenTicketReport.html">OpenTicketReport</a></li>
<li><a href="../classes/OrganizationChart.html">OrganizationChart</a></li>
<li><a href="../classes/PositioningTool.html">PositioningTool</a></li>
<li><a href="../classes/PositioningTool_Report.html">PositioningTool_Report</a></li>
<li><a href="../classes/ReasonForClosure.html">ReasonForClosure</a></li>
<li><a href="../classes/Report.html">Report</a></li>
<li><a href="../classes/ShowDealerMap.html">ShowDealerMap</a></li>
<li><a href="../classes/TicketAdministration.html">TicketAdministration</a></li>
<li><a href="../classes/TicketAdministration_FullDetail.html">TicketAdministration_FullDetail</a></li>
<li><a href="../classes/TicketFeedback.html">TicketFeedback</a></li>
<li><a href="../classes/TicketForDealer.html">TicketForDealer</a></li>
<li><a href="../classes/TicketForDealer_FullDetails.html">TicketForDealer_FullDetails</a></li>
<li><a href="../classes/TicketReassign.html">TicketReassign</a></li>
<li><a href="../classes/TileDashboard.html">TileDashboard</a></li>
<li><a href="../classes/TimeSlotClosure.html">TimeSlotClosure</a></li>
<li><a href="../classes/TollFreeAndOpportunityLoss.html">TollFreeAndOpportunityLoss</a></li>
<li><a href="../classes/VanCoverageDesigner.html">VanCoverageDesigner</a></li>
<li><a href="../classes/VecvUserManagement.html">VecvUserManagement</a></li>
</ul>
<ul id="api-modules" class="apis modules">
<li><a href="../modules/Dashboard.html">Dashboard</a></li>
<li><a href="../modules/DropDownData.html">DropDownData</a></li>
<li><a href="../modules/Geo.html">Geo</a></li>
<li><a href="../modules/Inventory.html">Inventory</a></li>
<li><a href="../modules/Notifications.html">Notifications</a></li>
<li><a href="../modules/ReportModule.html">ReportModule</a></li>
<li><a href="../modules/Ticket.html">Ticket</a></li>
<li><a href="../modules/TrackingModule.html">TrackingModule</a></li>
<li><a href="../modules/UserManagement.html">UserManagement</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui3-u-3-4">
<div id="api-options">
Show:
<label for="api-show-inherited">
<input type="checkbox" id="api-show-inherited" checked>
Inherited
</label>
<label for="api-show-protected">
<input type="checkbox" id="api-show-protected">
Protected
</label>
<label for="api-show-private">
<input type="checkbox" id="api-show-private">
Private
</label>
<label for="api-show-deprecated">
<input type="checkbox" id="api-show-deprecated">
Deprecated
</label>
</div>
<div class="apidocs">
<div id="docs-main">
<div class="content">
<h1 class="file-heading">File: Ticket\TicketAdministrationReassign.js</h1>
<div class="file">
<pre class="code prettyprint linenums">
/*================================================================================================================\
+
+ Project : GoData-Eicher
+ Filename : TicketAdministrationReassign.js
+ Module Name : Ticket
+ Purpose : For ticket reassign
+ Coded By : Parul Gupta
+
+================================================================================================================*/
/**
* For ticketing
* @module Ticket
*/
/**
* This class contains functionality of Ticket Reassign for CCE.
* @class TicketReassign
* @constructor
*/
//Global variables
var xhr_addNewTicket;
var breakdownLocLatLng;
var breakdownMarker;
var _ccplMap = null;
var _geoCoder;
var _defaultLat = 26.912285124827,
_defaultLng = 75.7873203125
//initialize markers
var _availableVansMarkers = &#x27;../../Content/css/images/avil-van.png&#x27;; //marker for available vans
var _unavailableVansMarkers = &#x27;../../Content/css/images/unavl-van.png&#x27;; //marker for unavailable vans
var _dealerMarker = &#x27;../../Content/css/images/dealer-icon.png&#x27;; //marker for dealers
var breakdownLat, breakdownLng, breakdownState, ticketId, defaultSlatime, vRegistrationNo;
//Google Distance MAtrix Service API
var _service = new google.maps.DistanceMatrixService();
var _detailsListOfVanDealer = []; //array of objects of details of nearest vans and dealers
var _vanDealerLatLngArr = []; //array of nearest vans and dealers lat lng
var _copyResulEls = [];
/**
* Load google map on page.
* @method initMap
* @param {String} id HTML element id where map is loaded.
* @for TicketReassign
*/
function _initMap(id) {
var _mapOptions = {
center: new google.maps.LatLng(_defaultLat, _defaultLng),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
//initialize map
_ccplMap = new google.maps.Map(document.getElementById(id), _mapOptions);
}
/**
* Function to reassign ticket
* @method reassignTicket
* @for TicketReassign
*/
function reassignTicket() {
breakdownLat = $(&quot;#breakdownLattitude&quot;).val();
breakdownLng = $(&quot;#breakdownLongitude&quot;).val();
breakdownState = $(&quot;#breakdownState&quot;).val();
ticketId = $(&quot;#ticketid&quot;).val();
defaultSlatime = $(&quot;#defaultSlaTime&quot;).val();
vRegistrationNo = $(&quot;#vRegistrationNo&quot;).val();
breakdownLocLatLng = new google.maps.LatLng(breakdownLat, breakdownLng);
$.ajax({
type: &quot;GET&quot;,
url: &quot;/Ticket/TicketAdministration_ReassignTicket/&quot;,
success: function (data) {
$(&quot;#divReassignTicket&quot;).html(&#x27;&#x27;);
$(&quot;#divReassignTicket&quot;).html(data);
//open form in new dialog box
$(&quot;#divReassignTicket&quot;).data(&quot;kendoWindow&quot;).open();
},
complete: function () {
setTimeout(function () { /* get all nearest vans and dealers */ getAllNearestVansDealers(breakdownState); }, 1500);
},
error: function (data) {
console.log(data);
}
});
}
/**
* Function to close kendo window
* @method closeWindow
* @param {String} divId HTML element id where window is loaded
* @for TicketReassign
*/
function closeWindow(divId) {
$(divId).data(&quot;kendoWindow&quot;).close();
}
/**
* Function to empty van dealer array
* @method emptyVanDealerArray
* @for TicketReassign
*/
function emptyVanDealerArray() {
if (nearestVansDealersMarks.length &gt; 0) {
//console.log(nearestVansDealersMarks.length);
for (var counter = 0; counter &lt; nearestVansDealersMarks.length; counter++) {
nearestVansDealersMarks[counter].setMap(null);
//set address text field empty here
nearestVansDealersMarks[counter] = &quot;&quot;;
}
nearestVansDealersMarks = [];
}
}
/**
* Function to remove markers if any
* @method removeMarker
* @for TicketReassign
*/
function removeMarker() {
//Remove previous marker if present
if (breakdownMarker) {
breakdownMarker.setMap(null);
//set address text field empty here
breakdownMarker = &quot;&quot;;
}
}
//Global variables to get more than 25 vans/dealers
var _arrOf25VanDealerLatLng = [];
var _arrOf25VanDealerDetails = [];
var _LIMIT = 100;
/**
* Function to get all nearest vans and dealers for reassign ticket
* @method getAllNearestVansDealers
* @param {String} state The name of selected state
* @for TicketReassign
*/
function getAllNearestVansDealers(state) {
var stateName, stateId, vanDealerLatlng, type, VDId, vanDealerLat, vanDealerLng, vanDealerCity,
vanDealerName, vanDealerState, deviceAlias, vanRemainingTime, deviceStatus, noOfAssignedTickets, description;
stateName = state;
//empty van dealer lat lng array
if (_vanDealerLatLngArr.length &gt; 0) {
_vanDealerLatLngArr = [];
}
//empty details list of van dealer array
if (_detailsListOfVanDealer.length &gt; 0) {
_detailsListOfVanDealer = [];
}
//empty array to get next 25 vans/dealers details.
_copyResulEls = [];
removeMarker();
emptyVanDealerArray();
//Create a new Marker on the position click on the map
breakdownMarker = new google.maps.Marker({
position: breakdownLocLatLng,
map: _ccplMap
});
$.ajax({
type: &quot;GET&quot;,
url: &quot;/Ticket/GetAllNearestVansDealers/&quot;,
data: { StateName: stateName, limit: _LIMIT },
success: function (data) {
console.log(data.NearestVansDealers);
if (data.NearestVansDealers.length &gt; 0) {
_vanDealerLatLngArr.length = 0;
for (var counter = 0; counter &lt; data.NearestVansDealers.length; counter++) {
var title, markerIcon, backgroundColor;
var updatedDeviceStatus = &quot;&quot;;
var _vanDealerObj = {};
vanDealerLatlng = new google.maps.LatLng(data.NearestVansDealers[counter].DealerVanLattitude, data.NearestVansDealers[counter].DealerVanLongitude);
type = data.NearestVansDealers[counter].Type;
VDId = data.NearestVansDealers[counter].DealerVanId;
vanDealerLat = data.NearestVansDealers[counter].DealerVanLattitude;
vanDealerLng = data.NearestVansDealers[counter].DealerVanLongitude;
vanDealerCity = data.NearestVansDealers[counter].DealerVanCity;
noOfAssignedTickets = data.NearestVansDealers[counter].NoOfAssignedTicket;
vanDealerName = data.NearestVansDealers[counter].DealerVanName;
vanDealerState = data.NearestVansDealers[counter].DealerVanState;
deviceAlias = data.NearestVansDealers[counter].DeviceAlias;
vanRemainingTime = data.NearestVansDealers[counter].RemainingTime;
deviceStatus = data.NearestVansDealers[counter].DeviceStatus;
//check if remaining time is negative
if (vanRemainingTime == null || vanRemainingTime == &quot;&quot;) {
vanRemainingTime = &quot;0&quot;;
}
else {
if (vanRemainingTime.indexOf(&#x27;-&#x27;) === -1) {
vanRemainingTime = vanRemainingTime;
} else {
vanRemainingTime = &quot;0&quot;;
}
}
if ((deviceStatus == &quot;True&quot;) &amp;&amp; (type == &quot;van&quot;)) {
updatedDeviceStatus = &quot;green-circle&quot;;
}
else if ((deviceStatus == &quot;False&quot;) &amp;&amp; (type == &quot;van&quot;)) {
updatedDeviceStatus = &quot;red-circle&quot;;
} else {
updatedDeviceStatus = &quot;&quot;;
}
if (vanRemainingTime == &quot;0&quot;) {
backgroundColor = &quot;green&quot;;
}
else {
backgroundColor = &quot;red&quot;;
}
//push van dealer lat lng in array
_vanDealerLatLngArr.push(vanDealerLatlng);
_vanDealerObj.type = type;
_vanDealerObj.id = VDId;
_vanDealerObj.lat = vanDealerLat;
_vanDealerObj.lng = vanDealerLng;
_vanDealerObj.city = vanDealerCity;
_vanDealerObj.assignedTickets = noOfAssignedTickets;
_vanDealerObj.name = vanDealerName;
_vanDealerObj.state = vanDealerState;
_vanDealerObj.alias = deviceAlias;
_vanDealerObj.remainingTime = vanRemainingTime;
_vanDealerObj.deviceStatus = updatedDeviceStatus;
_vanDealerObj.backGroundColor = backgroundColor;
//push van dealer details in array
_detailsListOfVanDealer.push(_vanDealerObj);
}
var forLoopLength, multiplier = 1, waitIndex = 0, setTimeOutSeconds;
var vanDealerLatLngArrLength = _vanDealerLatLngArr.length;
if (breakdownLocLatLng != &quot;&quot;) {
if (_vanDealerLatLngArr.length &lt; 25 &amp;&amp; _vanDealerLatLngArr.length &gt; 0) {
forLoopLength = 1;
} else {
if ((_vanDealerLatLngArr.length % 25) &gt; 0) {
forLoopLength = parseInt((_vanDealerLatLngArr.length / 25), 10) + 1;
} else if ((_vanDealerLatLngArr.length % 25) == 0) {
forLoopLength = parseInt((_vanDealerLatLngArr.length / 25), 10);
}
}
var z;
if (forLoopLength == 1) {
_arrOf25VanDealerLatLng = [];
_arrOf25VanDealerDetails = [];
for (var i = 0; i &lt; _vanDealerLatLngArr.length; i++) {
_arrOf25VanDealerLatLng.push(_vanDealerLatLngArr[i]);
_arrOf25VanDealerDetails.push(_detailsListOfVanDealer[i]);
}
_calcRouteDistance(breakdownLocLatLng, _arrOf25VanDealerLatLng, _arrOf25VanDealerDetails);
setTimeout(function () {
_createVanDealerSortedList();
}, 1000);
} else {
for (var i = 0; i &lt; forLoopLength; i++) {
setTimeOutSeconds = waitIndex * multiplier;
if (vanDealerLatLngArrLength &lt; 25) { z = 0; } else { z = vanDealerLatLngArrLength - 25; }
_arrOf25VanDealerLatLng = [];
_arrOf25VanDealerDetails = [];
for (var j = vanDealerLatLngArrLength; j &gt; z; j--) {
_arrOf25VanDealerLatLng.push(_vanDealerLatLngArr[j - 1]);
_arrOf25VanDealerDetails.push(_detailsListOfVanDealer[j - 1]);
}
vanDealerLatLngArrLength = vanDealerLatLngArrLength - 25;
_calculateDistanceInSetTimeOut(breakdownLocLatLng, _arrOf25VanDealerLatLng, _arrOf25VanDealerDetails, setTimeOutSeconds);
waitIndex++;
}
_createVanDealerList();
}
}
}
},
error: function (data) {
console.log(data);
}
});
}
/**
* SetTimeOut function to calculate distance between van and dealer using google distance matrix api
* @method _calculateDistanceInSetTimeOut
* @param {String} breakDownLatLng LatLng of breakdown vehicle
* @param {array} arrVanDealerLatLng LatLng of vans / dealers
* @param {array} arrVanDealerDetails details of vans/dealers
* @param {String} timeOutSeconds time in seconds for setTimeout function
* @for TicketReassign
*/
function _calculateDistanceInSetTimeOut(breakDownLatLng, arrVanDealerLatLng, arrVanDealerDetails, timeOutSeconds) {
setTimeout(function () {
_calcRouteDistance(breakDownLatLng, arrVanDealerLatLng, arrVanDealerDetails);
}, timeOutSeconds);
}
/**
* setTimeOut function to create sorted van dealer list
* @method _createVanDealerList
* @for TicketReassign
*/
function _createVanDealerList() {
setTimeout(function () {
_createVanDealerSortedList();
}, 1000);
}
/**
* Function to reassign ticket to a van / dealer
* @method reAssignVan
* @param {String} index The index no. of selected van / dealer
* @for TicketReassign
*/
function reAssignVan(index) {
$(&quot;#displayVansDealersTable_reassign&quot;).find(&#x27;tr&#x27;).removeClass(&#x27;showMarked&#x27;);
$(&quot;#displayVansDealersTable_reassign&quot;).find(&#x27;tr:nth-child(&#x27; + (index + 2) + &#x27;)&#x27;).addClass(&#x27;showMarked&#x27;);
//create object of ticket model
var TicketModel = {};
TicketModel.TicketId = ticketId;
TicketModel.Description = &quot;&quot;;
TicketModel.listDescription = {};
TicketModel.AssignedTo = $(&#x27;#displayVansDealersTable_reassign tr:eq(&#x27; + (index + 1) + &#x27;) &gt; td:eq(1)&#x27;).text();
TicketModel.ReportedVia = &quot;&quot;;
if (TicketModel.AssignedTo == &quot;van&quot;) {
TicketModel.TicketStatus = 1;
}
else {
TicketModel.TicketStatus = 2;
}
TicketModel.Priority = 0;
TicketModel.CustomerScore = &quot;&quot;;
TicketModel.CreatedBy = &quot;&quot;;
TicketModel.CreationTime = &quot;&quot;;
TicketModel.LastModifiedBy = &quot;&quot;;
TicketModel.LastModifiedTime = &quot;&quot;;
TicketModel.BreakdownLocation = &quot;&quot;;
TicketModel.BreakdownLongitude = &quot;&quot;;
TicketModel.BreakdownLattitude = &quot;&quot;;
TicketModel.AssignedToUserId = $(&#x27;#displayVansDealersTable_reassign tr:eq(&#x27; + (index + 1) + &#x27;) &gt; td:eq(2)&#x27;).text();
TicketModel.AssignedToUserLattitude = _copyResulEls[index].lat;
TicketModel.AssignedToUserLongitude = _copyResulEls[index].lng;
TicketModel.Isdeclined = false;
TicketModel.EstimatedTimeForJobCompletion = &quot;&quot;;
TicketModel.TotalTicketLifecycleTimeSla = &quot;&quot;;
TicketModel.EstimatedTimeForJobCompletionSubmitTime = &quot;&quot;;
TicketModel.VehicleRegisterNumber = &quot;&quot;;
TicketModel.BreakdownLocationLandmark = &quot;&quot;;
TicketModel.RouteId = &quot;&quot;;
TicketModel.CustomerContactNo = &quot;&quot;;
TicketModel.TicketStatusAlias = &quot;&quot;;
TicketModel.Token = &quot;&quot;;
TicketModel.Status = &quot;&quot;;
TicketModel.Message = &quot;&quot;;
TicketModel.UtcMinute = 0;
TicketModel.RepairCost = &quot;&quot;;
TicketModel.DefaultSlaTime = defaultSlatime;
TicketModel.SlaMissedReason = &quot;&quot;;
TicketModel.SuggestionComment = &quot;&quot;;
TicketModel.JobCompleteResponseTime = &quot;&quot;;
TicketModel.DefaultCol2 = &quot;&quot;;
TicketModel.DefaultCol3 = &quot;&quot;;
//distance
var distanceInKm = $(&#x27;#displayVansDealersTable_reassign tr:eq(&#x27; + (index + 1) + &#x27;) &gt; td:eq(5)&#x27;).text();
var lastIndex = distanceInKm.lastIndexOf(&quot; km&quot;);
var distance = distanceInKm.substring(0, lastIndex);
TicketModel.EstimateDistance = distance;
//Send POST request with the ticket data
if (xhr_addNewTicket &amp;&amp; xhr_addNewTicket.readystate != 4) {
xhr_addNewTicket.abort();
}
xhr_addNewTicket = $.ajax({
type: &quot;POST&quot;,
url: &quot;/Ticket/TicketAdministration_UpdateTicketOpenClose/&quot;,
data: TicketModel,
success: function (data) {
if (data.success == true) {
$.ajax({
type: &quot;POST&quot;,
url: &quot;/Ticket/TicketAdministration_GetTicketHistory/&quot;,
data: { registrationNo: vRegistrationNo, mobileNo: &quot;&quot;, complaintNo: &quot;&quot; },
success: function (data) {
if (data.fillFieldMesseage) {
jAlert(data.fillFieldMesseage, &#x27;Message&#x27;);
}
else {
$(&quot;#divCheckHistory&quot;).html(data);
if (document.getElementById(&#x27;tableTicketHistory&#x27;)) {
$(&quot;#tableTicketHistory &gt; tbody &gt; tr[id=&#x27;&quot; + (ticketId).toUpperCase() + &quot;&#x27;]&quot;).trigger(&quot;click&quot;);
}
}
},
error: function (data) {
console.log(data);
}
});
}
},
complete: function () {
closeWindow(&quot;#divReassignTicket&quot;);
},
error: function (data) {
console.log(data);
}
});
}
/**
* Function to calculate route distance
* @method _calcRouteDistance
* @param {String} origin The location of origin(van / dealer)
* @param {String} destinationArr The location of destination(vehicle&#x27;s breakdown)
* @for TicketReassign
*/
function _calcRouteDistance(origin, destinationArr, vanDealerDetailsArr) {
_service.getDistanceMatrix({
origins: [origin],
destinations: destinationArr,
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, _distanceMatrixCallback);
//Callback for Distance Matrix API
function _distanceMatrixCallback(response, status) {
//If Status was an error, throw alert
if (status != google.maps.DistanceMatrixStatus.OK) {
alert(&#x27;Error was: &#x27; + status);
} else {
//Result ELements response from Distance Matrinx
var _resultEls = response.rows[0].elements;
//Add vanId and vanAddress to the response
for (var i = 0; i &lt; _resultEls.length; i++) {
if (_resultEls[i].status == &quot;OK&quot;) {
_resultEls[i].vanDealerAddress = response.destinationAddresses[i];
_resultEls[i].vanDealerID = vanDealerDetailsArr[i].id;
_resultEls[i].type = vanDealerDetailsArr[i].type;
_resultEls[i].lat = vanDealerDetailsArr[i].lat;
_resultEls[i].lng = vanDealerDetailsArr[i].lng;
_resultEls[i].city = vanDealerDetailsArr[i].city;
_resultEls[i].assignedTicketsToVanDealer = vanDealerDetailsArr[i].assignedTickets;
_resultEls[i].name = vanDealerDetailsArr[i].name;
_resultEls[i].state = vanDealerDetailsArr[i].state;
_resultEls[i].alias = vanDealerDetailsArr[i].alias;
_resultEls[i].remainingTime = vanDealerDetailsArr[i].remainingTime;
_resultEls[i].deviceStatus = vanDealerDetailsArr[i].deviceStatus;
_resultEls[i].backgroundColor = vanDealerDetailsArr[i].backGroundColor;
}
}
for (var counter = 0; counter &lt; _resultEls.length; counter++) {
if (_resultEls[counter].status == &quot;OK&quot;) {
_copyResulEls.push(_resultEls[counter]);
}
}
}
}
}
/**
* This fn create sorted van dealer list
* @method _createVanDealerSortedList
* @for TicketReassign
*/
function _createVanDealerSortedList() {
//Sort our Array according to the duration values in ascending order. [See: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort for more reference]
_copyResulEls.sort(function (a, b) {
var reg = new RegExp(&#x27;^[0-9]+$&#x27;);
if (a.status == &quot;OK&quot; &amp;&amp; b.status == &quot;OK&quot;) {
//console.log(a, b);
var k1 = a.duration.value;
var k2 = b.duration.value;
if (reg.test(k1) == true &amp;&amp; reg.test(k2) == true) {
if (k1 &gt; k2) {
return 1;
} else {
return -1;
}
}
}
else {
return -1;
}
return 0;
});
$(&quot;#tableVansDealers_reassign&quot;).html(&#x27;&#x27;);
//var to hold table String to show in dialog-form
var _trString = &#x27;&#x27;;
//Loop through length of result vans array values of resultEl
for (var i = 0; i &lt; _copyResulEls.length; i++) {
//if i===0, add html for table.
if (_copyResulEls[i].status == &quot;OK&quot;) {
var _markerIcon;
if (i === 0) {
_trString += &#x27;&lt;table id=&quot;displayVansDealersTable_reassign&quot; class=&quot;modalTable&quot;&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;S. No.&lt;/th&gt;&lt;th&gt;Van/Dealer&lt;/th&gt;&lt;th style=&quot;display:none;&quot;&gt;Van/Dealer Id&lt;/th&gt;&lt;th&gt;Van/Dealer Name&lt;/th&gt;&lt;th style=&quot;width:25%;&quot;&gt;Van/Dealer Location&lt;/th&gt;&lt;th&gt;Distance&lt;/th&gt;&lt;th&gt;Duration&lt;/th&gt;&lt;th&gt;No. of Open Tickets&lt;/th&gt;&lt;th&gt;Remaining Time(in mins)&lt;/th&gt;&lt;th&gt;Is Connected&lt;/th&gt;&lt;th &gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&#x27;;
}
//add each row
_trString += &#x27;&lt;tr id=&quot;&#x27; + _copyResulEls[i].vanDealerID + &#x27;&quot;&gt;&lt;td style=&quot;box-shadow: 4px 0px 0px &#x27; + _copyResulEls[i].backgroundColor + &#x27; inset;&quot; &gt;&#x27; + (i + 1) + &#x27;&lt;/td&gt;&lt;td &gt;&#x27; + _copyResulEls[i].type + &#x27;&lt;/td&gt;&lt;td style=&quot;display:none;&quot;&gt;&#x27; + _copyResulEls[i].vanDealerID + &#x27;&lt;/td&gt;&lt;td&gt;&#x27; + _copyResulEls[i].name + &#x27;&lt;/td&gt;&lt;td&gt;&#x27; + _copyResulEls[i].vanDealerAddress + &#x27;&lt;/td&gt;&lt;td&gt;&#x27; + _copyResulEls[i].distance.text + &#x27;&lt;/td&gt;&lt;td&gt;&#x27; + _copyResulEls[i].duration.text + &#x27;&lt;/td&gt;&lt;td&gt;&#x27; + _copyResulEls[i].assignedTicketsToVanDealer + &#x27;&lt;/td&gt;&lt;td&gt;&#x27; + _copyResulEls[i].remainingTime + &#x27;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;&#x27; + _copyResulEls[i].deviceStatus + &#x27;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;button class=&quot;button_blue&quot;, style=&quot;width:77px;&quot; onclick=&quot;reAssignVan(&#x27; + i + &#x27;);&quot;&gt;Re-Assign&lt;/button&gt;&lt;/td&gt;&lt;/tr&gt;&#x27;;
//if i===2, end table tag.
if (i === _copyResulEls.length) {
$(&quot;#tableVansDealers_reassign&quot;).append(&#x27;&lt;/tbody&gt;&lt;/table&gt;&#x27;);
}
//add content to info window
var description = &#x27;&lt;div id=&quot;divInfoWindow&quot;&gt;&#x27; +
&#x27;&lt;div class=&quot;&quot;&gt;&#x27; +
&#x27; &lt;div class=&quot;&quot;&gt;&#x27; +
&#x27;&lt;h2 class=&quot;EngName_heading&quot;&gt;&lt;span id=&quot;spanVanDealerName&quot;&gt;&#x27; + _copyResulEls[i].name + &#x27;&lt;/span&gt;&lt;/h2&gt;&#x27; +
&#x27;&lt;table width=&quot;100%&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;InfoWindowTbl&quot;&gt;&#x27; +
&#x27;&lt;tbody&gt;&#x27; +
&#x27;&lt;tr&gt;&#x27; +
&#x27;&lt;td class=&quot;&quot;&gt;&lt;span&gt;Van/Dealer Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan=&quot;5&quot;&gt;&lt;span id=&quot;spanVanDealerLocation&quot;&gt;&#x27; + _copyResulEls[i].vanDealerAddress + &#x27;&lt;/span&gt;&#x27; +
&#x27;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span&gt;Distance&lt;/span&gt;&lt;/td&gt; &lt;td&gt; &lt;span id=&quot;spanVanDealerDistance&quot;&gt;&#x27; + _copyResulEls[i].distance.text + &#x27;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span&gt;Duration&lt;/span&gt; &lt;/td&gt;&lt;td&gt;&lt;span id=&quot;spanVanDealerDuration&quot;&gt;&#x27; + _copyResulEls[i].duration.text + &#x27;&lt;/span&gt;&#x27; +
&#x27;&lt;/td&gt;&lt;td class=&quot;&quot;&gt; &lt;span&gt;No. of Open Tickets&lt;/span&gt; &lt;/td&gt; &lt;td&gt; &lt;span id=&quot;spanNoOfAssignedTickets&quot;&gt;&#x27; + _copyResulEls[i].assignedTicketsToVanDealer + &#x27;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#x27;;
if (_copyResulEls[i].type == &quot;dealer&quot;) {
_markerIcon = dealerMarker;
}
else {
if (_copyResulEls[i].backgroundColor == &#x27;green&#x27;) {
_markerIcon = _availableVansMarkers;
} else {
_markerIcon = _unavailableVansMarkers;
}
}
var _vanDealerLatlng = new google.maps.LatLng(_copyResulEls[i].lat, _copyResulEls[i].lng);
//create marker at position
createMarker(_vanDealerLatlng, _markerIcon, _copyResulEls[i].vanDealerID, description, _ccplMap);
}
}
var _bounds = new google.maps.LatLngBounds();
for (var count = 0; count &lt; nearestVansDealersMarks.length; count++) {
_bounds.extend(nearestVansDealersMarks[count].position);
}
_ccplMap.fitBounds(_bounds);
//Append the _trString created in the dialog-form
$(&quot;#tableVansDealers_reassign&quot;).append(_trString);
//On click of row of Vans / dealers table
$(&quot;#displayVansDealersTable_reassign &gt; tbody &gt; tr&quot;).click(function (e) {
var rowId = e.currentTarget.id;
if (infowindow) {
infowindow.close();
}
$(&quot;#displayVansDealersTable_reassign&quot;).find(&#x27;tr&#x27;).removeClass(&#x27;showMarked&#x27;);
$(&quot;#displayVansDealersTable_reassign&quot;).find(&#x27;tr[id=&#x27; + rowId + &#x27;]&#x27;).addClass(&#x27;showMarked&#x27;);
var _selectedVanDealerLat, _selectedVanDealerLng, _vehicleLatLng, _selectedVanDealerLatLng, _selectedVanDealerType;
var _selectedVanDealerId = e.currentTarget.id;
for (var counter = 0; counter &lt; nearestVansDealersMarks.length; counter++) {
if (nearestVansDealersMarks[counter].customInfo == _selectedVanDealerId) {
stopMarkerBounce();
getMarkerBounce(nearestVansDealersMarks[counter]);
}
}
for (var count = 0; count &lt; _copyResulEls.length; count++) {
if (_copyResulEls[count].vanDealerID == _selectedVanDealerId) {
_selectedVanDealerLat = _copyResulEls[count].lat;
_selectedVanDealerLng = _copyResulEls[count].lng;
_selectedVanDealerType = _copyResulEls[count].type;
}
}
vehicleLatLng = breakdownLocLatLng;
_selectedVanDealerLatLng = new google.maps.LatLng(_selectedVanDealerLat, _selectedVanDealerLng);
calcRoute(vehicleLatLng, _selectedVanDealerLatLng, _selectedVanDealerType, _ccplMap);
});
//start marker bounce
function getMarkerBounce(vanDealerMarker) {
if (vanDealerMarker.getAnimation() != null) {
vanDealerMarker.setAnimation(null);
} else {
vanDealerMarker.setAnimation(google.maps.Animation.BOUNCE);
}
}
//stop marker bounce
function stopMarkerBounce() {
for (var count = 0; count &lt; nearestVansDealersMarks.length; count++) {
if (nearestVansDealersMarks[count].getAnimation() != null) {
nearestVansDealersMarks[count].setAnimation(null);
}
}
}
}
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="../assets/vendor/prettify/prettify-min.js"></script>
<script>prettyPrint();</script>
<script src="../assets/js/yui-prettify.js"></script>
<script src="../assets/../api.js"></script>
<script src="../assets/js/api-filter.js"></script>
<script src="../assets/js/api-list.js"></script>
<script src="../assets/js/api-search.js"></script>
<script src="../assets/js/apidocs.js"></script>
</body>
</html>