var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var Bizgaze; (function (Bizgaze) { let Apps; (function (Apps) { let Routes; (function (Routes) { let Components; (function (Components) { class savegpstracking extends Unibase.Platform.Core.BaseComponent { constructor() { super(...arguments); this.latid = 0; this.lngid = 0; this.isenable = false; this.Addrlatd = 0; this.Addrlgtd = 0; this.contactaddressid = 0; this.tripid = 0; } cssFiles() { return []; } jsFiles() { return []; } html(id, containerid) { let html = ``; return html; } load(id, containerid, callback) { } savegpstrackingtrip(containerid) { this.widgetContainerId = containerid; const instance = this; const containerEl = $(`#${containerid}`); let isTripEnabled = false; containerEl.find('.reach-btn').addClass('d-sm-none'); containerEl.find('.starttrip-btn').click(function () { Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId("Bizgazecrm_Create_MeterReading_Start_Trips").then(function (res) { var formid = res.result.FormId; const onSuccessObj = { CallBack: function () { var portletid = +$("#hf_DashboardPortletId").val(); Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, ''); }, Parameters: null, }; var formviewerObj = { FormId: formid, AppConfigurationId: 0, Pk_Value: 0, PortletWidgetId: 0, OnSuccess: onSuccessObj, OnFail: null, OnLoad: null, }; Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj); }); }); containerEl.find('.end-btn').click(function () { var ActiveId = 0; $(`#layout_list_container_${containerid} .gps-tracking-list`).each(function () { ActiveId = +$(this).find("#hf_activeid").val(); }); if (ActiveId != 0) { bootbox.alert({ message: 'Complete the ongoing Route before you end the Trip.', closeButton: false }); } else { Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId("BizgazeCrm_MeterReading_End_Trips").then(function (res) { var formid = res.result.FormId; const tripGroupId = +containerEl.find('#hf_tripgroupid').val(); var onSuccessObj = { CallBack: function () { var portletid = +$("#hf_DashboardPortletId").val(); Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, ''); }, Parameters: null, }; const onloadObj = { CallBack: function () { var startreading = containerEl.find('hf_startreading').val(); +$(".div_startreading").val(startreading); }, Parameters: null, }; var formviewerObj = { FormId: formid, AppConfigurationId: 0, Pk_Value: tripGroupId, PortletWidgetId: 0, OnSuccess: onSuccessObj, OnFail: null, OnLoad: onloadObj, }; Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj); }); } }); containerEl.find('.customer-btn').click(function () { instance.navigationHelper.showLoading(); Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId("Bizgaze_Platform_Crm_CreateCustomer_Duplicate2").then(function (res) { var formid = res.result.FormId; const onloadObj = { CallBack: function () { instance.navigationHelper.hideLoading(); const containerEl = $(`#${containerid}`); const listEl = $(this).closest('.gps-tracking-list'); var tripgroupid = +containerEl.find('#hf_tripgroupid').val(); $(".hdn_refid").val(tripgroupid); }, Parameters: null, }; var formviewerObj = { FormId: formid, AppConfigurationId: 0, Pk_Value: 0, PortletWidgetId: 0, OnSuccess: null, OnFail: null, OnLoad: onloadObj, }; Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj); }); }); $(`#layout_list_container_${containerid} .gps-tracking-list`).each(function () { const tripid = +$(this).find('#hf_tripid').val(); const tripstatusid = +$(this).find('#hf_tripstatusid').val(); const routeid = +$(this).find('#hf_routeid').val(); const tripgroupid = +$(this).find('#hf_tripgroupid').val(); const latid = +$(this).find('#hf_latid').val(); const lngid = +$(this).find('#hf_lngid').val(); const Addrlatd = +$(this).find("#hf_addrlatd").val(); const Addrlgtd = +$(this).find("#hf_addrlgtd").val(); const ActiveId = +$(this).find("#hf_activeid").val(); if (routeid) { $(this).find('.icon-route').removeClass('d-none'); } if (tripgroupid) { containerEl.find('.starttrip-btn').addClass('d-none'); containerEl.find('.end-btn').removeClass('d-none'); containerEl.find('.customer-btn').removeClass('d-none'); } else if (tripgroupid == 0) { isTripEnabled = true; containerEl.find('.customer-btn').addClass('d-none'); } if (tripid) { $(this).find('.start-btn').addClass('d-none'); $(this).find('.nav-btn,.reach-btn,.undo-btn').removeClass('d-none'); $(this).find('.txt-task').addClass('d-none'); } if (tripstatusid == 1) { isTripEnabled = true; } if (tripstatusid == 2) { isTripEnabled = true; $(this).find('.order-btn,.estimate-btn,.receipt-btn,.complete-btn,.cancel-btn,.create-btn').removeClass('d-none'); $(this).find('.nav-btn,.reach-btn,.undo-btn').addClass('d-none'); } if (tripstatusid == 3) { $(this).find('.end-btn,.cancel-btn,.order-btn,.estimate-btn,.receipt-btn,.complete-btn,.undo-btn,.nav-btn,.reach-btn,.create-btn').addClass('d-none'); $(this).find('.cancelled-btn').removeClass('d-none'); $(this).find('.start-btn').addClass('d-none trip-cancelled'); } if (tripstatusid == 4) { $(this).find('.start-btn').addClass('d-none trip-completed'); $(this).find('.end-btn,.cancel-btn,.order-btn,.estimate-btn,.receipt-btn,.complete-btn,.undo-btn,.nav-btn,.reach-btn,.create-btn').addClass('d-none'); $(this).find('.txt-task').removeClass('d-none'); } if (Addrlatd == 0 && Addrlgtd == 0) { $(this).find('.nav-btn').addClass('d-none'); } if (ActiveId != 0) { isTripEnabled = true; } }); const startBtns = $(`#layout_list_container_${containerid} .start-btn`); if (!isTripEnabled) { startBtns.not('.trip-completed,.trip-cancelled').removeClass('d-none'); } else { startBtns.addClass('d-none'); } this.fileCacheHelper.loadJsFiles(['apps/routes/managers/routemanager.js', 'platform/forms/managers/formmanager.js', 'platform/forms/components/formviewer/formviewer.js', 'tenants/themes/compact/components/details/details.js'], function () { containerEl.find('.config-btn').click(function () { const clickedEl = $(this); const listEl = $(this).closest('.gps-tracking-list'); let tripstatusid = 0; let refstatusid = 0; const employeeid = +listEl.find('#hf_employeeid').val(); const routeaddressid = +listEl.find('#hf_routeaddressid').val(); const contactaddressid = +listEl.find('#hf_contactaddressid').val(); const routeid = +listEl.find('#hf_routeid').val(); const contactid = +listEl.find('#hf_contactid').val(); const routeversionguid = listEl.find('#hf_routeversionguid').val() || null; const formid = +listEl.find('#hf_formid').val() || 0; const endformid = +listEl.find('#hf_endformid').val(); const tripid = +listEl.find('#hf_tripid').val(); const latid = +listEl.find('#hf_latid').val(); const lngid = +listEl.find('#hf_lngid').val(); const organizationname = listEl.find('#hf_organizationname').val() && listEl.find('#hf_organizationname').val().toString(); const tripgroupid = +listEl.find('#hf_tripgroupid').val(); const Tripgroupstatusid = +listEl.find("#hf_tripgroupstatusid").val(); const stageid = +listEl.find("#hf_stageid").val(); const installedappid = +listEl.find("#hf_installedappid").val(); const Addrlatd = +listEl.find("#hf_addrlatd").val(); const Addrlgtd = +listEl.find("#hf_addrlgtd").val(); if ($(this).hasClass('start-btn')) { tripstatusid = 1; refstatusid = 1; } if ($(this).hasClass('reach-btn')) { tripstatusid = 2; refstatusid = 2; } if ($(this).hasClass('complete-btn')) { tripstatusid = 4; refstatusid = 4; } const reqObj = { employeeid, routeaddressid, contactaddressid, routeid, contactid, routeversionguid, tripstatusid, tripgroupid, tripid, refstatusid }; instance.reqObj = reqObj; instance.Addrlatd = Addrlatd; instance.Addrlgtd = Addrlgtd; instance.contactaddressid = contactaddressid; instance.tripid = tripid; if ($(this).hasClass('start-btn')) { var portletid = +$("#hf_DashboardPortletId").val(); Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, ''); Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) { if (res.result) { const result = JSON.parse(res.result).Result; if (result) { MessageHelper.Instance().showSuccess(res.message, ''); } } }); } if ($(this).hasClass('reach-btn')) { if (instance.Addrlatd == 0 && instance.Addrlgtd == 0) { bootbox.confirm({ size: "sm", message: "Please capture the Geo Location for this customer before reaching.", closeButton: false, callback: function (result) { if (result) { Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/crm/address/components/w_address.js", function () { const addressInstance = Bizgaze.Apps.Crm.Components.Address.Instance(); addressInstance.navigationHelper.popup(0, "", addressInstance, function () { addressInstance.editmap(instance.contactaddressid); addressInstance.isEmployeeDashboardRoute = true; }, Unibase.Platform.Helpers.Size.Auto); }); } } }); } else { if (isMobileApp()) { instance.navigationHelper.showLoading(); Unibase.Platform.Helpers.MobileHelper.Instance().getCurrentLocation(instance.tripid, 1); } } } if ($(this).hasClass('undo-btn')) { bootbox.confirm({ size: "sm", message: "Are you sure,Cancel the Trip", callback: function (result) { if (result) { Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) { if (res.result) { MessageHelper.Instance().showSuccess(res.message, ''); var portletid = +$("#hf_DashboardPortletId").val(); Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, ''); } }); } } }); } if ($(this).hasClass('complete-btn')) { Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) { if (res.result) { const result = JSON.parse(res.result).Result; if (result) { MessageHelper.Instance().showSuccess(res.message, ''); var portletid = +$("#hf_DashboardPortletId").val(); Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, ''); } } }); } if ($(this).hasClass('nav-btn')) { if (Addrlatd > 0 && Addrlgtd > 0) { Unibase.Platform.Helpers.MobileHelper.Instance().NavigateMap(Addrlatd.toString(), Addrlgtd.toString()); } } if ($(this).is('.order-btn,.estimate-btn,.receipt-btn')) { var formuniqueid = ""; var isReceipt = false; let isOrder = false; let isEstimate = false; if ($(this).hasClass('order-btn')) { isOrder = true; formuniqueid = "Bizgaze_Extension_Transact_SalesOrder_App_SalesOrder_CreateForm"; } if ($(this).hasClass('estimate-btn')) { isEstimate = true; formuniqueid = "Bizgaze_Extension_Transact_SalesEstimate_App_SalesEstimate_CreateForm"; } if ($(this).hasClass('receipt-btn')) { isReceipt = true; formuniqueid = "Bizgaze_Extension_Transact_Receipt_App_Receipt_CreateForm"; } Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(formuniqueid).then(function (res) { var formid = res.result.FormId; var onload = { CallBack: function () { const containerEl = $("#" + instance.navigationHelper.getLastContainerId()); containerEl.find(".hdn_refid").val(tripgroupid); let contact = new Option(organizationname, contactid.toString(), true); if (isReceipt) { containerEl.find(".txtAutoComplete_contactid").append(contact).val(contactid).trigger("change"); return; } containerEl.find('#hf_pk_value').after(``); if (isOrder) { Bizgaze.Apps.Transact.Controls.Order.Instance().loadOrderFromEmployeeRoute(); } else if (isEstimate) { Bizgaze.Apps.Transact.Controls.Estimate.Instance().loadEstimateFromEmployeeRoute(); } }, Parameters: null, }; const onSuccess = { CallBack: function () { }, Parameters: null }; var formviewerObj = { FormId: formid, AppConfigurationId: 0, Pk_Value: 0, PortletWidgetId: 0, OnSuccess: onSuccess, OnFail: null, OnLoad: onload, }; Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj); }); } }); }); } setgpscurrentlocation(latid, lngid, tripid) { const instance = this; if (latid > 0 && lngid > 0) { Bizgaze.Apps.Routes.Managers.RouteManager.Instance().setgpscurrentlocation(latid, lngid, tripid).then(function (res) { instance.navigationHelper.hideLoading(); if (res.status === Unibase.Data.Status.Success) { Bizgaze.Apps.Routes.Components.savegpstracking.Instance().getDistanceFromLatLonInKm(instance.Addrlatd, instance.Addrlgtd, latid, lngid).then(function (met) { if (met >= 100) { bootbox.alert({ message: 'Your are out of 100 meters range from the Customer. Please reach the customer location & click on Reached button.', closeButton: false }); } else { Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(instance.reqObj).then(function (res) { if (res.status === Unibase.Data.Status.Success) { var portletid = +$("#hf_DashboardPortletId").val(); Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, ''); } }); } }); } }); } else { MessageHelper.Instance().showError('Please Try Again Capturing', 'div_ErrorMessage', instance.widgetContainerId); } } Canceltrip(containerid, tripid) { var TripId = +tripid; tripid = TripId; const refstatusid = 3; const tripstatusid = 3; const reqObj = { tripid, refstatusid, tripstatusid }; Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) { if (res.result) { MessageHelper.Instance().showSuccess(res.message, ''); var portletid = +$("#hf_DashboardPortletId").val(); Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, ''); } }); } getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) { return __awaiter(this, void 0, void 0, function* () { const instance = this; 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 km = R * c; var met = km * 1000; return met; }); } deg2rad(deg) { return deg * (Math.PI / 180); } static Instance() { if (this.instance === undefined) { this.instance = new savegpstracking(); } return this.instance; } } Components.savegpstracking = savegpstracking; })(Components = Routes.Components || (Routes.Components = {})); })(Routes = Apps.Routes || (Apps.Routes = {})); })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {})); })(Bizgaze || (Bizgaze = {}));