123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071 |
- 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 = "<div class='fullContainer'><div class='mapContainerMobile'><div id='employeeTrackingMapMobileContainer' class='align-items-center d-flex justify-content-center' style='width:100%;height:100%; min-height:400px;'></div></div></div>";
- }
- else {
- htmlPort = " <div class='row'><div class='employees_list_location col-sm-3 d-flex flex-column align-items-start'> <div class='w-100 searchEmp_containerParent'><div class='d-flex' style='gap:5px'><div class='position-relative searchEmp_container w-100'> <span class='search_emp_icon '> <i class='fa fa-search'></i> </span> <input class='w-100 py-2 employee_search_filter_input' type='text' placeholder='Search Employees'> <a class='filtermodal_emp btn-icon d-none p-2 px-3 pt-3'> <i class='fa fa-close filterIconEmp p-1'></i> </a> <div class='dropdown-menu empfilter_dropdown mt-2 biz-custom-dropdown w-100' > <div style='gap:10px' class='d-flex flex-column'> <div class='d-flex justify-content-between w-100'> <div class='w-40 '><div>Date</div></div><div class='w-40 '><div>Accuracy</div><select class='form-select form-control emp_accurately_select' onclick='event.stopPropagation();' aria-label='Default select example'> <option selected value='3'>Low</option> <option value='5'>Medium </option> <option value='7'>High</option> </select></div> </div> <div style='align-self: end;' class='d-flex justify-content-between w-100'> <button class='btn btn-success emp_filter_add'>Apply</button><button class='btn btn-danger clearfilterbtn'>Clear</button> </div> </div> </div> </div><button class='btn w-40 d-none btn-danger clearfilterbtn'>Clear</button></div> <div class='d-flex justify-content-between pt-1 align-items-center'><span style='position: absolute;'><i class=' fa fa-calendar font-16 p-1 pl-2 pt-2'></i></span><input style='border: 1px solid #ced4da !important;' onclick='event.stopPropagation();' type='text' id='emp_start_date' class='lastSyncDate pl-30 pt-2 w-100 datepicker-input form-control required mt-1' placeholder='DD/MM/YYYY' data-placeholder='DD/MM/YYYY' data-label='LastSyncDate'></div></div> <div id='emps_card_container' class='emps_card w-100 '> </div> </div> <div id='employeeTrackingMap' class='employees_map_location bg-white col-sm-9'> speed </div></div>";
- }
- var html = "<div class='px-3 py-2 emp_map_track_container overflow-hidden'><div class='pb-1 row'><div class='font-weight-500 font-16 col-lg-3 d-flex justify-content-between position-relative'><div class='tracking-heading'>Employee Trackings</div><div class='font-weight-500 font-24 font-md-16 font-lg-16'><span class='pr-1 text-dark filtermodal_emp position-relative t-0 l-0 d-none back_btn ' data-whichgps='1' title='Back'><i class=' fa fa-arrow-left font-24 font-md-16 font-lg-16'></i></span></div><div class='d-block d-lg-none'><div class='filter_gps'><i class='la la-filter mt-1 font-22 font-weight-700 drop-filter'></i></div><div class='bg-white border fullContainer p-3 position-absolute rounded filter-drop d-none'style='left:0px;z-index:9;width:100%;max-width:97%;top:107%;margin:0px 0px 0px 5px;'><div class='form-group'><div class='col-sm-12' id='employeeSelect_container'><div class='floating-label-form-group floating-label-form-group-with-value'id='select_width'><select type='text' id='selectGps_members' data-live-search='true' class='search_mbil form-control'></select><input type='hidden'id='GPSTrackingEmployee' /><input type='hidden' id='currentDate' /></div></div></div><div class='form-group'><div class='col-sm-12 startDateContainerMobile'><div class='floating-label-form-group'><div class='input-group'><input type='text' class='form-control datepicker-input' required Id='mobiledateinput' placeholder='Start date' /><span class='input-group-addon no-border'><i class='fa fa-calendar'></i></span></div></div></div></div><div class='form-group'><div class='col-sm-4 accuracyContainer hidden'><label for='btnSelectAccuracy'>Accuracy:</label><a href='#' id='btnSelectAccuracy' class='btn btn-default'><i class='fa fa-cog fa-1x'></i></a></div> <div class='col-sm-8 divAccuracySelect hidden'><div class='floating-label-form-group floating-label-form-group-with-value'><select id='frmGPSTrack_cmbSelectAccuracy_select' class='form-control'><option value='3'>Low</option><option value='5'>Medium</option><option value='7'>High</option> </select></div></div></div><div class='form-group'><div class='col-sm-12 d-flex justify-content-between align-items-center searchMobileContainer'> <button class='btn btn-danger clearfilterbtn'>Clear Filter</button><a id='btnSearchMap'class='btn btn-s-sm btn-primary pull-right'>Search</a></div></div></div></div></div><div class='col-lg-9 tracking-header-btns'><div class='d-flex justify-content-lg-end justify-content-between' style='gap:10px'><div class='d-flex'><div class='d-flex align-items-baseline align-items-lg-center justify-content-center pr-3'><span class='pr-1 text-green cursor-pointer gpscurrentcount ' data-whichgps='1' title='tracking'><i class=' fa fa-map-marker font-24 font-lg-16'></i></span><span class='tracking text-dark'></span></div><div class='d-flex align-items-baseline align-items-lg-center justify-content-center pr-3'><span class='pr-1 text-grey cursor-pointer gpscurrentcount' data-whichgps='2' title='inactive'><i class=' fa fa-map-marker font-24 font-lg-16'></i> </span><span class='gpsinactive text-dark'></span></div><div class='d-flex align-items-baseline align-items-lg-center justify-content-center pr-3'><span class='pr-1 text-red cursor-pointer gpscurrentcount' data-whichgps='3' title='non tracking'><i class=' fa fa-map-marker font-24 font-lg-16'></i> </span><span class='nontracking text-dark'></span></div><div class='popuptable d-none d-lg-block btn-flush-biz-theme btn-icon btn-rounded flush-soft-hover h-30p w-30p '><span class='btn-icon-wrap'><i class='dripicons dripicons-graph-pie font-18 text-grey tableiconemp activepop'></i></span></div></div><div><div class='popuptable d-lg-none btn-flush-biz-theme btn-icon btn-rounded flush-soft-hover h-30p w-30p'><span class='btn-icon-wrap'><i class='dripicons dripicons-graph-pie font-18 text-grey tableiconemp'></i></span></div></div></div></div></div>" + htmlPort + "</div>";
- 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 = "<div class='modal fade' id='emp_filter_modal' data-backdrop='static' data-keyboard='false' tabindex='-1' role='dialog' aria-hidden='true'> <div class='modal-dialog modal-lg modal-dialog-centered ' role='document'> <div class='modal-content rounded-10 text-center bg-white' class='img-fluid pt-20 pb-10 w-80p m-auto '> <div class='modal-body text-center pb-30'> <div> <input type='text' id='emp_start_date' class='lastSyncDate datepicker-input form-control required' placeholder='yyyy/mm/dd hh:mm' data-placeholder='DD/MM/YYYY' data-label='LastSyncDate'><input id='accurately ' /></div> <button data-dismiss='modal' aria-label='Close' class='close_emp_modal'>Close</button> </div> </div> </div></div>";
- }
- 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 = `<div class="bg-white border-top boxEmp d-flex mt-1 py-1">
- <div class="d-flex w-100 flex-column">
- <div class="boxEmp_startDate">Start Date : <span>${start_data}</span></div>
- <div class="boxEmp_endDate">End Date : <span>${start_data}</span></div>
-
- <div class="boxEmp_distance_travel">Distance Travel : <span>0</span> Kms</div>
- </div>
- </div>`;
- $(".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 ? `<span style='color: rgb(25, 88, 159);position: relative;'>NO RECORD FOUND</span>` : `<span style='color: rgb(25, 88, 159);position: relative;top: 50%;left: 45%;'>NO RECORD FOUND</span>`;
- $(`#${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 = "<thead><tr>";
- if (result.totalRecords > 0) {
- tableView = tableView + "<td>Accuracy</td>";
- }
- if (callback) {
- callback();
- }
- tableView = tableView + "<td>Time</td><td>Address</td><td>Distance(K.M)</td><td>Duration</td></tr></thead>";
- $('#tblMap').append(tableView);
- tableView = '';
- $('#tblMap').append("<tbody/>");
- 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 + "<br/>";
- 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 + '<br>' + 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 = `<div class="bg-white border-top boxEmp d-flex mt-1 py-1">
- <div class="d-flex w-100 flex-column">
- <div class="boxEmp_startDate">Start Date : <span>14/5/2022</span></div>
- <div class="boxEmp_endDate">End Date : <span>14/5/2022</span></div>
- <div class="boxEmp_distance_travel">Distance Travel : <span class="pr-1">0</span> Kms</div>
- </div>
- </div>`;
- $(".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 = "<li class='list-group-item data-list-item biz-transparent-text-color no-background list-border-color'><div class='row d-flex align-items-center'><div class='col-sm-4'>" + rdata.UserName + " (" + number + ")</div><div class='col-sm-4'>" + instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime) + "</div><div class='col-sm-4'>" + rdata.Address + "</div> </div></li>";
- }
- 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 + "<td>" + instance._dateTimeHelper.formatLocalDateTimeWithT(rdata.TrackTime) + "</td><td id=rows" + i + ">" + rdata.Address + "</td>";
- if (i != 0 || result.result.length === 1) {
- var dis = rdata.Distance / 1000;
- tableView = tableView + "<td>" + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dis, 2) + "</td>";
- 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 = "<li class='list-group-item data-list-item biz-transparent-text-color no-background list-border-color'><div class='row d-flex align-items-center'><div class='col-sm-2'>" + resu_time + "</div><div class='col-sm-5'>" + rdata.Address + "</div><div class='col-sm-2'>" + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dis, 2) + "</div><div class='col-sm-2'>" + dis_due[0] + " min</div><div class='col-sm-1 text-center'>" + rdata.BatteryLevel + " %</div> </div> </li>";
- }
- 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 + "<br/>";
- 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 ? "<div class='align-items-center biz-highlight-color text-white d-flex h-50p justify-content-center rounded-circle w-50p'>" + isDot + "</div>" : "<img style='width:100px' height='100px' class='' src='" + ImageUrl + "'/>";
- let isActive = StatusId == 1 ? "<span data-active='isActive' class='text-success'>Active</span>" : "<span data-active='isActive' class='text-danger'>Inactive</span>";
- let isActiveBol = StatusId == 1 ? 'text-green' : 'text-grey';
- return " <div data-empid='" + EmployeeId + "' class='bg-white cursor-pointer emp_card_single p-2 w-100 flex-column '> <div class='d-flex w-100 boxEmpContainer'> <div class='profile_emp d-flex mr-2 align-items-center'>" + empPic + " </div> <div class='d-flex flex-column '> <span class='list-item-main-title text-truncate w-250p emp_name' data-name='" + EmployeeName + "'>" + EmployeeName + "</span> <span class='d-none' data-empid='" + EmployeeId + "'><span class='d-none'><span><i class='fa fa-user pr-1'></i> Employee ID </span> : " + EmployeeId + "</span></span> <span data-contant='" + PhoneNumber + "'><span> <i class='fa fa-phone pr-1'></i></span> : " + PhoneNumber + "</span> </div> <div class='d-none " + isActiveBol + " d-flex align-items-center justify-content-center flex-column'> <i class='font-35 fa fa-map-marker d-none'></i><span class='font-weight-600 font-12'></span> </div></div> </div>";
- }
- 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 = `<div class="bg-white border-top boxEmp d-flex mt-1 py-1">
-
- <div class="d-flex w-100 flex-column">
-
- <div class="boxEmp_startDate">Start Date : <span>14/5/2022</span></div>
- <div class="boxEmp_endDate">End Date : <span>14/5/2022</span></div>
- <div class="boxEmp_distance_travel">Distance Travel : <span class="pr-1">14</span> Kms</div>
- </div>
- </div>`;
- $('.boxEmp').remove();
- $(elThis).find('.boxEmpContainer').after(boxEoxHtml);
- });
- });
- });
- }
- else {
- $("#lblInActiveUserCount").text(0);
- $("#lblNonTrackingUserCount").text(0);
- $("#frmGPSTrack_cmbSelectEmployee").html('<option value="0">no employees found..</option>');
- }
- });
- }
- 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('<option selected value="0">All</option>');
- 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('<option value="0">no employees found..</option>');
- }
- $(".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 = '<tr class="details-users details-addeditem">'
- + '<th>Employee Name</th>' +
- '<th>PhoneNumber</th>';
- $(".details-users:last").after(html);
- for (var i = 0; i < result.rows.length; i++) {
- var data = result.rows[i].cell;
- html = '<tr class="details-users details-addeditem">' +
- '<td>' + data[0] + '</td>' +
- '<td>' + data[1] + '</td>';
- html += '</tr>';
- $(".details-users:last").after(html);
- }
- }
- if (this.showdetails == 'TotalInActiveUsers') {
- html = '<tr class="details-users details-addeditem">'
- + '<th>Employee name</th>' +
- '<th>PhoneNumber</th>';
- $(".details-users:last").after(html);
- for (var i = 0; i < result.rows.length; i++) {
- var data = result.rows[i].cell;
- html = '<tr class="details-users details-addeditem">' +
- '<td>' + data[0] + '</td>' +
- '<td>' + data[1] + '</td>';
- html += '</tr>';
- $(".details-users:last").after(html);
- }
- }
- }
- else {
- MessageHelper.Instance().showError('error ', 'bizgaze_CreateErrorMessages');
- $("#divUsersDetails").html('<div class="clear"><center>no details found....</center></div>');
- }
- }, 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(`<a href="javascript:void(0);" id="trackingCloseBtn" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p mr-15 text-dark"><span class="btn-icon-wrap"><i data-icon="l"></i></span></a>`);
- $('#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 = {}));
|