var Bizgaze;
(function (Bizgaze) {
let Apps;
(function (Apps) {
let Transact;
(function (Transact) {
let Controls;
(function (Controls) {
class ApproveExpense extends Unibase.Platform.Core.BaseComponent {
constructor() {
super(...arguments);
this.ApproveExpenseItems = [];
}
init(formpropertyid, prop, callback) { }
loadControlSettings(controlsettingjson, formpropertyid) { }
loadPropertySettings(propertysettings, formpropertyid, DocPropertyName) { }
bindEditFormDetails(formpropertyid, propval, DocPropertyName) { }
loadControl(containerid, prop) {
var instance = this;
instance.transactionId = prop.FormPropertyId;
var html = '
' +
'';
$("#" + containerid).html(html);
Bizgaze.Apps.Transact.Controls.ApproveExpense.Instance().bindloginuser();
Bizgaze.Apps.Transact.Controls.ApproveExpense.Instance().approveexpenseitemdetails();
}
bindloginuser() {
let UserId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
var fromdate = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_fromdate").Value;
var _fromdate = Unibase.Platform.Helpers.DateTimeHelper.instance.formatServerDateTime(fromdate);
Unibase.Platform.Analytics.Reports.ReportBuilder.Instance().fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getContactByUserId(UserId).then(function (response) {
let contactId = response.result.ContactId;
let organizationName = response.result.ContactName;
let contact = new Option(organizationName, contactId.toString(), true);
$(".txtAutoComplete_approvalby").append(contact);
$(".txtAutoComplete_approvalby").val(contactId).trigger("change");
$(".date_fromdate").val(fromdate).attr("disabled", "disabled");
$(".hfdate_fromdate").val(_fromdate);
$(".date_fromdate").closest('.floating-label-form-group').addClass('floating-label-form-group-with-value');
});
});
}
approveexpenseitemdetails() {
var instance = this;
var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
var expenseId = Number(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().approveexpenseitemlist(expenseId).then(function (response) {
var html = '';
html += '';
$(".approveexpenseitem").append(html);
for (var i = 0; i < response.result.length; i++) {
if (response.result[i].checkexpenseitem == true) {
const expenseItemId = response.result[i].expenseitemid;
$(`#Descriptionn_${expenseItemId}`).prop("disabled", false);
$(`#claimAmount_${expenseItemId}`).prop("disabled", false);
$(`#checkExpenseItem_${expenseItemId}`).prop("checked", true);
}
}
});
});
}
ClaimAmountValidation(expenseitemid, expamount) {
var claimAmount = Number($(`#claimAmount_${expenseitemid}`).val());
if (claimAmount <= expamount) {
var balance = (expamount - claimAmount).toFixed(2);
$(`#txt_balance_${expenseitemid}`).val(balance);
}
else {
Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Claim Amount Cannot Be Greater Than ExpenseAmount");
$(`#txt_balance_${expenseitemid}`).val(0);
$(`#claimAmount_${expenseitemid}`).val("");
$(`#claimAmount_${expenseitemid}`).addClass("required");
return false;
}
}
ApproveExpenseItemObject() {
const instance = this;
var data = new Array();
let isClaimValid = true;
$(".approveexpenseitem").find("tbody tr").each(function () {
var balanceamount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(this).find('.txt_balance').val()), 2);
var ClaimAmount = Number($(this).find('.txt_claimamount').val());
if (ClaimAmount == 0) {
const containerid = instance.navigationHelper.getLastContainerId();
const errEl = $(`#${containerid} .form-error-message`).attr('id');
MessageHelper.Instance().showError("Claim Amount Should Be Greater Than Zero", errEl);
isClaimValid = false;
return false;
}
else {
data.push({
ClaimAmount: Number($(this).find('.txt_claimamount').val()),
BalanceAmount: Number(balanceamount),
Description: $(this).find('.txt_descriptionn').val(),
ExpAmount: Number($(this).find('.txt_expenseamount').text()),
ExpenseItemId: Number($(this).find('.hf_expenseitemid').val()),
ExpenseId: Number($(this).find('.hf_expenseid').val()),
CheckExpenseItem: $(this).find(".chk_approveexpenseitem").prop("checked"),
});
}
});
if (!isClaimValid) {
return false;
}
return data;
}
refreshpage() {
var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
detailobj._containerId = this.navigationHelper.getLastContainerId();
var idetailObj = detailobj;
detailobj.loadPortlets(idetailObj);
}
static Instance() {
if (this.instance === undefined) {
this.instance = new ApproveExpense();
}
return this.instance;
}
}
Controls.ApproveExpense = ApproveExpense;
})(Controls = Transact.Controls || (Transact.Controls = {}));
})(Transact = Apps.Transact || (Apps.Transact = {}));
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
})(Bizgaze || (Bizgaze = {}));