/*================================================================================================================\ +.lat + Project : GoData-Eicher + Filename : TicketAdministrationReassign.js + Module Name : Ticket + Purpose : For ticket reassignalert + Coded By : Parul Guptas + +================================================================================================================*/ /** * For ticketing * @module Ticket */ /** * This class contains functionality of Ticket Reassign for CCE. * @class TicketReassign * @constructor */ //Global variables var xhr_addNewTicket; var breakdownLocLatLng; var breakdownMarker; var _ccplMap = null; var _geoCoder; var _defaultLat = 26.912285124827, _defaultLng = 75.7873203125 //initialize markers var _availableVansMarkers = '../../Content/css/images/avil-van.png'; //marker for available vans var _unavailableVansMarkers = '../../Content/css/images/unavl-van.png'; //marker for unavailable vans var _dealerMarker = '../../Content/css/images/dealer-icon.png'; //marker for dealers var breakdownLat, breakdownLng, breakdownState, ticketId, defaultSlatime, vRegistrationNo; //Google Distance MAtrix Service API var _service = new google.maps.DistanceMatrixService(); var _detailsListOfVanDealer = []; //array of objects of details of nearest vans and dealers var _vanDealerLatLngArr = []; //array of nearest vans and dealers lat lng var _copyResulEls = []; /** * Load google map on page. * @method initMap * @param {String} id HTML element id where map is loaded. * @for TicketReassign */ function _initMap(id) { var _mapOptions = { center: new google.maps.LatLng(_defaultLat, _defaultLng), zoom: 12, mapTypeId: google.maps.MapTypeId.ROADMAP }; //initialize map _ccplMap = new google.maps.Map(document.getElementById(id), _mapOptions); } /** * Function to reassign ticket * @method reassignTicket * @for TicketReassign */ function reassignTicket() { $('#dvlocationchange').hide(); breakdownLat = $("#breakdownLattitude").val(); breakdownLng = $("#breakdownLongitude").val(); breakdownState = $("#breakdownState").val(); ticketId = $("#ticketid").val(); defaultSlatime = $("#defaultSlaTime").val(); vRegistrationNo = $("#vRegistrationNo").val(); // ADDED BY PRIYA ON 29.03.2023 FOR LOCATIION REASSIGN if (islocationchange == "false") { $('#prevstate').val(breakdownState); } if (islocationchange == "false") { breakdownLat = $("#breakdownLattitude").val(); breakdownLng = $("#breakdownLongitude").val(); // stateName = $("#breakdownState").val(); // alert(stateName) // setTimeout(function () { /* get all nearest vans and dealers */ getAllNearestVansDealers(breakdownState); }, 1500); } else { breakdownLng = breakdownLocationLatLngLocation.lng(); breakdownLat = breakdownLocationLatLngLocation.lat(); //stateName1 = state1; //stateName2 = state2; //setTimeout(function () { /* get all nearest vans and dealers */ getAllNearestVansDealerslocation(); }, 1500); } //return false; breakdownLocLatLng = new google.maps.LatLng(breakdownLat, breakdownLng); $.ajax({ type: "GET", url: "/Ticket/TicketAdministration_ReassignTicket/", success: function (data) { $("#divReassignTicket").html(''); $("#divReassignTicket").html(data); //open form in new dialog box $("#divReassignTicket").data("kendoWindow").open(); openKendoWindowInCenter("#divReassignTicket"); }, complete: function () { setTimeout(function () { /* get all nearest vans and dealers */ getAllNearestVansDealers(breakdownState); }, 1500); setTimeout(function () { //hideLoadingMessage(); }, 5000); }, error: function (data) { } }); } /** * Function to close kendo window * @method closeWindow * @param {String} divId HTML element id where window is loaded * @for TicketReassign */ function closeWindow(divId) { $(divId).data("kendoWindow").close(); // $('#divVanDealerList').hide(); } /** * Function to empty van dealer array * @method emptyVanDealerArray * @for TicketReassign */ function emptyVanDealerArray() { if (nearestVansDealersMarks.length > 0) { for (var counter = 0; counter < nearestVansDealersMarks.length; counter++) { nearestVansDealersMarks[counter].setMap(null); //set address text field empty here nearestVansDealersMarks[counter] = ""; } nearestVansDealersMarks = []; } } /** * Function to remove markers if any * @method removeMarker * @for TicketReassign */ function removeMarker() { //Remove previous marker if present if (breakdownMarker) { breakdownMarker.setMap(null); //set address text field empty here breakdownMarker = ""; } } //Global variables to get more than 25 vans/dealers var _arrOf25VanDealerLatLng = []; var _arrOf25VanDealerDetails = []; var _LIMIT = 100; /** * Function to get all nearest vans and dealers for reassign ticket * @method getAllNearestVansDealers * @param {String} state The name of selected state * @for TicketReassign */ var stid = ""; function getAllNearestVansDealers(state) { // $("#tableVansDealers_reassign").html(''); // alert('a1'); _copyResulEls = []; var stateName, stateId, vanDealerLatlng, type, VDId, vanDealerLat, vanDealerLng, vanDealerCity, vanDealerName, vanDealerState, deviceAlias, vanRemainingTime, deviceStatus, noOfAssignedTickets, description, DealerSCode, DealerOrVanContactNo; stateName = state; // showLoadingMessage(); // alert($("#breakdownState").val()); //empty array to get next 25 vans/dealers details. _copyResulEls = []; //alert(prdvariant); // removeMarker(); // emptyVanDealerArray(); var ajaxurl = ""; if (islocationchange == "false") { breakdownLat = $("#breakdownLattitude").val(); breakdownLng = $("#breakdownLongitude").val(); stateName = $("#breakdownState").val(); stateName1 = stateName; stateName2 = ""; // alert(stateName) // setTimeout(function () { /* get all nearest vans and dealers */ getAllNearestVansDealers(breakdownState); }, 1500); } else { breakdownLng = breakdownLocationLatLngLocation.lng(); breakdownLat = breakdownLocationLatLngLocation.lat(); stateName1 = state1; stateName2 = state2; //setTimeout(function () { /* get all nearest vans and dealers */ getAllNearestVansDealerslocation(); }, 1500); } limitval = $('#hdnVehicleModelNo').val() + ',' + prdvariant + ',' + 'eps'; var typeajax = "GET"; ajaxurl = "/Ticket/GetVansDealersbyStates/"; if (islocationchange == "false") { ajaxurl = "/Ticket/GetAllNearestVansDealers/"; // jsondata = "StateName:" + stateName + ", limit:" + _LIMIT + ""; } else { // ajaxurl = "/Ticket/GetAllNearestVansDealers /" ajaxurl = "/Ticket/GetVansDealersbyStates/"; // jsondata="StateName:"+ stateName1+", limit:"+ _LIMIT+", StateName2:"+ stateName2 +""; } //alert(prdvariant); if (prdvariant.toLowerCase() == 'electric') { // alert('if'); stateName2 = ""; } stid = stateName1; var trimStr = $.trim(locationtextarea).toLowerCase(); if ((locationtextarea == "Re-Assign To Van - Same Dealer") && (islocationchange == "false")) { // if (trimStr == "re-assign to van - same dealer") { dealer1scode = $('#DealerID').val(); $("#dvlocationchange").hide(); getNearestVansDealersforvanReassignForDealer(dealer1scode); } else { $("#tableVansDealers_reassign").html(''); // alert(limitval); $("#dvlocationchange").hide(); $.ajax({ type: "GET", data: { StateName: stateName1, limit: limitval, StateName2: stateName2 }, url: ajaxurl, success: function (data) { if (data.NearestVansDealers.length > 0) { // showLoadingMessage(); _vanDealerLatLngArr.length = 0; for (var counter = 0; counter < data.NearestVansDealers.length; counter++) { var title, markerIcon, backgroundColor; var updatedDeviceStatus = ""; var vanDealerObj = {}; vanDealerLat = data.NearestVansDealers[counter].DealerVanLattitude.trim(); vanDealerLng = data.NearestVansDealers[counter].DealerVanLongitude.trim(); type = data.NearestVansDealers[counter].Type; VDId = data.NearestVansDealers[counter].DealerVanId; // vanDealerLat = data.NearestVansDealers[counter].DealerVanLattitude; // vanDealerLng = data.NearestVansDealers[counter].DealerVanLongitude; vanDealerCity = data.NearestVansDealers[counter].DealerVanCity; noOfAssignedTickets = data.NearestVansDealers[counter].NoOfAssignedTicket; // alert(data.NearestVansDealers[counter].Fuel_type); vanDealerName = data.NearestVansDealers[counter].DealerVanName; vanDealerState = data.NearestVansDealers[counter].DealerVanState; deviceAlias = data.NearestVansDealers[counter].DeviceAlias; vanRemainingTime = data.NearestVansDealers[counter].RemainingTime; deviceStatus = data.NearestVansDealers[counter].DeviceStatus; DealerSCode = data.NearestVansDealers[counter].DealerSCode; var splitDistance = data.NearestVansDealers[counter].DealerOrVanContactNo.split("||"); Fuel_type = splitDistance[1]; // alert(Fuel_type); DealerOrVanContactNo = splitDistance[0]; DealerSCode = data.NearestVansDealers[counter].DealerSCode; // DealerOrVanContactNo = data.NearestVansDealers[counter].DealerOrVanContactNo; if (vanRemainingTime == null || vanRemainingTime == "") { vanRemainingTime = "0"; } else { if (vanRemainingTime.indexOf('-') === -1) { vanRemainingTime = vanRemainingTime; } else { vanRemainingTime = "0"; } } //check if device is connected or not if ((deviceStatus == "True") && (type == "van")) { updatedDeviceStatus = "green-circle"; } else if ((deviceStatus == "False") && (type == "van")) { updatedDeviceStatus = "red-circle"; } else { updatedDeviceStatus = ""; } if (vanRemainingTime == "0") { backgroundColor = "green"; } else { backgroundColor = "red"; } if (vanDealerLat.trim() != null && vanDealerLat.trim() != "" && vanDealerLng.trim() != null && vanDealerLng.trim() != "") { var url = "https://router.hereapi.com/v8/routes?transportMode=car&routingMode=short&avoid[features]=ferry&" url += "origin=" + vanDealerLat + "," + vanDealerLng + "&destination=" + breakdownLocLatLng.lat() + "," + breakdownLocLatLng.lng() + "&return=polyline,summary&apikey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"; //console.log(url); var request = GetDataHerefromAPI("get", url); if (request) { request.onload = function (data) { var res = JSON.parse(data.target.response); var response = (res.routes[0].sections[0]); var summary = response.summary; var durationHours = summary.duration;// Convert seconds to minutes var vanDealerObj = {}; distanceval = (summary.length / 1000); durationval = (summary.duration / 60); //durationval = Math.round(summary.duration / 60); // console.log(distanceval); if (distanceval < 100) { distanceval = (summary.length / 1000).toFixed(2); distanceval = (Math.round(distanceval * 10) / 10).toFixed(1); // distanceval = Math.round(distanceval); } else { distanceval = (summary.length / 1000); distanceval = Math.round(distanceval); } if (durationval < 60) { durationHours = Math.round(durationval) + " min"; } else { var hours = Math.floor(durationHours / 3600); // Convert to hours var minutes = Math.floor((durationHours % 3600) / 60); // Get remaining minutes durationHours = hours + ":" + (minutes < 10 ? "0" : "") + minutes + " h"; //var hours = Math.floor(durationval / 3600); // Get full hours //var minutes = Math.floor((durationval % 3600) / 60); //durationHours = hours + ":" + minutes; } vanDealerObj.distance = distanceval;// calculatedistance(resdistance,ressummary); vanDealerObj.duration = durationHours;//(response.trafficTime, res.response.route[0].summary.text); var hereUrl = "https://revgeocode.search.hereapi.com/v1/revgeocode?at=" + vanDealerLat + "," + vanDealerLng + "&lang=en-US&apiKey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"; $.ajax({ type: "Get", url: hereUrl, success: function (data) { vanDealerObj.vanDealerAddress = data.items[0].address.label; } }); // vanDealerObj.vanDealerAddress = vanAddress; vanDealerObj.type = type; vanDealerObj.vanDealerID = VDId; vanDealerObj.lat = vanDealerLat; vanDealerObj.lng = vanDealerLng; vanDealerObj.city = vanDealerCity; vanDealerObj.assignedTicketsToVanDealer = noOfAssignedTickets; vanDealerObj.name = vanDealerName; vanDealerObj.state = vanDealerState; vanDealerObj.alias = deviceAlias; vanDealerObj.remainingTime = vanRemainingTime; vanDealerObj.deviceStatus = updatedDeviceStatus; vanDealerObj.backgroundColor = backgroundColor; vanDealerObj.DealerSCode = DealerSCode; vanDealerObj.DealerOrVanContactNo = DealerOrVanContactNo; vanDealerObj.Fuel_type = Fuel_type; // alert(vanDealerObj.Fuel_type); vanDealerObj.status = "OK" _copyResulEls.push(vanDealerObj); } request.send(); } } } var forLoopLength, multiplier = 100, waitIndex = 0, setTimeOutSeconds = 0; // var vanDealerLatLngArrLength = vanDealerLatLngArr.length; //check if breakdown location is marked or not setTimeout(function () { _createVanDealerSortedList(); }, 1000); } }, complete: function () { // $('#div_loading').hide(); $('#_divVanDealerList').show(); }, error: function (data) { } }); } } /** * setTimeOut function to create sorted van dealer list * @method _createVanDealerList * @for TicketReassign */ function _createVanDealerList() { setTimeout(function () { _createVanDealerSortedList(); }, 1000); } /** * Function to reassign ticket to a van / dealer * @method reAssignVan * @param {String} index The index no. of selected van / dealer * @for TicketReassign */ function reAssignVan(index) { $("#displayVansDealersTable_reassign").find('tr').removeClass('showMarked'); $("#displayVansDealersTable_reassign").find('tr:nth-child(' + (index + 2) + ')').addClass('showMarked'); //create object of ticket model var TicketModel = {}; TicketModel.TicketId = ticketId; TicketModel.Description = ""; TicketModel.listDescription = {}; // TicketModel.AssignedTo = assto;// $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(1)').text(); TicketModel.ReportedVia = ""; if (isreassigntovan == 't') { TicketModel.AssignedTo = 'van'; } else { TicketModel.AssignedTo = 'dealer';//$('#displayVansDealersTable tr:eq(' + (index + 1) + ') > td:eq(1)').text(); } if (TicketModel.AssignedTo == "van") { TicketModel.TicketStatus = 1; TicketModel.OtherRemarks = null; } else { TicketModel.TicketStatus = 2; TicketModel.OtherRemarks = delaerTicketReason; } TicketModel.Priority = 0; TicketModel.CustomerScore = ""; TicketModel.CreatedBy = ""; TicketModel.CreationTime = ""; TicketModel.LastModifiedBy = ""; TicketModel.LastModifiedTime = ""; TicketModel.BreakdownLocation = ""; TicketModel.BreakdownLongitude = ""; TicketModel.BreakdownLattitude = ""; TicketModel.AssignedToUserLattitude = dealerlat;//copyResulEls[index].lat; TicketModel.AssignedToUserLongitude = dealerlong;//copyResulEls[index].lng; TicketModel.Isdeclined = false; TicketModel.EstimatedTimeForJobCompletion = ""; TicketModel.TotalTicketLifecycleTimeSla = ""; TicketModel.EstimatedTimeForJobCompletionSubmitTime = ""; TicketModel.VehicleRegisterNumber = vRegistrationNo; TicketModel.BreakdownLocationLandmark = ""; TicketModel.RouteId = ""; TicketModel.CustomerContactNo = ""; TicketModel.TicketStatusAlias = ""; TicketModel.Token = ""; TicketModel.Status = ""; TicketModel.Message = ""; TicketModel.UtcMinute = 0; TicketModel.RepairCost = ""; TicketModel.DefaultSlaTime = defaultSlatime; TicketModel.SlaMissedReason = ""; TicketModel.SuggestionComment = ""; TicketModel.JobCompleteResponseTime = ""; TicketModel.DefaultCol2 = ""; TicketModel.DefaultCol3 = ""; //distance var distanceInKm = dealerdistance; if (asstodealer == 'yes') { TicketModel.AssignedToUserId = $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(2)').text(); distanceInKm = $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(5)').text(); } else { TicketModel.AssignedToUserId = dealerusrid;//$('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(2)').text(); distanceInKm = dealerdistance; }///$('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(5)').text(); var distance; if (distanceInKm != "" && distanceInKm != null) { distance = dealerdistance; } else { distance = "0"; } TicketModel.EstimateDistance = distance; var regex = /.*1S.*/ var matchesRegex = regex.test(TicketModel.AssignedToUserId); if (matchesRegex) { TicketModel.AssignedTo = "dealer"; TicketModel.TicketStatus = 2; TicketModel.OtherRemarks = delaerTicketReason; } else { TicketModel.AssignedTo = "van"; TicketModel.TicketStatus = 1; TicketModel.OtherRemarks = null; } //var distanceInKm = dealerdistance //$('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(5)').text(); //var lastIndex = distanceInKm.lastIndexOf(" km"); //var distance = distanceInKm.substring(0, lastIndex); //TicketModel.EstimateDistance = (distance == null || distance == "") ? "0" : distance; //Send POST request with the ticket data if (xhr_addNewTicket && xhr_addNewTicket.readystate != 4) { xhr_addNewTicket.abort(); } xhr_addNewTicket = $.ajax({ type: "POST", url: "/Ticket/TicketAdministration_UpdateTicketOpenClose/", data: TicketModel, success: function (data) { if (data.success == true) { var vehmodel = $("#hdnVehicleModelNo").val(); //alert(vehmodel); if (vehmodel.toLowerCase().indexOf("titan") !== -1) { var tid = $('#hdnTicketID').val(); //alert(tid); var apiUrl = url + "Api/TitanDealer?updateallocatedstatus=yes"; $.ajax({ url: apiUrl, type: 'POST', dataType: 'json', data: { ticketid_alias: tid, token: securityToken, "Status": "false" }, success: function (data) { } }); } /* $.ajax({ type: "POST", url: "/Ticket/TicketAdministration_GetTicketHistory/", data: { registrationNo: vRegistrationNo, mobileNo: "", complaintNo: "" }, success: function (data) { if (data.fillFieldMesseage) { jAlert(data.fillFieldMesseage, 'Message'); } else { $("#divCheckHistory").html(data); //PRIYA 0N 29.03.2023 // alert(islocationchange); if (islocationchange == 'true') { updateIsLocation(ticketId); } else { updatedealerchangereason(ticketId); } if (document.getElementById('tableTicketHistory')) { $("#tableTicketHistory > tbody > tr[id='" + (ticketId).toUpperCase() + "']").trigger("click"); } } }, error: function (data) { } });*/ getCloseCount(); var iseps = false; if (EPSType.toLowerCase() == 'eps') { iseps = true; } var apiUrl = url + "Api/TicketDetails?ticketCount=s&ticketStatus=tt&openList=yes&isopen=yes"; $.ajax({ url: apiUrl, type: 'POST', data: { VehicleRegisterNumber: '', Token: securityToken, CustomerContactNo: mobileNo, TicketId: ticketId, chassis_number: '', isEPS: iseps, Engine_number: engineNoSearch }, //data: { TicketNo: TicketNo, ProductVariant: vertical, VehicleEchkdrivermissionNorms: emmissionnorms, VehicleSalesDate: VehicleSalesDate, CustomerName: CustomerName, VehicleFuelType: VehicleFuelType, VehicleModelNumber: vehicle_model, CustomerType: CustomerType, VehicleNumberPlate: chassis_number_vals}, success: function (data) { openCount = data.length; if (data.length > 0) { $("#VRegistrationNo").val(VRegistrationNosearch); isticketexist = 't'; tdopen = "

Open Ticket

"; for (keyVar in data) { if (data.hasOwnProperty(keyVar)) { // alert(data[keyVar].TicketIdAlias); tdopen += ""; } } tdopen += "
IdStatusResolution SLA (in min)Response SLA (in min)
" + data[keyVar].TicketIdAlias + "" + data[keyVar].TicketStatusAlias + "" + data[keyVar].DefaultSlaTime + "" + data[keyVar].TotalTicketLifecycleTimeSla + "
"; } }, complete: function () { var apiUrlClose = url + "Api/TicketDetails?ticketCount=10&ticketStatus=tt&closeList=yes"; $("#divOpenCloseTickets").html(tdopen); $.ajax({ url: apiUrlClose, type: 'POST', data: { VehicleRegisterNumber: '', Token: securityToken, CustomerContactNo: mobileNo, TicketId: ticketId, chassis_number: '' }, //data: { TicketNo: TicketNo, ProductVariant: vertical, VehicleEchkdrivermissionNorms: emmissionnorms, VehicleSalesDate: VehicleSalesDate, CustomerName: CustomerName, VehicleFuelType: VehicleFuelType, VehicleModelNumber: vehicle_model, CustomerType: CustomerType, VehicleNumberPlate: chassis_number_vals}, success: function (data) { // closeCount = data.length; if (data.length > 0) { if (closeCount > 10) { tdclose = "

Close Ticket(" + closeCount + ")

"; } else { tdclose = "

Close Ticket(" + closeCount + ")

IdStatusResolution SLA (in min)Response SLA (in min) Closure within 24 Hrs and Feedback
"; } isticketexist = 't'; for (keyVar in data) { if (data.hasOwnProperty(keyVar)) { tdclose += ""; var callStatus = ""; if (data[keyVar].CallStatus == null) { callStatus = ""; } else { callStatus = data[keyVar].CallStatus; } if (parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24) && (callStatus.toLowerCase().trim() == "feedback collected") && (data[keyVar].ReasonBeyond24Hrs != "" && data[keyVar].ReasonBeyond24Hrs != null)) { tdclose += ""; } else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && ((callStatus.toLowerCase().trim() != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null)) && ((data[keyVar].ReasonBeyond24Hrs != "" && data[keyVar].ReasonBeyond24Hrs != null))) { tdclose += ""; } else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && (callStatus.toLowerCase().trim() != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null) && ((data[keyVar].ReasonBeyond24Hrs == "" || (data[keyVar].ReasonBeyond24Hrs == null)))) { tdclose += ""; } else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && (callStatus.toLowerCase().trim() == "feedback collected") && ((data[keyVar].ReasonBeyond24Hrs == "" || (data[keyVar].ReasonBeyond24Hrs == null)))) { tdclose += ""; } else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim()) != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null) { tdclose += ""; } else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim() == "feedback collected")) { tdclose += ""; } tdclose += ""; } } tdclose += "
IdStatusResolution SLA (in min)Response SLA (in min) Closure within 24 Hrs and Feedback
" + data[keyVar].TicketIdAlias + "" + data[keyVar].TicketStatusAlias + "" + data[keyVar].DefaultSlaTime + "" + data[keyVar].TotalTicketLifecycleTimeSla + " 24    F  24    F  24    F  24    F  F  F 
"; } else { } }, complete: function () { if (islocationchange == 'true') { updateIsLocation(ticketId); } else { updatedealerchangereason(ticketId); } getTicketDetailsopen(ticketId); }, error: function (data) { } }); }, error: function (data) { console.log(data); } }); } }, complete: function () { closeWindow("#divReassignTicket"); // $('#divVanDealerList').hide(); }, error: function (data) { } }); } /** * Function to calculate route distance * @method _calcRouteDistance * @param {String} origin The location of origin(van / dealer) * @param {String} destinationArr The location of destination(vehicle's breakdown) * @for TicketReassign */ function _calcRouteDistance(origin, destinationArr, vanDealerDetailsArr) { _service.getDistanceMatrix({ origins: [origin], destinations: destinationArr, travelMode: google.maps.TravelMode.DRIVING, unitSystem: google.maps.UnitSystem.METRIC, avoidHighways: false, avoidTolls: false }, _distanceMatrixCallback); //Callback for Distance Matrix API function _distanceMatrixCallback(response, status) { //If Status was an error, throw alert if (status != google.maps.DistanceMatrixStatus.OK) { alert('Error was: ' + status); } else { //Result ELements response from Distance Matrinx var _resultEls = response.rows[0].elements; //Add vanId and vanAddress to the response for (var i = 0; i < _resultEls.length; i++) { if (_resultEls[i].status == "OK") { _resultEls[i].vanDealerAddress = response.destinationAddresses[i]; _resultEls[i].vanDealerID = vanDealerDetailsArr[i].id; _resultEls[i].type = vanDealerDetailsArr[i].type; _resultEls[i].lat = vanDealerDetailsArr[i].lat; _resultEls[i].lng = vanDealerDetailsArr[i].lng; _resultEls[i].city = vanDealerDetailsArr[i].city; _resultEls[i].assignedTicketsToVanDealer = vanDealerDetailsArr[i].assignedTickets; _resultEls[i].name = vanDealerDetailsArr[i].name; _resultEls[i].state = vanDealerDetailsArr[i].state; _resultEls[i].alias = vanDealerDetailsArr[i].alias; _resultEls[i].remainingTime = vanDealerDetailsArr[i].remainingTime; _resultEls[i].deviceStatus = vanDealerDetailsArr[i].deviceStatus; _resultEls[i].backgroundColor = vanDealerDetailsArr[i].backGroundColor; _resultEls[i].backgroundColor = vanDealerDetailsArr[i].backGroundColor; _resultEls[i].DealerSCode = vanDealerDetailsArr[i].DealerSCode; _resultEls[i].DealerOrVanContactNo = vanDealerDetailsArr[i].DealerOrVanContactNo; } } for (var counter = 0; counter < _resultEls.length; counter++) { if (_resultEls[counter].status == "OK") { _copyResulEls.push(_resultEls[counter]); } } } } } /** * This fn create sorted van dealer list * @method _createVanDealerSortedList * @for TicketReassign */ function _createVanDealerSortedList() { _copyResulEls.sort(function (a, b) { return a.distance - b.distance; // Sorts from shortest to longest distance }); $("#tableVansDealers_reassign").html(''); //var to hold table String to show in dialog-form var _trString = ""; //Loop through length of result vans array values of resultEl for (var i = 0; i < _copyResulEls.length; i++) { //if i===0, add html for table. if (_copyResulEls[i].status == "OK") { var _markerIcon; if (i === 0) { _trString += ''; //'
S. No.Van/DealerVan/Dealer IdVan/Dealer NameVan/Dealer LocationDistanceDurationNo. of Open TicketsFuel TypeRemaining Time(in mins)Is ConnectedDealer ScodeContact No.
>'; } var svanrerassign = ""; var bcolorreassign = ""; var reassignbtn = ""; var dis = _copyResulEls[i].distance + ' KM'; var str = $('#hdnVehicleModelNo').val(); if (str.toLowerCase().indexOf("titan") !== -1 || str.toLowerCase().indexOf("axles") !== -1 || str.toLowerCase().indexOf("genset") !== -1 || str.toLowerCase().indexOf("industrial") !== -1 || str.toLowerCase().indexOf("ne") !== -1) { svanrerassign = ''; reassignbtn = ''; } else { if (_copyResulEls[i].type == 'van') { bcolorreassign = 'background:#e59d00;'; // alert('aa' + _copyResulEls[i].fu) svanrerassign = ''; reassignbtn = ''; } else { svanrerassign = ''; reassignbtn = ''; } } //add each row //_trString += ''; _trString += '' + svanrerassign + '' + reassignbtn + ''; //if i===2, end table tag. if (i === _copyResulEls.length) { $("#tableVansDealers_reassign").append('
S. No.Van/DealerVan/Dealer IdVan/Dealer NameVan/Dealer LocationDistanceDurationNo. of Open TicketsFuel TypeRemaining Time(in mins)Is ConnectedDealer ScodeContact No.
' + _copyResulEls[i].name + '' + _copyResulEls[i].name + '' + _copyResulEls[i].name + '
' + (i + 1) + '' + _copyResulEls[i].type + '' + _copyResulEls[i].vanDealerID + '' + _copyResulEls[i].name + '' + _copyResulEls[i].vanDealerAddress + '' + _copyResulEls[i].distance.text + '' + _copyResulEls[i].duration.text + '' + _copyResulEls[i].assignedTicketsToVanDealer + '' + _copyResulEls[i].remainingTime + '' + _copyResulEls[i].DealerSCode + '' + _copyResulEls[i].DealerOrVanContactNo + '
' + (i + 1) + '' + _copyResulEls[i].type + '' + _copyResulEls[i].vanDealerID + '' + _copyResulEls[i].vanDealerAddress + '' + dis + '' + _copyResulEls[i].duration + '' + _copyResulEls[i].assignedTicketsToVanDealer + '' + _copyResulEls[i].Fuel_type + '' + _copyResulEls[i].remainingTime + '' + _copyResulEls[i].DealerSCode + '' + _copyResulEls[i].DealerOrVanContactNo + '
'); } //add content to info window var description = '
' + '
' + '
' + '

' + _copyResulEls[i].name + '

' + '' + '' + '' + '
Van/Dealer Location' + _copyResulEls[i].vanDealerAddress + '' + '
Distance ' + _copyResulEls[i].distance + 'Duration ' + _copyResulEls[i].duration + '' + ' No. of Open Tickets ' + _copyResulEls[i].assignedTicketsToVanDealer + '' + _copyResulEls[i].DealerSCode + '' + _copyResulEls[i].DealerOrVanContactNo + '
'; } } $("#tableVansDealers_reassign").append(_trString); setTimeout(function () { if (EPSType.toLowerCase() == 'eps') { $("tr[id*='van' i]").hide(); } }, 2000); //On click of row of Vans / dealers table $("#displayVansDealersTable_reassign > tbody > tr").click(function (e) { var rowId = e.currentTarget.id; if (infowindow) { infowindow.close(); } $("#displayVansDealersTable_reassign").find('tr').removeClass('showMarked'); $("#displayVansDealersTable_reassign").find('tr[id=' + rowId + ']').addClass('showMarked'); var _selectedVanDealerLat, _selectedVanDealerLng, _vehicleLatLng, _selectedVanDealerLatLng, _selectedVanDealerType; var _selectedVanDealerId = e.currentTarget.id; for (var count = 0; count < _copyResulEls.length; count++) { if (_copyResulEls[count].vanDealerID == _selectedVanDealerId) { _selectedVanDealerLat = _copyResulEls[count].lat; _selectedVanDealerLng = _copyResulEls[count].lng; _selectedVanDealerType = _copyResulEls[count].type; } } vehicleLatLng = breakdownLocLatLng; _selectedVanDealerLatLng = new google.maps.LatLng(_selectedVanDealerLat, _selectedVanDealerLng); calcRoute(vehicleLatLng, _selectedVanDealerLatLng, _selectedVanDealerType, _ccplMap); }); } // //start marker bounce // function getMarkerBounce(vanDealerMarker) { // if (vanDealerMarker.getAnimation() != null) { // vanDealerMarker.setAnimation(null); // } else { // vanDealerMarker.setAnimation(google.maps.Animation.BOUNCE); // } // } // //stop marker bounce // function stopMarkerBounce() { // for (var count = 0; count < nearestVansDealersMarks.length; count++) { // if (nearestVansDealersMarks[count].getAnimation() != null) { // nearestVansDealersMarks[count].setAnimation(null); // } // } // } //} //=========================================================Getting Address from Here API ==================================== function ShowCurrentTime(lat, lng) { vanAddress = ""; var hereUrl = "https://revgeocode.search.hereapi.com/v1/revgeocode?at=" + lat + "," + lng + "&lang=en-US&apiKey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"; $.ajax({ type: "Get", url: hereUrl, success: function (data) { vanAddress = data.items[0].address.label; } }); } //===========================================================Calculate Distance ============================================ function calculatedistance(distance, str) { return distance = { text: str.slice(str.indexOf("length") + 8, str.indexOf("")), value: distance }; } //======================================================Calculate Time ========================================================= function calculatetime(time, str) { //if (time == 0) { return duration = { text: str.slice(str.indexOf("time") + 6, str.indexOf(".")), value: time } //} //else { // d = Number(time); // var h = Math.floor(d / 3600); // var m = Math.floor(d % 3600 / 60); // var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : ""; // var mDisplay = m > 0 ? m + (m == 1 ? " min " : " mins ") : ""; // return duration = { text: hDisplay + mDisplay, value: time } //} } //=================================================Calling Method of Here API function GetDataHerefromAPI(method, url) { var xhr = new XMLHttpRequest(); xhr.withCredentials = false; if ("withCredentials" in xhr) { xhr.open(method, url, false); } else if (typeof XDomainRequest != "undefined") { xhr = new XDomainRequest(); xhr.open(method, url); } else { xhr = null; } return xhr; } //====================== ADDED ON 29.03.2023 FOR LOCATION REASSIGN (START)============================= function getStateListlocation() { var eoslsthtml = $("#eos_state_reassign").html(); if (eoslsthtml != "") { } else { $.ajax({ type: "GET", url: "/Ticket/GetAllStateList/", success: function (data) { // empty City dropdown if ($("#eos_state_reassign").data("kendoMultiSelect") != undefined) { var multiselect = $("#eos_state_reassign").data("kendoMultiSelect"); multiselect.destroy(); } // add data to dropdown. if (data.list) { $("#eos_state_reassign").append($('').val("").html("-Select-")); for (var counter = 0; counter < data.list.length; counter++) { $("#eos_state_reassign").append( $('').val(data.list[counter].Value).html(data.list[counter].Text)); } } }, complete: function () { var optional = $("#eos_state_reassign").kendoMultiSelect({ // autoClose: false, maxSelectedItems: 2 }).data("kendoMultiSelect"); optional.value([]); }, error: function (data) { } }); } } var validateLocationCall = ""; var landmarkvallocation = ""; function locationReassignTicket() { // $("#tableVansDealers_reassign").html(''); // _copyResulEls =[]; locationtextarea = ""; var stateMultiselectval = $("#eos_state_reassign").data("kendoMultiSelect").dataItems(); //$('#spnlocationstateerror').hide(); //$('#spnlocationstateerror').html(''); //$('#spnbreakdownlocationError').hide(); //$('#spnbreakdownlocationError').html(''); var lval = $('#searchLocationToolLocation').val(); $('#eos_exact_location_change').val(lval); var cityval = $('#eos_city_location').val(); var Routeval = $('#ddlRoutesLocation').val(); var landmarkval = $('#breakdown_landmark_location').val(); landmarkvallocation = landmarkval; $('#hdnCityLocation').val(cityval); $('#hdnRouteLocation').val(Routeval); $('#hdnLandmarkLocation').val(landmarkval); var iserrror = ""; var locationtextarea = $('#eos_exact_location_change').val(); if (stateMultiselectval == "") { iserrror = "yes"; } if (locationtextarea == "") { iserrror = "yes"; } if (cityval == "") { iserrror = "yes"; } if (Routeval == "") { iserrror = "yes"; } if (iserrror == "yes") { return; } else { //updateIsLocation('TICKETID-275204'); // $('#divLoadingElement').show(); _copyResulEls = []; islocationchange = 'true'; breakdownLng = breakdownLocationLatLngLocation.lng(); breakdownLat = breakdownLocationLatLngLocation.lat(); $('#dvlocationchange').hide(); var str = $('#hdnVehicleModelNo').val(); if (str.toLowerCase().indexOf("pro x 3.5t ev") !== -1) { $('#hdnVehicleModelNo').val('TITAN 3.5T'); } else if (str.toLowerCase().indexOf("pro x 3.5") !== -1) { $('#hdnVehicleModelNo').val('TITAN 3.5'); } reassignTicket(); } } function setlocation() { var stateMultiselect = $("#eos_state_reassign").data("kendoMultiSelect").dataItems(); if (stateMultiselect != "" && stateMultiselect != null && stateMultiselect.length > 0) { state1 = stateMultiselect[0].text; state2 = stateMultiselect.length > 1 ? stateMultiselect[1].text : ""; LoadCityListOnStateChangelocation(); } var sname = ""; // alert(state1) if (state2 == "" || state2 == null) { sname = state1; } else { sname = state1 + ',' + state2; } statesearch = sname; } function updateIsLocation(ticketid) { ///var LocationModel = {}; //LocationModel.ti=cketid = ticketId; //alert(changeBreakDownLocation + 'breakdownLng' + breakdownLocationLatLngLocation.lat()); var CityLocationVal = $('#hdnCityLocation').val(); var RouteLocationVal = $('#hdnRouteLocation').val(); var LandmarkLocationVal = $('#hdnLandmarkLocation').val(); //alert(CityLocationVal + "CityLocationVal" + RouteLocationVal + "RouteLocationVal" + LandmarkLocationVal); // return; var apiUrl = url + "Api/Location?islocationchange=true&ticketId=" + ticketid + "&BreakdownLocation=" + changeBreakDownLocation + "&breakdownLongitude=" + breakdownLocationLatLngLocation.lng() + "&breakdownLattitude=" + breakdownLocationLatLngLocation.lat() + "&state=" + state1 + "&City=" + CityLocationVal + "&Route=" + RouteLocationVal + "&Landmark=" + landmarkvallocation; $.ajax({ url: apiUrl, type: 'POST', data: { islocationchange: 'true', ticketId: ticketid }, success: function (data) { }, complete: function () { }, error: function (data) { } }); } function updatedealerchangereason(ticketid) { var reason = dealerchangereason; var OtherReason = dealerchangereasonremarks; reason = $("#hdnDealercChangeReason").val(); OtherReason = $("#hdnDealercChangeReasonRemarks").val(); var apiUrl = url + "Api/Location?isdealearchange=true&ticketId=" + ticketid + "&reason=" + reason + "&OtherReason=" + OtherReason; $.ajax({ url: apiUrl, type: 'POST', data: { islocationchange: 'true', ticketId: ticketid }, success: function (data) { }, complete: function () { $("#hdnDealercChangeReason").val(''); $("#hdnDealercChangeReasonRemarks").val(''); }, error: function (data) { } }); } var prdvariant = "cng"; function reassignTicketDefault() { islocationchange = "false"; var ticketid = $("#hdnTicketID").val(); // alert(hdnTicketID); if (ticketid.length > 13) { //alert('if'); substr = ticketid.substring(ticketid.length - 7, ticketid.length); } else { //alert('else'); substr = ticketid.substring(ticketid.length - 6, ticketid.length); } var tid = "TICKETID-" + substr; var tstatus = $('#' + tid).attr('data-ticketstatus'); apiUrl = url + "Api/TicketDetails?ownerinfo=yes&ticketid=" + tid + "&Token=teramatrix&openclose=" + tstatus + ""; $.ajax({ type: "POST", url: apiUrl, success: function (data) { //console.log('aa'); $('#hdnVehicleModelNo').val(data.VehicleModelNumber); console.log(data.VehicleModelNumber); if (data.VehicleModelNumber == "Pro X 3T EV") { console.log('aa1'); $('#hdnVehicleModelNo').val("TITAN 3T"); } else if (data.VehicleModelNumber == "Pro X 3.5T EV") { console.log('aa2'); $('#hdnVehicleModelNo').val("TITAN 3.5T"); } console.log($('#hdnVehicleModelNo').val()); if (data.ProductVariant == null) { } else { prdvariant = data.ProductVariant; } } }); reassignTicketdefault(); } function reassignTicketdefault() { $.ajax({ type: "GET", url: "/Ticket/TicketAdministration_ReassignTicket/", success: function (data) { $("#divReassignTicket").html(''); $("#divReassignTicket").html(data); //open form in new dialog box $("#divReassignTicket").data("kendoWindow").open(); openKendoWindowInCenter("#divReassignTicket"); }, complete: function () { }, error: function (data) { } }); } function LoadCityListOnStateChangelocation() { // reset city list if ($("#eos_city_location").data("kendoComboBox") != undefined) { var multiselect = $("#eos_city_location").data("kendoComboBox"); multiselect.destroy(); } $("#eos_city_location").kendoComboBox({ dataTextField: "CityName", dataValueField: "CityName", filter: "contains", dataSource: [] }); var stateMultiselect = $("#eos_state_reassign").data("kendoMultiSelect").dataItems(); // alert(stateMultiselect); if (stateMultiselect != "" && stateMultiselect != null && stateMultiselect.length > 0) { var combobox = $("#eos_city_location").data("kendoComboBox"); for (var counter = 0; counter < stateMultiselect.length; counter++) { $.ajax({ type: "GET", url: "/DropDownData/showCityStateWise/", data: { stateVal: stateMultiselect[counter].value }, success: function (data) { for (var count = 0; count < data.list.length; count++) { combobox.dataSource.add({ CityName: data.list[count].CityName, CityName: data.list[count].CityName }); } }, error: function (data) { } }); } } } function showvanreassign($this) { var dealerscode = $this.value; var nameArr = dealerscode.split(','); state1 = statesearch; getNearestVansDealersforvanReassign(nameArr[0], nameArr[1]) } function getNearestVansDealersforvanReassign(dealercode, trindex) { $("#dvlocationchange").hide(); //empty array to get next 25 vans/dealers details. _copyResulEls = []; //empty array nearestVansDealersMarks = []; var aurl = url + "Api/CogentAPI?getvans=ss"; var stateName1, stateName1, stateId, vanDealerLatlng, type, VDId, vanDealerLat, vanDealerLng, vanDealerCity, vanDealerName, vanDealerState, deviceAlias, vanRemainingTime, deviceStatus, noOfAssignedTickets, description, DealerSCode, DealerOrVanContactNo; if (xhr_getAllVans && xhr_getAllVans.readystate != 4) { xhr_getAllVans.abort(); } if (islocationchange == 'false') { state1 = breakdownState; } xhr_getAllVans = $.ajax({ type: "POST", url: url + "Api/CogentAPI?getvans=ss", // data: { StateName: state1, limit: prdvariant, StateName2: state2, DealerSCode: dealercode, Token: securityToken, UserId: userId }, data: { StateName: state1, limit: _LIMIT, StateName2: state2, DealerSCode: dealercode, Fuel_type: prdvariant, Token: securityToken, UserId: userId }, success: function (data) { if (data.length > 0) { // $("#div_loading").show(); for (keyVar in data) { if (data.hasOwnProperty(keyVar)) { var title, markerIcon, backgroundColor; var updatedDeviceStatus = ""; var vanDealerObj = {}; vanDealerLat = data[keyVar].DealerVanLattitude.trim(); vanDealerLng = data[keyVar].DealerVanLongitude.trim(); type = data[keyVar].Type; VDId = data[keyVar].DealerVanId; vanDealerCity = data[keyVar].DealerVanCity; noOfAssignedTickets = data[keyVar].NoOfAssignedTicket; vanDealerName = data[keyVar].DealerVanName; vanDealerState = data[keyVar].DealerVanState; deviceAlias = data[keyVar].DeviceAlias; vanRemainingTime = data[keyVar].RemainingTime; deviceStatus = data[keyVar].DeviceStatus; DealerSCode = data[keyVar].DealerSCode; DealerOrVanContactNo = data[keyVar].DealerOrVanContactNo; DealerSCode = data[keyVar].DealerSCode; DealerOrVanContactNo = data[keyVar].DealerOrVanContactNo; // alert(data[keyVar].Fuel_type); Fuel_type = data[keyVar].Fuel_type; if (vanRemainingTime == null || vanRemainingTime == "") { vanRemainingTime = "0"; } else { if (vanRemainingTime.indexOf('-') === -1) { vanRemainingTime = vanRemainingTime; } else { vanRemainingTime = "0"; } } //check if device is connected or not if ((deviceStatus == "True") && (type == "van")) { updatedDeviceStatus = "green-circle"; } else if ((deviceStatus == "False") && (type == "van")) { updatedDeviceStatus = "red-circle"; } else { updatedDeviceStatus = ""; } if (vanRemainingTime == "0") { backgroundColor = "green"; } else { backgroundColor = "red"; } if (vanDealerLat.trim() != null && vanDealerLat.trim() != "" && vanDealerLng.trim() != null && vanDealerLng.trim() != "") { var brkloc = ""; var brklan = ""; if (islocationchange == 'false') { state1 = breakdownState; brkloc = breakdownLat; brklan = breakdownLng; } else { brkloc = breakdownLocationLatLngLocation.lat(); brklan = breakdownLocationLatLngLocation.lng(); } var url = "https://router.hereapi.com/v8/routes?transportMode=car&routingMode=short&avoid[features]=ferry&" url += "origin=" + vanDealerLat + "," + vanDealerLng + "&destination=" + brkloc + "," + brklan + "&return=polyline,summary&apikey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"; // console.log(url); var request = GetDataHerefromAPI("get", url); if (request) { request.onload = function (data) { var res = JSON.parse(data.target.response); var response = (res.routes[0].sections[0]); var summary = response.summary; var durationHours = summary.duration;// Convert seconds to minutes var vanDealerObj = {}; distanceval = (summary.length / 1000); durationval = (summary.duration / 60); //durationval = Math.round(summary.duration / 60); // console.log(distanceval); if (distanceval < 100) { distanceval = (summary.length / 1000).toFixed(2); distanceval = (Math.round(distanceval * 10) / 10).toFixed(1); // distanceval = Math.round(distanceval); } else { distanceval = (summary.length / 1000); distanceval = Math.round(distanceval); } if (durationval < 60) { durationHours = Math.round(durationval) + " min"; } else { var hours = Math.floor(durationHours / 3600); // Convert to hours var minutes = Math.floor((durationHours % 3600) / 60); // Get remaining minutes durationHours = hours + ":" + (minutes < 10 ? "0" : "") + minutes + " h"; //var hours = Math.floor(durationval / 3600); // Get full hours //var minutes = Math.floor((durationval % 3600) / 60); //durationHours = hours + ":" + minutes; } vanDealerObj.distance = distanceval;// calculatedistance(resdistance,ressummary); vanDealerObj.duration = durationHours;//(response.trafficTime, res.response.route[0].summary.text); var hereUrl = "https://revgeocode.search.hereapi.com/v1/revgeocode?at=" + vanDealerLat + "," + vanDealerLng + "&lang=en-US&apiKey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"; $.ajax({ type: "Get", url: hereUrl, success: function (data) { vanDealerObj.vanDealerAddress = data.items[0].address.label; } }); vanDealerObj.type = type; vanDealerObj.vanDealerID = VDId; vanDealerObj.lat = vanDealerLat; vanDealerObj.lng = vanDealerLng; vanDealerObj.city = vanDealerCity; vanDealerObj.assignedTicketsToVanDealer = noOfAssignedTickets; vanDealerObj.name = vanDealerName; vanDealerObj.state = vanDealerState; vanDealerObj.alias = deviceAlias; vanDealerObj.remainingTime = vanRemainingTime; vanDealerObj.deviceStatus = updatedDeviceStatus; vanDealerObj.backgroundColor = backgroundColor; vanDealerObj.DealerSCode = DealerSCode; vanDealerObj.DealerOrVanContactNo = DealerOrVanContactNo; vanDealerObj.Fuel_type = Fuel_type vanDealerObj.status = "OK" _copyResulEls.push(vanDealerObj); } request.send(); } } } var forLoopLength, multiplier = 100, waitIndex = 0, setTimeOutSeconds = 0; // var vanDealerLatLngArrLength = vanDealerLatLngArr.length; } } else { alert("No Active Van"); } setTimeout(function () { _createVanDealerSortedListForVan(dealercode); }, 1000); }, complete: function () { // $("#div_loading").hide(); var btnid = "#btnvan" + dealercode; $("#dvlocationchange").hide(); $(btnid).attr("disabled", "disabled"); }, error: function (data) { } }); } function _createVanDealerSortedListForVan(trindex) { _copyResulEls.sort(function (a, b) { return a.distance - b.distance; // Sorts from shortest to longest distance }); var bcolor = 'background:#e59d00;'; //var to hold table String to show in dialog-form var trString = ''; //Loop through of array length of copyResulEls for (var i = 0; i < _copyResulEls.length; i++) { //if i===0, add html for table. if (_copyResulEls[i].status == "OK") { var markerIcon; var trid = "#" + trindex; var dis = _copyResulEls[i].distance + ' KM'; //add each row trString += '*' + _copyResulEls[i].type + '' + _copyResulEls[i].vanDealerID + '' + _copyResulEls[i].name + '' + _copyResulEls[i].vanDealerAddress + '' + dis + '' + _copyResulEls[i].duration + '' + _copyResulEls[i].assignedTicketsToVanDealer + '' + _copyResulEls[i].Fuel_type + '' + _copyResulEls[i].remainingTime + '' + _copyResulEls[i].DealerSCode + '' + _copyResulEls[i].DealerOrVanContactNo + ''; //add content to info win//dow var description = '
' + '
' + '
' + '

' + _copyResulEls[i].name + '

' + '' + '' + '' + '
Van/Dealer Location' + _copyResulEls[i].vanDealerAddress + '' + '
Distance ' + _copyResulEls[i].distance + 'Duration ' + _copyResulEls[i].duration + '' + ' No. of Open Tickets ' + _copyResulEls[i].assignedTicketsToVanDealer + '
'; var vanDealerLatlng = new google.maps.LatLng(_copyResulEls[i].lat, _copyResulEls[i].lng); } if (i == _copyResulEls.length - 1) { hideLoadingMessage(); } } //var _bounds = new google.maps.LatLngBounds(); //for (var count = 0; count < nearestVansDealersMarks.length; count++) { // _bounds.extend(nearestVansDealersMarks[count].position); //} //ccplMap.fitBounds(_bounds); //Append the trString created in the dialog-form //$("#tableVansDealers").append(trString); // $("#tableVansDealers_reassign").html(''); // _copyResulEls =[]; $('#displayVansDealersTable').html(''); setTimeout(function () { $(trid).after(trString); }, 300); $("#_divVanDealerList").css('display', 'inline-block'); $("#dvlocationchange").hide(); $("#displayVansDealersTable > tbody > tr").click(function (e) { var rowId = e.currentTarget.id; if (infowindow) { infowindow.close(); } var selectedVanDealerLat, selectedVanDealerLng, vehicleLatLng, selectedVanDealerLatLng, selectedVanDealerType; var selectedVanDealerId = e.currentTarget.id; for (var count = 0; count < copyResulEls.length; count++) { if (copyResulEls[count].vanDealerID == selectedVanDealerId) { selectedVanDealerLat = copyResulEls[count].lat; selectedVanDealerLng = copyResulEls[count].lng; selectedVanDealerType = copyResulEls[count].type; } } vehicleLatLng = breakdownLocationLatLngLocation; }); } var isreassigntovan = 'f'; //====================== ADDED ON 29.03.2023 FOR LOCATION REASSIGN (END)============================= function ReassignVantovan($this) { var dealerscode = $this.value; var vid = $this.id; isreassigntovan = 't'; //var nameArr = dealerscode.split(','); var myString = vid.replace("btnrevan", ''); reAssignVanNew(myString); // assignVanNew(dealerscode); } function reAssignVanNew(index) { $("#displayVansDealersTable_reassign").find('tr').removeClass('showMarked'); // $("#displayVansDealersTable_reassign").find('tr:nth-child(' + (index + 2) + ')').addClass('showMarked'); //create object of ticket model $("#dvlocationchange").hide(); var TicketModel = {}; TicketModel.TicketId = ticketId; TicketModel.Description = ""; TicketModel.listDescription = {}; if (isreassigntovan == 't') { TicketModel.AssignedTo = 'van'; } else { TicketModel.AssignedTo = 'dealer';//$('#displayVansDealersTable tr:eq(' + (index + 1) + ') > td:eq(1)').text(); } TicketModel.ReportedVia = ""; if (TicketModel.AssignedTo == "van") { TicketModel.TicketStatus = 1; TicketModel.OtherRemarks = null; } else { TicketModel.TicketStatus = 2; TicketModel.OtherRemarks = delaerTicketReason; } TicketModel.Priority = 0; TicketModel.CustomerScore = ""; TicketModel.CreatedBy = ""; TicketModel.CreationTime = ""; TicketModel.LastModifiedBy = ""; TicketModel.LastModifiedTime = ""; TicketModel.BreakdownLocation = ""; TicketModel.BreakdownLongitude = ""; TicketModel.BreakdownLattitude = ""; //TicketModel.AssignedToUserId = $('#displayVansDealersTable_reassign tr:eq(' + (index + 1) + ') > td:eq(2)').text(); //TicketModel.AssignedToUserLattitude = _copyResulEls[index].lat; //TicketModel.AssignedToUserLongitude = _copyResulEls[index].lng; var trlatid = "#hdnrelat" + index; var trlongid = "#hdnrelong" + index; var trauid = "#hdnreauid" + index; var trdistanceid = "#hdnredistanceid" + index; TicketModel.AssignedToUserLattitude = $(trlatid).val(); TicketModel.AssignedToUserLongitude = $(trlongid).val(); TicketModel.AssignedToUserId = $(trauid).val(); TicketModel.Isdeclined = false; TicketModel.EstimatedTimeForJobCompletion = ""; TicketModel.TotalTicketLifecycleTimeSla = ""; TicketModel.EstimatedTimeForJobCompletionSubmitTime = ""; TicketModel.VehicleRegisterNumber = vRegistrationNo; TicketModel.BreakdownLocationLandmark = ""; TicketModel.RouteId = ""; TicketModel.CustomerContactNo = ""; TicketModel.TicketStatusAlias = ""; TicketModel.Token = ""; TicketModel.Status = ""; TicketModel.Message = ""; TicketModel.UtcMinute = 0; TicketModel.RepairCost = ""; TicketModel.DefaultSlaTime = defaultSlatime; TicketModel.SlaMissedReason = ""; TicketModel.SuggestionComment = ""; TicketModel.JobCompleteResponseTime = ""; TicketModel.DefaultCol2 = ""; TicketModel.DefaultCol3 = ""; //distance var distanceInKm = $(trdistanceid).val();//$('#displayVansDealersTable tr:eq(' + (index + 1) + ') > td:eq(5)').text(); var distance; if (distanceInKm != "" && distanceInKm != null) { distance = distanceInKm } else { distance = "0"; } TicketModel.EstimateDistance = distance; var regex = /.*1S.*/ var matchesRegex = regex.test(TicketModel.AssignedToUserId); if (matchesRegex) { TicketModel.AssignedTo = "dealer"; TicketModel.TicketStatus = 2; TicketModel.OtherRemarks = delaerTicketReason; } else { TicketModel.AssignedTo = "van"; TicketModel.TicketStatus = 1; TicketModel.OtherRemarks = null; } //Send POST request with the ticket data if (xhr_addNewTicket && xhr_addNewTicket.readystate != 4) { xhr_addNewTicket.abort(); } xhr_addNewTicket = $.ajax({ type: "POST", url: "/Ticket/TicketAdministration_UpdateTicketOpenClose/", data: TicketModel, success: function (data) { if (data.success == true) { var vehmodel = $("#hdnVehicleModelNo").val(); //alert(vehmodel); if (vehmodel.toLowerCase().indexOf("titan") !== -1) { var tid = $('#hdnTicketID').val(); //alert(tid); var apiUrl = url + "Api/TitanDealer?updateallocatedstatus=yes"; $.ajax({ url: apiUrl, type: 'POST', dataType: 'json', data: { ticketid_alias: tid, token: securityToken, "Status": "true" }, success: function (data) { } }); } getCloseCount(); var iseps = false; if (EPSType.toLowerCase() == 'eps') { iseps = true; } var apiUrl = url + "Api/TicketDetails?ticketCount=s&ticketStatus=tt&openList=yes&isopen=yes"; $.ajax({ url: apiUrl, type: 'POST', data: { VehicleRegisterNumber: '', Token: securityToken, CustomerContactNo: mobileNo, TicketId: ticketId, chassis_number: '', isEPS: iseps, Engine_number: engineNoSearch }, //data: { TicketNo: TicketNo, ProductVariant: vertical, VehicleEchkdrivermissionNorms: emmissionnorms, VehicleSalesDate: VehicleSalesDate, CustomerName: CustomerName, VehicleFuelType: VehicleFuelType, VehicleModelNumber: vehicle_model, CustomerType: CustomerType, VehicleNumberPlate: chassis_number_vals}, success: function (data) { openCount = data.length; if (data.length > 0) { $("#VRegistrationNo").val(VRegistrationNosearch); isticketexist = 't'; tdopen = "

Open Ticket

"; for (keyVar in data) { if (data.hasOwnProperty(keyVar)) { // alert(data[keyVar].TicketIdAlias); tdopen += ""; } } tdopen += "
IdStatusResolution SLA (in min)Response SLA (in min)
" + data[keyVar].TicketIdAlias + "" + data[keyVar].TicketStatusAlias + "" + data[keyVar].DefaultSlaTime + "" + data[keyVar].TotalTicketLifecycleTimeSla + "
"; } }, complete: function () { var apiUrlClose = url + "Api/TicketDetails?ticketCount=10&ticketStatus=tt&closeList=yes"; $("#divOpenCloseTickets").html(tdopen); $.ajax({ url: apiUrlClose, type: 'POST', data: { VehicleRegisterNumber: '', Token: securityToken, CustomerContactNo: mobileNo, TicketId: ticketId, chassis_number: '' }, //data: { TicketNo: TicketNo, ProductVariant: vertical, VehicleEchkdrivermissionNorms: emmissionnorms, VehicleSalesDate: VehicleSalesDate, CustomerName: CustomerName, VehicleFuelType: VehicleFuelType, VehicleModelNumber: vehicle_model, CustomerType: CustomerType, VehicleNumberPlate: chassis_number_vals}, success: function (data) { // closeCount = data.length; if (data.length > 0) { if (closeCount > 10) { tdclose = "

Close Ticket(" + closeCount + ")

"; } else { tdclose = "

Close Ticket(" + closeCount + ")

IdStatusResolution SLA (in min)Response SLA (in min) Closure within 24 Hrs and Feedback
"; } isticketexist = 't'; for (keyVar in data) { if (data.hasOwnProperty(keyVar)) { tdclose += ""; var callStatus = ""; if (data[keyVar].CallStatus == null) { callStatus = ""; } else { callStatus = data[keyVar].CallStatus; } if (parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24) && (callStatus.toLowerCase().trim() == "feedback collected") && (data[keyVar].ReasonBeyond24Hrs != "" && data[keyVar].ReasonBeyond24Hrs != null)) { tdclose += ""; } else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && ((callStatus.toLowerCase().trim() != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null)) && ((data[keyVar].ReasonBeyond24Hrs != "" && data[keyVar].ReasonBeyond24Hrs != null))) { tdclose += ""; } else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && (callStatus.toLowerCase().trim() != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null) && ((data[keyVar].ReasonBeyond24Hrs == "" || (data[keyVar].ReasonBeyond24Hrs == null)))) { tdclose += ""; } else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && (callStatus.toLowerCase().trim() == "feedback collected") && ((data[keyVar].ReasonBeyond24Hrs == "" || (data[keyVar].ReasonBeyond24Hrs == null)))) { tdclose += ""; } else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim()) != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null) { tdclose += ""; } else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim() == "feedback collected")) { tdclose += ""; } tdclose += ""; } } tdclose += "
IdStatusResolution SLA (in min)Response SLA (in min) Closure within 24 Hrs and Feedback
" + data[keyVar].TicketIdAlias + "" + data[keyVar].TicketStatusAlias + "" + data[keyVar].DefaultSlaTime + "" + data[keyVar].TotalTicketLifecycleTimeSla + " 24    F  24    F  24    F  24    F  F  F 
"; } else { } }, complete: function () { if (islocationchange == 'true') { updateIsLocation(ticketId); } else { updatedealerchangereason(ticketId); } getTicketDetailsopen(ticketId); }, error: function (data) { } }); }, error: function (data) { console.log(data); } }); } }, complete: function () { closeWindow("#divReassignTicket"); // $('#divVanDealerList').hide(); }, error: function (data) { } }); } function _createVanDealerSortedListForVanDealerWise(trindex) { _copyResulEls.sort(function (a, b) { return a.distance - b.distance; // Sorts from shortest to longest distance }); var bcolor = 'background:#e59d00;'; $("#tableVansDealers_reassign").html(''); //var to hold table String to show in dialog-form var trString = ''; //Loop through of array length of copyResulEls for (var i = 0; i < _copyResulEls.length; i++) { //if i===0, add html for table. if (_copyResulEls[i].status == "OK") { var markerIcon; var trid = "#" + trindex; var dis = _copyResulEls[i].distance + ' KM'; if (i === 0) { trString += ''; } //add each row trString += ''; //add content to info win//dow var description = '
' + '
' + '
' + '

' + _copyResulEls[i].name + '

' + '
S. No.Van/DealerVan/Dealer IdVan/Dealer NameVan/Dealer LocationDistanceDurationNo. of Open TicketsFuel TypeRemaining Time(in mins)Is ConnectedDealer ScodeContact No.
*' + _copyResulEls[i].type + '' + _copyResulEls[i].vanDealerID + '' + _copyResulEls[i].name + '' + _copyResulEls[i].vanDealerAddress + '' + dis + '' + _copyResulEls[i].duration + '' + _copyResulEls[i].assignedTicketsToVanDealer + '' + _copyResulEls[i].Fuel_type + '' + _copyResulEls[i].remainingTime + '' + _copyResulEls[i].DealerSCode + '' + _copyResulEls[i].DealerOrVanContactNo + '
' + '' + '' + '
Van/Dealer Location' + _copyResulEls[i].vanDealerAddress + '' + '
Distance ' + _copyResulEls[i].distance + 'Duration ' + _copyResulEls[i].duration + '' + ' No. of Open Tickets ' + _copyResulEls[i].assignedTicketsToVanDealer + '
'; var vanDealerLatlng = new google.maps.LatLng(_copyResulEls[i].lat, _copyResulEls[i].lng); } if (i == _copyResulEls.length - 1) { }//hideLoadingMessage(); } } //var _bounds = new google.maps.LatLngBounds(); //for (var count = 0; count < nearestVansDealersMarks.length; count++) { // _bounds.extend(nearestVansDealersMarks[count].position); //} //ccplMap.fitBounds(_bounds); //Append the trString created in the dialog-form //$("#tableVansDealers").append(trString); // $(trid).after(trString); // $("#tableVansDealers_reassign").html(''); $("#tableVansDealers_reassign").append(trString); $("#_divVanDealerList").css('display', 'inline-block'); $("#dvlocationchange").hide(); $("#displayVansDealersTable > tbody > tr").click(function (e) { var rowId = e.currentTarget.id; if (infowindow) { infowindow.close(); } var selectedVanDealerLat, selectedVanDealerLng, vehicleLatLng, selectedVanDealerLatLng, selectedVanDealerType; var selectedVanDealerId = e.currentTarget.id; for (var count = 0; count < _copyResulEls.length; count++) { if (copyResulEls[count].vanDealerID == selectedVanDealerId) { selectedVanDealerLat = _copyResulEls[count].lat; selectedVanDealerLng = _copyResulEls[count].lng; selectedVanDealerType = _copyResulEls[count].type; } } vehicleLatLng = breakdownLocationLatLngLocation; }); } function getNearestVansDealersforvanReassignForDealer(dealercode) { //empty array to get next 25 vans/dealers details. _copyResulEls = []; //empty array nearestVansDealersMarks = []; var stateName1, stateName1, stateId, vanDealerLatlng, type, VDId, vanDealerLat, vanDealerLng, vanDealerCity, vanDealerName, vanDealerState, deviceAlias, vanRemainingTime, deviceStatus, noOfAssignedTickets, description, DealerSCode, DealerOrVanContactNo; breakdownLat = $("#breakdownLattitude").val(); breakdownLng = $("#breakdownLongitude").val(); if (state1 == '' || state1 == null) { state1 = stid; } else { } if (xhr_getAllVans && xhr_getAllVans.readystate != 4) { xhr_getAllVans.abort(); } xhr_getAllVans = $.ajax({ type: "POST", url: url + "Api/CogentAPI?getvans=ss&dealerCode=" + dealercode, data: { StateName: state1, limit: _LIMIT, StateName2: state2, DealerSCode: dealercode, Fuel_type: prdvariant, Token: securityToken, UserId: userId }, success: function (data) { if (data.length > 0) { // $("#div_loading").show(); for (keyVar in data) { if (data.hasOwnProperty(keyVar)) { var title, markerIcon, backgroundColor; var updatedDeviceStatus = ""; var vanDealerObj = {}; vanDealerLat = data[keyVar].DealerVanLattitude.trim(); vanDealerLng = data[keyVar].DealerVanLongitude.trim(); type = data[keyVar].Type; VDId = data[keyVar].DealerVanId; Fuel_type = data[keyVar].Fuel_type; vanDealerCity = data[keyVar].DealerVanCity; noOfAssignedTickets = data[keyVar].NoOfAssignedTicket; vanDealerName = data[keyVar].DealerVanName; vanDealerState = data[keyVar].DealerVanState; deviceAlias = data[keyVar].DeviceAlias; vanRemainingTime = data[keyVar].RemainingTime; deviceStatus = data[keyVar].DeviceStatus; DealerSCode = data[keyVar].DealerSCode; DealerOrVanContactNo = data[keyVar].DealerOrVanContactNo; DealerSCode = data[keyVar].DealerSCode; DealerOrVanContactNo = data[keyVar].DealerOrVanContactNo; if (vanRemainingTime == null || vanRemainingTime == "") { vanRemainingTime = "0"; } else { if (vanRemainingTime.indexOf('-') === -1) { vanRemainingTime = vanRemainingTime; } else { vanRemainingTime = "0"; } } //check if device is connected or not if ((deviceStatus == "True") && (type == "van")) { updatedDeviceStatus = "green-circle"; } else if ((deviceStatus == "False") && (type == "van")) { updatedDeviceStatus = "red-circle"; } else { updatedDeviceStatus = ""; } if (vanRemainingTime == "0") { backgroundColor = "green"; } else { backgroundColor = "red"; } if (vanDealerLat.trim() != null && vanDealerLat.trim() != "" && vanDealerLng.trim() != null && vanDealerLng.trim() != "") { var url = "https://router.hereapi.com/v8/routes?transportMode=car&routingMode=short&avoid[features]=ferry&" url += "origin=" + vanDealerLat + "," + vanDealerLng + "&destination=" + breakdownLat + "," + breakdownLng + "&return=polyline,summary&apikey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"; // console.log(url); var request = GetDataHerefromAPI("get", url); if (request) { request.onload = function (data) { var res = JSON.parse(data.target.response); var response = (res.routes[0].sections[0]); var summary = response.summary; var durationHours = summary.duration;// Convert seconds to minutes var vanDealerObj = {}; distanceval = (summary.length / 1000); durationval = (summary.duration / 60); // console.log(distanceval); if (distanceval < 100) { distanceval = (summary.length / 1000).toFixed(2); distanceval = (Math.round(distanceval * 10) / 10).toFixed(1); } else { distanceval = (summary.length / 1000); distanceval = Math.round(distanceval); } if (durationval < 60) { durationHours = Math.round(durationval) + " min"; } else { var hours = Math.floor(durationHours / 3600); // Convert to hours var minutes = Math.floor((durationHours % 3600) / 60); // Get remaining minutes durationHours = hours + ":" + (minutes < 10 ? "0" : "") + minutes + " h"; } vanDealerObj.distance = distanceval;// calculatedistance(resdistance,ressummary); vanDealerObj.duration = durationHours;//(response.trafficTime, res.response.route[0].summary.text); var hereUrl = "https://revgeocode.search.hereapi.com/v1/revgeocode?at=" + vanDealerLat + "," + vanDealerLng + "&lang=en-US&apiKey=DW3-YCFFZtJzlAQpTfVPoXADcZpEeZe3t8h6ganVsqo"; $.ajax({ type: "Get", url: hereUrl, success: function (data) { vanDealerObj.vanDealerAddress = data.items[0].address.label; } }); vanDealerObj.type = type; vanDealerObj.vanDealerID = VDId; vanDealerObj.lat = vanDealerLat; vanDealerObj.lng = vanDealerLng; vanDealerObj.city = vanDealerCity; vanDealerObj.assignedTicketsToVanDealer = noOfAssignedTickets; vanDealerObj.name = vanDealerName; vanDealerObj.state = vanDealerState; vanDealerObj.alias = deviceAlias; vanDealerObj.remainingTime = vanRemainingTime; vanDealerObj.deviceStatus = updatedDeviceStatus; vanDealerObj.backgroundColor = backgroundColor; vanDealerObj.DealerSCode = DealerSCode; vanDealerObj.DealerOrVanContactNo = DealerOrVanContactNo; vanDealerObj.Fuel_type = Fuel_type; vanDealerObj.status = "OK" _copyResulEls.push(vanDealerObj); } request.send(); } } } var forLoopLength, multiplier = 100, waitIndex = 0, setTimeOutSeconds = 0; // var vanDealerLatLngArrLength = vanDealerLatLngArr.length; } } else { alert("No Active Van"); } setTimeout(function () { _createVanDealerSortedListForVanDealerWise(dealercode); }, 1000); }, complete: function () { // $("#div_loading").hide(); var btnid = "#btnvan" + dealercode; $(btnid).attr("disabled", "disabled"); }, error: function (data) { } }); }