Built files from Bizgaze WebServer
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

w_customertargetvsachive.js 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let TM;
  6. (function (TM) {
  7. let Targets;
  8. (function (Targets) {
  9. let Components;
  10. (function (Components) {
  11. class CustomerTargetVSAchive extends Unibase.Platform.Core.BaseComponent {
  12. cssFiles() {
  13. return ['libs/tabulator-tables/css/bootstrap/tabulator_bootstrap4.min.css'];
  14. }
  15. jsFiles() {
  16. return ['libs/tabulator/js/tabulator.min.js'];
  17. }
  18. html() {
  19. return "";
  20. }
  21. loadCustHtml(containerid) {
  22. const html = `<div id="CustomerTargetAchiveWidget"><div class="card"><div class="card-header border-0 py-1 d-flex align-items-center"><span class="biz-highlight-bg-color text-truncate w-25">Customer Target VS Achieve</span>
  23. <div class="card-search-bar target-search-wrap">
  24. <div class="search-wrapper d-flex w-100">
  25. <input class="form-control txt_global_search target-search-input" placeholder="Search Customer" oninput="Bizgaze.Apps.TM.Targets.Components.CustomerTargetVSAchive.Instance().targetTabulatorSearch('${containerid}')">
  26. <i class="fa fa-search search-left-icon"></i>
  27. <div class="biz-highlight-bg-color main-search-loader search-clear-icon d-none"></div>
  28. <a href="javascript:;" class="search-clear-icon target-search-clear biz-highlight-bg-color d-none" onclick="Bizgaze.Apps.TM.Targets.Components.CustomerTargetVSAchive.Instance().clearTargetSearch('${containerid}')"><i class="zmdi zmdi-close"></i></a>
  29. </div>
  30. </div>
  31. </div><div class="card-body pa-0"><div id="Customer_Table" class="target-widget-table templateviewer-tableview"></div></div></div></div>`;
  32. $("#" + containerid).html(html);
  33. }
  34. loadEmpHtml(containerid) {
  35. const html = `<div id="EmployeeTargetAchiveWidget"><div class="card"><div class="card-header border-0 py-1 d-flex align-items-center"><span class="biz-highlight-bg-color text-truncate w-25">Employee Target VS Achieve</span>
  36. <div class="card-search-bar target-search-wrap">
  37. <div class="search-wrapper d-flex w-100">
  38. <input class="form-control txt_global_search target-search-input" placeholder="Search Employee" oninput="Bizgaze.Apps.TM.Targets.Components.CustomerTargetVSAchive.Instance().targetTabulatorSearch('${containerid}')">
  39. <i class="fa fa-search search-left-icon"></i>
  40. <div class="biz-highlight-bg-color main-search-loader search-clear-icon d-none"></div>
  41. <a href="javascript:;" class="search-clear-icon target-search-clear biz-highlight-bg-color d-none" onclick="Bizgaze.Apps.TM.Targets.Components.CustomerTargetVSAchive.Instance().clearTargetSearch('${containerid}')"><i class="zmdi zmdi-close"></i></a>
  42. </div>
  43. </div>
  44. </div><div class="card-body pa-0"><div id="Employee_Table_${containerid}" class="target-widget-table templateviewer-tableview"></div></div></div></div>`;
  45. $("." + containerid).html(html);
  46. }
  47. load() {
  48. }
  49. init(Containerid) {
  50. var instance = this;
  51. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  52. var allowothercontacts = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_allowothercontacts").Value);
  53. instance.fileCacheHelper.loadCssFile('libs/tabulator-tables/css/bootstrap/tabulator_bootstrap4.min.css', null);
  54. instance.fileCacheHelper.loadJsFiles(["libs/tabulator/js/tabulator.min.js"], function () {
  55. if (allowothercontacts == 1) {
  56. Bizgaze.Apps.TM.Targets.Components.CustomerTargetVSAchive.Instance().loadEmpHtml(Containerid);
  57. instance.employeewisetargetvsachive(Containerid);
  58. }
  59. else {
  60. Bizgaze.Apps.TM.Targets.Components.CustomerTargetVSAchive.Instance().loadCustHtml(Containerid);
  61. instance.loadCustTabulator("");
  62. instance.customerwisetargetvsachive();
  63. }
  64. });
  65. }
  66. customerwisetargetvsachive() {
  67. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  68. var targetdefinitionid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_targetdefinitionid").Value);
  69. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  70. var instance = this;
  71. instance.fileCacheHelper.loadJsFile('apps/tm/targets/managers/targetmanager.js', function () {
  72. Bizgaze.Apps.TM.Targets.Managers.TargetManager.Instance().loadCustomerTargetvsAchive(userinfo.sessionId, targetdefinitionid).then(function (response) {
  73. if (response != null) {
  74. var result = response.result;
  75. instance.customerData.setData(result);
  76. }
  77. });
  78. });
  79. }
  80. employeewisetargetvsachive(containerid) {
  81. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  82. var targetdefinitionid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_targetdefinitionid").Value);
  83. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  84. var instance = this;
  85. instance.fileCacheHelper.loadJsFile('apps/tm/targets/managers/targetmanager.js', function () {
  86. Bizgaze.Apps.TM.Targets.Managers.TargetManager.Instance().loadEmployeeTargetvsAchive(userinfo.sessionId, targetdefinitionid).then(function (response) {
  87. var dataarry = [];
  88. var result = response.result;
  89. instance.employeetotaldata = response.result;
  90. instance.totalEmployeeResponse = jQuery.extend(true, [], response.result);
  91. var datatree = false;
  92. var userparentinformation = response.result.filter(function (o) { return o.EmployeeId === userinfo.userId + "p"; });
  93. if (userparentinformation.length > 0) {
  94. datatree = true;
  95. userparentinformation[0]["_children"] = [];
  96. }
  97. dataarry.push(userparentinformation[0]);
  98. Bizgaze.Apps.TM.Targets.Components.CustomerTargetVSAchive.Instance().loadTabulator(dataarry, datatree, response, containerid);
  99. });
  100. });
  101. }
  102. loadTabulator(response, datatree, response1, containerid) {
  103. var instance = this;
  104. var autoNumFormatter = function (cell) {
  105. var row = cell.getRow();
  106. var rowIndex = row.getPosition(false);
  107. return (rowIndex + 1);
  108. };
  109. var editIcon = function (cell, formatterParams) {
  110. return "<i class='fa fa-pencil'></i>";
  111. };
  112. instance.initialEmployeeData = response;
  113. instance.employeeData = new Tabulator(`#Employee_Table_${containerid}`, {
  114. placeholder: "<div class='alert alert-primary text-center mb-0 border-0 w-100 font-14 rounded-0'>No data available</div>",
  115. data: response,
  116. layout: "fitDataFill",
  117. columns: [
  118. { title: "EmployeeId", field: "EmployeeId", visible: false },
  119. { title: "Employee Name", field: "EmployeeName" },
  120. { title: "Target Value", field: "TargetValue" },
  121. {
  122. title: "Achieved Value", field: "AchievedTarget", cellClick: function (e, cell) {
  123. instance.currentRow = cell.getRow();
  124. instance.fileCacheHelper.loadJsFile('apps/tm/targets/components/w_tagwisetarget.js', function () {
  125. if (!instance.currentRow._row.data.EmployeeId.includes("p")) {
  126. Bizgaze.Apps.TM.Targets.Components.TagWiseTarget.Instance().loadForm(0, cell.getRow().getData().EmployeeId, 0, null, 0);
  127. }
  128. });
  129. }, formatter: function (cell) {
  130. instance.currentRow = cell.getRow();
  131. var achive = cell.getValue();
  132. if (!instance.currentRow._row.data.EmployeeId.includes("p")) {
  133. return "<span class='text-primary' font-weight:bold;'>" + achive + "</span>";
  134. }
  135. else {
  136. return achive;
  137. }
  138. }
  139. },
  140. { title: "Percentage", field: "Percentage" },
  141. ],
  142. dataTree: datatree,
  143. dataTreeSelectPropagate: true,
  144. dataTreeChildIndent: 15,
  145. dataTreeRowExpanded: function (row, level) {
  146. var currentemployeeid = row.getData().EmployeeId;
  147. if (currentemployeeid.includes("p"))
  148. currentemployeeid = currentemployeeid.replace("p", "");
  149. var empdatta = instance.employeetotaldata.filter(function (o) { return o.ParentId === Number(currentemployeeid); });
  150. for (var i = 0; i < empdatta.length; i++) {
  151. var userparentinformation = instance.employeetotaldata.filter(function (o) { return o.EmployeeId === empdatta[i].EmployeeId; });
  152. ;
  153. if (userparentinformation[0].EmployeeId.includes("p")) {
  154. if (userparentinformation.length > 0) {
  155. datatree = true;
  156. empdatta[i]["_children"] = [];
  157. }
  158. }
  159. }
  160. row.getData()._children = empdatta;
  161. row.getData().isExpanded = true;
  162. row.update(row.getData());
  163. instance.employeeData.redraw(true);
  164. instance.initialEmployeeData = instance.employeeData.getData();
  165. },
  166. dataTreeRowCollapsed: function (row, level) {
  167. row.getData().isExpanded = false;
  168. },
  169. dataTreeStartExpanded: function (row, level) {
  170. return row.getData().isExpanded;
  171. },
  172. });
  173. }
  174. loadCustTabulator(response) {
  175. var instance = this;
  176. var tabledata = [];
  177. var autoNumFormatter = function (cell) {
  178. var row = cell.getRow();
  179. var rowIndex = row.getPosition(false);
  180. return (rowIndex + 1);
  181. };
  182. var editIcon = function (cell, formatterParams) {
  183. return "<i class='fa fa-pencil'></i>";
  184. };
  185. instance.customerData = new Tabulator("#Customer_Table", {
  186. placeholder: "<div class='alert alert-primary text-center mb-0 border-0 w-100 font-14 rounded-0'>No data available</div>",
  187. data: tabledata,
  188. layout: "fitDataFill",
  189. columns: [
  190. { title: "EmployeeId", field: "EmployeeId", visible: false, },
  191. { title: "Customer Name", field: "EmployeeName" },
  192. { title: "ParentId", field: "ParentId", visible: false },
  193. { title: "Target Value", field: "TargetValue" },
  194. {
  195. title: "Achieved Value", field: "AchievedTarget", cellClick: function (e, cell) {
  196. instance.currentRow = cell.getRow();
  197. instance.fileCacheHelper.loadJsFile('apps/tm/targets/components/w_tagwisetarget.js', function () {
  198. Bizgaze.Apps.TM.Targets.Components.TagWiseTarget.Instance().loadForm(0, cell.getRow().getData().EmployeeId, 0, null, 0);
  199. });
  200. }, formatter: function (cell) {
  201. instance.currentRow = cell.getRow();
  202. var achive = cell.getValue();
  203. return "<span class='text-primary' font-weight:bold;'>" + achive + "</span>";
  204. }
  205. },
  206. { title: "Percentage", field: "Percentage" },
  207. ],
  208. pagination: "local",
  209. paginationSize: 15,
  210. dataTree: false,
  211. dataTreeSelectPropagate: true,
  212. });
  213. }
  214. targetTabulatorSearch(containerId) {
  215. const instance = this;
  216. const containerEl = $(`#${containerId}`);
  217. const searchEl = containerEl.find('.target-search-input');
  218. const loaderEl = containerEl.find('.main-search-loader');
  219. const clearEl = containerEl.find('.target-search-clear');
  220. let tableEl = instance.employeeData;
  221. let totalResponse = instance.totalEmployeeResponse;
  222. let initialTableData = instance.initialEmployeeData;
  223. clearTimeout(instance.searchTimer);
  224. loaderEl.removeClass('d-none');
  225. clearEl.addClass('d-none');
  226. instance.searchTimer = setTimeout(function () {
  227. let searchVal = searchEl.val();
  228. searchVal = searchVal.trim().toLowerCase();
  229. if (searchVal) {
  230. if (containerEl.find('#CustomerTargetAchiveWidget').length > 0) {
  231. instance.customerData.setFilter("EmployeeName", "like", searchVal);
  232. }
  233. else {
  234. const searchedData = totalResponse.filter(employee => {
  235. return employee.EmployeeName.toLowerCase().includes(searchVal) && !employee.EmployeeId.includes('p');
  236. });
  237. tableEl.replaceData(searchedData);
  238. tableEl.redraw(true);
  239. }
  240. clearEl.removeClass('d-none');
  241. }
  242. else {
  243. if (containerEl.find('#CustomerTargetAchiveWidget').length === 0) {
  244. tableEl.replaceData(initialTableData);
  245. tableEl.redraw(true);
  246. }
  247. clearEl.addClass('d-none');
  248. }
  249. loaderEl.addClass('d-none');
  250. }, 1000);
  251. }
  252. clearTargetSearch(containerId) {
  253. const instance = this;
  254. const containerEl = $(`#${containerId}`);
  255. let initialTableData = instance.initialEmployeeData;
  256. containerEl.find('.target-search-input').val('');
  257. containerEl.find('.target-search-clear,.main-search-loader').addClass('d-none');
  258. if (containerEl.find('#CustomerTargetAchiveWidget').length > 0) {
  259. instance.customerData.setFilter("EmployeeName", "like", "");
  260. return;
  261. }
  262. instance.employeeData.replaceData(initialTableData);
  263. instance.employeeData.redraw(true);
  264. }
  265. static Instance() {
  266. if (this.instance === undefined) {
  267. this.instance = new CustomerTargetVSAchive();
  268. }
  269. return this.instance;
  270. }
  271. }
  272. Components.CustomerTargetVSAchive = CustomerTargetVSAchive;
  273. })(Components = Targets.Components || (Targets.Components = {}));
  274. })(Targets = TM.Targets || (TM.Targets = {}));
  275. })(TM = Apps.TM || (Apps.TM = {}));
  276. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  277. })(Bizgaze || (Bizgaze = {}));