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.

routeschedule.js 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Routes;
  6. (function (Routes) {
  7. let Map;
  8. (function (Map) {
  9. class Routeschedule extends Unibase.Platform.Core.BaseComponent {
  10. cssFiles() {
  11. return [];
  12. }
  13. jsFiles() {
  14. return [];
  15. }
  16. html(id, containerid) {
  17. let html = ``;
  18. return html;
  19. }
  20. load(id, containerid, callback) {
  21. }
  22. ;
  23. init(container) {
  24. Bizgaze.Apps.Routes.Map.Routeschedule.Instance().render(container);
  25. }
  26. render(containerid) {
  27. var portletwidgetid = Number($("#hf_PortletWidgetId").val());
  28. $("." + containerid).empty();
  29. let html = `<div class="card">
  30. <div class="card-header card-header-action">
  31. <div class="col-6">
  32. <span class="h6 ml-10">
  33. <span class="row">Route Map</span>
  34. </span>
  35. <span class="row"><strong>Count :</strong> <span id="Customer_Length"></span></span>
  36. </div>
  37. </div>
  38. <div class="row card-body" style="overflow-x:auto;">
  39. <div class="col-sm-12">
  40. <div id="RouteMap" style="width:auto;height:750px">
  41. </div>
  42. </div>
  43. </div>
  44. </div>`;
  45. $("." + containerid).append(html);
  46. this.mapRoute();
  47. }
  48. mapRoute() {
  49. var markers = [];
  50. this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  51. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  52. var Routedefinitionid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_routedefinitionid").Value);
  53. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().getSections(Routedefinitionid).then(function (response) {
  54. var markers = [];
  55. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  56. $("#Customer_Length").text(response.result.length);
  57. if (response.result.length != 0) {
  58. for (var i = 0; i < response.result.length; i++) {
  59. var data = response.result[i];
  60. var addressId = data.ContactAddressId;
  61. var contactId = data.ContactId;
  62. var routeId = data.RouteId;
  63. var routeIndex = data.RouteIndex;
  64. var addressName = data.AddressName;
  65. var contactName = data.ContactName;
  66. var adrlatd = data.AddrLatd;
  67. var adrlgtd = data.AddrLgtd;
  68. var CustomerStatus = data.StatusId;
  69. var RouteScheduleItemId = data.RouteScheduleItemId;
  70. var objCustomer = {
  71. "title": contactName,
  72. "address": addressName,
  73. "lat": adrlatd,
  74. "lng": adrlgtd,
  75. "description": contactName,
  76. "type": CustomerStatus,
  77. "ContactId": contactId,
  78. "RouteScheduleItemId": RouteScheduleItemId
  79. };
  80. markers.push(objCustomer);
  81. }
  82. var mapOptions = {
  83. center: new google.maps.LatLng(32.3917, 115.867),
  84. zoom: 4,
  85. mapTypeId: google.maps.MapTypeId.ROADMAP
  86. };
  87. var map = new google.maps.Map(document.getElementById("RouteMap"), mapOptions);
  88. var infoWindow = new google.maps.InfoWindow();
  89. var lat_lng = new Array();
  90. var latlngbounds = new google.maps.LatLngBounds();
  91. var markerArr = [];
  92. for (var i = 0; i < markers.length; i++) {
  93. var dat = markers[i];
  94. var myLatlng = new google.maps.LatLng(dat.lat, dat.lng);
  95. lat_lng.push(myLatlng);
  96. var icon = "";
  97. switch (dat.type) {
  98. case 1:
  99. icon = "green";
  100. break;
  101. case 2:
  102. icon = "red";
  103. break;
  104. case 3:
  105. icon = "yellow";
  106. break;
  107. }
  108. icon = "http://maps.google.com/mapfiles/ms/icons/" + icon + ".png";
  109. var marker;
  110. marker = new google.maps.Marker({
  111. position: myLatlng,
  112. map: map,
  113. title: dat.title,
  114. });
  115. markerArr.push(marker);
  116. latlngbounds.extend(marker.position);
  117. (function (marker, dat) {
  118. google.maps.event.addListener(marker, "click", function (e) {
  119. infoWindow.setContent("<span class=''>" + "<strong>" + dat.title + ", " + dat.address + "</strong>" + "</span>" + "<br>" + "<br>" + "<button class='btn mr-20 btn-sm btn-primary btn-rounded text-white' href='javascript: ;' type='button' id='btnorders' onclick='Bizgaze.Apps.Routes.Map.Routeschedule.Instance().loadWidgets(" + dat.ContactId + ",\"Bizgaze_Platform_Crm_Customers_App_Customers_Widget_Report_Sales_Pending_Orders\");'>PendingOrders</button>" + "&nbsp" + "&nbsp" + "<button class='btn mr-20 btn-sm btn-success btn-rounded text-white' href='javascript: ;' type='button' id='btninvoices' onclick ='Bizgaze.Apps.Routes.Map.Routeschedule.Instance().loadWidgets(" + dat.ContactId + ",\"Pending_Invoices\");'>PendingInvoices</button>");
  120. infoWindow.open(map, marker);
  121. });
  122. })(marker, dat);
  123. map.setCenter(latlngbounds.getCenter());
  124. map.fitBounds(latlngbounds);
  125. }
  126. var path = new google.maps.MVCArray();
  127. var service = new google.maps.DirectionsService();
  128. var poly = new google.maps.Polyline({ map: map, strokeColor: '#4986E7' });
  129. for (var i = 0; i < lat_lng.length; i++) {
  130. if ((i + 1) < lat_lng.length) {
  131. var src = lat_lng[i];
  132. var des = lat_lng[i + 1];
  133. path.push(src);
  134. poly.setPath(lat_lng);
  135. poly.setMap(map);
  136. }
  137. }
  138. }
  139. }
  140. });
  141. });
  142. }
  143. loadWidgets(customerid, uniqueid) {
  144. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidgetbyuniqueid(uniqueid).then(function (response) {
  145. var linkwidgetid = response.result.WidgetId;
  146. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidget(linkwidgetid).then(function (res) {
  147. let ReplaceText = [];
  148. let split = res.result.Parameter.split(':');
  149. ReplaceText.push({
  150. Key: split[0],
  151. Value: (customerid).toString(),
  152. ExpOp: 1
  153. });
  154. let reportwidget = Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().getReportWidget(0, linkwidgetid, "", ReplaceText, null, true, Unibase.Themes.Providers.DetailHelper.installedAppId, true);
  155. });
  156. });
  157. }
  158. static Instance() {
  159. if (this.instance === undefined) {
  160. this.instance = new Routeschedule();
  161. }
  162. return this.instance;
  163. }
  164. }
  165. Map.Routeschedule = Routeschedule;
  166. })(Map = Routes.Map || (Routes.Map = {}));
  167. })(Routes = Apps.Routes || (Apps.Routes = {}));
  168. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  169. })(Bizgaze || (Bizgaze = {}));