var Bizgaze; (function (Bizgaze) { let Apps; (function (Apps) { let Transact; (function (Transact) { let Components; (function (Components) { let Expenses; (function (Expenses) { class Expense extends Unibase.Platform.Core.BaseComponent { cssFiles() { return []; } jsFiles() { return []; } html(id, containerid) { return; } load(id, containerid, callback) { return; } init() { var categorysList = []; $(".listexpenseitems").find(".expenseitems").each(function () { if (($(this).find("#chk_categoryname").prop("checked") == true)) { var category = ($(this).find("#hf_categoryname").val()); categorysList.push({ Category: category, }); } }); } getmanagername() { var instance = this; instance.fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () { var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId; var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]; Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getEmployeeManager(employeeId).then(function (response) { let containerid = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]; var res = response.result; var managerid = response.result.managerid; var empname = response.result.employeename; if (managerid == 0) { var empid = response.result.employeeid; var manager = new Option(empname, empid); $('#' + containerid).find(".txtAutoComplete_submitto").append(manager); $('#' + containerid).find(".chk_categoryname_").hide(); $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden'); } else if (managerid != 0) { var managerid = response.result.managerid; var managername = response.result.managername; if (response.result != null) { var manager = new Option(managername, managerid); $('#' + containerid).find(".txtAutoComplete_submitto").append(manager); $('#' + containerid).find(".btn_approve").show(); $('#' + containerid).find(".btn_reject").show(); $('#' + containerid).find(".chk_categoryname_").show(); $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').removeClass('hidden'); } } }); }); } approvestatus(iscategory) { var ExpenseItemId = []; let rejectedList = []; $.each($(".chk_categoryname:checked"), function () { const value = $(this).val(); ExpenseItemId.push(value); if ($(this).closest('.customExpenseItems').find('#hf_statusId').val() == 2) { rejectedList.push(value); } }); if (ExpenseItemId.length == 0) { bootbox.confirm("Please Select Expense Items", function (result) { }); } else if (ExpenseItemId.length > 0) { var instance = this; var categorysList = []; if (iscategory == true) { var isSelected = $("#chk_categoryname_" + ExpenseItemId).is(':checked'); } else { var isSelected = $("#chk_advancecategoryname_" + ExpenseItemId).is(':checked'); } if (isSelected) { for (var j = 0; j < ExpenseItemId.length; j++) { categorysList.push(ExpenseItemId[j]); } } var expenseitemid = ""; for (var i = 0; i < categorysList.length; i++) { expenseitemid = expenseitemid + "," + categorysList[i]; } instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(expenseitemid, 3).then(function (response) { var detail_instance = Unibase.Themes.Compact.Components.Details.Instance(); var containerid = instance.navigationHelper.getLastContainerId(); var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var portletid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]].ActivePortletId; $('#portletTab_' + portletid + ' a').click(); Bizgaze.Apps.Transact.Components.Expenses.Expense.Instance().loadApproveExpenseItem(expenseitemid, rejectedList); detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + ""); }); }); } } rejectstatus() { var ExpenseItemId = []; $.each($(".chk_categoryname:checked"), function () { let statusid = $(this).parents('.list-group-item').find(".statusidcustom").attr("data-statusid"); if (statusid != "3") { ExpenseItemId.push($(this).val()); } }); if (ExpenseItemId.length == 0) { bootbox.confirm("Please Select Expense Items", function (result) { }); } else if (ExpenseItemId.length > 0) { var instance = this; bootbox.confirm({ message: "Are you sure you want to change expense item status ?", buttons: { confirm: { label: 'Ok', className: 'btn-success' }, cancel: { label: 'Cancel', className: 'btn-danger' } }, callback: function (result) { if (result) { var categorysList = []; var isSelected = $("#chk_categoryname_" + ExpenseItemId).is(':checked'); if (isSelected) { for (var j = 0; j < ExpenseItemId.length; j++) { categorysList.push(ExpenseItemId[j]); } } var expenseitemid = ""; for (var i = 0; i < categorysList.length; i++) { expenseitemid = expenseitemid + "," + categorysList[i]; } instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(expenseitemid, 2).then(function (response) { var detail_instance = Unibase.Themes.Compact.Components.Details.Instance(); var containerid = $("._bizgaze_detail_container:visible").attr("id"); var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var portletid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]].ActivePortletId; $('#portletTab_' + portletid + ' a').click(); }); }); } else { } } }); } } deletedocumentfile(documentfileid) { var instance = this; var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var documentId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_documentid").Value; var expenseItemId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_expenseitemid").Value; instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().deletedocument(expenseItemId, documentfileid, documentId).then(function (response) { var detail_instance = Unibase.Themes.Compact.Components.Details.Instance(); var containerid = $("._bizgaze_detail_container:visible").attr("id"); var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var portletid = detail_instance.unibase_core_activeportletid; detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + ""); }); }); } checkexpenseitems() { var instance = this; var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var stagename = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_refstatusid").Value); if (($(".chk_categoryname").length === $(".chk_categoryname:checked").length) && (stagename == 4 || stagename == 5)) { $(".btn_approve").hide(); $(".btn_reject").hide(); } ; instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { var expenseid = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_expenseid").Value; Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().checkexpenseitems(expenseid).then(function (response) { if (response.result != "" && stagename != 4 && stagename != 5) { $(".btn_approve").show(); $(".btn_reject").show(); } else if (response.result == "") { $(".btn_approve").hide(); $(".btn_reject").hide(); } Expense.Instance().loadbuttons(); }); }); Bizgaze.Apps.Transact.Components.Expenses.Expense.Instance().stage(); } getLob() { var instance = this; instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId.toString(); var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]; Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().getLob(employeeId).then(function (response) { let containerid = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]; var lobres = response.result; var lobid = lobres[0].lobid; var lobname = lobres[0].lobname; var lob = new Option(lobname, lobid); if (lobres.length == 1) { $('#' + containerid).find(".txtAutoComplete_lob").append(lob); } }); }); } loadbuttons() { var instance = this; var rolename = "false"; var isAdmin = Unibase.Platform.Membership.Infos.Identity.currentUser.isAdmin; var userId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId; var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var stage = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_refstatusid").Value); let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]; instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().getUserRoleByUserId(userId).then(function (response) { for (var i = 0; i < response.result.length; i++) { if (response.result[i].RoleName == "Admin" || response.result[i].RoleName == "Admin(ADM)" || response.result[i].RoleName == "Administrators") { rolename = "true"; } } if (isAdmin == true || rolename == "true") { if (($(".chk_categoryname").length !== $(".chk_categoryname:checked").length) || (stage != 4 && stage != 5)) { $(".btn_approve").show(); $(".btn_reject").show(); } $(".chk_categoryname").show(); $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden'); if (stage == 6 || stage == 7) { $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').removeClass('hidden'); } } else { var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId; var managerId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_submitto").Value); instance.fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () { Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getEmployeesByManagerId(employeeId, managerId).then(function (response) { var data = response.result; if (data != null) { var empResult = data.find(x => x.employeeid == employeeId); if (empResult != null && empResult != undefined && empResult != "" && managerId != 0) { $(".btn_approve").hide(); $(".btn_reject").hide(); $(".chk_categoryname").hide(); $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden'); } else if (empResult == null || empResult == undefined || empResult != "" || managerId == 0) { if (stage != 4 && stage != 5) { $(".btn_approve").show(); $(".btn_reject").show(); } $(".chk_categoryname").show(); $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').addClass('hidden'); if (stage == 6 || stage == 7) { $(detailContainer).find('.DetailSetting_' + '' + installedAppId + '' + '_SubmitForFM').parent('li').removeClass('hidden'); } } } }); }); } }); }); } loadApproveExpenseItem(expenseitemid, rejectedItems) { let instance = this; var uniqueid = 'Bizgaze_Transact_ApprovalExpense'; const containerid = instance.navigationHelper.getLastContainerId(); Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) { var successCallBack = { CallBack: function (id) { }, Parameters: null, }; const closeCallBack = { CallBack: function (id) { let expenseItems = expenseitemid.split(','); let rejecetedItems = []; for (const item of expenseItems) { if (item) { const expenseItemId = item; const listEl = $(`#${containerid}`).find(`#list-group-item-${expenseItemId}`); const claimAmount = +listEl.find('#hf_claimAmnt').val(); const rejectedItem = rejectedItems.find(x => x === expenseItemId); rejecetedItems.push(rejectedItem); if (claimAmount != 0 || rejectedItem) { expenseItems = expenseItems.filter(x => x != expenseItemId); } } } expenseItems = expenseItems.join(','); if (expenseItems === '') { expenseItems = ','; } rejectedItems = rejectedItems.join(','); if (rejectedItems) { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(rejectedItems, 2); } Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().changestatus(expenseItems, 1).then(function (response) { var detail_instance = Unibase.Themes.Compact.Components.Details.Instance(); var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var portletid = Unibase.Themes.Providers.Detail_Settings.Instance().DetailParameters["#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1]].ActivePortletId; $('#portletTab_' + portletid + ' a').click(); detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + ""); }); }, Parameters: null, }; let formviewerObj = { FormId: response.result.FormId, AppConfigurationId: 0, Pk_Value: 0, PortletWidgetId: 0, OnSuccess: successCallBack, OnFail: null, OnLoad: null, OnClose: closeCallBack }; Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj); instance.navigationHelper.hideLoading(); }); } AdvanceApproveExpenseItem() { let instance = this; var uniqueid = 'Bizgaze_Transact_AdvanceExpense'; Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) { var successCallBack = { CallBack: function (id) { }, Parameters: null, }; let formviewerObj = { FormId: response.result.FormId, AppConfigurationId: 0, Pk_Value: 0, PortletWidgetId: 0, OnSuccess: successCallBack, OnFail: null, OnLoad: null }; Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj); instance.navigationHelper.hideLoading(); }); } checkExpenseAmount(expenseCategoryId, expAmount) { var instance = this; var employeeId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId; instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().checkexpenseamount(expenseCategoryId, expAmount, employeeId).then(function (response) { if (response.result != null) { Unibase.Platform.Forms.Components.FormViewer.Instance().showError(response.message); return false; } }); }); } expAmountKeyup() { $('.txt_expamount').each(function (i, el) { $(el).off().keyup(function (e) { console.log($(e.target).attr('id')); var expAmount = Number($(e.target).val()); const expenseCategory = $(e.target).parents('.subformcls').find('.txtAutoComplete_expensecategoryid').val(); Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/components/expenses/expense.js", function () { Bizgaze.Apps.Transact.Components.Expenses.Expense.Instance().checkExpenseAmount(expenseCategory, expAmount); }); }); console.log($(el).attr('id')); }); } checkDocumentByDesignation() { var instance = this; var userId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId; var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var expenseId = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_expenseid").Value; instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().checkDocumentByDesignation(expenseId, userId).then(function (response) { if (response.result != null) { for (let i = 0; i < response.result.length; i++) { let data = response.result[i]; if (data.ErrorMessage === 'Documents Required') { $("#expensesErrorDiv_" + data.ExpenseItemId).html(``); } if ((data.ErrorMessage != "") && (data.DocumentName == "")) { $("#chk_categoryname_" + data.ExpenseItemId).prop("disabled", true); } else { $("#chk_categoryname_" + data.ExpenseItemId).prop("disabled", false); } } } }); }); } loadDocument(expenseItemId) { let instance = this; var uniqueid = 'bizgaze_platform_DocumentAttachments'; var hiddenFieldControlId = ".hdn_expenseitemid"; var cobj = { hiddenFieldControlId: hiddenFieldControlId }; var loadObj = { CallBack: function (cobj) { $(cobj.hiddenFieldControlId).val(expenseItemId); }, Parameters: cobj, }; Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(uniqueid).then(function (response) { var successCallBack = { CallBack: function (id) { var detailobj = Unibase.Themes.Compact.Components.Details.Instance(); detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId; detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; detailobj._containerId = $("._bizgaze_detail_container:visible").attr("id"); var idetailObj = detailobj; detailobj.loadPortlets(idetailObj); }, Parameters: null, }; let formviewerObj = { FormId: response.result.FormId, AppConfigurationId: 0, Pk_Value: expenseItemId, PortletWidgetId: 0, OnSuccess: successCallBack, OnFail: null, OnLoad: loadObj }; Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj); instance.navigationHelper.hideLoading(); }); } FinancialManagerForApproved() { var instance = this; var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var ExpenseId = 0; var VersionGuid = ""; var StageId = 0; instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_expenseid") != undefined) { $(".DetailSetting_" + InstalledAppId + "_SubmitForFM").click(function () { ExpenseId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_expenseid").Value); VersionGuid = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_versionguid").Value; StageId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_stageid").Value); Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().FinancialManagerForApproved(ExpenseId, InstalledAppId, VersionGuid, StageId).then(function (response) { if (response.errors == null) { MessageHelper.Instance().showSuccess(response.message, "div_message"); Unibase.Themes.Compact.Components.Details.Instance().change(StageId, InstalledAppId); } else { MessageHelper.Instance().showError(response.message, "div_message"); } }); }); } }); } getadvancecategory() { var instance = this; let containerid = instance.navigationHelper.getLastContainerId(); instance.fileCacheHelper.loadJsFile("apps/transact/managers/expenses/expensemanager.js", function () { Bizgaze.Apps.Transact.Managers.Expenses.ExpenseManager.Instance().getAdvanceCategory().then(function (response) { const categorySelectEl = $('#' + containerid).find(".section_AdvanceItem .txtAutoComplete_expensecategoryid"); if ($('#rdb_expensetype_1').is(':checked')) { var expensecategoryid = response.result[0].expensecategoryid; var categoryname = response.result[0].categoryname; if (categorySelectEl.find(`option[value='${expensecategoryid}']`).length > 0) { categorySelectEl.val(expensecategoryid).attr("disabled", "true"); } else { var category = new Option(categoryname, expensecategoryid); categorySelectEl.append(category).val(expensecategoryid).attr("disabled", "true"); } categorySelectEl.prop('disabled', true).trigger('change'); } else { categorySelectEl.prop('disabled', false).val(null).trigger('change'); } }); }); } stage() { var instance = this; var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var refstatusid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_refstatusid").Value); if (refstatusid == 1) { instance.disableStages('approval,Rejected'); } if (refstatusid == 3) { instance.disableStages('Rejected'); } if (refstatusid == 4) { instance.disableStages('Rejected'); } if (refstatusid == 5) { instance.disableStages('Rejected'); } if (refstatusid == 6) { instance.disableStages('Rejected'); } if (refstatusid == 7) { instance.disableStages('Rejected'); } if (refstatusid == 9) { instance.disableStages('approval,Rejected'); } if (refstatusid == 8) { instance.disableStages('Reimbursed,Rejected'); } } disableStages(stageName) { const instance = this; let containerid = instance.navigationHelper.getLastContainerId(); var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(InstalledAppId).then(function (response) { if (response.result) { const stageNames = stageName.split(','); const stages = []; stageNames.forEach(name => { const stage = response.result.find(stage => stage.StageStatusName.toLowerCase() === name.toLowerCase()); stages.push(stage); }); if (stages.length) { const stagesEl = $(`#${containerid}`).find(".layout-details-stages .stages-list-addedItem"); stagesEl.addClass('disabled'); stages.forEach(stage => { $(`#StageId_${stage.StageId}`).removeClass('disabled'); }); $(`#${containerid}`).find(".stages-list-addedItem.disabled").removeAttr('onclick'); } } }); } static Instance() { if (this._instance === undefined) this._instance = new Expense(); return this._instance; } } Expenses.Expense = Expense; })(Expenses = Components.Expenses || (Components.Expenses = {})); })(Components = Transact.Components || (Transact.Components = {})); })(Transact = Apps.Transact || (Apps.Transact = {})); })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {})); })(Bizgaze || (Bizgaze = {}));