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.

w_managerchange.js 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Crm;
  6. (function (Crm) {
  7. let Organizations;
  8. (function (Organizations) {
  9. let Components;
  10. (function (Components) {
  11. class ManagerChange extends Unibase.Platform.Core.BaseComponent {
  12. constructor() {
  13. super();
  14. this.pageindex = 0;
  15. this.pagesize = 20;
  16. this.TotalRecords = 0;
  17. this._bizgaze_notifications_managerChange_ApplyFor = 'multiple';
  18. this._bizgaze_notifications_managerChange_selectedElement = '';
  19. }
  20. cssFiles() {
  21. return [];
  22. }
  23. jsFiles() {
  24. return ['apps/crm/organizations/components/w_managerchange.js', 'apps/crm/lobs/managers/lobmanager.js', 'apps/crm/contacts/managers/contactmanager.js', 'libs/daterangepicker/daterangepicker.js', 'apps/transact/managers/invoicemanager.js'];
  25. }
  26. html(id, containerid) {
  27. let html = `<section>
  28. <div class="panel panel-success">
  29. <div class="panel-heading">
  30. <strong>Change Manager</strong>
  31. </div>
  32. <div id="bizgaze_CreateProjectErrorMessages" class="clear"></div>
  33. <div class="section_Details card">
  34. <div class="card-body">
  35. <div class="row div_SName">
  36. <div class="col-sm-3 div_SeriesType">
  37. <div class="form-group floating-label focus" id="divLobs">
  38. <label for="frm_chk_LOB" id="lbl_IsRandom">LOB</label>
  39. <select id="ddl_Lobs" class="form-control type-control value-control " placeholder = "Select Lob" data-placeholder="select Lob"></select>
  40. </div>
  41. </div>
  42. <div class="col-sm-3" id="div_OldSalesPerson">
  43. <label for="lbl_OldSalesPerson" id="lbl_OldSalesPerson">Old Manager</label>
  44. <select style="width:100%" id="txt_OldSalesPerson" class="form-control txt_OldSalesPerson value-control floating-label-control" data-isdynamic="false" placeholder="Select Old Manager" data-placeholder=" Select Old Manager" data-label="Old Manager">
  45. </select>
  46. <input type="hidden" id="hf_OldSalesPersonId" class="hf_OldSalesPersonId" value="0" />
  47. </div>
  48. <div class="col-sm-3" id="div_NewSalesPerson">
  49. <label for="lbl_NewSalesPerson" id="lbl_NewSalesPerson"> New Manager</label>
  50. <select style="width:100%" id="txt_NewSalesPerson" class="form-control txt_NewSalesPerson value-control floating-label-control" data-isdynamic="false" placeholder="Select New Manager" data-placeholder="Select New Manager" data-label="New Manager">
  51. </select>
  52. <input type="hidden" id="hf_NewSalesPersonId" class="hf_ChangeSalesPersonId" value="0" />
  53. </div>
  54. <div class="col-sm-2">
  55. <a class="btn btn-primary" id="btnShowChangeManager">Change</a>
  56. </div>
  57. <div class="col-sm-1">
  58. <div class="form-group">
  59. <label class="col-xs-5 control-label">ShowAll</label>
  60. <div class="col-xs-7">
  61. <label class="switch">
  62. <input type="checkbox" id="chkShowAll">
  63. <span></span>
  64. </label>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="section_Description card">
  71. <div class="div_ManagersLists">
  72. <ul class="list-group no-radius clear m-b-none m-t-sm list-group-lg no-border salesmanager-list"></ul>
  73. </div>
  74. </div>
  75. </div>
  76. </section><footer class="footer lt b-t b-light">
  77. <div class="Div_pagination row m-t-sm">
  78. <div class="col-sm-4 m-b-xs">
  79. <div class="btn-group">
  80. Total Records : <span id="lbltotRecords">0</span>
  81. </div>
  82. </div>
  83. <div class="col-sm-8 m-b-xs">
  84. <div id="divpagination" class="pagination custom-pagination pagination-rounded pull-right"></div>
  85. </div>
  86. </div>
  87. </footer>
  88. <form id="frm_divChoosedateForManager" method="post" data-validate="parsley" class="hidden">
  89. <header class="b-b bg-white modal-header">
  90. <strong class="text-dark titlename">Choose Date</strong>
  91. <div class="btn-group ml-auto"> <button type="button" class="close" hidden data-dismiss="modal" aria-hidden="true">
  92. &times;</button></div>
  93. </header>
  94. <div style="overflow-x:hidden;" class="scrollable">
  95. <div id="divBizgazeTransact_ChooseDate_mph" class="clear"></div>
  96. <div class="card">
  97. <div class="card-body">
  98. <div class="row" style="overflow-x:hidden;">
  99. <div class="row col-xs-12">
  100. <div class="col-sm-6">
  101. <label> From Date (optional)</label>
  102. <div class="input-group">
  103. <input type="text" class="form-control value-control datepicker-input hasDatepicker txt_FromInvoiceDate" id="txt_FromInvoiceDate" data_required="true" placeholder="dd/mm/yyyy" />
  104. <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  105. </div>
  106. <span class="help-block m-b-none">from this date all related invoices will come under this new manager.</span>
  107. </div>
  108. <div class="col-sm-6">
  109. <label> To Date</label>
  110. <div class="input-group">
  111. <input type="text" class="form-control value-control datepicker-input hasDatepicker txt_ToInvoiceDate" id="txt_ToInvoiceDate" data_required="true" placeholder="dd/mm/yyyy" />
  112. <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <footer class="bg-white modal-footer" style="position:absolute; bottom:0px;width:100%;">
  121. <a href="javascript:;" id="btn_ChangeManagerClose" class="btn btn-light btn-sm mr-auto "> Close</a>
  122. <a href="javascript:;" id="btnChangeManager" class="btn btn-primary btn-sm">Confirm</a>
  123. </footer>
  124. </form>`;
  125. return html;
  126. }
  127. load(id, containerid, callback) {
  128. var instance = this;
  129. instance.loadLobs();
  130. var url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/contacts/getallemployeesauto';
  131. AutoCompleteHelper.getHelper().Create("#txt_OldSalesPerson", "#hf_OldSalesPersonId", url, function (response) {
  132. var data = response;
  133. });
  134. var url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/contacts/getautotextemp';
  135. AutoCompleteHelper.getHelper().Create("#txt_NewSalesPerson", "#hf_NewSalesPersonId", url, function (response) {
  136. var data = response;
  137. });
  138. $('#chkShowAll').change(function () {
  139. Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance().search();
  140. });
  141. $('#ddl_Lobs').change(function () {
  142. Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance().search();
  143. });
  144. $("#txt_OldSalesPerson").change(function () {
  145. Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance().search();
  146. });
  147. $(document).on('click', '#btn_ChangeManagerClose', function () {
  148. Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp();
  149. });
  150. $(document).on('click', '#btnChangeManager', function () {
  151. var instance = Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance();
  152. var _dateTimeHelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  153. var invfromdate = _dateTimeHelper.formatServerDate($("#txt_FromInvoiceDate").val());
  154. var invtodate = _dateTimeHelper.formatServerDate($("#txt_ToInvoiceDate").val());
  155. if (invfromdate > invtodate) {
  156. MessageHelper.Instance().showError("Please Select ToDate is Higher than FromDate", "divBizgazeTransact_ChooseDate_mph");
  157. return false;
  158. }
  159. if (instance._bizgaze_notifications_managerChange_ApplyFor == 'multiple') {
  160. instance.changeManagerTotally();
  161. }
  162. else {
  163. if (instance._bizgaze_notifications_managerChange_ApplyFor != '' && instance._bizgaze_notifications_managerChange_selectedElement != undefined)
  164. instance.saveManager(instance._bizgaze_notifications_managerChange_selectedElement);
  165. }
  166. });
  167. $("#btnShowChangeManager").click(function () {
  168. var instance = Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance();
  169. var _dateTimeHelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  170. var invoiceDate = instance.getLastInvoiceDate();
  171. if (invoiceDate != "") {
  172. $("#txt_FromInvoiceDate").val(_dateTimeHelper.formatServerDate(invoiceDate));
  173. $("#txt_ToInvoiceDate").val(_dateTimeHelper.formatServerDate(invoiceDate));
  174. }
  175. else {
  176. $("#txt_FromInvoiceDate").val(_dateTimeHelper.currentDate());
  177. $("#txt_ToInvoiceDate").val(_dateTimeHelper.currentDate());
  178. }
  179. instance.showChooseDate('multiple', '');
  180. });
  181. }
  182. init(containerid) {
  183. var instance = this;
  184. instance.fileCacheHelper.loadJsFiles(["apps/crm/organizations/components/w_managerchange.js"], function () {
  185. instance.navigationHelper.loadSection(0, containerid, Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance(), null, null);
  186. });
  187. }
  188. loadLobs() {
  189. Bizgaze.Apps.CRM.Lobs.Managers.LobManager.Instance().getTagLobs().then(function (response) {
  190. $("#ddl_Lobs").empty();
  191. if (response.result != null) {
  192. let html = "<option value='0'>All</option>";
  193. for (let i = 0; i < response.result.length; i++) {
  194. var data = response.result[i];
  195. html += "<option value=" + data.LobId + " data-table=" + data.LobName + ">" + data.LobName + "</option>";
  196. }
  197. jQuery("#ddl_Lobs").append(html);
  198. }
  199. });
  200. }
  201. search() {
  202. var instance = this;
  203. var lobid = Number($("#ddl_Lobs").val());
  204. let empid = Number($('#hf_OldSalesPersonId').val());
  205. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getGridForManagers(lobid, 0, empid, instance.pageindex, instance.pagesize).then(function (response) {
  206. Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance().TotalRecords = response.totalRecords;
  207. $(".salesmanager-list").html('<li class="salesmanager-item hidden"></li>');
  208. for (var i = 0; i < response.result.length; i++) {
  209. var data = response.result[i];
  210. var len = $('.length-row').length;
  211. var html = '<li class="list-group-item salesmanager-item length-row clear" id="Managers_' + len + '">' +
  212. '<div class="row">' +
  213. '<div class="col-sm-6" >' +
  214. '<input type="hidden" class="hfsalesmanagerid" value="' + data.ManagerId + '" />' +
  215. '<input type="hidden" class="hfaddressid" value="' + data.ContactAddressId + '" />' +
  216. data.ContactName + ' - ' + data.AddressName +
  217. '</div>' +
  218. '<div class="col-sm-6 li_div">' +
  219. '<select style="width:100%" id="txtmanager_' + len + '" class="form-control manager value-control floating-label-control" value="' + data.ManagerName + '" ></select>' +
  220. '<input type="hidden" id="hfmanagerid_' + len + '" class="hfmanagerid" value="' + data.ManagerId + '" />' +
  221. '</div>' +
  222. '</div>' +
  223. '</li>';
  224. $(".salesmanager-item:last").after(html);
  225. var element = $(".salesmanager-item");
  226. Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance().autoCompleteManager(element, data, len);
  227. $("#txtmanager_" + len + "").change(function () {
  228. element = $(this).parents(".salesmanager-item");
  229. Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance().showChooseDate('single', element);
  230. });
  231. }
  232. $("#lbltotRecords").text(response.result.length);
  233. if (Number($('#hf_OldSalesPersonId').val()) == 0) {
  234. if (instance.TotalRecords <= 20) {
  235. $('#divpagination').hide();
  236. }
  237. else {
  238. $('#divpagination').show();
  239. }
  240. instance.fileCacheHelper.loadJsFile('libs/jquery/pagination/jquery.pagination.js', function () {
  241. var ele;
  242. ele = $(".Div_pagination").find('#divpagination');
  243. ele.pagination(instance.TotalRecords, 20, {
  244. current_page: (instance.pageindex),
  245. callback: function (page, component) {
  246. instance.pageindex = page;
  247. instance.search();
  248. }
  249. });
  250. });
  251. }
  252. else {
  253. $('#divpagination').hide();
  254. }
  255. });
  256. }
  257. autoCompleteManager(element, data, len) {
  258. var url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/contacts/getautotextemp';
  259. AutoCompleteHelper.getHelper().Create("#txtmanager_" + len + "", "#hfmanagerid_" + len + "", url, function (response) {
  260. var selectedmanager = new Option(data.ManagerName, data.ManagerId);
  261. $("#txtmanager_" + len).append(selectedmanager);
  262. });
  263. }
  264. showChooseDate(applyFor, element) {
  265. var instance = this;
  266. instance._bizgaze_notifications_managerChange_ApplyFor = applyFor;
  267. instance._bizgaze_notifications_managerChange_selectedElement = element;
  268. if (instance._bizgaze_notifications_managerChange_ApplyFor == 'multiple') {
  269. if ($("#ddl_Lobs").val() == 0 || $("#ddl_Lobs").val() == '' || $("#ddl_Lobs").val() == undefined) {
  270. MessageHelper.Instance().showError("Select Lob.", "divBizgazeTransact_ChooseDate_mph");
  271. return false;
  272. }
  273. if ($("#hf_OldSalesPersonId").val() == 0 || $("#hf_OldSalesPersonId").val() == '' || $("#hf_OldSalesPersonId").val() == undefined) {
  274. MessageHelper.Instance().showError("Select Old SalesManager.", "bizgaze_CreateProjectErrorMessages");
  275. return false;
  276. }
  277. if ($("#hf_NewSalesPersonId").val() == 0 || $("#hf_NewSalesPersonId").val() == '' || $("#hf_NewSalesPersonId").val() == undefined) {
  278. MessageHelper.Instance().showError("Select New SalesManager.", "divBizgazeTransact_ChooseDate_mph");
  279. return false;
  280. }
  281. }
  282. var theHtml = $("#frm_divChoosedateForManager").html();
  283. Unibase.Platform.Helpers.NavigationHelper.Instance().popupHtml(theHtml, Unibase.Platform.Helpers.Size.Medium, function () {
  284. var currentdate = new Date();
  285. $('.txt_FromInvoiceDate').daterangepicker({
  286. locale: {
  287. format: 'DD/MM/YYYY',
  288. },
  289. singleDatePicker: true,
  290. showDropdowns: true,
  291. minYear: 1901,
  292. maxDate: new Date(2050, 11, 31)
  293. });
  294. $('.txt_ToInvoiceDate').daterangepicker({
  295. locale: {
  296. format: 'DD/MM/YYYY',
  297. },
  298. singleDatePicker: true,
  299. showDropdowns: true,
  300. minYear: 1901,
  301. maxDate: new Date(2050, 11, 31)
  302. });
  303. });
  304. }
  305. changeManagerTotally() {
  306. var fromdatestring = moment($(document.getElementsByClassName("txt_FromInvoiceDate")[document.getElementsByClassName("txt_FromInvoiceDate").length - 1]).val(), "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  307. let todatestring = moment($(document.getElementsByClassName("txt_ToInvoiceDate")[document.getElementsByClassName("txt_ToInvoiceDate").length - 1]).val(), "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  308. var InvoiceToDate = new Date(todatestring);
  309. var InvoiceDate = new Date(fromdatestring);
  310. var postData = {
  311. LobId: Number($("#ddl_Lobs").val()),
  312. OldEmployeeId: Number($("#hf_OldSalesPersonId").val()),
  313. EmployeeId: Number($("#hf_NewSalesPersonId").val()),
  314. InvoiceDate: InvoiceDate,
  315. InvoiceToDate: InvoiceToDate,
  316. };
  317. Bizgaze.Apps.Transact.Managers.InvoiceManager.Instance().changeManagers(postData).then(function (response) {
  318. if (response.status == Unibase.Data.Status.Error) {
  319. MessageHelper.Instance().showError(response.message, '');
  320. }
  321. else {
  322. MessageHelper.Instance().showSuccess(response.message, '');
  323. Bizgaze.Apps.Crm.Organizations.Components.ManagerChange.Instance().search();
  324. Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp();
  325. }
  326. });
  327. }
  328. saveManager(element) {
  329. var fromdatestring = moment($(document.getElementsByClassName("txt_FromInvoiceDate")[document.getElementsByClassName("txt_FromInvoiceDate").length - 1]).val(), "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  330. let todatestring = moment($(document.getElementsByClassName("txt_ToInvoiceDate")[document.getElementsByClassName("txt_ToInvoiceDate").length - 1]).val(), "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  331. var InvoiceToDate = new Date(todatestring);
  332. var InvoiceDate = new Date(fromdatestring);
  333. var postData = {
  334. ManagerId: Number(element.find(".hfsalesmanagerid").val()),
  335. LobId: Number($("#ddl_Lobs").val()),
  336. EmployeeId: Number(element.find(".hfmanagerid").val()),
  337. OrganizationAddressId: Number(element.find(".hfaddressid").val()),
  338. InvoiceDate: InvoiceDate,
  339. InvoiceToDate: InvoiceToDate,
  340. };
  341. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().saveManager(postData).then(function (response) {
  342. if (response.status == Unibase.Data.Status.Error) {
  343. MessageHelper.Instance().showError(response.message, '');
  344. }
  345. else {
  346. MessageHelper.Instance().showSuccess(response.message, '');
  347. Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp();
  348. }
  349. });
  350. }
  351. getLastInvoiceDate() {
  352. var date = '';
  353. var oldSalesPersonId = Number($("#hf_OldSalesPersonId").val());
  354. Bizgaze.Apps.Transact.Managers.InvoiceManager.Instance().GetFirstPendingInvoicesBySalesPerson(oldSalesPersonId).then(function (response) {
  355. if (response.result != null)
  356. date = response.result.invoiceDate;
  357. }).then(function () {
  358. });
  359. return date;
  360. }
  361. static Instance() {
  362. if (this.instance === undefined) {
  363. this.instance = new ManagerChange();
  364. }
  365. return this.instance;
  366. }
  367. }
  368. Components.ManagerChange = ManagerChange;
  369. })(Components = Organizations.Components || (Organizations.Components = {}));
  370. })(Organizations = Crm.Organizations || (Crm.Organizations = {}));
  371. })(Crm = Apps.Crm || (Apps.Crm = {}));
  372. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  373. })(Bizgaze || (Bizgaze = {}));