2102 lines
88 KiB
JavaScript
2102 lines
88 KiB
JavaScript
/*================================================================================================================\
|
||
+.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 = "<div ><h4>Open Ticket</h4></div><table id=\"tableTicketHistory\" class=\"OpenTicketTbl\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><thead><tr><th width=\"84px\">Id</th><th>Status</th><th>Resolution SLA (in min)</th><th>Response SLA (in min)</th></tr></thead><tbody>";
|
||
for (keyVar in data) {
|
||
if (data.hasOwnProperty(keyVar)) {
|
||
// alert(data[keyVar].TicketIdAlias);
|
||
tdopen += "<tr onclick=\"getticketDetailbyId('" + data[keyVar].TicketId + "');\" id=" + data[keyVar].TicketId + " data-ticketstatus=\"open\" data-ticketcreationtime=" + data[keyVar].CreationTime + " class=\"trData\"><td width=\"84px\" class=\"\">" + data[keyVar].TicketIdAlias + "</td><td class=\"\">" + data[keyVar].TicketStatusAlias + "</td><td class=\"\">" + data[keyVar].DefaultSlaTime + "</td><td class=\"\">" + data[keyVar].TotalTicketLifecycleTimeSla + "</td></tr>";
|
||
}
|
||
}
|
||
tdopen += "</tbody ></table >";
|
||
|
||
}
|
||
},
|
||
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 = "<div id=\"dvOpen\"></div><div id=\"dvclosecount\" title=\"Please Click to view all close tickets\" style =\"height: 3em;width: 10em;cursor: pointer;background: yellow;\"><h4><a onclick=\"getAllCloseticket();\">Close Ticket(" + closeCount + ")</a></h4></div ><table id=\"tableCloseTicketHistory\" class=\"OpenTicketTbl\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><thead><tr><th width=\"84px\">Id</th><th>Status</th><th>Resolution SLA (in min)</th><th>Response SLA (in min)</th> <th>Closure within 24 Hrs and Feedback</th></tr></thead><tbody>";
|
||
}
|
||
else {
|
||
tdclose = "<div id=\"dvOpen\"></div><div ><h4><a >Close Ticket(" + closeCount + ")</a></h4></div ><table id=\"tableCloseTicketHistory\" class=\"OpenTicketTbl\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><thead><tr><th width=\"84px\">Id</th><th>Status</th><th>Resolution SLA (in min)</th><th>Response SLA (in min)</th> <th>Closure within 24 Hrs and Feedback</th></tr></thead><tbody>";
|
||
}
|
||
isticketexist = 't';
|
||
|
||
for (keyVar in data) {
|
||
if (data.hasOwnProperty(keyVar)) {
|
||
|
||
tdclose += "<tr onclick=\"getCloseTicketDetailsbyId('" + data[keyVar].TicketId + "');\" id=" + data[keyVar].TicketId + " data-ticketstatus=\"close\" data-ticketcreationtime='" + data[keyVar].CreationTime + "' data-reason24Hrs=" + data[keyVar].TotalTicketCloseHours + " data-isFeedback=" + data[keyVar].FeedBackAgenName + " class=\"trData\"><td width=\"84px\" class=\"\">" + data[keyVar].TicketIdAlias + "</td><td class=\"\">" + data[keyVar].TicketStatusAlias + "</td><td class=\"\">" + data[keyVar].DefaultSlaTime + "</td><td class=\"\">" + data[keyVar].TotalTicketLifecycleTimeSla + "</td>";
|
||
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 += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #00a54f;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #00a54f;\">F</span> </td>";
|
||
|
||
}
|
||
|
||
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 += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #00a54f;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #ee1d23;\">F</span> </td>";
|
||
}
|
||
|
||
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 += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #ee1d23;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #ee1d23;\">F</span> </td>";
|
||
}
|
||
|
||
else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && (callStatus.toLowerCase().trim() == "feedback collected") && ((data[keyVar].ReasonBeyond24Hrs == "" || (data[keyVar].ReasonBeyond24Hrs == null)))) {
|
||
tdclose += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #ee1d23;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #00a54f;\">F</span> </td>";
|
||
}
|
||
|
||
else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim()) != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null) {
|
||
tdclose += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #ee1d23;\">F</span> </td>";
|
||
}
|
||
|
||
else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim() == "feedback collected")) {
|
||
tdclose += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #00a54f;\">F</span> </td>";
|
||
}
|
||
tdclose += "</tr>";
|
||
}
|
||
|
||
}
|
||
tdclose += "</tbody ></table >";
|
||
|
||
}
|
||
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 += '<table id="displayVansDealersTable_reassign" class="modalTable"><thead><tr><th>S. No.</th><th>Van/Dealer</th><th style="display:none;">Van/Dealer Id</th><th>Van/Dealer Name</th><th style="width:25%;">Van/Dealer Location</th><th>Distance</th><th>Duration</th><th>No. of Open Tickets</th><th>Fuel Type</th><th>Remaining Time(in mins)</th><th>Is Connected</th><th>Dealer Scode</th><th>Contact No.</th><th ></th></tr></thead><tbody>';
|
||
//'<table id="displayVansDealersTable_reassign" class="modalTable"><thead><tr><th>S. No.</th><th>Van/Dealer</th><th style="display:none;">Van/Dealer Id</th><th>Van/Dealer Name</th><th style="width:25%;">Van/Dealer Location</th><th>Distance</th><th>Duration</th>><th>No. of Open Tickets</th><th>Fuel Type</th><th>Remaining Time(in mins)</th><th>Is Connected</th><th>Dealer Scode</th><th>Contact No.</th><th ></th></tr></thead><tbody>';
|
||
}
|
||
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 = '<td>' + _copyResulEls[i].name + '</td>';
|
||
|
||
reassignbtn = '<td><button class="button_blue" id="btnvan' + _copyResulEls[i].vanDealerID + '" value="Re-Assign" style="width:auto;width:77px;" onclick="checkIfAssignToDealer(' + i + ', this);">Re-Assign</button></td>';
|
||
|
||
}
|
||
else {
|
||
if (_copyResulEls[i].type == 'van') {
|
||
bcolorreassign = 'background:#e59d00;';
|
||
// alert('aa' + _copyResulEls[i].fu)
|
||
svanrerassign = '<td>' + _copyResulEls[i].name + '</td>';
|
||
reassignbtn = '<td><button class="button_blue" value="Re-Assign" id="btnrevan' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].vanDealerID + '" style="width:auto;" onclick="ReassignVantovan(this);" >Re-Assign</button></td>';
|
||
}
|
||
else {
|
||
svanrerassign = '<td>' + _copyResulEls[i].name + '<button class="button_blue" id="btnvan' + _copyResulEls[i].vanDealerID + '" value=' + _copyResulEls[i].vanDealerID + ',' + i + ' style="width:auto;" onclick="showvanreassign(this);">+</button></td>';
|
||
|
||
reassignbtn = '<td><button class="button_blue" id="btnvan' + _copyResulEls[i].vanDealerID + '" value="Re-Assign" style="width:auto;width:77px;" onclick="checkIfAssignToDealer(' + i + ', this);">Re-Assign</button></td>';
|
||
}
|
||
}
|
||
//add each row
|
||
//_trString += '<tr id="' + _copyResulEls[i].vanDealerID + '"><td style="box-shadow: 4px 0px 0px ' + _copyResulEls[i].backgroundColor + ' inset;" >' + (i + 1) + '</td><td >' + _copyResulEls[i].type + '</td><td style="display:none;">' + _copyResulEls[i].vanDealerID + '</td><td>' + _copyResulEls[i].name + '</td><td>' + _copyResulEls[i].vanDealerAddress + '</td><td>' + _copyResulEls[i].distance.text + '</td><td>' + _copyResulEls[i].duration.text + '</td><td>' + _copyResulEls[i].assignedTicketsToVanDealer + '</td><td>' + _copyResulEls[i].remainingTime + '</td><td><span class="' + _copyResulEls[i].deviceStatus + '"</span></td><td>' + _copyResulEls[i].DealerSCode + '</td><td><span>' + _copyResulEls[i].DealerOrVanContactNo + '</span></td><td><button value="Re-Assign" class="button_blue" style="width:77px;" onclick="checkIfAssignToDealer(' + i + ', this);">Re-Assign</button></td></tr>';
|
||
_trString += '<tr id="' + _copyResulEls[i].vanDealerID + '" style="' + bcolorreassign + '" ><td style="box-shadow: 4px 0px 0px ' + _copyResulEls[i].backgroundColor + ' inset;" >' + (i + 1) + '</td><td >' + _copyResulEls[i].type + '</td><td style="display:none;">' + _copyResulEls[i].vanDealerID + '</td><input type="hidden" id="hdnrelat' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].lat + '">' + svanrerassign + '<input type="hidden" id="hdnretype' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].type + '"><input type="hidden" id="hdnrelong' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].lng + '"><input type="hidden" id="hdnreauid' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].vanDealerID + '"><input type="hidden" id="hdnredistanceid' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].distance + '"><td>' + _copyResulEls[i].vanDealerAddress + '</td><td>' + dis + '</td><td>' + _copyResulEls[i].duration + '</td><td>' + _copyResulEls[i].assignedTicketsToVanDealer + '</td><td>' + _copyResulEls[i].Fuel_type + '</td><td>' + _copyResulEls[i].remainingTime + '</td><td><span class=' + _copyResulEls[i].deviceStatus + '</span></td><td>' + _copyResulEls[i].DealerSCode + '</td><td><span>' + _copyResulEls[i].DealerOrVanContactNo + '</span></td>' + reassignbtn + '</tr>';
|
||
|
||
//if i===2, end table tag.
|
||
if (i === _copyResulEls.length) {
|
||
$("#tableVansDealers_reassign").append('</tbody></table>');
|
||
}
|
||
|
||
//add content to info window
|
||
var description = '<div id="divInfoWindow">' +
|
||
'<div class="">' +
|
||
' <div class="">' +
|
||
'<h2 class="EngName_heading"><span id="spanVanDealerName">' + _copyResulEls[i].name + '</span></h2>' +
|
||
'<table width="100%" cellpadding="0" cellspacing="0" class="InfoWindowTbl">' +
|
||
'<tbody>' +
|
||
'<tr>' +
|
||
'<td class=""><span>Van/Dealer Location</span></td><td colspan="5"><span id="spanVanDealerLocation">' + _copyResulEls[i].vanDealerAddress + '</span>' +
|
||
'</td></tr><tr><td><span>Distance</span></td> <td> <span id="spanVanDealerDistance">' + _copyResulEls[i].distance + '</span></td><td><span>Duration</span> </td><td><span id="spanVanDealerDuration">' + _copyResulEls[i].duration + '</span>' +
|
||
'</td><td class=""> <span>No. of Open Tickets</span> </td> <td> <span id="spanNoOfAssignedTickets">' + _copyResulEls[i].assignedTicketsToVanDealer + '</span></td><td><span>' + _copyResulEls[i].DealerSCode + '</span></td><td>' + _copyResulEls[i].DealerOrVanContactNo + '</td></tr></tbody></table></div></div></div>';
|
||
|
||
|
||
}
|
||
}
|
||
|
||
$("#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("</span>")), value: distance };
|
||
|
||
}
|
||
|
||
//======================================================Calculate Time =========================================================
|
||
function calculatetime(time, str) {
|
||
//if (time == 0) {
|
||
return duration = { text: str.slice(str.indexOf("time") + 6, str.indexOf("</span>.")), 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($('<option></option>').val("").html("-Select-"));
|
||
|
||
for (var counter = 0; counter < data.list.length; counter++) {
|
||
$("#eos_state_reassign").append(
|
||
$('<option></option>').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 += '<tr id="' + _copyResulEls[i].vanDealerID + '" style="' + bcolor + '"><td style="box-shadow: 4px 0px 0px ' + _copyResulEls[i].backgroundColor + ' inset;" >*</td><td >' + _copyResulEls[i].type + '</td><td style="display:none;">' + _copyResulEls[i].vanDealerID + '</td><input type="hidden" id="hdnrelat' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].lat + '"><input type="hidden" id="hdnretype' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].type + '"><input type="hidden" id="hdnrelong' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].lng + '"><input type="hidden" id="hdnreauid' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].vanDealerID + '"><input type="hidden" id="hdnredistanceid' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].distance + '"><td>' + _copyResulEls[i].name + '</td><td>' + _copyResulEls[i].vanDealerAddress + '</td><td>' + dis + '</td><td>' + _copyResulEls[i].duration + '</td><td>' + _copyResulEls[i].assignedTicketsToVanDealer + '</td><td>' + _copyResulEls[i].Fuel_type + '</td><td>' + _copyResulEls[i].remainingTime + '</td><td><span class="' + _copyResulEls[i].deviceStatus + '"></span></td><td >' + _copyResulEls[i].DealerSCode + '</td><td >' + _copyResulEls[i].DealerOrVanContactNo + '</td><td><button class="button_blue" value="Assign" id="btnrevan' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].vanDealerID + '" style="width:auto;" onclick="ReassignVantovan(this);" >Re-Assign</button></td></tr>';
|
||
|
||
//add content to info win//dow
|
||
var description = '<div id="divInfoWindow">' +
|
||
'<div class="">' +
|
||
' <div class="">' +
|
||
'<h2 class="EngName_heading"><span id="spanVanDealerName">' + _copyResulEls[i].name + '</span></h2>' +
|
||
'<table width="100%" cellpadding="0" cellspacing="0" class="InfoWindowTbl">' +
|
||
'<tbody>' +
|
||
'<tr>' +
|
||
'<td class=""><span>Van/Dealer Location</span></td><td colspan="5"><span id="spanVanDealerLocation">' + _copyResulEls[i].vanDealerAddress + '</span>' +
|
||
'</td></tr><tr><td><span>Distance</span></td> <td> <span id="spanVanDealerDistance">' + _copyResulEls[i].distance + '</span></td><td><span>Duration</span> </td><td><span id="spanVanDealerDuration">' + _copyResulEls[i].duration + '</span>' +
|
||
'</td><td class=""> <span>No. of Open Tickets</span> </td> <td> <span id="spanNoOfAssignedTickets">' + _copyResulEls[i].assignedTicketsToVanDealer + '</span></td></tr></tbody></table></div></div></div>';
|
||
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 = "<div ><h4>Open Ticket</h4></div><table id=\"tableTicketHistory\" class=\"OpenTicketTbl\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><thead><tr><th width=\"84px\">Id</th><th>Status</th><th>Resolution SLA (in min)</th><th>Response SLA (in min)</th></tr></thead><tbody>";
|
||
for (keyVar in data) {
|
||
if (data.hasOwnProperty(keyVar)) {
|
||
// alert(data[keyVar].TicketIdAlias);
|
||
tdopen += "<tr onclick=\"getticketDetailbyId('" + data[keyVar].TicketId + "');\" id=" + data[keyVar].TicketId + " data-ticketstatus=\"open\" data-ticketcreationtime=" + data[keyVar].CreationTime + " class=\"trData\"><td width=\"84px\" class=\"\">" + data[keyVar].TicketIdAlias + "</td><td class=\"\">" + data[keyVar].TicketStatusAlias + "</td><td class=\"\">" + data[keyVar].DefaultSlaTime + "</td><td class=\"\">" + data[keyVar].TotalTicketLifecycleTimeSla + "</td></tr>";
|
||
}
|
||
}
|
||
tdopen += "</tbody ></table >";
|
||
|
||
}
|
||
},
|
||
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 = "<div id=\"dvOpen\"></div><div id=\"dvclosecount\" title=\"Please Click to view all close tickets\" style =\"height: 3em;width: 10em;cursor: pointer;background: yellow;\"><h4><a onclick=\"getAllCloseticket();\">Close Ticket(" + closeCount + ")</a></h4></div ><table id=\"tableCloseTicketHistory\" class=\"OpenTicketTbl\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><thead><tr><th width=\"84px\">Id</th><th>Status</th><th>Resolution SLA (in min)</th><th>Response SLA (in min)</th> <th>Closure within 24 Hrs and Feedback</th></tr></thead><tbody>";
|
||
}
|
||
else {
|
||
tdclose = "<div id=\"dvOpen\"></div><div ><h4><a >Close Ticket(" + closeCount + ")</a></h4></div ><table id=\"tableCloseTicketHistory\" class=\"OpenTicketTbl\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><thead><tr><th width=\"84px\">Id</th><th>Status</th><th>Resolution SLA (in min)</th><th>Response SLA (in min)</th> <th>Closure within 24 Hrs and Feedback</th></tr></thead><tbody>";
|
||
}
|
||
isticketexist = 't';
|
||
|
||
for (keyVar in data) {
|
||
if (data.hasOwnProperty(keyVar)) {
|
||
|
||
tdclose += "<tr onclick=\"getCloseTicketDetailsbyId('" + data[keyVar].TicketId + "');\" id=" + data[keyVar].TicketId + " data-ticketstatus=\"close\" data-ticketcreationtime='" + data[keyVar].CreationTime + "' data-reason24Hrs=" + data[keyVar].TotalTicketCloseHours + " data-isFeedback=" + data[keyVar].FeedBackAgenName + " class=\"trData\"><td width=\"84px\" class=\"\">" + data[keyVar].TicketIdAlias + "</td><td class=\"\">" + data[keyVar].TicketStatusAlias + "</td><td class=\"\">" + data[keyVar].DefaultSlaTime + "</td><td class=\"\">" + data[keyVar].TotalTicketLifecycleTimeSla + "</td>";
|
||
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 += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #00a54f;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #00a54f;\">F</span> </td>";
|
||
|
||
}
|
||
|
||
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 += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #00a54f;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #ee1d23;\">F</span> </td>";
|
||
}
|
||
|
||
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 += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #ee1d23;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #ee1d23;\">F</span> </td>";
|
||
}
|
||
|
||
else if ((parseFloat(data[keyVar].TotalTicketCloseHours) >= parseFloat(24)) && (callStatus.toLowerCase().trim() == "feedback collected") && ((data[keyVar].ReasonBeyond24Hrs == "" || (data[keyVar].ReasonBeyond24Hrs == null)))) {
|
||
tdclose += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"span24Hrs\" class=\"Hours\" style=\"background: #ee1d23;\">24</span> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #00a54f;\">F</span> </td>";
|
||
}
|
||
|
||
else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim()) != "feedback collected" || data[keyVar].CallStatus == "" || data[keyVar].CallStatus == null) {
|
||
tdclose += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #ee1d23;\">F</span> </td>";
|
||
}
|
||
|
||
else if (parseFloat(data[keyVar].TotalTicketCloseHours) < parseFloat(24) && (callStatus.toLowerCase().trim() == "feedback collected")) {
|
||
tdclose += "<td class=\"reasonFeedback\" align=\"\"> <span id=\"spanFeedback\" class=\"feedback\" style=\"background: #00a54f;\">F</span> </td>";
|
||
}
|
||
tdclose += "</tr>";
|
||
}
|
||
|
||
}
|
||
tdclose += "</tbody ></table >";
|
||
|
||
}
|
||
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 += '<table id="displayVansDealersTable_reassign" class="modalTable"><thead><tr><th>S. No.</th><th>Van/Dealer</th><th style="display:none;">Van/Dealer Id</th><th>Van/Dealer Name</th><th style="width:25%;">Van/Dealer Location</th><th>Distance</th><th>Duration</th><th>No. of Open Tickets</th><th>Fuel Type</th><th>Remaining Time(in mins)</th><th>Is Connected</th><th>Dealer Scode</th><th>Contact No.</th><th ></th></tr></thead><tbody>';
|
||
}
|
||
//add each row
|
||
trString += '<tr id="' + _copyResulEls[i].vanDealerID + '" style="' + bcolor + '"><td style="box-shadow: 4px 0px 0px ' + _copyResulEls[i].backgroundColor + ' inset;" >*</td><td >' + _copyResulEls[i].type + '</td><td style="display:none;">' + _copyResulEls[i].vanDealerID + '</td><input type="hidden" id="hdnrelat' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].lat + '"><input type="hidden" id="hdnrelong' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].lng + '"><input type="hidden" id="hdnretype' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].type + '"><input type="hidden" id="hdnreauid' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].vanDealerID + '"><input type="hidden" id="hdnredistanceid' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].distance + '"><td>' + _copyResulEls[i].name + '</td><td>' + _copyResulEls[i].vanDealerAddress + '</td><td>' + dis + '</td><td>' + _copyResulEls[i].duration + '</td><td>' + _copyResulEls[i].assignedTicketsToVanDealer + '</td><td>' + _copyResulEls[i].Fuel_type + '</td><td>' + _copyResulEls[i].remainingTime + '</td><td><span class="' + _copyResulEls[i].deviceStatus + '"></span></td><td >' + _copyResulEls[i].DealerSCode + '</td><td >' + _copyResulEls[i].DealerOrVanContactNo + '</td><td><button class="button_blue" value="Assign" id="btnrevan' + _copyResulEls[i].vanDealerID + '" value="' + _copyResulEls[i].vanDealerID + '" style="width:auto;" onclick="ReassignVantovan(this);" >Re-Assign</button></td></tr>';
|
||
|
||
//add content to info win//dow
|
||
var description = '<div id="divInfoWindow">' +
|
||
'<div class="">' +
|
||
' <div class="">' +
|
||
'<h2 class="EngName_heading"><span id="spanVanDealerName">' + _copyResulEls[i].name + '</span></h2>' +
|
||
'<table width="100%" cellpadding="0" cellspacing="0" class="InfoWindowTbl">' +
|
||
'<tbody>' +
|
||
'<tr>' +
|
||
'<td class=""><span>Van/Dealer Location</span></td><td colspan="5"><span id="spanVanDealerLocation">' + _copyResulEls[i].vanDealerAddress + '</span>' +
|
||
'</td></tr><tr><td><span>Distance</span></td> <td> <span id="spanVanDealerDistance">' + _copyResulEls[i].distance + '</span></td><td><span>Duration</span> </td><td><span id="spanVanDealerDuration">' + _copyResulEls[i].duration + '</span>' +
|
||
'</td><td class=""> <span>No. of Open Tickets</span> </td> <td> <span id="spanNoOfAssignedTickets">' + _copyResulEls[i].assignedTicketsToVanDealer + '</span></td></tr></tbody></table></div></div></div>';
|
||
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) {
|
||
|
||
}
|
||
});
|
||
}
|