Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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 = {}));