var Bizgaze; (function (Bizgaze) { let Apps; (function (Apps) { let Crm; (function (Crm) { let Employees; (function (Employees) { let Components; (function (Components) { class EmployeeLocations extends Unibase.Platform.Core.BaseComponent { constructor() { super(...arguments); this.showdetails = ""; this.initalLoad = true; this.isTrackingTable = false; this.lastSelectedEmp = ''; this._gpsTrackEmployee_position_index_pageindex = 0; this._dateTimeHelper = Unibase.Platform.Helpers.DateTimeHelper.Instance(); this.trackingTodayHTML = ''; this.tableHtmlEmp = ''; this.isMobile = false; } cssFiles() { return []; } jsFiles() { return ['apps/crm/employees/managers/gpslocationmanager.js', 'platform/core/helpers/numberhelper/numberhelper.js', 'apps/crm/employees/components/employee_locations_table.js']; } html(id, containerid) { this.isMobile = $(window).width() <= 1198; ; let htmlPort = ''; if (this.isMobile) { htmlPort = "
"; } else { htmlPort = "
speed
"; } var html = "
Employee Trackings
Search
" + htmlPort + "
"; return html; } init(containerid) { var instance = this; instance.fileCacheHelper.loadJsFiles(["apps/crm/employees/components/employee_locations.js", "apps/crm/employees/managers/gpslocationmanager.js"], function () { instance.navigationHelper.loadSection(0, containerid, Bizgaze.Apps.Crm.Employees.Components.EmployeeLocations.Instance(), null, null); }); } loadModalEmp() { let ModalHtml = ""; } load(id, containerid, callback) { let instance = this; var _datetimehelper = Unibase.Platform.Helpers.DateTimeHelper.Instance(); var serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); let heightCal = $('#bizDbHeader').outerHeight(); if (instance.isMobile === false) { $('.emp_map_track_container').attr('style', `height:calc(100vh - ${heightCal}px)`); } serverdate = serverdate.replace('/', '-').replace('/', '-'); $("#frmGPSTrack_cmbSelectAccuracy").val(3); $("#btnSwtichToGrid").click(function () { $(".divAddressGrid").addClass('hidden'); $(".divEmployeemap").removeClass('hidden'); }); $("#btnSwtichToMap").click(function () { $(".divAddressGrid").removeClass('hidden'); $(".divEmployeemap").addClass('hidden'); }); $("#btnExport").click(function () { }); $("#frmGPSTrack_cmbSelectEmployee").change(function () { var value = $("#frmGPSTrack_cmbSelectEmployee").val(); var accuracyvalue = $("#frmGPSTrack_cmbSelectAccuracy").val(); $("#lbGpsDistance").text(0); if (value != "0") { $(".divStartDate").removeClass('hidden'); $(".divAccuracy").removeClass('hidden'); $(".divUsersCount").addClass('hidden'); $(".divRefreshUserCount").addClass('hidden'); instance.checkGpsStatus(value); } else { $(".divAccuracy").addClass('hidden'); $(".divUsersCount").removeClass('hidden'); $(".divRefreshUserCount").removeClass('hidden'); } $("#frmGPSTrack_cmbSelectEmployee").val(value); $("#GPSTrackingEmployee").val(value); var Fromdate = _datetimehelper.formatServerDateTime($("#txtFromDate").val()); Fromdate = Fromdate.replace('/', '-').replace('/', '-'); instance.getLocations(value, Fromdate, accuracyvalue, true); }); $("#frmGPSTrack_cmbSelectAccuracy").change(function () { var value = $("#frmGPSTrack_cmbSelectEmployee").val(); var accuracyvaue = $("#frmGPSTrack_cmbSelectAccuracy").val(); $("#frmGPSTrack_cmbSelectEmployee").val(value); $("#GPSTrackingEmployee").val(value); var Fromdate = _datetimehelper.formatServerDateTime($("#txtFromDate").val()); Fromdate = Fromdate.replace('/', '-').replace('/', '-'); instance.getLocations(value, Fromdate, accuracyvaue, false); }); $('#mobiledateinput').daterangepicker({ locale: { format: 'DD/MM/YYYY', }, singleDatePicker: true, showDropdowns: true, minYear: 1901, maxDate: new Date(2050, 11, 31) }); $("#emp_start_date").daterangepicker({ locale: { format: 'DD/MM/YYYY' }, singleDatePicker: true, showDropdowns: true, minYear: 1901, maxDate: new Date(Date.now()) }); $('#emp_start_date').change(function (e) { let accurately = $('.emp_accurately_select').val(); let filterDate = $('#emp_start_date').val(); let serverdate = instance._dateTimeHelper.formatServerDateTime(filterDate); serverdate = serverdate.replace('/', '-').replace('/', '-'); instance.getLocations(instance.lastSelectedEmp, serverdate, accurately, true); }); if ($("#txtFromDate").val() == '') $("#txtFromDate").val(instance._dateTimeHelper.formatLocalDateformat(new Date($.now()), '')); $("#btnSearchMap").click(function () { $('.filter-drop').addClass("d-none").removeClass('d-block'); $(".filter_gps").find(".la-times").removeClass("la-times").addClass("la-filter"); var userid = Number(Unibase.Platform.Membership.Infos.Identity.currentUser.userId); if ($("#hfContactId").val() != undefined) { var Fromdate = _datetimehelper.formatServerDateTime($("#mobiledateinput").val()); Fromdate = Fromdate.replace('/', '-').replace('/', '-'); instance.getLocations($("#selectGps_members").val(), Fromdate, '3', true); } else { var Fromdate = _datetimehelper.formatServerDateTime($("#mobiledateinput").val()); Fromdate = Fromdate.replace('/', '-').replace('/', '-'); instance.getLocations($("#selectGps_members").val(), Fromdate, $("3").val(), true); } }); $("#chkGpsEnable").change(function () { instance.saveGpsUser($("#hfContactId").val()); }); var userid = Number(Unibase.Platform.Membership.Infos.Identity.currentUser.userId); if ($("#hfContactId").val() != undefined) { $("#divEmployeeSelect").hide(); $(".divUsersCount").addClass('hidden'); $(".divRefreshUserCount").addClass('hidden'); $(".divAccuracy").removeClass('hidden'); var Fromdate = _datetimehelper.formatServerDateTime($("#txtFromDate").val()); instance.getLocations($("#hfContactId").val(), serverdate, $("#frmGPSTrack_cmbSelectAccuracy").val(), true); } if ($("#hfContactId").val() != undefined) { instance.checkGpsStatus($("#hfContactId").val()); $("#divStatus").show(); } else { if (instance.isMobile) { instance.loadEmployees(); } else { instance.loadEmployees_card(); } } $('.popuptable').click(function (e) { if (!$(this).hasClass('activepop')) { return; } instance.isTrackingTable = false; var instanceTableObj = Bizgaze.Apps.Crm.Employees.Components.EmployeeLocationTable.Instance(); Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, '', instanceTableObj, null, Unibase.Platform.Helpers.Size.DockLeft); }); $('.gpscurrentcount').each(function (i, el) { $(this).click(function (e) { let type = +$(this).attr('data-whichgps'); var instanceTableObj = Bizgaze.Apps.Crm.Employees.Components.EmployeeLocationTable.Instance(); switch (type) { case 1: instance.isTrackingTable = true; Bizgaze.Apps.Crm.Employees.Components.EmployeeLocationTable.Instance(); Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, '', instanceTableObj, null, Unibase.Platform.Helpers.Size.DockLeft); break; case 2: instance.loadWidgets('unibase_gps_inactive_users'); break; case 3: instance.loadWidgets('unibase_gps_nontracking_users'); break; default: console.warn("Wrong Value"); } }); }); $('.employee_search_filter_input').on('input', function (e) { let user_text = $(e.target).val(); $('.boxEmp').remove(); $('.emp_card_single').each(function (i, card) { let empName = $(card).find('[data-name]').attr('data-name').toLowerCase(); let empPhoneNumber = $(card).find('[data-contant]').attr('data-contant'); let empId = $(card).find('[data-empid]').attr('data-empid'); if (user_text == '') { $(card).removeClass('d-none').addClass('d-flex'); } else { $('.filtermodal_emp').removeClass('d-none'); user_text = user_text.toString().toLowerCase(); if (empName.includes(`${user_text}`) || empPhoneNumber.includes(`${user_text}`) || empId.includes(`${user_text}`)) { $(card).removeClass('d-none').addClass('d-flex flex-column'); } else { $(card).addClass('d-none').removeClass('item_name d-flex flex-column'); } } }); }); $('.filtermodal_emp').click(function (e) { }); $(".divUserCount").click(function () { $(".divAddressGrid").removeClass('hidden'); $(".divEmployeemap").addClass('hidden'); }); $("#btnSelectAccuracy").click(function () { if ($(".divAccuracySelect").is(":visible")) { $(".divAccuracySelect").addClass('hidden'); } else { $(".divAccuracySelect").removeClass('hidden'); } }); $('.divNonTrackingUserCount').click(function () { instance.showdetails = 'TotalNonTrackingUsers'; instance._gpsTrackEmployee_position_index_pageindex = 0; instance.loadDetails(); $('#headers').html('Total Non Tracking Users'); $(".details-items").html(''); }); $('.divInActiveUserCount').click(function () { instance.showdetails = 'TotalInActiveUsers'; instance._gpsTrackEmployee_position_index_pageindex = 0; instance.loadDetails(); $('#headers').html('Total In-Active Users'); $(".details-items").html(''); }); if ($("#hfContactId").val() == undefined) { instance.getTrackingCount(); } $('#btnGpsBack').click(function () { $(".divAddressGrid").addClass('hidden'); $(".divEmployeemap").removeClass('hidden'); instance.loadEmployees(); instance.loadEmployees_card(); }); $('.drop-filter').on('click', function () { let filterdropvar = $('.emp_map_track_container').find('.filter-drop').hasClass('d-none'); if (filterdropvar == true) { $('.filter-drop').removeClass("d-none").addClass('d-block'); $(".filter_gps").find(".la-filter").removeClass("la-filter").addClass("la-times"); } else { $('.filter-drop').addClass("d-none").removeClass('d-block'); $(".filter_gps").find(".la-times").removeClass("la-times").addClass("la-filter"); } }); $('#selectGps_members').select2(); $("#select_width").find(".select2-container").addClass("w-100"); $('#select_width').find('.select2-selection__rendered').addClass('text-charcoal-dark-4 font-weight-400'); } getTrackingLocations() { } getLocations(userId, fromdate, accuracyvalue, showPoints, callback) { let instance = this; let mapContainer = instance.isMobile ? 'employeeTrackingMapMobileContainer' : 'employeeTrackingMap'; let url = "apis/v4/GPS/getlocationsbyuser/userid/" + userId + "/fromdate/" + fromdate + "/todate/" + fromdate; if (userId == "0") { $(".divUsersCount").removeClass('hidden'); $(".divRefreshUserCount").removeClass('hidden'); $(".divStartDate").addClass('hidden'); var serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); url = "apis/v4/GPS/getemployeelocationsbylogin/fromdate/" + serverdate; } Bizgaze.Apps.Crm.Employees.Managers.GpsLocationmanager.Instance().getLocations(url).then(function (result) { var points = []; if (result.totalRecords == 0) { let ele_len = $("#emps_card_container").find('[data-empid =' + userId + ']').hasClass('d-none'); let start_data = $("#emp_start_date").val(); if (ele_len == false) { let Emp_Details = `
Start Date : ${start_data}
End Date : ${start_data}
Distance Travel : 0 Kms
`; $(".emp_card_single.item_name").find('.boxEmpContainer').after(Emp_Details); let box_Length = $('[data-empid =' + userId + ']').find(".boxEmp").length; if (box_Length >= 0) { $('.boxEmp').not(':first').remove(); } } } if (result == null || result.totalRecords < 1) { let htmlForDevice = instance.isMobile ? `NO RECORD FOUND` : `NO RECORD FOUND`; $(`#${mapContainer}`).html(htmlForDevice); $("#tblMap").html(''); $("#lblUserCount").text(result.length); $("#lbGpsEndTime").text(instance._dateTimeHelper.currentDate()); $("#lbGpsStartTime").text(instance._dateTimeHelper.currentDate()); instance.tableHtmlEmp = ''; } else { $("#tblMap").empty(); let tableView = ""; if (result.totalRecords > 0) { tableView = tableView + "Accuracy"; } if (callback) { callback(); } tableView = tableView + "TimeAddressDistance(K.M)Duration"; $('#tblMap').append(tableView); tableView = ''; $('#tblMap').append(""); var i = 0; var no = 0; var lat = ""; var lag = ""; for (var i = 0; i < result.totalRecords; i++) { var rdata = result.result[i]; if (userId != "0") { $(".divUsersCount").addClass('hidden'); $(".divRefreshUserCount").addClass('hidden'); } else { $(".divUsersCount").removeClass('hidden'); $("#lblUserCount").text(result.totalRecords); $("#lbGpsEndTime").text(instance._dateTimeHelper.currentDate()); $("#lbGpsStartTime").text(instance._dateTimeHelper.currentDate()); $("#lbGpsDistance").text(0); } var date = new Date(instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime)); var time = instance._dateTimeHelper.formatLocalDateTime(rdata.TrackTime); var ndate = instance._dateTimeHelper.formatLocal(time); var diff = ndate.split(' '); var hrs = date.getHours(); var mins = date.getMinutes(); var formattedTime = hrs + ":" + mins; var UName = rdata.UserName == null ? "UNKNOWN" : rdata.UserName + "
"; var pts = instance.getPoints(result.result, userId); var pointss = pts[0]; var i = 0; var mapOptions = { center: new google.maps.LatLng(pts[0].lat, pts[0].lng), zoom: 1, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById(`${mapContainer}`), mapOptions); map.setZoom(1); var infoWindow = new google.maps.InfoWindow({ pixelOffset: new google.maps.Size(0, -5) }); var lat_lng = new Array(); var no = 1; var latlngbounds = new google.maps.LatLngBounds(); var markPoints = new Array(); if (!showPoints && userId != "0") { markPoints.push(pts[0]); if (pts.length > 0) markPoints.push(pts[pts.length - 1]); } else { markPoints = pts; } for (var i = 0; i < markPoints.length; i++) { var data = markPoints[i]; var myLatlng = new google.maps.LatLng(data.lat, data.lng); lat_lng.push(myLatlng); var icon = data.color; var numberr = "" + no + ""; var lineSymbol = { path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW }; icon = "https://maps.google.com/mapfiles/ms/icons/" + icon + ".png"; var mIcon = { path: google.maps.SymbolPath.CIRCLE, fillOpacity: 1, fillColor: data.color, strokeOpacity: 1, strokeWeight: 1, strokeColor: '#333', scale: 12, scaledSize: new google.maps.Size(54, 44) }; var marker; if (userId != "0") { marker = new google.maps.Marker({ position: myLatlng, map: map, draggable: false, title: data.title, label: { fontSize: '12px', fontWeight: '200', text: '.' } }); marker.setIcon({ path: google.maps.SymbolPath.CIRCLE, fillOpacity: 1, fillColor: data.color, strokeOpacity: 1, strokeWeight: 1, strokeColor: '#333', scale: 3, scaledSize: new google.maps.Size(54, 44), }); } else { marker = new google.maps.Marker({ position: myLatlng, map: map, draggable: false, icon: mIcon, title: data.title, label: { fontSize: '12px', fontWeight: '200', text: numberr.toString(), color: "white" } }); } latlngbounds.extend(marker.position); no = no + 1; (function (marker, data) { let close_btn = document.getElementsByClassName("gm-ui-hover-effect"); $(".ui-tooltip.ui-corner-all").remove(); $('.gm-ui-hover-effect').attr("title", "").css({ "display": "none", "visibility": "hidden", "opacity": "none" }); google.maps.event.addListener(marker, "click", function (e) { var serverdate = instance._dateTimeHelper.formatServerDateTime($("#emp_start_date").val()); serverdate = serverdate.replace('/', '-').replace('/', '-'); instance.getLocations(data.UserId, serverdate, 3, true); if (screen.width >= 1200) { $(".back_btn").removeClass("d-none"); } $('.popuptable').addClass('cursor-pointer activepop'); $(".ui-tooltip.ui-corner-all").remove(); $('.gm-ui-hover-effect').attr("title", "").css({ "display": "none", "visibility": "hidden", "opacity": "none" }); $(close_btn).css({ "display": "none", "visibility": "hidden", "opacity": "none" }); $("[role='tooltip']").remove(); }); google.maps.event.addListener(marker, 'mouseover', function (e) { var time = data.TrackTime; infoWindow.setContent(data.UserName + '
' + instance._dateTimeHelper.formatLocalWithOutTime(time) + ''); infoWindow.open(map, marker); $('.gm-ui-hover-effect').remove(); $('.gm-ui-hover-effect').attr("title", ""); }); google.maps.event.addListener(marker, 'mouseout', function (e) { infoWindow.close(); }); google.maps.event.addDomListener(close_btn, "click", () => { $("[role='tooltip']").remove(); }); map.addListener('mousemove', function () { $("[role='tooltip']").remove(); }); google.maps.event.addListener(marker, 'click', function (e) { $("#emps_card_container").find(".emp_card_single").addClass("d-none").removeClass("d-flex flex-column"); let empLoc_id = $("#emps_card_container").find('[data-empid =' + data.UserId + ']').removeClass("d-none").addClass("item_name"); let id = $("#emps_card_container").find(".emp_card_single.item_name").attr('data-empid'); let accurately = $('.emp_accurately_select').val(); let filterDate = $('#emp_start_date').val(); let serverdate = instance._dateTimeHelper.formatServerDateTime(filterDate); serverdate = serverdate.replace('/', '-').replace('/', '-'); let accu_no = accurately == 0 ? rdata.Accuracy : accurately; let datad = String(data.UserId); let emp_id = $("#emps_card_container").find('[data-empid =' + datad + ']').hasClass('d-none'); if (emp_id == false) { instance.getLocations(datad, serverdate, accu_no, true, function () { let Emp_Details = `
Start Date : 14/5/2022
End Date : 14/5/2022
Distance Travel : 0 Kms
`; $(".emp_card_single.item_name").find('.boxEmpContainer').after(Emp_Details); let box_Length = $('[data-empid =' + datad + ']').find(".boxEmp").length; if (box_Length >= 0) { $('.boxEmp').not(':first').remove(); } }); } }); })(marker, data); map.setCenter(latlngbounds.getCenter()); map.fitBounds(latlngbounds); map.setZoom(1); } if (userId != "0") { var path = new google.maps.MVCArray(); var service = new google.maps.DirectionsService(); var directionsDisplay = new google.maps.DirectionsRenderer; var poly = new google.maps.Polyline({ map: map, strokeColor: '#4986E7', geodesic: true, strokeOpacity: 1.0, strokeWeight: 2, path: lat_lng }); } let number = 1; var totaldis = 0; instance.tableHtmlEmp = ''; for (var i = 0; i < result.result.length; i++) { var rdata = result.result[i]; var serverdate = instance._dateTimeHelper.formatServerDateTime($("#txtFromDate").val()); var statuscolor = instance.getColor(result.result, diff, userId, i); var color = "bg-" + statuscolor; var id = 'rows' + i; var duartioncolor = "text-success"; number = number + 1; if (userId == "0") { console.log(rdata); tableView = "
  • " + rdata.UserName + " (" + number + ")
    " + instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime) + "
    " + rdata.Address + "
  • "; } else { var duration = "0"; var durations = instance.getDurations(result.result, userId); console.log(result); var time = rdata.TrackTime; var ndate = instance._dateTimeHelper.formatPeriod(time.toString()); var diff = ndate.split(' '); if (i == (result.result.length - 1)) { $(".boxEmp_endDate").find('span').text(instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime)); } if (i == 0) { $(".boxEmp_startDate").find('span').text(instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime)); } if (i != 0) duration = durations[i - 1].Duration; tableView = tableView + "" + instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime) + "" + rdata.Address + ""; if (i != 0 || result.result.length === 1) { var dis = rdata.Distance / 1000; tableView = tableView + "" + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dis, 2) + ""; totaldis += dis; $(".boxEmp_distance_travel").find('span').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(totaldis, 2)); } let newDatee = instance._dateTimeHelper.formatServerDateTime(rdata.TrackTime); debugger; function formatDate(date) { var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; return [day, month, year].join('/'); } let qwert = instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime); let resu_time = `${formatDate(qwert)} ${qwert.slice(-8)}`; let dis_due = duration.split(''); console.log(dis_due[0]); tableView = "
  • " + resu_time + "
    " + rdata.Address + "
    " + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dis, 2) + "
    " + dis_due[0] + " min
    " + rdata.BatteryLevel + " %
  • "; } instance.tableHtmlEmp = instance.tableHtmlEmp + tableView; } if (instance.initalLoad) { instance.trackingTodayHTML = instance.tableHtmlEmp; instance.tableHtmlEmp = instance.tableHtmlEmp; instance.initalLoad = false; } } } }, function (response) { return ""; }); } getPoints(result, userId) { let instance = this; var points = []; for (var i = 0; i < result.length; i++) { var statusColor = ""; var rdata = result[i]; var date = new Date(instance._dateTimeHelper.formatLocalDateTime(rdata.TrackTime)); var ndate = instance._dateTimeHelper.formatPeriod(date); var diff = ndate.split(' '); var statusColor = instance.getColor(result, diff, userId, i); var UName = rdata.UserName == null ? "UNKNOWN" : rdata.UserName + "
    "; points.push({ lat: rdata.Latitude, lng: rdata.Longitude, UserName: rdata.UserName, color: statusColor, TrackTime: rdata.TrackTime, UserId: rdata.UserId, TrackTimeString: rdata.TrackTimeString }); } return points; } loadFromGrid(id) { let instance = this; var points = []; $(".divAddressGrid").addClass('hidden'); $(".divEmployeemap").removeClass('hidden'); var serverdate = instance._dateTimeHelper.formatServerDateTime($("#txtFromDate").val()); serverdate = serverdate.replace('/', '-').replace('/', '-'); instance.getLocations(id, serverdate, 3, true); } getColor(result, diff, userId, id) { var statusColor = ""; var firstdate = new Date(result[id].TrackTime); firstdate.setTime(firstdate.getTime() + (15 * 60 * 1000)); var seconddate = new Date(result[id].TrackTime); seconddate.setTime(seconddate.getTime() + (30 * 60 * 1000)); var dt = new Date(); if (userId == "0") { if (dt < firstdate) statusColor = "green"; if (dt < seconddate && dt > firstdate) statusColor = "orange"; if (dt > seconddate) statusColor = "red"; } else { if (id == 0) statusColor = "green"; if (id == result.length - 1) statusColor = "orange"; if (id != 0 && id != result.length - 1) statusColor = "blue"; } return statusColor; } calcDistance(p1, p2, callback) { var distanceArrary = []; var service = new google.maps.DistanceMatrixService(); service.getDistanceMatrix({ origins: [p1], destinations: [p2], travelMode: google.maps.TravelMode.DRIVING, unitSystem: google.maps.UnitSystem.METRIC, avoidHighways: false, avoidTolls: false }, function (response, status) { if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") { var distance = response.rows[0].elements[0].distance.text; var dis = distance.split(' '); distanceArrary.push({ Distance: dis[0] }); callback(distanceArrary); } else { bootbox.alert("Unable to find the distance via road."); } }); } getAddresss(id, lat, lng) { var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat + "," + lng; var xhr = this.createCORSRequest('Get', url); if (!xhr) { bootbox.alert('CORS not supported'); return; } xhr.onload = function () { var text = xhr.responseText; var json = JSON.parse(text); if (json.results[0].formatted_address != undefined) document.getElementById(id).innerHTML = json.results[0].formatted_address; }; xhr.onerror = function () { bootbox.alert('Woops, there was an error making the request.'); }; xhr.send(); } saveGpsUser(id) { var status = "InActive"; var gpsStatus = $("#chkGpsEnable").prop("checked"); if ($("#chkGpsEnable").is(":checked")) { status = "Active"; } var postdata = { GpsUserId: $("#hfGpsUserId").val(), Status: status, ContactId: id }; Bizgaze.Apps.Crm.Employees.Managers.GpsLocationmanager.Instance().SaveGpsUser(postdata).then(function (result) { var id = result.getResponseHeader("GpsUserId"); var status = result.getResponseHeader("StatusName"); if (status == "Active") MessageHelper.Instance().showSuccess("Gps Enabled", ""); else MessageHelper.Instance().showSuccess("Gps Disabled", ""); $("#hfGpsUserId").val(id); }, function (response) { MessageHelper.Instance().showError(response, 'bizgaze_CreateErrorMessages'); }); } getTrackingCount() { let instance = this; var serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); Bizgaze.Apps.Crm.Employees.Managers.GpsLocationmanager.Instance().GetGPSTrackingCount(serverdate).then(function (result) { if (result != null) { var data = result.result; $('.gpsinactive').text(data.InActiveUserCount); $('.tracking').text(data.TrackingCount); $('.nontracking').text(data.NonTrackingCount); } }); } checkGpsStatus(id) { let instance = this; Number(id); Bizgaze.Apps.Crm.Employees.Managers.GpsLocationmanager.Instance().GetGpsUser(id).then(function (result) { if (result != null) { $("#hfGpsUserId").val(result.GpsUserId); if (result.StatusName == "Active") $("#chkGpsEnable").prop("checked", true); else $("#chkGpsEnable").prop("checked", false); } }); } getEmployee_cardHTML(empCardData) { let { EmployeeId, EmployeeName, FirstName, LastName, ImageUrl, PhoneNumber, StatusId } = empCardData; let isDot = FirstName.split('.'); if (FirstName.split('.').length == 1) { isDot = `${FirstName[0]}${FirstName[1]} `; } else { let strArr = FirstName.split('.'); isDot = `${strArr[0][0]}${strArr[1][0]} `; } isDot = isDot.toUpperCase(); let empPic = ImageUrl == null ? "
    " + isDot + "
    " : ""; let isActive = StatusId == 1 ? "Active" : "Inactive"; let isActiveBol = StatusId == 1 ? 'text-green' : 'text-grey'; return "
    " + empPic + "
    " + EmployeeName + " Employee ID : " + EmployeeId + " : " + PhoneNumber + "
    "; } loadEmployees_card() { let instance = this; $(".searchEmp_container").find('.emp_filter_add').click(function (e) { let accurately = $('.emp_accurately_select').val(); let filterDate = $('#emp_start_date').val(); let serverdate = instance._dateTimeHelper.formatServerDateTime(filterDate); serverdate = serverdate.replace('/', '-').replace('/', '-'); instance.getLocations(instance.lastSelectedEmp, serverdate, accurately, true); }); $(".searchEmp_containerParent").find('.clearfilterbtn').click(function (e) { let accurately = $('.emp_accurately_select').val(); let serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); let dataNew = serverdate; let dataArr = dataNew.split(' ')[0].split('-'); dataNew = `${dataArr[2]}/${dataArr[1]}/${dataArr[0]}`; $('#emp_start_date').val(dataNew).data('daterangepicker').setEndDate(dataNew); $('#emp_start_date').val(dataNew).data('daterangepicker').setStartDate(dataNew); instance.getLocations('0', serverdate, accurately, true); $('.employee_search_filter_input').val(''); $('.boxEmp').remove(); let user_text = ''; $('.emp_card_single').each(function (i, card) { let empName = $(card).find('[data-name]').attr('data-name').toLowerCase(); let empPhoneNumber = $(card).find('[data-contant]').attr('data-contant'); let empId = $(card).find('[data-empid]').attr('data-empid'); if (user_text == '') { $(card).removeClass('d-none').addClass('d-flex flex-column'); } else { user_text = `${user_text}`.toLowerCase(); if (empName.includes(`${user_text}`) || empPhoneNumber.includes(`${user_text}`) || empId.includes(`${user_text}`)) { $(card).removeClass('d-none').addClass('d-flex'); } else { $(card).addClass('d-none').removeClass('d-flex'); } } }); }); $('.filtermodal_emp').click(function () { let accurately = $('.emp_accurately_select').val(); let serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); let dataNew = serverdate; let dataArr = dataNew.split(' ')[0].split('-'); dataNew = `${dataArr[2]}/${dataArr[1]}/${dataArr[0]}`; $('#emp_start_date').val(dataNew).data('daterangepicker').setEndDate(dataNew); $('#emp_start_date').val(dataNew).data('daterangepicker').setStartDate(dataNew); instance.getLocations('0', serverdate, accurately, true); $('.employee_search_filter_input').val(''); $('.boxEmp').remove(); let user_text = ''; $('.emp_card_single').each(function (i, card) { let empName = $(card).find('[data-name]').attr('data-name').toLowerCase(); let empPhoneNumber = $(card).find('[data-contant]').attr('data-contant'); let empId = $(card).find('[data-empid]').attr('data-empid'); if (user_text == '') { $(card).removeClass('d-none').addClass('d-flex flex-column'); } else { user_text = `${user_text}`.toLowerCase(); if (empName.includes(`${user_text}`) || empPhoneNumber.includes(`${user_text}`) || empId.includes(`${user_text}`)) { $(card).removeClass('d-none').addClass('d-flex'); } else { $(card).addClass('d-none').removeClass('d-flex'); } } }); $('.popuptable').removeClass('cursor-pointer activepop'); $('.filtermodal_emp').addClass('d-none'); $(".back_btn").addClass("d-none"); }); $(`.employees_list_location`).on('hide.bs.dropdown', function () { $(`.filtermodal_emp > i`).removeClass('la-times').removeClass('filterHover').addClass('la-filter'); }); var serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); instance.getLocations('0', serverdate, '3', true); let heightWidget = +$('.emp_map_track_container').outerHeight(); let searchEmp_container = +$('.searchEmp_container').outerHeight(); let heightCardContainer = heightWidget - (searchEmp_container); $('#emps_card_container').height(heightCardContainer - 200).addClass('biz-custom-scrollbar'); var branchid = Unibase.Platform.Membership.Infos.Identity.currentUser.settings.find(x => x.settingName == 'branchid').settingValue; Bizgaze.Apps.Crm.Employees.Managers.GpsLocationmanager.Instance().GetEmployees(branchid).then(function (response) { if (response.result.length > 0) { let empArr = response.result; for (let i = 0; i < empArr.length; i++) { let emp_card_HTML = instance.getEmployee_cardHTML(empArr[i]); $('#emps_card_container').append(emp_card_HTML); } $('.emp_card_single').each(function (i, e) { $(e).click(function (el) { $('.filtermodal_emp').removeClass('d-none'); let id = $(this).attr('data-empid'); let accurately = $('.emp_accurately_select').val(); let filterDate = $('#emp_start_date').val(); let serverdate = instance._dateTimeHelper.formatServerDateTime(filterDate); serverdate = serverdate.replace('/', '-').replace('/', '-'); if ($(el.target).attr('data-active') == 'isActive') { console.log('active and inactive logic'); return; } let name = $(this).find('[data-name]').attr('data-name'); $('.employee_search_filter_input').val(name); instance.lastSelectedEmp = id; $('.popuptable').addClass('cursor-pointer activepop'); let elThis = this; instance.getLocations(id, serverdate, accurately, true, function () { let boxEoxHtml = `
    Start Date : 14/5/2022
    End Date : 14/5/2022
    Distance Travel : 14 Kms
    `; $('.boxEmp').remove(); $(elThis).find('.boxEmpContainer').after(boxEoxHtml); }); }); }); } else { $("#lblInActiveUserCount").text(0); $("#lblNonTrackingUserCount").text(0); $("#frmGPSTrack_cmbSelectEmployee").html(''); } }); } loadEmployees() { let instance = this; var branchid = Unibase.Platform.Membership.Infos.Identity.currentUser.settings.find(x => x.settingName == 'branchid').settingValue; Bizgaze.Apps.Crm.Employees.Managers.GpsLocationmanager.Instance().GetEmployees(branchid).then(function (response) { if (response.result.length > 0) { var frmGPSTrack_cmbSelectEmployee = document.getElementById('selectGps_members'); $('#selectGps_members').empty(); $('#selectGps_members').html(''); for (var i = 0; i < response.result.length; i++) { var opt = document.createElement("option"); opt.text = response.result[i].EmployeeName; opt.value = response.result[i].EmployeeId; frmGPSTrack_cmbSelectEmployee.append(opt); } $("#selectGps_members").val(0); var serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); instance.getLocations($("#selectGps_members").val(), serverdate, $("#mobiledateinput").val(), true); $('#selectGps_members').change(function (e) { $('.popuptable').addClass('cursor-pointer activepop'); }); } else { $("#lblInActiveUserCount").text(0); $("#lblNonTrackingUserCount").text(0); $("#selectGps_members").html(''); } $(".searchMobileContainer").find('.clearfilterbtn').click(function (e) { let accurately = $('.emp_accurately_select').val(); $('#selectGps_members').val(0); let serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); let dataNew = serverdate; let dataArr = dataNew.split(' ')[0].split('-'); dataNew = `${dataArr[2]}/${dataArr[1]}/${dataArr[0]}`; $('#select_width').find('.select2-selection__rendered').html(''); $('#mobiledateinput').val(dataNew).data('daterangepicker').setEndDate(dataNew); $('#mobiledateinput').val(dataNew).data('daterangepicker').setStartDate(dataNew); instance.getLocations('0', serverdate, accurately, true); $('.employee_search_filter_input').val(''); $('.boxEmp').remove(); }); }, function (response) { MessageHelper.Instance().showError(response.responseText, 'bizgaze_CreateErrorMessages'); return false; }); } loadWidgets(uniqueid) { Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidgetbyuniqueid(uniqueid).then(function (response) { var linkwidgetid = response.result.WidgetId; Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidget(linkwidgetid).then(function (res) { let ReplaceText = []; let split = res.result.Parameter.split(':'); Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().getReportWidget(0, linkwidgetid, "", ReplaceText, null, true, Unibase.Themes.Providers.DetailHelper.installedAppId, true); }); }); } loadDetails() { let instance = this; $('#divTrackingDetails').modal(); var serverdate = instance._dateTimeHelper.formatServerDateTime(new Date($.now())); serverdate = serverdate.replace('/', '-').replace('/', '-'); Bizgaze.Apps.Crm.Employees.Managers.GpsLocationmanager.Instance().GetGPSUSerDetails(instance.showdetails, serverdate).then(function (result) { if (result.rows.length > 0) { $(".details-users").html(''); var html = ''; $(".details-users:first").after(html); var total = 0; if (this.showdetails == 'TotalNonTrackingUsers') { html = '' + 'Employee Name' + 'PhoneNumber'; $(".details-users:last").after(html); for (var i = 0; i < result.rows.length; i++) { var data = result.rows[i].cell; html = '' + '' + data[0] + '' + '' + data[1] + ''; html += ''; $(".details-users:last").after(html); } } if (this.showdetails == 'TotalInActiveUsers') { html = '' + 'Employee name' + 'PhoneNumber'; $(".details-users:last").after(html); for (var i = 0; i < result.rows.length; i++) { var data = result.rows[i].cell; html = '' + '' + data[0] + '' + '' + data[1] + ''; html += ''; $(".details-users:last").after(html); } } } else { MessageHelper.Instance().showError('error ', 'bizgaze_CreateErrorMessages'); $("#divUsersDetails").html('
    no details found....
    '); } }, function (response) { }); } getDurations(result, userId) { var durations = []; if (userId == "0") { for (var i = 0; i < result.length; i++) { var rdata = result[i]; if (i != result.length - 1) { var date1 = new Date(); var date2 = new Date(rdata.TrackTime); var difftime = Math.abs(date1.getDate() - date2.getDate()); var seconds = Math.floor(difftime / 1000); var minutes = Math.floor(seconds / 60); var duration = ""; seconds = seconds % 60; var hours = Math.floor(minutes / 60); minutes = minutes % 60; if (hours > 0) duration = hours + " hours" + minutes + " minutes"; else duration = minutes + " minutes"; durations.push({ Duration: duration }); } else { return durations; } } } else { for (var i = 0; i < result.length; i++) { var rdata = result[i]; new Date(); if (i != result.length - 1) { var date1 = new Date(result[i + 1].TrackTime); var date2 = new Date(rdata.TrackTime); var difftime = Math.abs(date1.getDate() - date2.getDate()); var seconds = Math.floor(difftime / 1000); var minutes = Math.floor(seconds / 60); var duration = ""; seconds = seconds % 60; var hours = Math.floor(minutes / 60); minutes = minutes % 60; if (hours > 0) duration = hours + " hours" + minutes + " minutes"; else duration = minutes + " minutes"; durations.push({ Duration: duration }); } else { return durations; } } } return durations; } createCORSRequest(method, url) { var xhr = new XMLHttpRequest(); if ("withCredentials" in xhr) { xhr.open(method, url, true); } else { xhr = null; } return xhr; } getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) { var R = 6371; var dLat = this.deg2rad(lat2 - lat1); var dLon = this.deg2rad(lon2 - lon1); var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); var d = R * c; return d; } deg2rad(deg) { return deg * (Math.PI / 180); } getemployeemap() { const instance = this; Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('apps/crm/employees/managers/gpslocationmanager.js', function () { instance.navigationHelper.popup('', '', instance, function () { const visibleContainerId = instance.navigationHelper.getLastContainerId(); Bizgaze.Apps.Crm.Employees.Components.EmployeeLocations.Instance().getLocations('', '', '', '', () => { const containerEl = $(`#${visibleContainerId}`); containerEl.find('.tracking-heading').prepend(``); $('#trackingCloseBtn').click(function () { instance.navigationHelper.closePopUp(); }); }); }, Unibase.Platform.Helpers.Size.Auto); }); } static Instance() { if (this.instance === undefined) { this.instance = new EmployeeLocations(); } return this.instance; } } Components.EmployeeLocations = EmployeeLocations; })(Components = Employees.Components || (Employees.Components = {})); })(Employees = Crm.Employees || (Crm.Employees = {})); })(Crm = Apps.Crm || (Apps.Crm = {})); })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {})); })(Bizgaze || (Bizgaze = {}));