API Docs for:
Show:

File: Report\AnlysisReport.js

/*================================================================================================================\
+
+ 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);
        }
    });

}