/*================================================================================================================\ + + Project : GODATA-VECV + Filename : RouteWiseBreakdownReport.js + Module Name : GeoModule + Purpose : To show the Route wise breakdown Report. + Coded By : Parul Gupta + +================================================================================================================*/ /** * To show and export reports. * @module Geo */ /** * To show geo analysis report. * @class RouteWiseBreakdown * @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, xhr_exportExportCsv; 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; var displayHighway = ""; //highway display //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" ]; /** * Convert HH:mm format to Minutes. * @method convertToMin * @param {String} time input timei in HH:mm format * @for TileDashboard */ function convertToMin(time) { var timeArray = time.split(":"); return parseInt(timeArray[0], 10) * 60 + parseInt(timeArray[1], 10); } /** * 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() { $("#spanRoute").hide(); var routeId = $("#RouteId").val(); if (routeId == null || routeId == "") { $("#spanRoute").show(); } else { 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 = "

EOS Team Member : " + vObj.ServiceEngineerName + "

" + "" + "" + "" + "" + "
Dealer Name" + vObj.DealerName + "Mobile No." + vObj.DealerContact + "Van Reg. No." + vObj.VanRegNo + "
"; break; case 1: vReturn = "

Open Ticket : " + vObj.title + "

" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "
Ticket Creation Date" + vObj.TicketCreationDate + "Ticket Status" + vObj.TicketStatus + "Customer Name" + vObj.CustomerName + "View Detail
EOS Team Member" + vObj.ServiceEngineerName + "Mobile No." + vObj.CustomerContactNumber + "Assigned To" + vObj.AssignedTo + "
"; break; case 2: vReturn = "

Close Ticket : " + vObj.title + "

" + "" + "" + "" + "" + "" + "" + "" + "" + "
Ticket Creation Date" + vObj.TicketCreationDate + "Customer Name" + vObj.CustomerName + "Assigned To" + vObj.AssignedTo + "
EOS Team Member" + vObj.ServiceEngineerName + "Mobile No." + vObj.CustomerContactNumber + "View Detail
"; break; case 3: vReturn = "

Dealer : " + vObj.DealerName + "

" + "" + "" + "" + "" + "" + "
State" + vObj.DealerStateName + "City" + vObj.DealerCityName + "Mobile No." + vObj.DealerContact + "View Detail
"; 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 = "

" + vTitle + " : " + vObj.title + "

" + "" + "" + "" + "" + "" + "" + "" + "
Ticket Creation Date" + vObj.TicketCreationDate + "Customer Name" + vObj.CustomerName + "Assigned To" + vObj.AssignedTo + "
EOS Team Member" + vObj.ServiceEngineerName + "Mobile No." + vObj.CustomerContactNumber + "
"; 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 vFromDate = $("#fromDatePicker").val(), vToDate = $("#fromMonthPicker").val(), vRouteId = $("#RouteId").val(); oAnalysis = {}; oAnalysis.FromDate = vFromDate; oAnalysis.ToDate = vToDate; oAnalysis.RouteId = vRouteId; //if (oAnalysis.IsVan == true || oAnalysis.IsDealer == true || oAnalysis.IsOpenTicket == true || oAnalysis.IsClosedTickets == true) { $("#div_load").show(); $.ajax({ type: "GET", url: "/Analysis/Analysis_RouteWiseBreakdownReport_GetReport/", data: oAnalysis, dataType: "json", success: function (data) { //console.log(data); var model = data.kpiData.GeoAnalysisModelReport.lsCloseTicket; var dataCount = 0; if ((data != null) && (data.data.GeoAnalysisModelReport.lsCloseTicket != null) && (data.data.GeoAnalysisModelReport.lsCloseTicket.length) > 0) { dataCount = data.data.GeoAnalysisModelReport.lsCloseTicket.length; $('.excelIcon').show(); } else { $('.excelIcon').hide(); } console.log(dataCount); $("#total_breakdown").text(dataCount); $("#textFor_total_breakdown").text("Total Breakdown"); ArrEOSVAN = data.data.GeoAnalysisModelReport.lsCloseTicket.filter(function (el) { //console.log(el); return el.AssignTo.toLowerCase() == "van" }); ArrDealerDetl = data.data.GeoAnalysisModelReport.lsCloseTicket.filter(function (el) { return el.AssignTo.toLowerCase() == "dealer" }); initMapGeo("divMapContainerGeo"); for (var i = 0; i < model.length; i++) { if (model[i].Key == "average_response_time") { $("#average_response_time").text((model[i].KeyValue != null && model[i].KeyValue != "") ? model[i].KeyValue : ""); $("#textFor_average_response_time").text(model[i].KeyName); if (parseInt(convertToMin(model[i].KeyValue, 10)) > 120) { $("#average_response_time").css('background-color', '#ee1d23'); } else { $("#average_response_time").css('background-color', '#669999'); } } // Getting and setting value for average response time dealer else if (model[i].Key == "average_closure_time") { $("#average_closure_time").text((model[i].KeyValue != null && model[i].KeyValue != "") ? model[i].KeyValue : ""); $("#textFor_average_closure_time").text(model[i].KeyName); if (parseInt(convertToMin(model[i].KeyValue, 10)) > 120) { $("#average_closure_time").css('background-color', '#ee1d23'); } else { $("#average_closure_time").css('background-color', '#669999'); } } } }, complete: function () { $("#div_load").hide(); onChangeRoute(); //console.log(latlngbounds); setTimeout(ccplMapGeo.fitBounds(latlngbounds), 1000); ////$("#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); } }); } /** * To get filter parameters and export report. * @method exportReportCSV * @for ConsolidatedReport */ function exportReportCSV() { var vFromDate = $("#fromDatePicker").val(), vToDate = $("#fromMonthPicker").val(), vRouteId = $("#RouteId").val(); oAnalysis = {}; oAnalysis.FromDate = vFromDate; oAnalysis.ToDate = vToDate; oAnalysis.RouteId = vRouteId; // sending ajax request to export ICR Unique Users and Data Usage to Excel, and hadling its completion if (xhr_exportExportCsv && xhr_exportExportCsv.readystate != 4) { xhr_exportExportCsv.abort(); } xhr_exportExportCsv = $.ajax({ type: "POST", url: "/Analysis/Analysis_RouteWiseBreakdownReport_ExportToExcel/", data: oAnalysis, success: function (data) { // making the generated Excel available for downloading. window.location.href = data; }, complete: function () { }, error: function (data) { console.log("Error in Export to Excel"); } }); } /** * This fn calculates and draws the Route for selected national highway using Google Direction API * @method drawHighway * @param {String} startLatLng Position of origin * @param {String} endLatLng Position of destination * @param {String} vanDealerType Type is Van or Dealer * @param {String} mapID map id * @for TicketAdministration */ function drawHighway(startLatLng, endLatLng, vanDealerType, mapID, wayPointArr, routeColor) { if (displayHighway) { //Remove direction display displayHighway.setMap(null); } var rendererOptionsForHighway = { map: mapID, suppressMarkers: true, polylineOptions: { strokeColor: routeColor } } var request = ""; displayHighway = new google.maps.DirectionsRenderer(rendererOptionsForHighway); if (wayPointArr.length > 0) { //Make request obj to Direction Service API with starting and end LatLng request = { origin: startLatLng, destination: endLatLng, waypoints: wayPointArr, avoidHighways: false, optimizeWaypoints: true, travelMode: google.maps.TravelMode.DRIVING }; //call Direction Service API with the reuqest obj routeDirectionsService.route(request, function (response, status) { //if status was a success if (status == google.maps.DirectionsStatus.OK) { displayHighway.setOptions({ preserveViewport: true }); //set Direction to the response displayHighway.setDirections(response); var leg = response.routes[0].legs[0]; } else { } }); } latlngbounds.extend(startLatLng); latlngbounds.extend(endLatLng); } /** * This function call on change of route name * @method onChangeRoute * @for TicketAdministration */ function onChangeRoute() { var NH_ID = $("#RouteId").val(); var NH_PATH = HIGHWAY_PATH[NH_ID]; console.log(NH_PATH); if (typeof NH_PATH != "undefined") { drawHighway(NH_PATH.source, NH_PATH.destination, "", ccplMapGeo, NH_PATH.wayPoints, NH_PATH.color); } }