1102 lines
44 KiB
HTML
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 = "";
|
|
var vTempLong = "";
|
|
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 = "", 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 = '../../Scripts/map_api/icons/AnalysisIcons/slaMeet.png'; //marker for source
|
|
var OpenTicketMarker = '../../Scripts/map_api/icons/AnalysisIcons/OpenTicketyellow.png';
|
|
var availableVansMarkers = '../../Content/css/images/avil-van.png'; //marker for available vans
|
|
var dealerMarker = '../../Content/css/images/dealer-icon.png'; //marker for dealers
|
|
var slaNotMeetMarkerImage = "../../Scripts/map_api/icons/AnalysisIcons/SlaNotMeet.png";
|
|
var slaMeetMarkerImage = "../../Scripts/map_api/icons/AnalysisIcons/CloseTicketgreen.png";
|
|
var OpportunoityLostImage = "../../Scripts/map_api/icons/AnalysisIcons/Opportunity.png";
|
|
|
|
//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 = '';
|
|
|
|
// Instance of OverlappingMarkerSpiderfier.js.
|
|
var oms = '';
|
|
|
|
// MarkerClusterer options
|
|
var clusterOptions = { gridSize: 60, maxZoom: 9 };
|
|
//var vOppUrtunitytoogle = true;
|
|
//var vSetSLAMEET = true;
|
|
//var vSerSLANOTMeet = true;
|
|
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
|
|
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
|
|
];
|
|
|
|
/**
|
|
* 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("kendoWindow");
|
|
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("kendoWindow").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("divMapContainerGeo");
|
|
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 & place each one on the map
|
|
|
|
if (Arr.length > 0) {
|
|
for (i = 0; i < 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, 'click', 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 + "," + 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 = "";
|
|
// 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 = "<h2 class='EngName_heading'> EOS Team Member : " + vObj.ServiceEngineerName + "</h2>" +
|
|
"<table class='InfoWindowTbl' width='100%' cellpadding='0' cellspacing='0'><tbody><tr>" +
|
|
"<td><span>Dealer Name</span></td><td>" + vObj.DealerName + "</td>" +
|
|
"<td><span>Mobile No.</span></td><td>" + vObj.DealerContact + "</td>" +
|
|
"<td><span>Van Reg. No.</span></td><td>" + vObj.VanRegNo + "</td>" +
|
|
"</tr></tbody></table>";
|
|
break;
|
|
case 1:
|
|
vReturn = "<h2 class='EngName_heading'> Open Ticket : " + vObj.title + "</h2>" +
|
|
"<table class='InfoWindowTbl' width='100%' cellpadding='0' cellspacing='0'><tbody><tr>" +
|
|
"<td><span>Ticket Creation Date</span></td><td>" + vObj.TicketCreationDate + "</td>" +
|
|
"<td><span>Ticket Status</span></td><td>" + vObj.TicketStatus + "</td>" +
|
|
"<td><span>Customer Name</span></td><td>" + vObj.CustomerName + "</td>" +
|
|
"<td rowspan='2'><a href='#' onclick=Open_ticket_Detail('" + vObj.title + "')>View Detail</a></td>" +
|
|
"</tr><tr>" +
|
|
"<td><span>EOS Team Member</span></td><td>" + vObj.ServiceEngineerName + "</td>" +
|
|
"<td><span>Mobile No.</span></td><td>" + vObj.CustomerContactNumber + "</td>" +
|
|
"<td><span>Assigned To</span></td><td>" + vObj.AssignedTo + "</td>" +
|
|
"</tr></tbody></table>";
|
|
break;
|
|
case 2:
|
|
vReturn = "<h2 class='EngName_heading'> Close Ticket : " + vObj.title + "</h2>" +
|
|
"<table class='InfoWindowTbl' width='100%' cellpadding='0' cellspacing='0'><tbody><tr>" +
|
|
"<td><span>Ticket Creation Date</span></td><td>" + vObj.TicketCreationDate + "</td>" +
|
|
"<td><span>Customer Name</span></td><td>" + vObj.CustomerName + "</td>" +
|
|
"<td><span>Assigned To</span></td><td>" + vObj.AssignedTo + "</td>" +
|
|
"</tr><tr>" +
|
|
"<td><span>EOS Team Member</span></td><td>" + vObj.ServiceEngineerName + "</td>" +
|
|
"<td><span>Mobile No.</span></td><td>" + vObj.CustomerContactNumber + "</td>" +
|
|
"<td colspan ='2'><a href='#' onclick=Close_ticket_Detail('" + vObj.title + "')>View Detail</a></td>" +
|
|
"</tr><tr></tbody></table>";
|
|
break;
|
|
case 3:
|
|
vReturn = "<h2 class='EngName_heading'> Dealer : " + vObj.DealerName + "</h2>" +
|
|
"<table class='InfoWindowTbl' width='100%' cellpadding='0' cellspacing='0'><tbody><tr>" +
|
|
"<td><span>State</span></td><td>" + vObj.DealerStateName + "</td>" +
|
|
"<td><span>City</span></td><td>" + vObj.DealerCityName + "</td>" +
|
|
"<td><span>Mobile No.</span></td><td>" + vObj.DealerContact + "</td>" +
|
|
"<td colspan ='3'><a href='#' onclick=Dealer_Detail('" + vObj.title + "')>View Detail</a></td>" +
|
|
"</tr></tbody></table>";
|
|
break;
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
var vTitle = "";
|
|
if (vObj.lstType == 4) {
|
|
vTitle = "SLA Met";
|
|
}
|
|
else if (vObj.lstType == 5) {
|
|
vTitle = "SLA Not Met";
|
|
}
|
|
else if (vObj.lstType == 6) {
|
|
vTitle = "Opportunity Lost";
|
|
}
|
|
vReturn = "<h2 class='EngName_heading'>" + vTitle + " : " + vObj.title + "</h2>" +
|
|
"<table class='InfoWindowTbl' width='100%' cellpadding='0' cellspacing='0'><tbody><tr>" +
|
|
"<td><span>Ticket Creation Date</span></td><td>" + vObj.TicketCreationDate + "</td>" +
|
|
"<td><span>Customer Name</span></td><td>" + vObj.CustomerName + "</td>" +
|
|
"<td><span>Assigned To</span></td><td>" + vObj.AssignedTo + "</td>" +
|
|
"</tr><tr>" +
|
|
"<td><span>EOS Team Member</span></td><td>" + vObj.ServiceEngineerName + "</td>" +
|
|
"<td><span>Mobile No.</span></td><td>" + vObj.CustomerContactNumber + "</td>" +
|
|
"</tr></tbody></table>";
|
|
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 = $("#fromDatePicker").val(),
|
|
vMonth = $("#fromMonthPicker").val(),
|
|
vIsVan = $("#IsVan").is(':checked'),
|
|
vIsDealer = $("#IsDealer").is(':checked'),
|
|
vIsOpenTicket = $("#IsOpenTicket").is(':checked'),
|
|
vIsClosedTickets = $("#IsClosedTickets").is(':checked');
|
|
|
|
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) {
|
|
$("#div_load").show();
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/Analysis/Analysis_GetAnalysisRprtDetl/",
|
|
data: oAnalysis,
|
|
dataType: "json",
|
|
success: function (data) {
|
|
ArrEOSVAN = data.GeoAnalysisModelReport.lsEOSVAN;
|
|
ArrOpenTicket = data.GeoAnalysisModelReport.lsOpenTicket;
|
|
ArrCloseTicket = data.GeoAnalysisModelReport.lsCloseTicket;
|
|
ArrDealerDetl = data.GeoAnalysisModelReport.lsDealerDetl;
|
|
initMapGeo("divMapContainerGeo");
|
|
UncheckCheckBox();
|
|
},
|
|
complete: function () {
|
|
$("#div_load").hide();
|
|
ccplMapGeo.fitBounds(latlngbounds);
|
|
//$("#stateCombobox").data('kendoComboBox').select(0);
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
jAlert("Atleast one checkbox must be checked");
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Function to Set Opportunity Lost Marker On Map
|
|
* @method GetOpportunityLost
|
|
* @for GeoAnalysis
|
|
*/
|
|
function GetOpportunityLost() {
|
|
|
|
if (closeTicketMarkerArray.length == 0) {
|
|
jAlert("Opportunity Lost record not found.",'message', function (result) {
|
|
if (result) {
|
|
$("#btnOpportunityLost").prop('checked', false);
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
|
|
if ($("#btnOpportunityLost").is(':checked') == false) {
|
|
if (closeTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < closeTicketMarkerArray.length; i++) {
|
|
var marker = closeTicketMarkerArray[i];
|
|
if (marker.IsOppurLost == true) {
|
|
marker.setAnimation(null);
|
|
marker.icon = CloseTicketMarker;
|
|
marker.lstType = 2;
|
|
//if ($("#btnSlaMeet").is(':checked') == false && marker.SlaMet == "True")
|
|
// marker.setAnimation(null);
|
|
//if ($("#btnSlaNotMeet").is(':checked') == false && marker.SlaMet == "False")
|
|
// marker.setAnimation(null);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
var CheckOppLost = true;
|
|
if (closeTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < closeTicketMarkerArray.length; i++) {
|
|
var marker = closeTicketMarkerArray[i];
|
|
if (marker.IsOppurLost) {
|
|
marker.lstType = 6;
|
|
marker.Id = marker.Id + "( Close Ticket )";
|
|
//ArrSlaNotMeet.push(marker);
|
|
marker.setAnimation(google.maps.Animation.BOUNCE);
|
|
marker.icon = OpportunoityLostImage;
|
|
CheckOppLost = false;
|
|
}
|
|
}
|
|
}
|
|
if (CheckOppLost) {
|
|
jAlert("Opportunity Lost record not found.", 'message', function (result) {
|
|
if (result) {
|
|
$("#btnOpportunityLost").prop('checked', 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 && closeTicketMarkerArray.length == 0) {
|
|
jAlert("SLA Met Record not found",'message', function (result) {
|
|
if (result) {
|
|
$("#btnSlaMeet").prop('checked', false);
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
|
|
var ImagePath = slaMeetMarkerImage;
|
|
if ($("#btnSlaMeet").is(':checked') == false) {
|
|
if (openTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < openTicketMarkerArray.length; i++) {
|
|
var marker = openTicketMarkerArray[i];
|
|
if (marker.SlaMet == "True") {
|
|
//ArrSlaMeet.push(marker);
|
|
marker.icon = OpenTicketMarker;
|
|
marker.lstType = 1;
|
|
marker.setAnimation(null);
|
|
}
|
|
}
|
|
}
|
|
if (closeTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < closeTicketMarkerArray.length; i++) {
|
|
var marker = closeTicketMarkerArray[i];
|
|
if (marker.SlaMet == "True" && marker.IsOppurLost == false) {
|
|
//ArrSlaMeet.push(marker);
|
|
if ($("#btnOpportunityLost").is(':checked') == 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 < openTicketMarkerArray.length; i++) {
|
|
var marker = openTicketMarkerArray[i];
|
|
if (marker.SlaMet == "True") {
|
|
marker.lstType = 4;
|
|
marker.Id = marker.Id + "( Open Ticket )";
|
|
//ArrSlaMeet.push(marker);
|
|
marker.icon = slaMeetMarkerImage;
|
|
marker.setAnimation(google.maps.Animation.BOUNCE);
|
|
CheckSLAMeet = false;
|
|
}
|
|
}
|
|
}
|
|
if (closeTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < closeTicketMarkerArray.length; i++) {
|
|
var marker = closeTicketMarkerArray[i];
|
|
if (marker.SlaMet == "True" && marker.IsOppurLost == false) {
|
|
marker.lstType = 4;
|
|
marker.Id = marker.Id + "( Close Ticket )";
|
|
//ArrSlaMeet.push(marker);
|
|
marker.icon = slaMeetMarkerImage;
|
|
marker.setAnimation(google.maps.Animation.BOUNCE);
|
|
CheckSLAMeet = false;
|
|
}
|
|
}
|
|
}
|
|
if (CheckSLAMeet) {
|
|
jAlert("SLA Met record not found", 'message', function (result) {
|
|
if (result) {
|
|
$("#btnSlaMeet").prop('checked', 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 && closeTicketMarkerArray.length == 0) {
|
|
jAlert("SLA Not Met record not found", 'message',function (result) {
|
|
if (result) {
|
|
$("#btnSlaNotMeet").prop('checked', false);
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
|
|
var ImagePath = slaNotMeetMarkerImage;
|
|
if ($("#btnSlaNotMeet").is(':checked') == false) {
|
|
if (openTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < openTicketMarkerArray.length; i++) {
|
|
var marker = openTicketMarkerArray[i];
|
|
if (marker.SlaMet == "False") {
|
|
//ArrSlaNotMeet.push(marker);
|
|
marker.icon = OpenTicketMarker;
|
|
marker.lstType = 1;
|
|
marker.setAnimation(null);
|
|
|
|
}
|
|
}
|
|
}
|
|
if (closeTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < closeTicketMarkerArray.length; i++) {
|
|
var marker = closeTicketMarkerArray[i];
|
|
if (marker.SlaMet == "False" && marker.IsOppurLost == false) {
|
|
if ($("#btnOpportunityLost").is(':checked') == 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 < openTicketMarkerArray.length; i++) {
|
|
var marker = openTicketMarkerArray[i];
|
|
if (marker.SlaMet == "False") {
|
|
marker.lstType = 5;
|
|
marker.Id = marker.Id + "( Open Ticket )";
|
|
//ArrSlaNotMeet.push(marker);
|
|
marker.setAnimation(google.maps.Animation.BOUNCE);
|
|
marker.icon = slaNotMeetMarkerImage;
|
|
CheckSLANotMeet = false;
|
|
}
|
|
}
|
|
}
|
|
if (closeTicketMarkerArray.length != 0) {
|
|
for (var i = 0; i < closeTicketMarkerArray.length; i++) {
|
|
var marker = closeTicketMarkerArray[i];
|
|
if (marker.SlaMet == "False" && marker.IsOppurLost == false) {
|
|
marker.lstType = 5;
|
|
marker.Id = marker.Id + "( Close Ticket )";
|
|
//ArrSlaNotMeet.push(marker);
|
|
marker.setAnimation(google.maps.Animation.BOUNCE);
|
|
CheckSLANotMeet = false;
|
|
marker.icon = slaNotMeetMarkerImage;
|
|
}
|
|
}
|
|
}
|
|
if (CheckSLANotMeet) {
|
|
jAlert("SLA Not Met record not found", 'message', function (result) {
|
|
if (result) {
|
|
$("#btnSlaNotMeet").prop('checked', 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 < 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 < 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() {
|
|
$("#btnSlaMeet,#btnSlaNotMeet,#btnOpportunityLost").prop('checked', 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: "POST",
|
|
url: "/Report/Ticket_GetOpencloseTicketFullDetails/",
|
|
data: { ticketId: TicketId, ticketStatus: "close" },
|
|
success: function (data) {
|
|
$("#divTicketDetails").html("");
|
|
$("#divTicketDetails").html(data);
|
|
|
|
//open window in new dialog box
|
|
$("#divTicketDetails").data("kendoWindow").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: "POST",
|
|
url: "/Report/Ticket_GetOpencloseTicketFullDetails/",
|
|
data: { ticketId: TicketId, ticketStatus: "open" },
|
|
success: function (data) {
|
|
$("#divTicketDetails").html("");
|
|
$("#divTicketDetails").html(data);
|
|
//open window in new dialog box
|
|
$("#divTicketDetails").data("kendoWindow").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: "POST",
|
|
url: "/Inventory/AddOrEditFleet/",
|
|
data: { sDealerId: dealerId },
|
|
success: function (data) {
|
|
$("#divFleetDetail").html('');
|
|
$("#divFleetDetail").html(data);
|
|
$("#divFleetDetail").data("kendoWindow").open();
|
|
SetKendoWindowTitle("#divFleetDetail", "Dealer Detail");
|
|
$("#ddOrganization").hide();
|
|
$("#ddState").hide();
|
|
$("#ddCity").hide();
|
|
$("#DealerOrganizationName,#DealerStateName,#DealerCity").show();
|
|
vDealerContactNoOnFocus = $("#DealerContactNo").val();
|
|
$("#btnSaveFleet").hide();
|
|
HideDealerDetailMessage();
|
|
HideVanDetailMessage();
|
|
$('.k-grid-Edit').text("").removeClass("k-button k-button-icontext").hide();
|
|
$('.k-grid-Delete').text("").removeClass("k-button k-button-icontext").hide();
|
|
$("#btnAddVanDetail").hide();
|
|
var grid = $("#gridDealer").data("kendoGrid");
|
|
grid.hideColumn(8);
|
|
grid.hideColumn(9);
|
|
$("#tdlblSetDealerLoc,#tdbtnSetDealerLoc,#trSetLocation").hide();
|
|
$("#tdDealerContactNo").attr('colspan', 3);
|
|
$("#NewDealerId,#DealerDealerName,#DealerContactNo").attr("readonly", "readonly");
|
|
},
|
|
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>
|