Built files from Bizgaze WebServer
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

expense.js 41KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Transact;
  6. (function (Transact) {
  7. let Components;
  8. (function (Components) {
  9. let Expenses;
  10. (function (Expenses) {
  11. class Expense extends Unibase.Platform.Core.BaseComponent {
  12. cssFiles() {
  13. return [];
  14. }
  15. jsFiles() {
  16. return [];
  17. }
  18. html(id, containerid) {
  19. return;
  20. }
  21. load(id, containerid, callback) {
  22. return;
  23. }
  24. init() {
  25. var categorysList = [];
  26. $(".listexpenseitems").find(".expenseitems").each(function () {
  27. if (($(this).find("#chk_categoryname").prop("checked") == true)) {
  28. var category = ($(this).find("#hf_categoryname").val());
  29. categorysList.push({
  30. Category: category,
  31. });
  32. }
  33. });
  34. }
  35. getmanagername() {
  36. var instance = this;
  37. instance.fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
  38. var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  39. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  40. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  41. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getEmployeeManager(employeeId).then(function (response) {
  42. let containerid = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  43. var res = response.result;
  44. var managerid = response.result.managerid;
  45. var empname = response.result.employeename;
  46. if (managerid == 0) {
  47. var empid = response.result.employeeid;
  48. var manager = new Option(empname, empid);
  49. $('#' + containerid).find(".txtAutoComplete_submitto").append(manager);
  50. $('#' + containerid).find(".chk_categoryname_").hide();
  51. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden');
  52. }
  53. else if (managerid != 0) {
  54. var managerid = response.result.managerid;
  55. var managername = response.result.managername;
  56. if (response.result != null) {
  57. var manager = new Option(managername, managerid);
  58. $('#' + containerid).find(".txtAutoComplete_submitto").append(manager);
  59. $('#' + containerid).find(".btn_approve").show();
  60. $('#' + containerid).find(".btn_reject").show();
  61. $('#' + containerid).find(".chk_categoryname_").show();
  62. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').removeClass('hidden');
  63. }
  64. }
  65. });
  66. });
  67. }
  68. approvestatus(iscategory) {
  69. var ExpenseItemId = [];
  70. let rejectedList = [];
  71. $.each($(".chk_categoryname:checked"), function () {
  72. const value = $(this).val();
  73. ExpenseItemId.push(value);
  74. if ($(this).closest('.customExpenseItems').find('#hf_statusId').val() == 2) {
  75. rejectedList.push(value);
  76. }
  77. });
  78. if (ExpenseItemId.length == 0) {
  79. bootbox.confirm("Please Select Expense Items", function (result) { });
  80. }
  81. else if (ExpenseItemId.length > 0) {
  82. var instance = this;
  83. var categorysList = [];
  84. if (iscategory == true) {
  85. var isSelected = $("#chk_categoryname_" + ExpenseItemId).is(':checked');
  86. }
  87. else {
  88. var isSelected = $("#chk_advancecategoryname_" + ExpenseItemId).is(':checked');
  89. }
  90. if (isSelected) {
  91. for (var j = 0; j < ExpenseItemId.length; j++) {
  92. categorysList.push(ExpenseItemId[j]);
  93. }
  94. }
  95. var expenseitemid = "";
  96. for (var i = 0; i < categorysList.length; i++) {
  97. expenseitemid = expenseitemid + "," + categorysList[i];
  98. }
  99. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  100. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(expenseitemid, 3).then(function (response) {
  101. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  102. var containerid = instance.navigationHelper.getLastContainerId();
  103. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  104. var portletid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]].ActivePortletId;
  105. $('#portletTab_' + portletid + ' a').click();
  106. Bizgaze.Apps.Transact.Components.Expenses.Expense.Instance().loadApproveExpenseItem(expenseitemid, rejectedList);
  107. detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + "");
  108. });
  109. });
  110. }
  111. }
  112. rejectstatus() {
  113. var ExpenseItemId = [];
  114. $.each($(".chk_categoryname:checked"), function () {
  115. let statusid = $(this).parents('.list-group-item').find(".statusidcustom").attr("data-statusid");
  116. if (statusid != "3") {
  117. ExpenseItemId.push($(this).val());
  118. }
  119. });
  120. if (ExpenseItemId.length == 0) {
  121. bootbox.confirm("Please Select Expense Items", function (result) { });
  122. }
  123. else if (ExpenseItemId.length > 0) {
  124. var instance = this;
  125. bootbox.confirm({
  126. message: "Are you sure you want to change expense item status ?",
  127. buttons: {
  128. confirm: {
  129. label: 'Ok',
  130. className: 'btn-success'
  131. },
  132. cancel: {
  133. label: 'Cancel',
  134. className: 'btn-danger'
  135. }
  136. },
  137. callback: function (result) {
  138. if (result) {
  139. var categorysList = [];
  140. var isSelected = $("#chk_categoryname_" + ExpenseItemId).is(':checked');
  141. if (isSelected) {
  142. for (var j = 0; j < ExpenseItemId.length; j++) {
  143. categorysList.push(ExpenseItemId[j]);
  144. }
  145. }
  146. var expenseitemid = "";
  147. for (var i = 0; i < categorysList.length; i++) {
  148. expenseitemid = expenseitemid + "," + categorysList[i];
  149. }
  150. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  151. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(expenseitemid, 2).then(function (response) {
  152. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  153. var containerid = $("._bizgaze_detail_container:visible").attr("id");
  154. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  155. var portletid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]].ActivePortletId;
  156. $('#portletTab_' + portletid + ' a').click();
  157. });
  158. });
  159. }
  160. else { }
  161. }
  162. });
  163. }
  164. }
  165. deletedocumentfile(documentfileid) {
  166. var instance = this;
  167. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  168. var documentId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_documentid").Value;
  169. var expenseItemId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_expenseitemid").Value;
  170. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  171. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().deletedocument(expenseItemId, documentfileid, documentId).then(function (response) {
  172. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  173. var containerid = $("._bizgaze_detail_container:visible").attr("id");
  174. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  175. var portletid = detail_instance.unibase_core_activeportletid;
  176. detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + "");
  177. });
  178. });
  179. }
  180. checkexpenseitems() {
  181. var instance = this;
  182. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  183. var stagename = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_refstatusid").Value);
  184. if (($(".chk_categoryname").length === $(".chk_categoryname:checked").length) && (stagename == 4 || stagename == 5)) {
  185. $(".btn_approve").hide();
  186. $(".btn_reject").hide();
  187. }
  188. ;
  189. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  190. var expenseid = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_expenseid").Value;
  191. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().checkexpenseitems(expenseid).then(function (response) {
  192. if (response.result != "" && stagename != 4 && stagename != 5) {
  193. $(".btn_approve").show();
  194. $(".btn_reject").show();
  195. }
  196. else if (response.result == "") {
  197. $(".btn_approve").hide();
  198. $(".btn_reject").hide();
  199. }
  200. Expense.Instance().loadbuttons();
  201. });
  202. });
  203. Bizgaze.Apps.Transact.Components.Expenses.Expense.Instance().stage();
  204. }
  205. getLob() {
  206. var instance = this;
  207. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  208. var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId.toString();
  209. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  210. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  211. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().getLob(employeeId).then(function (response) {
  212. let containerid = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  213. var lobres = response.result;
  214. var lobid = lobres[0].lobid;
  215. var lobname = lobres[0].lobname;
  216. var lob = new Option(lobname, lobid);
  217. if (lobres.length == 1) {
  218. $('#' + containerid).find(".txtAutoComplete_lob").append(lob);
  219. }
  220. });
  221. });
  222. }
  223. loadbuttons() {
  224. var instance = this;
  225. var rolename = "false";
  226. var isAdmin = Unibase.Platform.Membership.Infos.Identity.currentUser.isAdmin;
  227. var userId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  228. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  229. var stage = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_refstatusid").Value);
  230. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  231. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  232. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().getUserRoleByUserId(userId).then(function (response) {
  233. for (var i = 0; i < response.result.length; i++) {
  234. if (response.result[i].RoleName == "Admin" || response.result[i].RoleName == "Admin(ADM)" || response.result[i].RoleName == "Administrators") {
  235. rolename = "true";
  236. }
  237. }
  238. if (isAdmin == true || rolename == "true") {
  239. if (($(".chk_categoryname").length !== $(".chk_categoryname:checked").length) || (stage != 4 && stage != 5)) {
  240. $(".btn_approve").show();
  241. $(".btn_reject").show();
  242. }
  243. $(".chk_categoryname").show();
  244. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden');
  245. if (stage == 6 || stage == 7) {
  246. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').removeClass('hidden');
  247. }
  248. }
  249. else {
  250. var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  251. var managerId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_submitto").Value);
  252. instance.fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
  253. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getEmployeesByManagerId(employeeId, managerId).then(function (response) {
  254. var data = response.result;
  255. if (data != null) {
  256. var empResult = data.find(x => x.employeeid == employeeId);
  257. if (empResult != null && empResult != undefined && empResult != "" && managerId != 0) {
  258. $(".btn_approve").hide();
  259. $(".btn_reject").hide();
  260. $(".chk_categoryname").hide();
  261. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden');
  262. }
  263. else if (empResult == null || empResult == undefined || empResult != "" || managerId == 0) {
  264. if (stage != 4 && stage != 5) {
  265. $(".btn_approve").show();
  266. $(".btn_reject").show();
  267. }
  268. $(".chk_categoryname").show();
  269. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden');
  270. if (stage == 6 || stage == 7) {
  271. $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').removeClass('hidden');
  272. }
  273. }
  274. }
  275. });
  276. });
  277. }
  278. });
  279. });
  280. }
  281. loadApproveExpenseItem(expenseitemid, rejectedItems) {
  282. let instance = this;
  283. var uniqueid = 'Bizgaze_Transact_ApprovalExpense';
  284. const containerid = instance.navigationHelper.getLastContainerId();
  285. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) {
  286. var successCallBack = {
  287. CallBack: function (id) {
  288. },
  289. Parameters: null,
  290. };
  291. const closeCallBack = {
  292. CallBack: function (id) {
  293. let expenseItems = expenseitemid.split(',');
  294. let rejecetedItems = [];
  295. for (const item of expenseItems) {
  296. if (item) {
  297. const expenseItemId = item;
  298. const listEl = $(`#${containerid}`).find(`#list-group-item-${expenseItemId}`);
  299. const claimAmount = +listEl.find('#hf_claimAmnt').val();
  300. const rejectedItem = rejectedItems.find(x => x === expenseItemId);
  301. rejecetedItems.push(rejectedItem);
  302. if (claimAmount != 0 || rejectedItem) {
  303. expenseItems = expenseItems.filter(x => x != expenseItemId);
  304. }
  305. }
  306. }
  307. expenseItems = expenseItems.join(',');
  308. if (expenseItems === '') {
  309. expenseItems = ',';
  310. }
  311. rejectedItems = rejectedItems.join(',');
  312. if (rejectedItems) {
  313. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(rejectedItems, 2);
  314. }
  315. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(expenseItems, 1).then(function (response) {
  316. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  317. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  318. var portletid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]].ActivePortletId;
  319. $('#portletTab_' + portletid + ' a').click();
  320. detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + "");
  321. });
  322. },
  323. Parameters: null,
  324. };
  325. let formviewerObj = {
  326. FormId: response.result.FormId,
  327. AppConfigurationId: 0,
  328. Pk_Value: 0,
  329. PortletWidgetId: 0,
  330. OnSuccess: successCallBack,
  331. OnFail: null,
  332. OnLoad: null,
  333. OnClose: closeCallBack
  334. };
  335. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  336. instance.navigationHelper.hideLoading();
  337. });
  338. }
  339. AdvanceApproveExpenseItem() {
  340. let instance = this;
  341. var uniqueid = 'Bizgaze_Transact_AdvanceExpense';
  342. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) {
  343. var successCallBack = {
  344. CallBack: function (id) {
  345. },
  346. Parameters: null,
  347. };
  348. let formviewerObj = {
  349. FormId: response.result.FormId,
  350. AppConfigurationId: 0,
  351. Pk_Value: 0,
  352. PortletWidgetId: 0,
  353. OnSuccess: successCallBack,
  354. OnFail: null,
  355. OnLoad: null
  356. };
  357. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  358. instance.navigationHelper.hideLoading();
  359. });
  360. }
  361. checkExpenseAmount(expenseCategoryId, expAmount) {
  362. var instance = this;
  363. var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  364. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  365. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().checkexpenseamount(expenseCategoryId, expAmount, employeeId).then(function (response) {
  366. if (response.result != null) {
  367. Unibase.Platform.Forms.Components.FormViewer.Instance().showError(response.message);
  368. return false;
  369. }
  370. });
  371. });
  372. }
  373. expAmountKeyup() {
  374. $('.txt_expamount').each(function (i, el) {
  375. $(el).off().keyup(function (e) {
  376. console.log($(e.target).attr('id'));
  377. var expAmount = Number($(e.target).val());
  378. const expenseCategory = $(e.target).parents('.subformcls').find('.txtAutoComplete_expensecategoryid').val();
  379. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/components/expenses/expense.js", function () {
  380. Bizgaze.Apps.Transact.Components.Expenses.Expense.Instance().checkExpenseAmount(expenseCategory, expAmount);
  381. });
  382. });
  383. console.log($(el).attr('id'));
  384. });
  385. }
  386. checkDocumentByDesignation() {
  387. var instance = this;
  388. var userId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  389. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  390. var expenseId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_expenseid").Value;
  391. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  392. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().checkDocumentByDesignation(expenseId, userId).then(function (response) {
  393. if (response.result != null) {
  394. for (let i = 0; i < response.result.length; i++) {
  395. let data = response.result[i];
  396. if (data.ErrorMessage === 'Documents Required') {
  397. $("#expensesErrorDiv_" + data.ExpenseItemId).html(`<i class="las la-info-circle font-20"></i>`);
  398. }
  399. if ((data.ErrorMessage != "") && (data.DocumentName == "")) {
  400. $("#chk_categoryname_" + data.ExpenseItemId).prop("disabled", true);
  401. }
  402. else {
  403. $("#chk_categoryname_" + data.ExpenseItemId).prop("disabled", false);
  404. }
  405. }
  406. }
  407. });
  408. });
  409. }
  410. loadDocument(expenseItemId) {
  411. let instance = this;
  412. var uniqueid = 'bizgaze_platform_DocumentAttachments';
  413. var hiddenFieldControlId = ".hdn_expenseitemid";
  414. var cobj = {
  415. hiddenFieldControlId: hiddenFieldControlId
  416. };
  417. var loadObj = {
  418. CallBack: function (cobj) {
  419. $(cobj.hiddenFieldControlId).val(expenseItemId);
  420. },
  421. Parameters: cobj,
  422. };
  423. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) {
  424. var successCallBack = {
  425. CallBack: function (id) {
  426. var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
  427. detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  428. detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  429. detailobj._containerId = $("._bizgaze_detail_container:visible").attr("id");
  430. var idetailObj = detailobj;
  431. detailobj.loadPortlets(idetailObj);
  432. },
  433. Parameters: null,
  434. };
  435. let formviewerObj = {
  436. FormId: response.result.FormId,
  437. AppConfigurationId: 0,
  438. Pk_Value: expenseItemId,
  439. PortletWidgetId: 0,
  440. OnSuccess: successCallBack,
  441. OnFail: null,
  442. OnLoad: loadObj
  443. };
  444. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  445. instance.navigationHelper.hideLoading();
  446. });
  447. }
  448. FinancialManagerForApproved() {
  449. var instance = this;
  450. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  451. var ExpenseId = 0;
  452. var VersionGuid = "";
  453. var StageId = 0;
  454. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  455. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_expenseid") != undefined) {
  456. $(".DetailSetting_" + InstalledAppId + "_SubmitForFM").click(function () {
  457. ExpenseId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_expenseid").Value);
  458. VersionGuid = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_versionguid").Value;
  459. StageId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_stageid").Value);
  460. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().FinancialManagerForApproved(ExpenseId, InstalledAppId, VersionGuid, StageId).then(function (response) {
  461. if (response.errors == null) {
  462. MessageHelper.Instance().showSuccess(response.message, "div_message");
  463. Unibase.Themes.Compact.Components.Details.Instance().change(StageId, InstalledAppId);
  464. }
  465. else {
  466. MessageHelper.Instance().showError(response.message, "div_message");
  467. }
  468. });
  469. });
  470. }
  471. });
  472. }
  473. getadvancecategory() {
  474. var instance = this;
  475. let containerid = instance.navigationHelper.getLastContainerId();
  476. instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () {
  477. Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().getAdvanceCategory().then(function (response) {
  478. const categorySelectEl = $('#' + containerid).find(".section_AdvanceItem .txtAutoComplete_expensecategoryid");
  479. if ($('#rdb_expensetype_1').is(':checked')) {
  480. var expensecategoryid = response.result[0].expensecategoryid;
  481. var categoryname = response.result[0].categoryname;
  482. if (categorySelectEl.find(`option[value='${expensecategoryid}']`).length > 0) {
  483. categorySelectEl.val(expensecategoryid).attr("disabled", "true");
  484. }
  485. else {
  486. var category = new Option(categoryname, expensecategoryid);
  487. categorySelectEl.append(category).val(expensecategoryid).attr("disabled", "true");
  488. }
  489. categorySelectEl.prop('disabled', true).trigger('change');
  490. }
  491. else {
  492. categorySelectEl.prop('disabled', false).val(null).trigger('change');
  493. }
  494. });
  495. });
  496. }
  497. stage() {
  498. var instance = this;
  499. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  500. var refstatusid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value);
  501. if (refstatusid == 1) {
  502. instance.disableStages('approval,Rejected');
  503. }
  504. if (refstatusid == 3) {
  505. instance.disableStages('Rejected');
  506. }
  507. if (refstatusid == 4) {
  508. instance.disableStages('Rejected');
  509. }
  510. if (refstatusid == 5) {
  511. instance.disableStages('Rejected');
  512. }
  513. if (refstatusid == 6) {
  514. instance.disableStages('Rejected');
  515. }
  516. if (refstatusid == 7) {
  517. instance.disableStages('Rejected');
  518. }
  519. if (refstatusid == 9) {
  520. instance.disableStages('approval,Rejected');
  521. }
  522. if (refstatusid == 8) {
  523. instance.disableStages('Reimbursed,Rejected');
  524. }
  525. }
  526. disableStages(stageName) {
  527. const instance = this;
  528. let containerid = instance.navigationHelper.getLastContainerId();
  529. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  530. Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(InstalledAppId).then(function (response) {
  531. if (response.result) {
  532. const stageNames = stageName.split(',');
  533. const stages = [];
  534. stageNames.forEach(name => {
  535. const stage = response.result.find(stage => stage.StageStatusName.toLowerCase() === name.toLowerCase());
  536. stages.push(stage);
  537. });
  538. if (stages.length) {
  539. const stagesEl = $(`#${containerid}`).find(".layout-details-stages .stages-list-addedItem");
  540. stagesEl.addClass('disabled');
  541. stages.forEach(stage => {
  542. $(`#StageId_${stage.StageId}`).removeClass('disabled');
  543. });
  544. $(`#${containerid}`).find(".stages-list-addedItem.disabled").removeAttr('onclick');
  545. }
  546. }
  547. });
  548. }
  549. static Instance() {
  550. if (this._instance === undefined)
  551. this._instance = new Expense();
  552. return this._instance;
  553. }
  554. }
  555. Expenses.Expense = Expense;
  556. })(Expenses = Components.Expenses || (Components.Expenses = {}));
  557. })(Components = Transact.Components || (Transact.Components = {}));
  558. })(Transact = Apps.Transact || (Apps.Transact = {}));
  559. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  560. })(Bizgaze || (Bizgaze = {}));