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

1102 lines
44 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Report\AnlysisReport.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: Report\AnlysisReport.js</h1>
<div class="file">
<pre class="code prettyprint linenums">
/*================================================================================================================\
+
+ Project : GODATA-VECV
+ Filename : PositioningTool.js
+ Module Name : GeoModule
+ Purpose : To show the Geo Analysis Report.
+ Coded By : Gourav Jhangikhel
+
+================================================================================================================*/
/**
* To show and export reports.
* @module Geo
*/
/**
* To show geo analysis report.
* @class GeoAnalysis
* @constructor
*/
var vTwmLat = &quot;&quot;;
var vTempLong = &quot;&quot;;
var ArrEOSVAN = new Array();
var ArrOpenTicket = new Array();
var ArrCloseTicket = new Array();
var ArrDealerDetl = new Array();
var ArrSlaNotMeet = new Array();
var ArrSlaMeet = new Array();
var ArrOppurtunity = new Array();
var latlngbounds;
var ccplMapGeo = null,
geoCoder;
var infoWindow = new google.maps.InfoWindow();
var displayDisplay = &quot;&quot;, defaultLat = 26.916877147482698,
defaultLng = 75.81169622802736; //route direction display
var routeDirectionsService = new google.maps.DirectionsService(); //direction google map api
var ZoomLevel = 9;
//initialize markers
var CloseTicketMarker = &#x27;../../Scripts/map_api/icons/AnalysisIcons/slaMeet.png&#x27;; //marker for source
var OpenTicketMarker = &#x27;../../Scripts/map_api/icons/AnalysisIcons/OpenTicketyellow.png&#x27;;
var availableVansMarkers = &#x27;../../Content/css/images/avil-van.png&#x27;; //marker for available vans
var dealerMarker = &#x27;../../Content/css/images/dealer-icon.png&#x27;; //marker for dealers
var slaNotMeetMarkerImage = &quot;../../Scripts/map_api/icons/AnalysisIcons/SlaNotMeet.png&quot;;
var slaMeetMarkerImage = &quot;../../Scripts/map_api/icons/AnalysisIcons/CloseTicketgreen.png&quot;;
var OpportunoityLostImage = &quot;../../Scripts/map_api/icons/AnalysisIcons/Opportunity.png&quot;;
//array of source and destination markers
var openTicketMarkerArray = [];
var closeTicketMarkerArray = [];
var dealerDetailMarkerArray = [];
var vanEOSMarkerArray = [];
var slaNotMeetMarkerArray = [];
var slaMeetMarkerArray = [];
var opportunityLostMarkerArray = [];
// Instance of MarkerClusterer.js.
var masterClusterInstance = &#x27;&#x27;;
// Instance of OverlappingMarkerSpiderfier.js.
var oms = &#x27;&#x27;;
// MarkerClusterer options
var clusterOptions = { gridSize: 60, maxZoom: 9 };
//var vOppUrtunitytoogle = true;
//var vSetSLAMEET = true;
//var vSerSLANOTMeet = true;
var monthNames = [&quot;Jan&quot;, &quot;Feb&quot;, &quot;Mar&quot;, &quot;Apr&quot;, &quot;May&quot;, &quot;Jun&quot;,
&quot;Jul&quot;, &quot;Aug&quot;, &quot;Sep&quot;, &quot;Oct&quot;, &quot;Nov&quot;, &quot;Dec&quot;
];
/**
* Function to Add Kendo Window.
* @method addKendoWindowToDiv
* @param {String} divId Id of Kendo Window
* @param {String} titleText Title Of Kendo Window
* @param {String} width width Of Kendo Window
* @param {String} left left Of Kendo Window
* @param {String} top top Of Kendo Window
* @for GeoAnalysis
*/
function addKendoWindowToDiv(divId, titleText, width, left, top) {
$(divId).kendoWindow({
width: width,
title: titleText,
modal: true,
resizable: false,
draggable: true,
position: {
top: top,
left: left
}
});
}
/**
* Function to Set the Title Of kendo Window.
* @method SetKendoWindowTitle
* @param {String} divId Id of Kendo Window
* @param {String} titleText Title Of Kendo Window
* @for GeoAnalysis
*/
function SetKendoWindowTitle(divId, titleText) {
var dialog = $(divId).data(&quot;kendoWindow&quot;);
dialog.title(titleText);
}
/**
* Function to Close the kendo Window.
* @method closeWindow
* @param {String} divId Id of Kendo Window
* @for GeoAnalysis
*/
function closeWindow(divId) {
$(divId).data(&quot;kendoWindow&quot;).close();
}
/*================================================Map Function=============================================*/
/**
* Load google map on Button Click.
* @method initMapGeo
* @param {String} id HTML element id where map is loaded.
* @for GeoAnalysis
*/
function initMapGeo(id) {
latlngbounds = new google.maps.LatLngBounds(); // Creating Lat-Long bounds instance to fit all the markers on the map
//Empty All Array
vanEOSMarkerArray = [];
openTicketMarkerArray = [];
closeTicketMarkerArray = [];
dealerDetailMarkerArray = [];
// Set Mass By passing the Div Id
SetMap(id);
latlngbounds = new google.maps.LatLngBounds(); // Creating Lat-Long bounds instance to fit all the markers on the map
/*Create a instance of OverlappingMarkerSpiderfier*/
oms = new OverlappingMarkerSpiderfier(ccplMapGeo,
{ markersWontMove: true, markersWontHide: true });
//Put Marker On Map
PutMarker(ArrEOSVAN, availableVansMarkers, false);
PutMarker(ArrDealerDetl, dealerMarker, false);
PutMarker(ArrOpenTicket, OpenTicketMarker, false);
PutMarker(ArrCloseTicket, CloseTicketMarker, false);
//Set Map zoom Level
ccplMapGeo.setZoom(ZoomLevel);
// Set Map in center Acc. to lattitude And Longitude
ccplMapGeo.setCenter({ lat: defaultLat, lng: defaultLng });
//Set All Map Array In One Array so that Cluster Effect will show
var vTempMarkerCluster = vanEOSMarkerArray.concat(openTicketMarkerArray);
vTempMarkerCluster = vTempMarkerCluster.concat(closeTicketMarkerArray);
vTempMarkerCluster = vTempMarkerCluster.concat(dealerDetailMarkerArray);
masterClusterInstance = new MarkerClusterer(ccplMapGeo, vTempMarkerCluster, { maxZoom: 9 });
}
/**
* Complete Calling For Geo Analysis Report.
* @method showReport
* @for GeoAnalysis
*/
function showReport() {
GetDetailFromServer();
initMapGeo(&quot;divMapContainerGeo&quot;);
SetBitTrue();
}
/**
* Function to Put the Marker On Google Map.
* @method PutMarker
* @param {Array} Arr Array That is put On Google Map.
* @param {String} MarkerImagePath Marker Image Path
* @param {boolean} IsAnimation Is Marker will Animate Or not
* @for GeoAnalysis
*/
function PutMarker(Arr, MarkerImagePath, IsAnimation) {
var bounds = new google.maps.LatLngBounds();
// Display multiple markers on a map
ticketDetailsMarkerArray = [];
// Loop through our array of markers &amp; place each one on the map
if (Arr.length &gt; 0) {
for (i = 0; i &lt; Arr.length; i++) {
var position = new google.maps.LatLng(Arr[i].DefaultLattitude, Arr[i].DefaultLongitude);
bounds.extend(position);
var marker = new google.maps.Marker({
position: position,
map: ccplMapGeo,
title: Arr[i].Id,
icon: MarkerImagePath,
Latitude: Arr[i].DefaultLattitude,
Longitude: Arr[i].DefaultLongitude,
ServiceEngineerName: Arr[i].ServiceEnggName,
DealerName: Arr[i].DealerName,
MobileNo: Arr[i].ServiceEnggContactNumber,
VanRegNo: Arr[i].VanRegistrationNumber,
TicketStatus: Arr[i].TicketStatusAlias,
AssignedTo: Arr[i].AssignTo,
TicketCreationDate: Arr[i].CreationTime,
DealerCityName: Arr[i].City,
DealerStateName: Arr[i].State,
lstType: Arr[i].lstType,
SlaMet: Arr[i].SlaMet,
CustomerContactNumber: Arr[i].CustomerContactNumber,
CustomerName: Arr[i].CustomerName,
DealerContact: Arr[i].DealerContact,
IsOppurLost: Arr[i].oppurLost
});
var sourceVan = new google.maps.LatLng(Arr[i].DefaultLattitude, Arr[i].DefaultLongitude); // ceating van lat-long object
latlngbounds.extend(sourceVan); // extending lat-long object
// Add marker to OMS.
oms.addMarker(marker);
/*Add Marker To Cluster*/
//if (IsAnimation)
// marker.setAnimation(google.maps.Animation.BOUNCE);
// In Which Array Marker is Push
//0 : EOS VAN
//1 : Open Ticket
//2 : Close Ticket
//3 : Dealer Detail
//4 : SlA Meet
//5 : SLA Not Meet
//6 : Opportunity Lost
switch (Arr[i].lstType) {
case 0:
vanEOSMarkerArray.push(marker);
break;
case 1:
openTicketMarkerArray.push(marker);
break;
case 2:
closeTicketMarkerArray.push(marker);
break;
case 3:
dealerDetailMarkerArray.push(marker);
break;
case 4:
slaMeetMarkerArray.push(marker);
break;
case 5:
slaNotMeetMarkerArray.push(marker);
break;
case 6:
opportunityLostMarkerArray.push(marker);
break;
}
// Automatically center the map fitting all markers on the screen
google.maps.event.addListener(marker, &#x27;click&#x27;, AddInfoWindow);
}
//ccplMapGeo.fitBounds(latlngbounds);
//var position = new google.maps.LatLng(defaultLat, defaultLng);
//bounds.extend(position);
//var sourceVan = new google.maps.LatLng(van.VanDefaultLatitude, van.VanDefaultLongitude); // ceating van lat-long object
//latlngbounds.extend(sourceVan); // extending lat-long object
}
}
/**
* Function to AddInfo On Click On marker.
* @method AddInfoWindow
* @for GeoAnalysis
*/
function AddInfoWindow(e) {
infoWindow.close();
var infoWindowContent = GetInfoWindowsTemplate(this);
infoWindow.setContent(infoWindowContent);
infoWindow.open(ccplMapGeo, this);
}
/**
* Function to Initalize google map
* @method SetMap
* @param {string} id Id Of Google Map.
* @for GeoAnalysis
*/
function SetMap(id) {
getLocation();
ccplMapGeo = new google.maps.Map(document.getElementById(id), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng(defaultLat, defaultLng),
zoom: ZoomLevel
});
}
/**
* Function to Get the User Location
* @method SetMap
* @param {string} id Id Of Google Map.
* @for GeoAnalysis
*/
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
}
}
/**
* Function to Show the Position
* @method showPosition
* @param {object} position Contains Cordinate Lattitude and longitude.
* @for GeoAnalysis
*/
function showPosition(position) {
var latlon = position.coords.latitude + &quot;,&quot; + position.coords.longitude;
defaultLat = position.coords.latitude;
defaultLng = position.coords.longitude;
}
/**
* Function to Set the Info Wimdow Template
* @method GetInfoWindowsTemplate
* @param {Object} vObj Contain Information About Marker Object.
* @for GeoAnalysis
*/
function GetInfoWindowsTemplate(vObj) {
var vReturn = &quot;&quot;;
// Set Info Window Template According to List Type
//0 : EOS VAN
//1 : Open Ticket
//2 : Close Ticket
//3 : Dealer Detail
//4 : SLA Meet
//5 : SLA Not Met
//6 : Opportunity Lost
switch (vObj.lstType) {
case 0:
vReturn = &quot;&lt;h2 class=&#x27;EngName_heading&#x27;&gt; EOS Team Member : &quot; + vObj.ServiceEngineerName + &quot;&lt;/h2&gt;&quot; +
&quot;&lt;table class=&#x27;InfoWindowTbl&#x27; width=&#x27;100%&#x27; cellpadding=&#x27;0&#x27; cellspacing=&#x27;0&#x27;&gt;&lt;tbody&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Dealer Name&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.DealerName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Mobile No.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.DealerContact + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Van Reg. No.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.VanRegNo + &quot;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;;
break;
case 1:
vReturn = &quot;&lt;h2 class=&#x27;EngName_heading&#x27;&gt; Open Ticket : &quot; + vObj.title + &quot;&lt;/h2&gt;&quot; +
&quot;&lt;table class=&#x27;InfoWindowTbl&#x27; width=&#x27;100%&#x27; cellpadding=&#x27;0&#x27; cellspacing=&#x27;0&#x27;&gt;&lt;tbody&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Ticket Creation Date&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.TicketCreationDate + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Ticket Status&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.TicketStatus + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Customer Name&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.CustomerName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td rowspan=&#x27;2&#x27;&gt;&lt;a href=&#x27;#&#x27; onclick=Open_ticket_Detail(&#x27;&quot; + vObj.title + &quot;&#x27;)&gt;View Detail&lt;/a&gt;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;EOS Team Member&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.ServiceEngineerName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Mobile No.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.CustomerContactNumber + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Assigned To&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.AssignedTo + &quot;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;;
break;
case 2:
vReturn = &quot;&lt;h2 class=&#x27;EngName_heading&#x27;&gt; Close Ticket : &quot; + vObj.title + &quot;&lt;/h2&gt;&quot; +
&quot;&lt;table class=&#x27;InfoWindowTbl&#x27; width=&#x27;100%&#x27; cellpadding=&#x27;0&#x27; cellspacing=&#x27;0&#x27;&gt;&lt;tbody&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Ticket Creation Date&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.TicketCreationDate + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Customer Name&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.CustomerName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Assigned To&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.AssignedTo + &quot;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;EOS Team Member&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.ServiceEngineerName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Mobile No.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.CustomerContactNumber + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td colspan =&#x27;2&#x27;&gt;&lt;a href=&#x27;#&#x27; onclick=Close_ticket_Detail(&#x27;&quot; + vObj.title + &quot;&#x27;)&gt;View Detail&lt;/a&gt;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;;
break;
case 3:
vReturn = &quot;&lt;h2 class=&#x27;EngName_heading&#x27;&gt; Dealer : &quot; + vObj.DealerName + &quot;&lt;/h2&gt;&quot; +
&quot;&lt;table class=&#x27;InfoWindowTbl&#x27; width=&#x27;100%&#x27; cellpadding=&#x27;0&#x27; cellspacing=&#x27;0&#x27;&gt;&lt;tbody&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.DealerStateName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;City&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.DealerCityName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Mobile No.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.DealerContact + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td colspan =&#x27;3&#x27;&gt;&lt;a href=&#x27;#&#x27; onclick=Dealer_Detail(&#x27;&quot; + vObj.title + &quot;&#x27;)&gt;View Detail&lt;/a&gt;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;;
break;
case 4:
case 5:
case 6:
var vTitle = &quot;&quot;;
if (vObj.lstType == 4) {
vTitle = &quot;SLA Met&quot;;
}
else if (vObj.lstType == 5) {
vTitle = &quot;SLA Not Met&quot;;
}
else if (vObj.lstType == 6) {
vTitle = &quot;Opportunity Lost&quot;;
}
vReturn = &quot;&lt;h2 class=&#x27;EngName_heading&#x27;&gt;&quot; + vTitle + &quot; : &quot; + vObj.title + &quot;&lt;/h2&gt;&quot; +
&quot;&lt;table class=&#x27;InfoWindowTbl&#x27; width=&#x27;100%&#x27; cellpadding=&#x27;0&#x27; cellspacing=&#x27;0&#x27;&gt;&lt;tbody&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Ticket Creation Date&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.TicketCreationDate + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Customer Name&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.CustomerName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Assigned To&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.AssignedTo + &quot;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;tr&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;EOS Team Member&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.ServiceEngineerName + &quot;&lt;/td&gt;&quot; +
&quot;&lt;td&gt;&lt;span&gt;Mobile No.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&quot; + vObj.CustomerContactNumber + &quot;&lt;/td&gt;&quot; +
&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;;
break;
}
return vReturn;
}
/**
* Function to get Information From Server According to Year, Month, Eos van, Open Ticket, close Ticket, Dealer.
* @method GetDetailFromServer
* @for GeoAnalysis
*/
function GetDetailFromServer() {
openTicketMarkerArray = []; //array of source and destination markers
closeTicketMarkerArray = [];
dealerDetailMarkerArray = [];
vanEOSMarkerArray = [];
ArrSlaNotMeet = [];
ArrSlaMeet = [];
ArrOppurtunity = [];
var vYear = $(&quot;#fromDatePicker&quot;).val(),
vMonth = $(&quot;#fromMonthPicker&quot;).val(),
vIsVan = $(&quot;#IsVan&quot;).is(&#x27;:checked&#x27;),
vIsDealer = $(&quot;#IsDealer&quot;).is(&#x27;:checked&#x27;),
vIsOpenTicket = $(&quot;#IsOpenTicket&quot;).is(&#x27;:checked&#x27;),
vIsClosedTickets = $(&quot;#IsClosedTickets&quot;).is(&#x27;:checked&#x27;);
oAnalysis = {};
oAnalysis.Year = vYear;
oAnalysis.Month = vMonth;
oAnalysis.IsVan = vIsVan;
oAnalysis.IsDealer = vIsDealer;
oAnalysis.IsOpenTicket = vIsOpenTicket;
oAnalysis.IsClosedTickets = vIsClosedTickets;
if (oAnalysis.IsVan == true || oAnalysis.IsDealer == true || oAnalysis.IsOpenTicket == true || oAnalysis.IsClosedTickets == true) {
$(&quot;#div_load&quot;).show();
$.ajax({
type: &quot;GET&quot;,
url: &quot;/Analysis/Analysis_GetAnalysisRprtDetl/&quot;,
data: oAnalysis,
dataType: &quot;json&quot;,
success: function (data) {
ArrEOSVAN = data.GeoAnalysisModelReport.lsEOSVAN;
ArrOpenTicket = data.GeoAnalysisModelReport.lsOpenTicket;
ArrCloseTicket = data.GeoAnalysisModelReport.lsCloseTicket;
ArrDealerDetl = data.GeoAnalysisModelReport.lsDealerDetl;
initMapGeo(&quot;divMapContainerGeo&quot;);
UncheckCheckBox();
},
complete: function () {
$(&quot;#div_load&quot;).hide();
ccplMapGeo.fitBounds(latlngbounds);
//$(&quot;#stateCombobox&quot;).data(&#x27;kendoComboBox&#x27;).select(0);
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
else {
jAlert(&quot;Atleast one checkbox must be checked&quot;);
}
}
/**
* Function to Set Opportunity Lost Marker On Map
* @method GetOpportunityLost
* @for GeoAnalysis
*/
function GetOpportunityLost() {
if (closeTicketMarkerArray.length == 0) {
jAlert(&quot;Opportunity Lost record not found.&quot;,&#x27;message&#x27;, function (result) {
if (result) {
$(&quot;#btnOpportunityLost&quot;).prop(&#x27;checked&#x27;, false);
}
});
}
else {
if ($(&quot;#btnOpportunityLost&quot;).is(&#x27;:checked&#x27;) == false) {
if (closeTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; closeTicketMarkerArray.length; i++) {
var marker = closeTicketMarkerArray[i];
if (marker.IsOppurLost == true) {
marker.setAnimation(null);
marker.icon = CloseTicketMarker;
marker.lstType = 2;
//if ($(&quot;#btnSlaMeet&quot;).is(&#x27;:checked&#x27;) == false &amp;&amp; marker.SlaMet == &quot;True&quot;)
// marker.setAnimation(null);
//if ($(&quot;#btnSlaNotMeet&quot;).is(&#x27;:checked&#x27;) == false &amp;&amp; marker.SlaMet == &quot;False&quot;)
// marker.setAnimation(null);
}
}
}
}
else {
var CheckOppLost = true;
if (closeTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; closeTicketMarkerArray.length; i++) {
var marker = closeTicketMarkerArray[i];
if (marker.IsOppurLost) {
marker.lstType = 6;
marker.Id = marker.Id + &quot;( Close Ticket )&quot;;
//ArrSlaNotMeet.push(marker);
marker.setAnimation(google.maps.Animation.BOUNCE);
marker.icon = OpportunoityLostImage;
CheckOppLost = false;
}
}
}
if (CheckOppLost) {
jAlert(&quot;Opportunity Lost record not found.&quot;, &#x27;message&#x27;, function (result) {
if (result) {
$(&quot;#btnOpportunityLost&quot;).prop(&#x27;checked&#x27;, false);
}
});
}
//HideAllMap();
//PutMarker(ArrOppurtunity, OpportunoityLostImage, true);
}
//vOppUrtunitytoogle = !vOppUrtunitytoogle;
}
}
/**
* Function to Set SLA Meet Marker On Map
* @method GetSLAMeet
* @for GeoAnalysis
*/
function GetSLAMeet() {
if (openTicketMarkerArray.length == 0 &amp;&amp; closeTicketMarkerArray.length == 0) {
jAlert(&quot;SLA Met Record not found&quot;,&#x27;message&#x27;, function (result) {
if (result) {
$(&quot;#btnSlaMeet&quot;).prop(&#x27;checked&#x27;, false);
}
});
}
else {
var ImagePath = slaMeetMarkerImage;
if ($(&quot;#btnSlaMeet&quot;).is(&#x27;:checked&#x27;) == false) {
if (openTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; openTicketMarkerArray.length; i++) {
var marker = openTicketMarkerArray[i];
if (marker.SlaMet == &quot;True&quot;) {
//ArrSlaMeet.push(marker);
marker.icon = OpenTicketMarker;
marker.lstType = 1;
marker.setAnimation(null);
}
}
}
if (closeTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; closeTicketMarkerArray.length; i++) {
var marker = closeTicketMarkerArray[i];
if (marker.SlaMet == &quot;True&quot; &amp;&amp; marker.IsOppurLost == false) {
//ArrSlaMeet.push(marker);
if ($(&quot;#btnOpportunityLost&quot;).is(&#x27;:checked&#x27;) == false) {
marker.setAnimation(null);
marker.icon = CloseTicketMarker;
marker.lstType = 2;
}
else {
if (marker.IsOppurLost == false) {
marker.icon = CloseTicketMarker;
marker.lstType = 2;
marker.setAnimation(null);
}
}
}
}
}
}
else {
var CheckSLAMeet = true;
if (openTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; openTicketMarkerArray.length; i++) {
var marker = openTicketMarkerArray[i];
if (marker.SlaMet == &quot;True&quot;) {
marker.lstType = 4;
marker.Id = marker.Id + &quot;( Open Ticket )&quot;;
//ArrSlaMeet.push(marker);
marker.icon = slaMeetMarkerImage;
marker.setAnimation(google.maps.Animation.BOUNCE);
CheckSLAMeet = false;
}
}
}
if (closeTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; closeTicketMarkerArray.length; i++) {
var marker = closeTicketMarkerArray[i];
if (marker.SlaMet == &quot;True&quot; &amp;&amp; marker.IsOppurLost == false) {
marker.lstType = 4;
marker.Id = marker.Id + &quot;( Close Ticket )&quot;;
//ArrSlaMeet.push(marker);
marker.icon = slaMeetMarkerImage;
marker.setAnimation(google.maps.Animation.BOUNCE);
CheckSLAMeet = false;
}
}
}
if (CheckSLAMeet) {
jAlert(&quot;SLA Met record not found&quot;, &#x27;message&#x27;, function (result) {
if (result) {
$(&quot;#btnSlaMeet&quot;).prop(&#x27;checked&#x27;, false);
}
});
}
// HideAllMap();
//PutMarker(ArrSlaMeet, ImagePath, true);
}
//vSetSLAMEET = !vSetSLAMEET;
}
}
/**
* Function to Set SLA Not Meet Marker On Map
* @method GetSLANotMeet
* @for GeoAnalysis
*/
function GetSLANotMeet() {
if (openTicketMarkerArray.length == 0 &amp;&amp; closeTicketMarkerArray.length == 0) {
jAlert(&quot;SLA Not Met record not found&quot;, &#x27;message&#x27;,function (result) {
if (result) {
$(&quot;#btnSlaNotMeet&quot;).prop(&#x27;checked&#x27;, false);
}
});
}
else {
var ImagePath = slaNotMeetMarkerImage;
if ($(&quot;#btnSlaNotMeet&quot;).is(&#x27;:checked&#x27;) == false) {
if (openTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; openTicketMarkerArray.length; i++) {
var marker = openTicketMarkerArray[i];
if (marker.SlaMet == &quot;False&quot;) {
//ArrSlaNotMeet.push(marker);
marker.icon = OpenTicketMarker;
marker.lstType = 1;
marker.setAnimation(null);
}
}
}
if (closeTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; closeTicketMarkerArray.length; i++) {
var marker = closeTicketMarkerArray[i];
if (marker.SlaMet == &quot;False&quot; &amp;&amp; marker.IsOppurLost == false) {
if ($(&quot;#btnOpportunityLost&quot;).is(&#x27;:checked&#x27;) == false) {
marker.setAnimation(null);
marker.icon = closeTicketMarkerArray;
marker.lstType = 2;
}
else {
if (marker.IsOppurLost == false) {
marker.setAnimation(null);
marker.icon = closeTicketMarkerArray;
marker.lstType = 2;
}
}
}
}
}
}
else {
var CheckSLANotMeet = true;
if (openTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; openTicketMarkerArray.length; i++) {
var marker = openTicketMarkerArray[i];
if (marker.SlaMet == &quot;False&quot;) {
marker.lstType = 5;
marker.Id = marker.Id + &quot;( Open Ticket )&quot;;
//ArrSlaNotMeet.push(marker);
marker.setAnimation(google.maps.Animation.BOUNCE);
marker.icon = slaNotMeetMarkerImage;
CheckSLANotMeet = false;
}
}
}
if (closeTicketMarkerArray.length != 0) {
for (var i = 0; i &lt; closeTicketMarkerArray.length; i++) {
var marker = closeTicketMarkerArray[i];
if (marker.SlaMet == &quot;False&quot; &amp;&amp; marker.IsOppurLost == false) {
marker.lstType = 5;
marker.Id = marker.Id + &quot;( Close Ticket )&quot;;
//ArrSlaNotMeet.push(marker);
marker.setAnimation(google.maps.Animation.BOUNCE);
CheckSLANotMeet = false;
marker.icon = slaNotMeetMarkerImage;
}
}
}
if (CheckSLANotMeet) {
jAlert(&quot;SLA Not Met record not found&quot;, &#x27;message&#x27;, function (result) {
if (result) {
$(&quot;#btnSlaNotMeet&quot;).prop(&#x27;checked&#x27;, false);
}
});
}
//HideAllMap();
//PutMarker(ArrSlaNotMeet, ImagePath, true);
}
//vSerSLANOTMeet = !vSerSLANOTMeet;
}
}
/**
* Function to Hide the Marker of Open Ticket,Close Ticket, Dealer Marker, Van EOS Marker
* @method HideAllMap
* @for GeoAnalysis
*/
function HideAllMap() {
hideAnimation(openTicketMarkerArray);
hideAnimation(closeTicketMarkerArray);
hideAnimation(dealerDetailMarkerArray);
hideAnimation(vanEOSMarkerArray);
}
/**
* Function to Show the Marker of Open Ticket,Close Ticket, Dealer Marker, Van EOS Marker and hide the Marker of SLA Meet, SLA Not Meet,
* Opportunity Lost
* @method ShowAllMap
* @for GeoAnalysis
*/
function ShowAllMap() {
UncheckCheckBox();
//ShowMap(openTicketMarkerArray);
//ShowMap(closeTicketMarkerArray);
GetSLAMeet();
GetSLANotMeet();
GetOpportunityLost();
ShowMap(dealerDetailMarkerArray);
ShowMap(vanEOSMarkerArray);
hideAnimation(slaMeetMarkerArray);
hideAnimation(slaNotMeetMarkerArray);
hideAnimation(opportunityLostMarkerArray);
SetBitTrue();
}
/**
* Function to Hide the Marker From Map
* @method hideAnimation
* @param {Array} markers Contain Markers Array that will hide from Google map.
* @for GeoAnalysis
*/
function hideAnimation(markers) {
for (var i = 0; i &lt; markers.length; i++) {
markers[i].setAnimation(null);
}
markers = [];
}
/**
* Function to Show the Marker From Map
* @method ShowMap
* @param {Array} markers Contain Markers Array that will show from Google map.
* @for GeoAnalysis
*/
function ShowMap(markers) {
for (var i = 0; i &lt; markers.length; i++) {
markers[i].setMap(ccplMapGeo);
}
markers = [];
}
/**
* Function to set the bit True so that marker will show or hide
* @method SetBitTrue
* @for GeoAnalysis
*/
function SetBitTrue() {
vOppUrtunitytoogle = true;
vSetSLAMEET = true;
vSerSLANOTMeet = true;
}
/**
* Function to un Check All Checkboxes
* @method UncheckCheckBox
* @for GeoAnalysis
*/
function UncheckCheckBox() {
$(&quot;#btnSlaMeet,#btnSlaNotMeet,#btnOpportunityLost&quot;).prop(&#x27;checked&#x27;, false);
}
/**
* Function to Show the Detail Of Close Ticket On Kendo Window.
* @method Close_ticket_Detail.
* @param {string} TicketId Contain Close Ticket Id.
* @for GeoAnalysis
*/
function Close_ticket_Detail(TicketId) {
$.ajax({
type: &quot;POST&quot;,
url: &quot;/Report/Ticket_GetOpencloseTicketFullDetails/&quot;,
data: { ticketId: TicketId, ticketStatus: &quot;close&quot; },
success: function (data) {
$(&quot;#divTicketDetails&quot;).html(&quot;&quot;);
$(&quot;#divTicketDetails&quot;).html(data);
//open window in new dialog box
$(&quot;#divTicketDetails&quot;).data(&quot;kendoWindow&quot;).open();
},
error: function (data) {
//console.log(data);
}
});
}
/**
* Function to Show the Detail Of Open Ticket On Kendo Window.
* @method Open_ticket_Detail.
* @param {string} TicketId Contain Open Ticket Id.
* @for GeoAnalysis
*/
function Open_ticket_Detail(TicketId) {
$.ajax({
type: &quot;POST&quot;,
url: &quot;/Report/Ticket_GetOpencloseTicketFullDetails/&quot;,
data: { ticketId: TicketId, ticketStatus: &quot;open&quot; },
success: function (data) {
$(&quot;#divTicketDetails&quot;).html(&quot;&quot;);
$(&quot;#divTicketDetails&quot;).html(data);
//open window in new dialog box
$(&quot;#divTicketDetails&quot;).data(&quot;kendoWindow&quot;).open();
},
error: function (data) {
//console.log(data);
}
});
}
/**
* Function to show Dealer details.
* @method Dealer_Detail
* @param {String} dealerID Dealer Id that is used to Get the Detail.
* @for GeoAnalysis
*/
function Dealer_Detail(dealerId) {
$.ajax({
type: &quot;POST&quot;,
url: &quot;/Inventory/AddOrEditFleet/&quot;,
data: { sDealerId: dealerId },
success: function (data) {
$(&quot;#divFleetDetail&quot;).html(&#x27;&#x27;);
$(&quot;#divFleetDetail&quot;).html(data);
$(&quot;#divFleetDetail&quot;).data(&quot;kendoWindow&quot;).open();
SetKendoWindowTitle(&quot;#divFleetDetail&quot;, &quot;Dealer Detail&quot;);
$(&quot;#ddOrganization&quot;).hide();
$(&quot;#ddState&quot;).hide();
$(&quot;#ddCity&quot;).hide();
$(&quot;#DealerOrganizationName,#DealerStateName,#DealerCity&quot;).show();
vDealerContactNoOnFocus = $(&quot;#DealerContactNo&quot;).val();
$(&quot;#btnSaveFleet&quot;).hide();
HideDealerDetailMessage();
HideVanDetailMessage();
$(&#x27;.k-grid-Edit&#x27;).text(&quot;&quot;).removeClass(&quot;k-button k-button-icontext&quot;).hide();
$(&#x27;.k-grid-Delete&#x27;).text(&quot;&quot;).removeClass(&quot;k-button k-button-icontext&quot;).hide();
$(&quot;#btnAddVanDetail&quot;).hide();
var grid = $(&quot;#gridDealer&quot;).data(&quot;kendoGrid&quot;);
grid.hideColumn(8);
grid.hideColumn(9);
$(&quot;#tdlblSetDealerLoc,#tdbtnSetDealerLoc,#trSetLocation&quot;).hide();
$(&quot;#tdDealerContactNo&quot;).attr(&#x27;colspan&#x27;, 3);
$(&quot;#NewDealerId,#DealerDealerName,#DealerContactNo&quot;).attr(&quot;readonly&quot;, &quot;readonly&quot;);
},
error: function (data) {
//console.log(data);
}
});
}
</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>