Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

savegpstracking.js 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Bizgaze;
  11. (function (Bizgaze) {
  12. let Apps;
  13. (function (Apps) {
  14. let Routes;
  15. (function (Routes) {
  16. let Components;
  17. (function (Components) {
  18. class savegpstracking extends Unibase.Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this.latid = 0;
  22. this.lngid = 0;
  23. this.isenable = false;
  24. this.Addrlatd = 0;
  25. this.Addrlgtd = 0;
  26. this.contactaddressid = 0;
  27. this.tripid = 0;
  28. }
  29. cssFiles() {
  30. return [];
  31. }
  32. jsFiles() {
  33. return [];
  34. }
  35. html(id, containerid) {
  36. let html = ``;
  37. return html;
  38. }
  39. load(id, containerid, callback) {
  40. }
  41. savegpstrackingtrip(containerid) {
  42. this.widgetContainerId = containerid;
  43. const instance = this;
  44. const containerEl = $(`#${containerid}`);
  45. let isTripEnabled = false;
  46. containerEl.find('.reach-btn').addClass('d-sm-none');
  47. containerEl.find('.starttrip-btn').click(function () {
  48. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId("Bizgazecrm_Create_MeterReading_Start_Trips").then(function (res) {
  49. var formid = res.result.FormId;
  50. const onSuccessObj = {
  51. CallBack: function () {
  52. var portletid = +$("#hf_DashboardPortletId").val();
  53. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  54. },
  55. Parameters: null,
  56. };
  57. var formviewerObj = {
  58. FormId: formid,
  59. AppConfigurationId: 0,
  60. Pk_Value: 0,
  61. PortletWidgetId: 0,
  62. OnSuccess: onSuccessObj,
  63. OnFail: null,
  64. OnLoad: null,
  65. };
  66. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  67. });
  68. });
  69. containerEl.find('.end-btn').click(function () {
  70. var ActiveId = 0;
  71. $(`#layout_list_container_${containerid} .gps-tracking-list`).each(function () {
  72. ActiveId = +$(this).find("#hf_activeid").val();
  73. });
  74. if (ActiveId != 0) {
  75. bootbox.alert({ message: 'Complete the ongoing Route before you end the Trip.', closeButton: false });
  76. }
  77. else {
  78. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId("BizgazeCrm_MeterReading_End_Trips").then(function (res) {
  79. var formid = res.result.FormId;
  80. const tripGroupId = +containerEl.find('#hf_tripgroupid').val();
  81. var onSuccessObj = {
  82. CallBack: function () {
  83. var portletid = +$("#hf_DashboardPortletId").val();
  84. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  85. },
  86. Parameters: null,
  87. };
  88. const onloadObj = {
  89. CallBack: function () {
  90. var startreading = containerEl.find('hf_startreading').val();
  91. +$(".div_startreading").val(startreading);
  92. },
  93. Parameters: null,
  94. };
  95. var formviewerObj = {
  96. FormId: formid,
  97. AppConfigurationId: 0,
  98. Pk_Value: tripGroupId,
  99. PortletWidgetId: 0,
  100. OnSuccess: onSuccessObj,
  101. OnFail: null,
  102. OnLoad: onloadObj,
  103. };
  104. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  105. });
  106. }
  107. });
  108. containerEl.find('.customer-btn').click(function () {
  109. instance.navigationHelper.showLoading();
  110. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId("Bizgaze_Platform_Crm_CreateCustomer_Duplicate2").then(function (res) {
  111. var formid = res.result.FormId;
  112. const onloadObj = {
  113. CallBack: function () {
  114. instance.navigationHelper.hideLoading();
  115. const containerEl = $(`#${containerid}`);
  116. const listEl = $(this).closest('.gps-tracking-list');
  117. var tripgroupid = +containerEl.find('#hf_tripgroupid').val();
  118. $(".hdn_refid").val(tripgroupid);
  119. },
  120. Parameters: null,
  121. };
  122. var formviewerObj = {
  123. FormId: formid,
  124. AppConfigurationId: 0,
  125. Pk_Value: 0,
  126. PortletWidgetId: 0,
  127. OnSuccess: null,
  128. OnFail: null,
  129. OnLoad: onloadObj,
  130. };
  131. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  132. });
  133. });
  134. $(`#layout_list_container_${containerid} .gps-tracking-list`).each(function () {
  135. const tripid = +$(this).find('#hf_tripid').val();
  136. const tripstatusid = +$(this).find('#hf_tripstatusid').val();
  137. const routeid = +$(this).find('#hf_routeid').val();
  138. const tripgroupid = +$(this).find('#hf_tripgroupid').val();
  139. const latid = +$(this).find('#hf_latid').val();
  140. const lngid = +$(this).find('#hf_lngid').val();
  141. const Addrlatd = +$(this).find("#hf_addrlatd").val();
  142. const Addrlgtd = +$(this).find("#hf_addrlgtd").val();
  143. const ActiveId = +$(this).find("#hf_activeid").val();
  144. if (routeid) {
  145. $(this).find('.icon-route').removeClass('d-none');
  146. }
  147. if (tripgroupid) {
  148. containerEl.find('.starttrip-btn').addClass('d-none');
  149. containerEl.find('.end-btn').removeClass('d-none');
  150. containerEl.find('.customer-btn').removeClass('d-none');
  151. }
  152. else if (tripgroupid == 0) {
  153. isTripEnabled = true;
  154. containerEl.find('.customer-btn').addClass('d-none');
  155. }
  156. if (tripid) {
  157. $(this).find('.start-btn').addClass('d-none');
  158. $(this).find('.nav-btn,.reach-btn,.undo-btn').removeClass('d-none');
  159. $(this).find('.txt-task').addClass('d-none');
  160. }
  161. if (tripstatusid == 1) {
  162. isTripEnabled = true;
  163. }
  164. if (tripstatusid == 2) {
  165. isTripEnabled = true;
  166. $(this).find('.order-btn,.estimate-btn,.receipt-btn,.complete-btn,.cancel-btn,.create-btn').removeClass('d-none');
  167. $(this).find('.nav-btn,.reach-btn,.undo-btn').addClass('d-none');
  168. }
  169. if (tripstatusid == 3) {
  170. $(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');
  171. $(this).find('.cancelled-btn').removeClass('d-none');
  172. $(this).find('.start-btn').addClass('d-none trip-cancelled');
  173. }
  174. if (tripstatusid == 4) {
  175. $(this).find('.start-btn').addClass('d-none trip-completed');
  176. $(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');
  177. $(this).find('.txt-task').removeClass('d-none');
  178. }
  179. if (Addrlatd == 0 && Addrlgtd == 0) {
  180. $(this).find('.nav-btn').addClass('d-none');
  181. }
  182. if (ActiveId != 0) {
  183. isTripEnabled = true;
  184. }
  185. });
  186. const startBtns = $(`#layout_list_container_${containerid} .start-btn`);
  187. if (!isTripEnabled) {
  188. startBtns.not('.trip-completed,.trip-cancelled').removeClass('d-none');
  189. }
  190. else {
  191. startBtns.addClass('d-none');
  192. }
  193. 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 () {
  194. containerEl.find('.config-btn').click(function () {
  195. const clickedEl = $(this);
  196. const listEl = $(this).closest('.gps-tracking-list');
  197. let tripstatusid = 0;
  198. let refstatusid = 0;
  199. const employeeid = +listEl.find('#hf_employeeid').val();
  200. const routeaddressid = +listEl.find('#hf_routeaddressid').val();
  201. const contactaddressid = +listEl.find('#hf_contactaddressid').val();
  202. const routeid = +listEl.find('#hf_routeid').val();
  203. const contactid = +listEl.find('#hf_contactid').val();
  204. const routeversionguid = listEl.find('#hf_routeversionguid').val() || null;
  205. const formid = +listEl.find('#hf_formid').val() || 0;
  206. const endformid = +listEl.find('#hf_endformid').val();
  207. const tripid = +listEl.find('#hf_tripid').val();
  208. const latid = +listEl.find('#hf_latid').val();
  209. const lngid = +listEl.find('#hf_lngid').val();
  210. const organizationname = listEl.find('#hf_organizationname').val() && listEl.find('#hf_organizationname').val().toString();
  211. const tripgroupid = +listEl.find('#hf_tripgroupid').val();
  212. const Tripgroupstatusid = +listEl.find("#hf_tripgroupstatusid").val();
  213. const stageid = +listEl.find("#hf_stageid").val();
  214. const installedappid = +listEl.find("#hf_installedappid").val();
  215. const Addrlatd = +listEl.find("#hf_addrlatd").val();
  216. const Addrlgtd = +listEl.find("#hf_addrlgtd").val();
  217. if ($(this).hasClass('start-btn')) {
  218. tripstatusid = 1;
  219. refstatusid = 1;
  220. }
  221. if ($(this).hasClass('reach-btn')) {
  222. tripstatusid = 2;
  223. refstatusid = 2;
  224. }
  225. if ($(this).hasClass('complete-btn')) {
  226. tripstatusid = 4;
  227. refstatusid = 4;
  228. }
  229. const reqObj = { employeeid, routeaddressid, contactaddressid, routeid, contactid, routeversionguid, tripstatusid, tripgroupid, tripid, refstatusid };
  230. instance.reqObj = reqObj;
  231. instance.Addrlatd = Addrlatd;
  232. instance.Addrlgtd = Addrlgtd;
  233. instance.contactaddressid = contactaddressid;
  234. instance.tripid = tripid;
  235. if ($(this).hasClass('start-btn')) {
  236. var portletid = +$("#hf_DashboardPortletId").val();
  237. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  238. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) {
  239. if (res.result) {
  240. const result = JSON.parse(res.result).Result;
  241. if (result) {
  242. MessageHelper.Instance().showSuccess(res.message, '');
  243. }
  244. }
  245. });
  246. }
  247. if ($(this).hasClass('reach-btn')) {
  248. if (instance.Addrlatd == 0 && instance.Addrlgtd == 0) {
  249. bootbox.confirm({
  250. size: "sm", message: "Please capture the Geo Location for this customer before reaching.", closeButton: false,
  251. callback: function (result) {
  252. if (result) {
  253. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/crm/address/components/w_address.js", function () {
  254. const addressInstance = Bizgaze.Apps.Crm.Components.Address.Instance();
  255. addressInstance.navigationHelper.popup(0, "", addressInstance, function () {
  256. addressInstance.editmap(instance.contactaddressid);
  257. addressInstance.isEmployeeDashboardRoute = true;
  258. }, Unibase.Platform.Helpers.Size.Auto);
  259. });
  260. }
  261. }
  262. });
  263. }
  264. else {
  265. if (isMobileApp()) {
  266. instance.navigationHelper.showLoading();
  267. Unibase.Platform.Helpers.MobileHelper.Instance().getCurrentLocation(instance.tripid, 1);
  268. }
  269. }
  270. }
  271. if ($(this).hasClass('undo-btn')) {
  272. bootbox.confirm({
  273. size: "sm", message: "Are you sure,Cancel the Trip",
  274. callback: function (result) {
  275. if (result) {
  276. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) {
  277. if (res.result) {
  278. MessageHelper.Instance().showSuccess(res.message, '');
  279. var portletid = +$("#hf_DashboardPortletId").val();
  280. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  281. }
  282. });
  283. }
  284. }
  285. });
  286. }
  287. if ($(this).hasClass('complete-btn')) {
  288. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) {
  289. if (res.result) {
  290. const result = JSON.parse(res.result).Result;
  291. if (result) {
  292. MessageHelper.Instance().showSuccess(res.message, '');
  293. var portletid = +$("#hf_DashboardPortletId").val();
  294. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  295. }
  296. }
  297. });
  298. }
  299. if ($(this).hasClass('nav-btn')) {
  300. if (Addrlatd > 0 && Addrlgtd > 0) {
  301. Unibase.Platform.Helpers.MobileHelper.Instance().NavigateMap(Addrlatd.toString(), Addrlgtd.toString());
  302. }
  303. }
  304. if ($(this).is('.order-btn,.estimate-btn,.receipt-btn')) {
  305. var formuniqueid = "";
  306. var isReceipt = false;
  307. let isOrder = false;
  308. let isEstimate = false;
  309. if ($(this).hasClass('order-btn')) {
  310. isOrder = true;
  311. formuniqueid = "Bizgaze_Extension_Transact_SalesOrder_App_SalesOrder_CreateForm";
  312. }
  313. if ($(this).hasClass('estimate-btn')) {
  314. isEstimate = true;
  315. formuniqueid = "Bizgaze_Extension_Transact_SalesEstimate_App_SalesEstimate_CreateForm";
  316. }
  317. if ($(this).hasClass('receipt-btn')) {
  318. isReceipt = true;
  319. formuniqueid = "Bizgaze_Extension_Transact_Receipt_App_Receipt_CreateForm";
  320. }
  321. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(formuniqueid).then(function (res) {
  322. var formid = res.result.FormId;
  323. var onload = {
  324. CallBack: function () {
  325. const containerEl = $("#" + instance.navigationHelper.getLastContainerId());
  326. containerEl.find(".hdn_refid").val(tripgroupid);
  327. let contact = new Option(organizationname, contactid.toString(), true);
  328. if (isReceipt) {
  329. containerEl.find(".txtAutoComplete_contactid").append(contact).val(contactid).trigger("change");
  330. return;
  331. }
  332. containerEl.find('#hf_pk_value').after(`<input type="hidden" id="hf_employeerouteorder" data-contactid='${contactid}' data-organization='${organizationname}'>`);
  333. if (isOrder) {
  334. Bizgaze.Apps.Transact.Controls.Order.Instance().loadOrderFromEmployeeRoute();
  335. }
  336. else if (isEstimate) {
  337. Bizgaze.Apps.Transact.Controls.Estimate.Instance().loadEstimateFromEmployeeRoute();
  338. }
  339. },
  340. Parameters: null,
  341. };
  342. const onSuccess = {
  343. CallBack: function () {
  344. },
  345. Parameters: null
  346. };
  347. var formviewerObj = {
  348. FormId: formid,
  349. AppConfigurationId: 0,
  350. Pk_Value: 0,
  351. PortletWidgetId: 0,
  352. OnSuccess: onSuccess,
  353. OnFail: null,
  354. OnLoad: onload,
  355. };
  356. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  357. });
  358. }
  359. });
  360. });
  361. }
  362. setgpscurrentlocation(latid, lngid, tripid) {
  363. const instance = this;
  364. if (latid > 0 && lngid > 0) {
  365. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().setgpscurrentlocation(latid, lngid, tripid).then(function (res) {
  366. instance.navigationHelper.hideLoading();
  367. if (res.status === Unibase.Data.Status.Success) {
  368. Bizgaze.Apps.Routes.Components.savegpstracking.Instance().getDistanceFromLatLonInKm(instance.Addrlatd, instance.Addrlgtd, latid, lngid).then(function (met) {
  369. if (met >= 100) {
  370. bootbox.alert({ message: 'Your are out of 100 meters range from the Customer. Please reach the customer location & click on Reached button.', closeButton: false });
  371. }
  372. else {
  373. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(instance.reqObj).then(function (res) {
  374. if (res.status === Unibase.Data.Status.Success) {
  375. var portletid = +$("#hf_DashboardPortletId").val();
  376. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  377. }
  378. });
  379. }
  380. });
  381. }
  382. });
  383. }
  384. else {
  385. MessageHelper.Instance().showError('Please Try Again Capturing', 'div_ErrorMessage', instance.widgetContainerId);
  386. }
  387. }
  388. Canceltrip(containerid, tripid) {
  389. var TripId = +tripid;
  390. tripid = TripId;
  391. const refstatusid = 3;
  392. const tripstatusid = 3;
  393. const reqObj = { tripid, refstatusid, tripstatusid };
  394. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().savegpstrackingtrip(reqObj).then(function (res) {
  395. if (res.result) {
  396. MessageHelper.Instance().showSuccess(res.message, '');
  397. var portletid = +$("#hf_DashboardPortletId").val();
  398. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  399. }
  400. });
  401. }
  402. getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {
  403. return __awaiter(this, void 0, void 0, function* () {
  404. const instance = this;
  405. var R = 6371;
  406. var dLat = this.deg2rad(lat2 - lat1);
  407. var dLon = this.deg2rad(lon2 - lon1);
  408. var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
  409. Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) *
  410. Math.sin(dLon / 2) * Math.sin(dLon / 2);
  411. var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  412. var km = R * c;
  413. var met = km * 1000;
  414. return met;
  415. });
  416. }
  417. deg2rad(deg) {
  418. return deg * (Math.PI / 180);
  419. }
  420. static Instance() {
  421. if (this.instance === undefined) {
  422. this.instance = new savegpstracking();
  423. }
  424. return this.instance;
  425. }
  426. }
  427. Components.savegpstracking = savegpstracking;
  428. })(Components = Routes.Components || (Routes.Components = {}));
  429. })(Routes = Apps.Routes || (Apps.Routes = {}));
  430. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  431. })(Bizgaze || (Bizgaze = {}));