EOS/Scripts/Report/AnlysisReport.js
Nidhi Bhargava f0c1ab20e1 code push
2025-09-04 16:25:07 +05:30

906 lines
32 KiB
JavaScript

/*================================================================================================================\
+
+ 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);
console.log(Arr[i].TicketIdAlias);
if ( Arr[i].TicketIdAlias == null)
Arr[i].TicketIdAlias = "";
var marker = new google.maps.Marker({
position: position,
map: ccplMapGeo,
title: Arr[i].TicketIdAlias,
TicketId: 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
});
if (Arr[i].DefaultLattitude == "0") {
Arr[i].DefaultLattitude = 25;
}
if (Arr[i].DefaultLongitude == "0") {
Arr[i].DefaultLongitude = 72;
}
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.TicketId + "')>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.TicketId + "')>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.TicketId + "')>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();
console.log(latlngbounds);
ccplMapGeo.fitBounds(latlngbounds);
//$("#stateCombobox").data('kendoComboBox').select(0);
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
else {
jAlert(MANAGE_GEOANALYSIS_MESSAGES.atleastOnecheckbox, "Message");
}
}
/**
* Function to Set Opportunity Lost Marker On Map
* @method GetOpportunityLost
* @for GeoAnalysis
*/
function GetOpportunityLost() {
if (closeTicketMarkerArray.length == 0) {
jAlert(MANAGE_GEOANALYSIS_MESSAGES.oppurtunityLostValidation, '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(MANAGE_GEOANALYSIS_MESSAGES.oppurtunityLostValidation, '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(MANAGE_GEOANALYSIS_MESSAGES.SLAMetValidation, '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(MANAGE_GEOANALYSIS_MESSAGES.SLAMetValidation, '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(MANAGE_GEOANALYSIS_MESSAGES.SLANotMetValidation, '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(MANAGE_GEOANALYSIS_MESSAGES.SLANotMetValidation, '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);
}
});
}