var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var Bizgaze;
(function (Bizgaze) {
let Apps;
(function (Apps) {
let Transact;
(function (Transact) {
let Controls;
(function (Controls) {
class Voucher extends Unibase.Platform.Core.BaseComponent {
init(formpropertyid, prop, callback) {
var container = "control-container-" + formpropertyid;
var instance = this;
instance.local_container = container;
instance.editVoucher = false;
instance.findtxtcrRdr = 2;
instance.transactionId = parseInt('00001', 8);
instance.flag = 0;
instance.fileCacheHelper.loadJsFile('apps/transact/managers/vouchers/vouchermanager.js', function () {
instance.fileCacheHelper.loadJsFile('platform/core/helpers/numberhelper/numberhelper.js', function () {
instance.loadInitTransaction();
$("#" + container).find("#btnAddNewTransaction").click(function () {
instance.addTransaction(false);
$(".transactonList_div").addClass("hidden");
});
if (callback != null) {
callback();
}
setTimeout(function () {
}, 500);
});
});
}
loadControl(container, prop) {
var html = '
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'
' +
'Advance Amount: ' +
'
' +
'
';
$('.transactonList_item:last').after(html);
instance.accountAutoCompleteLoading('TRN' + instance.transactionId);
$('.transactonList_item_TRN' + instance.transactionId + '').find(".accountName").on('select2:select', function (e) {
var trnId = $(this).attr("id");
var id = trnId.split('_');
$(".transactonList_item").each(function () {
var currentTrn = "transactonList_item_" + id[2];
if (!$(this).hasClass(currentTrn)) {
var accountId = Number($(this).find('.hf_AccountId').val());
if ($('#txt_AccountName_' + id[2]).val() == accountId) {
MessageHelper.Instance().showError("Account Already Selected", errormsg);
instance.removeAccount(id[2]);
instance.addTransaction(false);
$(".transactonList_div").addClass("hidden");
return false;
}
}
});
$('.transactonList_item_' + id[2] + '').attr("identityAttr", "new");
instance.accountAutoCompleteOnChange(id[2]);
});
$('.transactonList_item_TRN' + instance.transactionId + '').find(".accountName").on("select2:open", function (e) {
var trnId = $(this).attr("id");
var id = trnId.split('_');
instance.unhideTransaction(id[2]);
});
var orgurl = _appsettings.server_url() + '/apis/v4/bizgaze/crm/contacts/getorganizationdetails';
AutoCompleteHelper.getHelper().Create("#ddl_Org_TRN" + instance.transactionId, "#hfddl_Org_TRN" + instance.transactionId, orgurl, function (response) {
var data = response;
});
$('.txt_Debit_TRN' + instance.transactionId + '').on('keyup', function () {
var trnId = $(this).data('trnid');
var element = $('.transactonList_item_' + trnId + '');
var contactids = element.find('.hf_ContactId').val();
var voucherid = element.find('.hf_JournalIdforJEntry').val();
if (element.find('.txt_Debit').val() != undefined && element.find('.txt_Debit').val() != 0) {
instance.isTransactionDebit = true;
element.find('.txt_Credit').val(0);
element.find('.hf_TransactionType').val('debit');
element.find('.txtTotalWalletAdjusted_' + trnId).val(0);
if (instance.editVoucher == false)
instance.loadWalletsAndDues(trnId, 0, contactids, 'debit', false, '', true, false);
else
instance.loadWalletsAndDues(trnId, voucherid, contactids, 'debit', false, '', true, false);
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
}
instance.updatePayment(trnId, 'debit', true, false);
instance.updatePayment(trnId, 'due', true, false);
});
$('.txt_Credit_TRN' + instance.transactionId + '').on('keyup', function (evt, id) {
var trnId = $(this).data('trnid');
var element = $('.transactonList_item_' + trnId + '');
var contactids = element.find('.hf_ContactId').val();
var voucherid = element.find('.hf_JournalIdforJEntry').val();
if (element.find('.txt_Credit').val() != undefined && element.find('.txt_Credit').val() != 0) {
instance.isTransactionDebit = false;
element.find('.txt_Debit').val(0);
element.find('.hf_TransactionType').val('credit');
element.find('.txtTotalWalletAdjusted_' + trnId).val(0);
if (instance.editVoucher == false)
instance.loadWalletsAndDues(trnId, 0, contactids, 'credit', false, '', true, false);
else
instance.loadWalletsAndDues(trnId, voucherid, contactids, 'credit', false, '', true, false);
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
}
instance.updatePayment(trnId, 'credit', true, false);
instance.updatePayment(trnId, 'due', true, false);
});
$('.txtTotalWalletAdjusted_TRN' + instance.transactionId + '').on('keyup', function (evt, id) {
var id = $(this).attr("id").split('_');
instance.transactionId = id[1].charAt(3);
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode == 46) {
var val = document.getElementById(id);
var txt = val.value;
if (!(txt.indexOf(".") > -1))
return true;
}
var trnId = $(this).data('trnid');
var element = $('.transactonList_item_' + trnId + '');
if (element.find("#tx_Debit_TRN" + instance.transactionId).val() > 0) {
var debit = element.find("#tx_Debit_TRN" + instance.transactionId).val();
var totAdjAmt = Number(element.find('.txtTotalWalletAdjusted_TRN' + instance.transactionId).val());
if (totAdjAmt > debit) {
element.find('.txtTotalWalletAdjusted_TRN' + instance.transactionId).val(debit);
MessageHelper.Instance().showError("Cannot adjust more than your debits", errormsg);
if (element.find(".txt_Debit_" + trnId).val() == 0)
instance.update_Credtotal(trnId);
if (element.find(".txt_Credit_" + trnId).val() == 0)
instance.update_Debtotal(trnId);
instance.updatePayment(trnId, 'wallet', true, false);
instance.updatePayment(trnId, 'due', true, false);
return false;
}
}
var totWalletAmt = Number(element.find('.txtWalletsTotalAmt').text());
var totAdjAmt = Number(element.find('.txtTotalWalletAdjusted_TRN' + instance.transactionId).val());
if (totAdjAmt > totWalletAmt) {
element.find('.txtTotalWalletAdjusted_TRN' + instance.transactionId).val(totWalletAmt);
MessageHelper.Instance().showError("You don't have enough amount in that wallet", errormsg);
}
var trnType = element.find('.hf_TransactionType').val();
if (trnType == '' || trnType == null)
trnType = 'credit';
if (element.find(".txt_Debit_" + trnId).val() == 0)
instance.update_Credtotal(trnId);
if (element.find(".txt_Credit_" + trnId).val() == 0)
instance.update_Debtotal(trnId);
instance.updatePayment(trnId, 'wallet', true, false);
instance.updatePayment(trnId, 'due', true, false);
});
$('.txtTotalDueAdjusted_TRN' + instance.transactionId + '').keyup(function () {
instance.isTransactionDebit = false;
var trnId = $(this).data('trnid');
var element = $('.transactonList_item_' + trnId + '');
var trnType = element.find('.hf_TransactionType').val();
if (trnType == '' || trnType == null)
trnType = 'credit';
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
});
return Bizgaze.Apps.Transact.Controls.Voucher.Instance().transactionId;
}
AutoAdjustDues(trnId) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
var btnColor = $(element).find('#btnAutoAdjustDues').attr('class');
if ($(element).find('#btnAutoAdjustDues').attr("name") == "enabled") {
$(element).find('.txtTotalDueAdjusted_' + trnId).val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
$(element).find('.txtCurrentAmount').val(0.00);
}
else {
$(element).find('#btnAutoAdjustDues').attr("name", "enabled");
}
instance.RefreshDues(trnId);
}
RefreshDues(trnId) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
var contactids = element.find('.hf_ContactId').val();
var voucherid = element.find('.hf_JournalIdforJEntry').val();
if (element.find('.txt_Credit').val() != undefined && element.find('.txt_Credit').val() != 0 || element.find('.txtTotalWalletAdjusted').val() > 0) {
element.find('.hf_TransactionType').val('credit');
if (instance.editVoucher == false)
instance.loadWalletsAndDues(trnId, 0, contactids, 'credit', false, '', false, false);
else
instance.loadWalletsAndDues(trnId, voucherid, contactids, 'credit', false, '', false, false);
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
instance.updatePayment(trnId, 'credit', false, false);
instance.updatePayment(trnId, 'due', false, false);
}
if (element.find('.txt_Debit').val() != undefined && element.find('.txt_Debit').val() != 0) {
element.find('.hf_TransactionType').val('debit');
if (instance.editVoucher == false)
instance.loadWalletsAndDues(trnId, 0, contactids, 'debit', false, '', false, false);
else
instance.loadWalletsAndDues(trnId, voucherid, contactids, 'debit', false, '', false, false);
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
instance.updatePayment(trnId, 'debit', false, false);
}
}
AdjustDueAmount(jId, trnId) {
var instance = this;
var errormsg = $(".bizgaze_FormErrorMessages:visible").attr("id");
instance.initFlag();
var x = document.getElementById("divDue_List_item_" + jId).parentElement.parentElement.getAttribute("class");
var elementforPayment = $('.transactonList_item_' + trnId + '');
var totDue = 0;
var totDueAmt = Number(elementforPayment.find('.txtDuesTotalAmt').text());
$(elementforPayment).find('.divDue_List_item').each(function () {
var xyz = Number($(this).find('.txtCurrentAmount').val());
if (!isNaN(xyz))
totDue += xyz;
});
var element = elementforPayment.find('#divDue_List_item_' + jId + '');
var dueAmount = $('#lblDueBalance_' + jId + '').text();
var cr = $(elementforPayment).find("#tx_Credit_" + trnId).val();
var crwallet = $(elementforPayment).find('.txtTotalWalletAdjusted_' + trnId + '').val();
var crAmt = Number(cr) + Number(crwallet);
let enteredAmount = $(element).find('.txtCurrentAmount').val();
if (totDue <= crAmt) {
if (totDue <= totDueAmt) {
var OrgdueAmount = Number($(element).find('.hfDueAmount').val());
var txtWalletCurrentAmount = 0;
var txtCurrentAmt = 0;
txtCurrentAmt = Number($(element).find('.txtCurrentAmount').val());
if (txtCurrentAmt == 0 || txtCurrentAmt == undefined) {
$(element).find('.txtCurrentAmount').val(enteredAmount);
$(element).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(OrgdueAmount, 2));
var ttWallet = 0;
$(elementforPayment).find('.divDue_List_item').each(function () {
var pqr = Number($(this).find('.txtCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
$(elementforPayment).find('.txtTotalDueAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
if (elementforPayment.find(".txt_Debit_" + trnId).val() == 0)
instance.update_Credtotal(trnId);
if (elementforPayment.find(".txt_Credit_" + trnId).val() == 0)
instance.update_Debtotal(trnId);
instance.updatePayment(trnId, 'due', false, true);
return false;
}
if (txtCurrentAmt > OrgdueAmount) {
$(element).find('.txtCurrentAmount').val(OrgdueAmount);
$(element).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
}
else {
var walletAmount = OrgdueAmount - txtCurrentAmt;
if (enteredAmount === '.')
enteredAmount = 0;
$(element).find('.txtCurrentAmount').val(enteredAmount);
$(element).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(walletAmount, 2));
}
var ttWallet = 0;
$(elementforPayment).find('.divDue_List_item').each(function () {
var pqr = Number($(this).find('.txtCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
$(elementforPayment).find('.txtTotalDueAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
}
else {
MessageHelper.Instance().showError("You don't have enough amount", errormsg);
$(element).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(element).find('.hfDueAmount').val()), 2));
$(element).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
var ttWallet = 0;
$(elementforPayment).find('.divDue_List_item').each(function () {
var pqr = Number($(this).find('.txtCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
$(elementforPayment).find('.txtTotalDueAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
}
}
else {
MessageHelper.Instance().showError("You cannot adjust without enough credits", errormsg);
var dueAmt = $(element).find('.hfDueAmount').val();
var curAmt = $(element).find('.txtCurrentAmount').val();
var ttWallet = 0;
$(elementforPayment).find('.divDue_List_item').each(function () {
var pqr = Number($(this).find('.txtCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
var newAmt = Number(crAmt) - (Number(ttWallet) - Number(curAmt));
if (newAmt >= 0) {
if (newAmt >= Number($(element).find('.hfDueAmount').val())) {
$(element).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(element).find('.hfDueAmount').val()), 2));
$(element).find('.lblDueBalance').text(0.00);
$(elementforPayment).find('.txtTotalDueAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(crAmt, 2));
}
else {
$(element).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(newAmt, 2));
$(element).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number(Number($(element).find('.hfDueAmount').val()) - newAmt), 2));
$(elementforPayment).find('.txtTotalDueAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(crAmt, 2));
}
}
else {
if (enteredAmount === '.')
enteredAmount = 0;
$(element).find('.txtCurrentAmount').val(enteredAmount);
$(element).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(element).find('.hfWalletAmount').val()), 2));
$(elementforPayment).find('.txtTotalDueAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(crAmt, 2));
}
}
if (elementforPayment.find(".txt_Debit_" + trnId).val() == 0)
instance.update_Credtotal(trnId);
if (elementforPayment.find(".txt_Credit_" + trnId).val() == 0)
instance.update_Debtotal(trnId);
instance.updatePayment(trnId, 'due', false, true);
}
AdjustWalletAmount(jId, trnId) {
var instance = this;
instance.AutoAdjustDues(trnId);
var errormsg = $(".bizgaze_FormErrorMessages:visible").attr("id");
instance.initFlag();
var x = document.getElementById("divWallet_List_item_" + jId).parentElement.parentElement.getAttribute("class");
var elementforPayment = $('.transactonList_item_' + trnId + '');
var totAdjustment = $(elementforPayment).find('.txtTotalWalletAdjusted_' + trnId + '').val();
var totWallet = 0;
var totWalletAmt = Number(elementforPayment.find('.txtWalletsTotalAmt').text());
$(elementforPayment).find('.divWallet_List_item').each(function () {
var xyz = Number($(this).find('.txtWalletCurrentAmount').val());
if (!isNaN(xyz))
totWallet += xyz;
});
var totWalletAdj = totWallet;
var element = elementforPayment.find('#divWallet_List_item_' + jId + '');
var drAmt = $(elementforPayment).find("#tx_Debit_" + trnId).val();
var crAmt = $(elementforPayment).find('#tx_Credit_' + trnId).val();
var Amt = 0;
if (crAmt > 0)
Amt = Number(crAmt);
if (drAmt > 0)
Amt = Number(drAmt);
var totWalletAmt = Number(totWallet) + Number(crAmt);
var totDueAmt = Number(elementforPayment.find('.txtDuesTotalAmt').text());
let enteredAmt = $(element).find('.txtWalletCurrentAmount').val();
if (totWalletAmt <= totDueAmt) {
if (totWallet <= totWalletAmt) {
var OrgwalletAmount = Number($(element).find('.hfWalletAmount').val());
var txtWalletCurrentAmount = 0;
txtWalletCurrentAmount = Number($(element).find('.txtWalletCurrentAmount').val());
if (txtWalletCurrentAmount == 0 || txtWalletCurrentAmount == undefined) {
$(element).find('.txtWalletCurrentAmount').val(enteredAmt);
$(element).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(OrgwalletAmount, 2));
var ttWallet = 0;
$(elementforPayment).find('.divWallet_List_item').each(function () {
var pqr = Number($(this).find('.txtWalletCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
$(elementforPayment).find('.txtTotalWalletAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
if (elementforPayment.find(".txt_Debit_" + trnId).val() == 0)
instance.update_Credtotal(trnId);
if (elementforPayment.find(".txt_Credit_" + trnId).val() == 0)
instance.update_Debtotal(trnId);
instance.updatePayment(trnId, 'due', false, false);
return false;
}
if (txtWalletCurrentAmount > OrgwalletAmount) {
$(element).find('.txtWalletCurrentAmount').val(OrgwalletAmount);
$(element).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
}
else {
var walletAmount = OrgwalletAmount - txtWalletCurrentAmount;
if (enteredAmt === '.')
enteredAmt = 0;
$(element).find('.txtWalletCurrentAmount').val(enteredAmt);
$(element).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(walletAmount, 2));
}
var ttWallet = 0;
$(elementforPayment).find('.divWallet_List_item').each(function () {
var pqr = Number($(this).find('.txtWalletCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
$(elementforPayment).find('.txtTotalWalletAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
}
else {
MessageHelper.Instance().showError("You don't have enough amount in that wallets", errormsg);
$(element).find('.txtWalletCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number($(element).find('.hfWalletAmount').val()), 2));
$(element).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
var ttWallet = 0;
$(elementforPayment).find('.divWallet_List_item').each(function () {
var pqr = Number($(this).find('.txtWalletCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
$(elementforPayment).find('.txtTotalWalletAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
}
}
else {
var curWalletAmt = Number($(element).find('.hfWalletAmount').val());
if (totWalletAmt > totDueAmt) {
MessageHelper.Instance().showError("You cannot adjust wallets without enough dues.", errormsg);
$(element).find('.txtWalletCurrentAmount').val(0.00);
$(element).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(curWalletAmt, 2));
}
else {
var curLblWallAmt = -Number(totDueAmt);
MessageHelper.Instance().showError("You cannot adjust wallets without enough dues.", errormsg);
$(element).find('.txtWalletCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(totDueAmt, 2));
$(element).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(curLblWallAmt, 2));
var ttWallet = 0;
$(elementforPayment).find('.divWallet_List_item').each(function () {
var pqr = Number($(this).find('.txtWalletCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
$(elementforPayment).find('.txtTotalWalletAdjusted_' + trnId + '').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
}
var curWallAmt = Number(totWalletAmt) - Number(totDueAmt);
}
if (elementforPayment.find(".txt_Debit_" + trnId).val() == 0)
instance.update_Credtotal(trnId);
if (elementforPayment.find(".txt_Credit_" + trnId).val() == 0)
instance.update_Debtotal(trnId);
instance.updatePayment(trnId, 'due', false, false);
}
gettotbal(totbal, trnId) {
var instance = this;
if (instance.findtxtcrRdr <= trnId) {
if (Number(totbal) < 0) {
totbal = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber((-1 * totbal), 2) + " Dr";
}
else {
totbal = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(totbal, 2) + " Cr";
}
var element = $('.transactonList_item_TRN' + instance.findtxtcrRdr + '');
var rowAcNarration = element.find(".rowAcNarrartion");
var crrdrr = rowAcNarration.find("#crRdr");
$(crrdrr).html(totbal);
}
instance.findtxtcrRdr++;
}
journalEntries() {
var instance = this;
var journalEntries = new Array();
$('.transactonList_item').each(function (index) {
var element = $(this);
if (index > 0) {
var debit = Number(element.find('.txt_Debit').val());
var credit = Number(element.find('.txt_Credit').val());
var wAdjusted = Number(element.find('.txtTotalWalletAdjusted').val());
var dAdjusted = Number(element.find('.txtTotalDueAdjusted').val());
var trnType = element.find('.hf_TransactionType').val();
var trnId = element.find('.hf_TransactionId').val();
var journalEntryId = element.find('.hf_JournalEntryId').val();
if (trnType == "" || trnType == undefined) {
if (debit == 0)
trnType = "credit";
else
trnType = "debit";
}
var contactId = element.find('.hf_ContactId').val();
var allocations = new Array();
if (contactId != "0")
allocations = instance.journalAllocations(trnId);
var jE_ContactId = Number(element.find('.hf_ContactId').val());
if (jE_ContactId == 0) {
jE_ContactId = Number(element.find('.hfddl_OrgAutocomplete').val());
}
journalEntries.push({
JournalEntryId: Number(element.find('.hf_JournalEntryId').val()),
JournalId: Number(element.find('.hf_JournalIdforJEntry').val()),
RefJournalId: Number(element.find('.hf_RefJournalId').val()),
ContactId: jE_ContactId,
Debit: Number(debit),
Credit: Number(credit),
LedgerId: Number(element.find('.hf_AccountId').val()),
LedgerName: element.find('.accountName ').val(),
Description: element.find('#txt_AcNarration').val(),
TransactonType: trnType,
JournalAllocations: allocations,
});
}
});
return journalEntries;
}
journalAllocations(trnId) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
var data = new Array();
element.find('.divDue_List_item').each(function (index) {
if (index > 0) {
if ($(this).find('.txtCurrentAmount').val() != 0 && $(this).find('.txtCurrentAmount').val() != '' && $(this).find('.txtCurrentAmount').val() != undefined) {
var jAId = Number($(this).find('.hf_JournalAllocId').val());
data.push({
JournalAllocId: isNaN(jAId) ? 0 : jAId,
Credit: Number($(this).find('.txtCurrentAmount').val()),
RefAllocId: Number($(this).find('.hf_RefAllocId').val()),
AllocType: 2,
AllocTypeId: 2
});
}
}
});
element.find('.divWallet_List_item').each(function (index) {
if (index > 0) {
if ($(this).find('.txtWalletCurrentAmount').val() != 0 && $(this).find('.txtWalletCurrentAmount').val() != '' && $(this).find('.txtWalletCurrentAmount').val() != undefined) {
var jAId = Number($(this).find('.hf_JournalAllocId').val());
data.push({
JournalAllocId: isNaN(jAId) ? 0 : jAId,
Debit: Number($(this).find('.txtWalletCurrentAmount').val()),
RefAllocId: Number($(this).find('.hf_RefAllocId').val()),
AllocType: 2,
AllocTypeId: 2
});
}
}
});
$('.transactonList_item').each(function (index) {
if (!($(this).find('.lblAdvanceAmount_' + trnId).attr('class') == 'lblAdvanceAmount_' + trnId + ' hidden')) {
if (index > 0) {
if (Number($(this).find('.lblAdvanceAmount_' + trnId).text()) != 0 && $(this).find('.lblAdvanceAmount_' + trnId).text() != '' && $(this).find('.lblAdvanceAmount_' + trnId).text() != undefined) {
var jAId = Number($(this).find('.hf_AdvanceJournalAllocId').val());
data.push({
JournalAllocId: isNaN(jAId) ? 0 : jAId,
LedgerId: Number($(this).find('.hf_AccountId').val()),
Credit: Number($(this).find('.lblAdvanceAmount_' + trnId).text()),
AllocType: 3,
AllocTypeId: 3,
RefAllocId: 0,
});
}
}
}
});
if ((element.find('.hf_ContactId').val() != 0) && ((element.find('.txt_Debit').val() != 0) || (element.find('.txt_Credit').val() != 0))) {
var credit = 0;
var debit = Number(element.find('.txt_Debit').val());
if (debit == 0 || debit == undefined || debit == null) {
debit = 0;
credit = Number(element.find('.txt_Credit').val());
}
var jAId = Number(element.find('#hf_NewRefJournalAllocId_' + trnId).val());
data.push({
JournalAllocId: isNaN(jAId) ? 0 : jAId,
LedgerId: Number(element.find('.hf_AccountId').val()),
Debit: debit,
Credit: credit,
AllocType: 1,
AllocTypeId: 1,
RefAllocId: 0,
});
}
return data;
}
accountAutoCompleteLoading(trnId) {
var element = $('.transactonList_item_' + trnId + '');
var controlId = element.find(".accountName");
var hiddenFieldControlId = element.find("#hf_ContactIdSelected_TRN" + trnId + "");
var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/ledgers/ledgerautocomplete';
AutoCompleteHelper.getHelper().Create(controlId, hiddenFieldControlId, url, null);
}
accountAutoCompleteOnChange(trnId) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
var listDiv = element.find(".transactonList_div_" + trnId + "");
var controlId = element.find(".accountName");
var hiddenFieldControlId = element.find("#hf_ContactIdSelected_" + trnId + "");
var rowAcNarration = element.find(".rowAcNarrartion");
var rowDues = element.find(".rowDues");
var rowWallets = element.find(".rowWallets");
var secWallets = element.find(".secWallets");
var secDues = element.find(".secDues");
var orgAutoComplete = element.find("#div_ddl_Cust");
var emptyDiv = element.find("#div_empty");
var accountId = element.find(".accountName").val();
var accountName = element.find(".accountName").text();
var accountAddlData = Number(element.find(".accountName").data("addldata"));
if (accountId == "0")
accountName = "Select Account";
if (accountId == "-1" || accountId == -1)
accountName = "Create New";
if (accountName == "Create New") {
$(".accountName").val(null).trigger("change");
var FormUniqueId = "Bizgaze_Extension_Transact_Ledgers_App_Ledgers_CreateForm";
var AppConfigurationUnique = "Bizgaze_Extension_Transact_Ledgers_AppConfiguration_CreateLedgers";
Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(FormUniqueId).then(function (response) {
var obj = {
controlid: controlId,
hiddenid: hiddenFieldControlId
};
var successobj = {
CallBack: function (id, obj) {
Bizgaze.Apps.Transact.Managers.LedgerManager.Instance().getLedgerById(id).then(function (response) {
var createdLedger = new Option(response.result.LedgerName, response.result.LedgerId, true);
var controlIdAttr = obj.controlid.attr("id");
$("#" + controlIdAttr + " option").remove();
$(obj.controlid).append(createdLedger).trigger('change');
$(obj.hiddenid).val(response.result.LedgerId);
$(obj.controlid).parents(".transactonList_item").find('.hf_AccountId').val(response.result.LedgerId);
});
},
Parameters: obj,
};
var formviewerObj = {
FormId: response.result.FormId,
AppConfigurationId: 0,
Pk_Value: 0,
PortletWidgetId: 0,
OnSuccess: successobj,
OnFail: null,
OnLoad: null,
};
instance.fileCacheHelper.loadJsFile("apps/transact/managers/ledgers/ledgermanager.js", function () {
Unibase.Platform.Forms.Components.FormViewer.instance.init(formviewerObj);
});
});
}
$('.lblAdvanceAmount_' + trnId).removeClass('hidden');
if ($(controlId).val() != '') {
if ($("#hf_pk_value").val() == 0)
$(listDiv).removeClass("hidden");
else
$(listDiv).addClass("hidden");
$(rowAcNarration).removeClass("hidden");
$(rowWallets).removeClass("hidden");
$(rowDues).removeClass("hidden");
element.find('.hf_AccountId').val(accountId);
if (Number(accountId) != 0 && !isNaN(Number(accountId))) {
Bizgaze.Apps.Transact.Managers.VoucherManager.Instance().getLedgerDetails(Number(accountId)).then(function (ledgerResponse) {
var result = ledgerResponse.result;
if (result.length > 0) {
element.find('.hf_ContactId').val(result[0].contactid);
var contactids = result[0].contactid;
if (contactids == 0) {
$(rowWallets).addClass("hidden");
$(rowDues).addClass("hidden");
$(secWallets).find('.divWallet_List').empty();
$(secDues).find('.divDue_List').empty();
$(emptyDiv).addClass("hidden");
$(orgAutoComplete).removeClass("hidden");
}
else {
$(rowWallets).removeClass("hidden");
$(rowDues).removeClass("hidden");
$(secWallets).addClass("hidden");
$(secDues).addClass("hidden");
$(emptyDiv).removeClass("hidden");
$(orgAutoComplete).addClass("hidden");
}
if ($('.transactonList_item_' + trnId + '').attr("identityAttr") == 'new') {
if (contactids != 0) {
if (element.find('.txt_Debit').val() == 0)
instance.loadWalletsAndDues(trnId, 0, contactids, 'credit', false, '', true, false);
else
instance.loadWalletsAndDues(trnId, 0, contactids, 'debit', false, '', true, false);
}
else {
instance.loadWalletsAndDues(trnId, 0, 0, '', false, '', true, false);
}
instance.updatePayment(trnId, 'due', false, false);
}
}
});
}
if (accountAddlData != 0 && !isNaN(accountAddlData)) {
$('#hf_jContactId').val(accountAddlData);
var bal = "Balance Not Found";
if (accountAddlData < 0) {
bal = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber((-1 * accountAddlData), 2) + " Dr";
}
else {
bal = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(accountAddlData, 2) + " Cr";
}
}
var ledgerid = accountId;
if (ledgerid > 0) {
var crrdrr = rowAcNarration.find("#crRdr");
$(crrdrr).html(bal);
var crtot = Number($('#credittotal').html());
var drtot = Number($('#Debittotal').html());
if (crtot < drtot && element.find("#tx_Debit_" + trnId).val() == "")
element.find("#tx_Credit_" + trnId).val(drtot - crtot);
else if (crtot > drtot && element.find("#tx_Credit_" + trnId).val() == "")
element.find("#tx_Debit_" + trnId).val(crtot - drtot);
if ((drtot - crtot) > 0) {
$('.txt_Credit_' + trnId).keyup();
}
if ((crtot - drtot) > 0) {
$('.txt_Debit_' + trnId).keyup();
}
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
}
element.find('.txtWalletsTotalAmt').text('');
element.find('.txtDuesTotalAmt').text('');
}
}
updatePayment(trnId, updateFrom, refreshWallets, refreshDues) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
var advanceAmt = 0;
var paymentTotal = 0;
var debitInput = element.find('.txt_Debit').val();
var creditInput = element.find('.txt_Credit').val();
var walletsTotal = instance.walletsTotal(trnId);
var duesTotal = element.find('.txtTotalDueAdjusted').val();
var transactionType = element.find('.hf_TransactionType').val();
if (updateFrom == 'credit') {
paymentTotal = Number(creditInput);
if (paymentTotal != undefined) {
if ($(element).find('#btnAutoAdjustDues').attr("name") != "disabled" && (element.find("#tx_Debit_" + trnId).val() == 0 || element.find("#tx_Debit_" + trnId).val() == undefined)) {
if ($("#tx_Debit_" + trnId).val() == 0)
$(element).find('.txtTotalDueAdjusted').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(paymentTotal, 2));
$(element).find('.divDue_List_item').each(function (index) {
var dueAmount = Number($(this).find('.hfDueAmount').val());
var txtCurrentAmt = 0;
if (index > 0 && paymentTotal != 0) {
if (paymentTotal >= dueAmount) {
if (dueAmount != 0) {
paymentTotal -= dueAmount;
txtCurrentAmt = dueAmount;
dueAmount = 0;
advanceAmt = paymentTotal;
}
}
else {
dueAmount -= paymentTotal;
txtCurrentAmt = paymentTotal;
paymentTotal = 0;
}
}
$(this).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(txtCurrentAmt, 2));
$(this).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dueAmount, 2));
});
}
if (Number(walletsTotal) != 0 && refreshWallets == true) {
element.find('.txtTotalWalletAdjusted').val(walletsTotal);
$(element).find('.divWallet_List_item').each(function (index) {
var wAmount = Number($(this).find('.hfWalletAmount').val());
var wCurrentAmt = 0;
if (index > 0) {
if (walletsTotal >= wAmount) {
if (wAmount != 0) {
walletsTotal -= wAmount;
wCurrentAmt = wAmount;
wAmount = 0;
}
}
else {
wAmount -= walletsTotal;
wCurrentAmt = walletsTotal;
walletsTotal = 0;
}
$(this).find('.txtWalletCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wCurrentAmt, 2));
$(this).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wAmount, 2));
}
});
}
}
}
else if (updateFrom == 'debit') {
paymentTotal = Number(debitInput);
if (paymentTotal != undefined) {
if ($(element).find('#btnAutoAdjustDues').attr("name") != "disabled" && (element.find("#tx_Debit_" + trnId).val() == 0 || element.find("#tx_Debit_" + trnId).val() == undefined)) {
if ($("#tx_Debit_" + trnId).val() == 0)
$(element).find('.txtTotalDueAdjusted').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(paymentTotal, 2));
$(element).find('.divDue_List_item').each(function (index) {
var dueAmount = Number($(this).find('.hfDueAmount').val());
var txtCurrentAmt = 0;
if (index > 0 && paymentTotal != 0) {
if (paymentTotal >= dueAmount) {
if (dueAmount != 0) {
paymentTotal -= dueAmount;
txtCurrentAmt = dueAmount;
dueAmount = 0;
advanceAmt = paymentTotal;
}
}
else {
dueAmount -= paymentTotal;
txtCurrentAmt = paymentTotal;
paymentTotal = 0;
}
}
$(this).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(txtCurrentAmt, 2));
$(this).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dueAmount, 2));
});
}
if (Number(walletsTotal) != 0 && refreshWallets == true) {
element.find('.txtTotalWalletAdjusted').val(walletsTotal);
$(element).find('.divWallet_List_item').each(function (index) {
var wAmount = Number($(this).find('.hfWalletAmount').val());
var wCurrentAmt = 0;
if (index > 0) {
if (walletsTotal >= wAmount) {
if (wAmount != 0) {
walletsTotal -= wAmount;
wCurrentAmt = wAmount;
wAmount = 0;
}
}
else {
wAmount -= walletsTotal;
wCurrentAmt = walletsTotal;
walletsTotal = 0;
}
$(this).find('.txtWalletCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wCurrentAmt, 2));
$(this).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wAmount, 2));
}
});
}
}
}
else if (updateFrom == 'wallet') {
paymentTotal = Number(creditInput) + Number(debitInput) + Number(walletsTotal);
if (paymentTotal != 0) {
if ($(element).find('#btnAutoAdjustDues').attr("name") != "disabled" && (element.find("#tx_Debit_" + trnId).val() == 0 || element.find("#tx_Debit_" + trnId).val() == undefined)) {
if ($("#tx_Debit_" + trnId).val() == 0)
$(element).find('.txtTotalDueAdjusted').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(paymentTotal, 2));
$(element).find('.divDue_List_item').each(function (index) {
var dueAmount = Number($(this).find('.hfDueAmount').val());
var txtCurrentAmt = 0;
if (index > 0 && paymentTotal != 0) {
if (paymentTotal >= dueAmount) {
if (dueAmount != 0) {
paymentTotal -= dueAmount;
txtCurrentAmt = dueAmount;
dueAmount = 0;
advanceAmt = paymentTotal;
}
}
else {
dueAmount -= paymentTotal;
txtCurrentAmt = paymentTotal;
paymentTotal = 0;
}
}
$(this).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(txtCurrentAmt, 2));
$(this).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dueAmount, 2));
});
}
if (Number(walletsTotal) != 0 && refreshWallets == true) {
element.find('.txtTotalWalletAdjusted').val(walletsTotal);
$(element).find('.divWallet_List_item').each(function (index) {
var wAmount = Number($(this).find('.hfWalletAmount').val());
var wCurrentAmt = 0;
if (index > 0) {
if (walletsTotal >= wAmount) {
if (wAmount != 0) {
walletsTotal -= wAmount;
wCurrentAmt = wAmount;
wAmount = 0;
}
}
else {
wAmount -= walletsTotal;
wCurrentAmt = walletsTotal;
walletsTotal = 0;
}
$(this).find('.txtWalletCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wCurrentAmt, 2));
$(this).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wAmount, 2));
}
});
}
else if (Number(walletsTotal) == 0) {
element.find('.txtTotalWalletAdjusted').val(walletsTotal);
element.find('.txtWalletCurrentAmount').val(walletsTotal);
}
}
}
else if (updateFrom == 'due') {
paymentTotal = Number(creditInput) + Number(debitInput) + Number(walletsTotal);
if (!refreshDues) {
if (paymentTotal != 0) {
if ($(element).find('#btnAutoAdjustDues').attr("name") != "disabled" && (element.find("#tx_Debit_" + trnId).val() == 0 || element.find("#tx_Debit_" + trnId).val() == undefined)) {
$(element).find('.txtTotalDueAdjusted').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(paymentTotal, 2));
}
if ($(element).find('#btnAutoAdjustDues').attr("name") != "disabled" && (element.find("#tx_Credit_" + trnId).val() == 0 || element.find("#tx_Credit_" + trnId).val() == undefined)) {
$(element).find('.txtTotalDueAdjusted').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(paymentTotal, 2));
}
}
if ($(element).find('#btnAutoAdjustDues').attr("name") != "disabled" && (element.find("#tx_Debit_" + trnId).val() == 0 || element.find("#tx_Debit_" + trnId).val() == undefined)) {
$(element).find('.divDue_List_item').each(function (index) {
var dueAmount = Number($(this).find('.hfDueAmount').val());
var txtCurrentAmt = 0;
if (index > 0) {
if (paymentTotal >= dueAmount) {
if (dueAmount != 0) {
paymentTotal -= dueAmount;
txtCurrentAmt = dueAmount;
dueAmount = 0;
advanceAmt = paymentTotal;
}
}
else {
dueAmount -= paymentTotal;
txtCurrentAmt = paymentTotal;
paymentTotal = 0;
}
if (Number(paymentTotal) < 0.01) {
paymentTotal = 0;
}
}
$(this).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(txtCurrentAmt, 2));
$(this).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dueAmount, 2));
});
}
if ($(element).find('#btnAutoAdjustDues').attr("name") != "disabled" && (element.find("#tx_Credit_" + trnId).val() == 0 || element.find("#tx_Credit_" + trnId).val() == undefined)) {
$(element).find('.divDue_List_item').each(function (index) {
var dueAmount = Number($(this).find('.hfDueAmount').val());
var txtCurrentAmt = 0;
if (index > 0) {
if (paymentTotal >= dueAmount) {
if (dueAmount != 0) {
paymentTotal -= dueAmount;
txtCurrentAmt = dueAmount;
dueAmount = 0;
advanceAmt = paymentTotal;
}
}
else {
dueAmount -= paymentTotal;
txtCurrentAmt = paymentTotal;
paymentTotal = 0;
}
if (Number(paymentTotal) < 0.01) {
paymentTotal = 0;
}
}
$(this).find('.txtCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(txtCurrentAmt, 2));
$(this).find('.lblDueBalance').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dueAmount, 2));
});
}
if (Number(walletsTotal) != 0 && refreshWallets == true) {
element.find('.txtTotalWalletAdjusted').val(walletsTotal);
$(element).find('.divWallet_List_item').each(function (index) {
var wAmount = Number($(this).find('.hfWalletAmount').val());
var wCurrentAmt = 0;
if (index > 0) {
if (walletsTotal >= wAmount) {
if (wAmount != 0) {
walletsTotal -= wAmount;
wCurrentAmt = wAmount;
wAmount = 0;
}
}
else {
wAmount -= walletsTotal;
wCurrentAmt = walletsTotal;
walletsTotal = 0;
}
if (Number(walletsTotal) < 0.01) {
walletsTotal = 0;
}
$(this).find('.txtWalletCurrentAmount').val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wCurrentAmt, 2));
$(this).find('.lblWalletRemaing').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wAmount, 2));
}
});
}
}
}
advanceAmt = paymentTotal;
if (updateFrom == 'due') {
var ttWallet = 0;
$(element).find('.divDue_List_item').each(function () {
var pqr = Number($(this).find('.txtCurrentAmount').val());
if (!isNaN(pqr))
ttWallet += pqr;
});
var credit = element.find('.txt_Credit').val();
if (Number(credit) == 0) {
credit = element.find('.txt_Debit').val();
}
var Amt = parseFloat(credit);
if ((Amt - ttWallet) > 0)
advanceAmt = (Amt - ttWallet);
else
advanceAmt = 0;
var curAdvAmt = Number($('.lblAdvanceAmount_' + trnId).text());
if (!instance.editVoucher && !isNaN(curAdvAmt) && curAdvAmt > 0) {
if (advanceAmt > 0) {
$('.rowAdvanceAmount_' + trnId).removeClass('hidden');
$('.lblAdvanceAmount_' + trnId).text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(advanceAmt, 2));
}
}
if (advanceAmt == 0) {
$('.lblAdvanceAmount_' + trnId).text(0.00);
$('.rowAdvanceAmount_' + trnId).addClass('hidden');
}
$(element).find('.txtTotalDueAdjusted_' + trnId).val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(ttWallet, 2));
}
else {
if (element.find(".txt_Credit_" + trnId).val() == 0) {
$('.lblAdvanceAmount_' + trnId).text(0.00);
$('.rowAdvanceAmount_' + trnId).addClass('hidden');
}
}
if (element.find(".rowWallets").hasClass('hidden')) {
$('.lblAdvanceAmount_' + trnId).text(0.00);
$('.rowAdvanceAmount_' + trnId).addClass('hidden');
}
}
walletsTotal(trnId) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
var amount = 0;
var wTotals = element.find('.txtTotalWalletAdjusted').val();
wTotals = Number(wTotals);
if (wTotals > 0)
amount += wTotals;
return amount;
}
loadWalletsAndDues(trnId, voucherId, contactId, trnType, updatePayment, updateFrom, refreshWallets, refreshDues) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
if (contactId != 0) {
var divDues = element.find('.divDue_List');
var divWallets = element.find('.divWallet_List');
$(divDues).html('
');
$(divDues).html('
');
if (refreshWallets) {
$(divWallets).html('
');
$(divWallets).html('
');
}
Bizgaze.Apps.Transact.Managers.VoucherManager.Instance().getVoucherItems(voucherId, contactId, trnType).then(function (response) {
var result = response.result;
var html = '';
var html2 = '';
var walletsTotalBal = 0;
var duesTotalBal = 0;
var walletsTotalAdj = 0;
var duesTotalAdj = 0;
if (result.length != 0) {
$(divDues).empty();
$(divDues).html('
');
if (refreshWallets) {
$(divWallets).empty();
$(divWallets).html('
');
}
for (var i = (result.length) - 1; i >= 0; i--) {
var journalAlloc = result[i].JournalAlloc;
if (!(journalAlloc.JournalNo.startsWith("#"))) {
var data = result[i];
function datediff(date2, today) {
today = new Date(today.split('/')[2], today.split('/')[1] - 1, today.split('/')[0]);
date2 = new Date(date2.split('/')[2], date2.split('/')[1] - 1, date2.split('/')[0]);
var timeDiff = Math.abs(today.getTime() - date2.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
return diffDays;
}
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1;
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
today = dd + '/' + mm + '/' + yyyy;
var NumOfDays = datediff(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(journalAlloc.JournalDate, null), today);
var JournalId = journalAlloc.JournalId;
if (data.IsWallet == false) {
duesTotalAdj += data.Amount;
var dBalance = Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
var hfDueBalance = Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
if (dBalance > 0) {
if (instance.editVoucher) {
duesTotalBal += Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
dBalance = Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
var dd = element.find(".hf_JournalEntryId");
JournalId = journalAlloc.JournalAllocId;
if (JournalId == 0)
JournalId = journalAlloc.JournalId;
}
else {
duesTotalBal += Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
}
html += '
' +
'
' +
'
' +
'
' +
'
' +
'
' + journalAlloc.JournalNo + ' (' + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dBalance, 2) + ')
' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(journalAlloc.JournalDate, null) + ' (' + NumOfDays + ' days)
' +
'
Balance
' + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(dBalance - data.Amount, 2) + '
' +
'
' +
'
';
}
}
else {
walletsTotalAdj += data.Amount;
var wBalance = Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
var hfWalletBalance = Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
if (wBalance > 0) {
if (instance.editVoucher) {
walletsTotalBal += Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
wBalance = Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
JournalId = journalAlloc.JournalAllocId;
if (JournalId == 0)
JournalId = journalAlloc.JournalId;
}
else {
walletsTotalBal += Number(journalAlloc.TotalAmount - journalAlloc.AdjustedAmount);
}
html2 += '
' +
'
' +
'
' +
'
' + journalAlloc.JournalNo + ' (' + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wBalance, 2) + ')
' + Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(journalAlloc.JournalDate, null) + ' (' + NumOfDays + ' days)
' +
'
Remaining Amt
' + Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(wBalance - data.Amount, 2) + '
' +
'
' +
'
';
}
}
}
}
element.find('.divDue_List_item').after(html);
instance.showFirstFiveListItems(trnId, 'Due');
if (refreshWallets) {
element.find('.divWallet_List_item').after(html2);
instance.showFirstFiveListItems(trnId, 'Wallet');
}
}
if (walletsTotalBal > 0)
element.find('.txtWalletsTotalAmt').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(walletsTotalBal, 2));
else
element.find('.txtWalletsTotalAmt').text(0.00);
if (duesTotalBal > 0)
element.find('.txtDuesTotalAmt').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(duesTotalBal, 2));
else
element.find('.txtDuesTotalAmt').text(0.00);
var credit = element.find('.txt_Credit').val();
if (html == '') {
$(divDues).empty();
$(divDues).html('
');
}
if (refreshWallets) {
if (html2 == '') {
$(divWallets).empty();
$(divWallets).html('
');
}
}
if (element.find("#tx_Debit_" + trnId).val() == 0 || element.find("#tx_Debit_" + trnId).val() == undefined) {
if (Number(element.find('.txtDuesTotalAmt').text()) == 0) {
element.find('.txtTotalWalletAdjusted_' + trnId).attr("style", "cursor: not-allowed;");
element.find('.txtTotalWalletAdjusted_' + trnId).attr("disabled", "disabled");
element.find('.txtWalletCurrentAmount').attr("style", "cursor: not-allowed;");
element.find('.txtWalletCurrentAmount').attr("disabled", "disabled");
element.find('.txtCurrentAmount').attr("style", "cursor: not-allowed;");
element.find('.txtCurrentAmount').attr("disabled", "disabled");
}
else {
element.find('.txtTotalWalletAdjusted_' + trnId).removeAttr("style");
element.find('.txtTotalWalletAdjusted_' + trnId).removeAttr("disabled");
element.find('.txtWalletCurrentAmount').removeAttr("style");
element.find('.txtWalletCurrentAmount').removeAttr("disabled");
element.find('.txtCurrentAmount').removeAttr("style");
element.find('.txtCurrentAmount').removeAttr("disabled");
}
}
else {
if (Number(element.find('.txtDuesTotalAmt').text()) == 0) {
element.find('.txtTotalWalletAdjusted_' + trnId).attr("style", "cursor: not-allowed;");
element.find('.txtTotalWalletAdjusted_' + trnId).attr("disabled", "disabled");
element.find('.txtWalletCurrentAmount').attr("style", "cursor: not-allowed;");
element.find('.txtWalletCurrentAmount').attr("disabled", "disabled");
element.find('.txtCurrentAmount').attr("style", "cursor: not-allowed;");
element.find('.txtCurrentAmount').attr("disabled", "disabled");
}
else {
element.find('.txtTotalWalletAdjusted_' + trnId).removeAttr("style");
element.find('.txtTotalWalletAdjusted_' + trnId).removeAttr("disabled");
element.find('.txtWalletCurrentAmount').removeAttr("style");
element.find('.txtWalletCurrentAmount').removeAttr("disabled");
element.find('.txtCurrentAmount').removeAttr("style");
element.find('.txtCurrentAmount').removeAttr("disabled");
}
}
if (updatePayment == true && updateFrom != '')
instance.updatePayment(trnId, updateFrom, refreshWallets, refreshDues);
element.find('.txtTotalDueAdjusted_' + trnId).val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
if (!instance.editVoucher) {
if ($("#tx_Debit_" + trnId).val() == 0)
instance.updatePayment(trnId, 'due', refreshWallets, false);
if ($("#tx_Credit_" + trnId).val() == 0)
instance.updatePayment(trnId, 'due', refreshWallets, false);
}
else {
if (element.find("#tx_Debit_" + trnId).val() == 0 || element.find("#tx_Debit_" + trnId).val() == undefined)
element.find('.txtTotalDueAdjusted_' + trnId).val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(Number(credit) - Number(walletsTotalAdj), 2));
else
element.find('.txtTotalDueAdjusted_' + trnId).val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
if (refreshWallets) {
element.find('.txtTotalWalletAdjusted_' + trnId).val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(walletsTotalAdj, 2));
}
instance.updatePayment(trnId, 'due', false, refreshDues);
}
});
}
else {
element.find('.txtTotalDueAdjusted_' + trnId).val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
element.find('.rowWallets,.rowDues').addClass('hidden');
}
}
showFirstFiveListItems(trnId, section) {
let sectionClass = "";
if (section == "Wallet") {
sectionClass = ".secWallets_" + trnId;
}
else {
sectionClass = ".secDues_" + trnId;
}
$(sectionClass + ' .div' + section + '_List_item').not(':first').each(function (index, item) {
if (index < 5) {
$(item).removeClass('hidden');
let totalRowsCount = $(sectionClass + ' .div' + section + '_List_item').not(':first').length;
let visibleRowsCount = totalRowsCount - $(sectionClass + ' .div' + section + '_List_item.hidden').not(':first').length;
$('.div' + section + '_List_Footer_' + trnId).find('span.totalRowsCount').text(totalRowsCount);
$('.div' + section + '_List_Footer_' + trnId).find('span.visibleRowsCount').text(visibleRowsCount);
}
else {
return false;
}
});
if ($(sectionClass + ' .div' + section + '_List_item').not(':first').length >= 5) {
$('.div' + section + '_List_Footer_' + trnId + ' .' + section.toLowerCase() + 'ListMoreBtn').removeClass('hidden');
}
}
loadMoreListItems(trnId, section) {
let sectionClass = "";
if (section == "Wallet") {
sectionClass = ".secWallets_TRN" + trnId;
}
else {
sectionClass = ".secDues_TRN" + trnId;
}
$(sectionClass + ' .div' + section + '_List_item.hidden').not(':first').each(function (index, item) {
if (index < 5) {
$(item).removeClass('hidden');
let totalRowsCount = $(sectionClass + ' .div' + section + '_List_item').not(':first').length;
let visibleRowsCount = totalRowsCount - $(sectionClass + ' .div' + section + '_List_item.hidden').not(':first').length;
$('.div' + section + '_List_Footer_TRN' + trnId).find('span.visibleRowsCount').text(visibleRowsCount);
if (visibleRowsCount == totalRowsCount) {
$('.div' + section + '_List_Footer_TRN' + trnId + ' .' + section.toLowerCase() + 'ListMoreBtn').addClass('hidden');
}
}
else {
return false;
}
});
}
toggleWalletsAndDues(trnId, type) {
var instance = this;
var element = $('.transactonList_item_' + trnId + '');
if (type == 'Dues')
element.find('.secDues_' + trnId + '').toggleClass('hidden');
else if (type == 'Wallets')
element.find('.secWallets_' + trnId + '').toggleClass('hidden');
}
removeAccount(trnId) {
var instance = this;
var prevTrnId = parseInt(trnId.charAt(3)) - 1;
var prevElement = $('.transactonList_item_TRN' + prevTrnId + '');
var prevDiv = prevElement.find(".transactonList_div_TRN" + prevTrnId + "");
$(prevDiv).removeClass("hidden");
var element = $('.transactonList_item_' + trnId + '');
element.remove();
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
}
removeTransaction(trnId) {
var instance = this;
var prevTrnId = parseInt(trnId.charAt(3)) - 1;
var prevElement = $('.transactonList_item_TRN' + prevTrnId + '');
var prevDiv = prevElement.find(".transactonList_div_TRN" + prevTrnId + "");
$(prevDiv).removeClass("hidden");
var element = $('.transactonList_item_' + trnId + '');
element.remove();
instance.update_Debtotal(trnId);
instance.update_Credtotal(trnId);
}
unhideTransaction(trnId) {
var instance = this;
$(".transactonList_div").addClass("hidden");
var element = $('.transactonList_item_' + trnId + '');
if ($('#txt_AccountName_' + trnId).val() != null) {
element.find('.rowAcNarrartion,.transactonList_div_' + trnId).removeClass('hidden');
if (element.find('.hf_ContactId').val() != 0)
element.find('.rowWallets,.rowDues').removeClass('hidden');
else
element.find('.rowWallets,.rowDues').addClass('hidden');
}
}
clear() {
var instance = this;
$('.transactonList_item').each(function (index) {
if (index > 0) {
var elemnet = $(this);
elemnet.find('.txt_Debit').val(0);
elemnet.find('.txt_Credit').val(0);
elemnet.find('.txtTotalDueAdjusted').text('0.00');
elemnet.find('.txtTotalWalletAdjusted').text('');
elemnet.find('.txtTotalWalletAdjusted').each(function () {
$(this).val(0);
});
elemnet.find('.txtCurrentAmount').each(function () {
$(this).val(0);
});
}
});
}
update_Debtotal(rowno) {
var instance = this;
$('#Debittotal').text('');
var totaldebit = 0;
var j = Number($('.transactonList_item:last').attr("name"));
for (var i = 2; i <= j; i++) {
let debit = 0;
var wAdjustment = 0;
var element = $('.transactonList_item_TRN' + i + '');
var dr = element.find(".txt_Debit_TRN" + i).val();
debit = (dr != undefined && dr != "" && dr != null) ? Number(element.find(".txt_Debit_TRN" + i).val()) : 0;
wAdjustment = Number(element.find(".txtTotalWalletAdjusted_TRN" + i).val());
if (debit == undefined)
debit = 0;
if (debit == 0 || wAdjustment == undefined || element.find(".hf_TransactionType").val() == "credit")
wAdjustment = 0;
if (!isNaN(debit))
totaldebit += Number(debit);
if (isNaN(Number(wAdjustment))) {
wAdjustment = 0;
}
}
if (rowno == undefined)
rowno = "TRN" + j;
$('#Debittotal').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(totaldebit, 2));
var debit = Number($('#txtDebit_' + rowno).val());
var credit = $('#txtCredit_' + rowno).val();
}
update_Credtotal(rowno) {
var instance = this;
$('#credittotal').text('');
var totalcredit = 0;
var j = Number($('.transactonList_item:last').attr("name"));
for (var i = 2; i <= j; i++) {
let credit = 0;
var wAdjustment = 0;
var element = $('.transactonList_item_TRN' + i + '');
var cr = element.find(".txt_Credit_TRN" + i).val();
credit = (cr != undefined && cr != "" && cr != null) ? Number(element.find(".txt_Credit_TRN" + i).val()) : 0;
wAdjustment = Number(element.find(".txtTotalWalletAdjusted_TRN" + i).val());
if (credit == undefined)
credit = 0;
if (wAdjustment == undefined || element.find(".hf_TransactionType").val() == "debit")
wAdjustment = 0;
if (!isNaN(credit) || debit != '')
totalcredit += Number(credit);
if (isNaN(Number(wAdjustment))) {
wAdjustment = 0;
}
}
if (rowno == undefined)
rowno = "TRN" + j;
$('#credittotal').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(totalcredit, 2));
var debit = $('#txtDebit_' + rowno).val();
var credit = $('#txtCredit_' + rowno).val();
}
isDecimal(evt, id) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode == 46) {
var val = document.getElementById(id);
var txt = val.value;
if (!(txt.indexOf(".") > -1)) {
return true;
}
}
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
isDecimalplusNoLongPress(evt, id) {
var instance = this;
var el = document.getElementById(id);
var txt = el.value;
const isValid = instance.validateFloatKeyPress(el, evt);
if (!isValid)
return false;
instance.flag++;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (instance.flag <= 4) {
if (charCode == 46) {
if (!(txt.indexOf(".") > -1)) {
return true;
}
}
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
}
else {
return false;
}
return true;
}
validateFloatKeyPress(el, evt) {
var charCode = (evt.which) ? evt.which : evt.keyCode;
var number = el.value.split('.');
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
if (number.length > 1 && charCode == 46) {
return false;
}
var caratPos = el.selectionStart;
var dotPos = el.value.indexOf(".");
if (caratPos > dotPos && dotPos > -1 && (number[1].length > 1)) {
return false;
}
return true;
}
initFlag() {
var instance = this;
instance.flag = 0;
}
voucherControlObj() {
var instance = this;
var crtot = Number($('#credittotal').html());
var drtot = Number($('#Debittotal').html());
var errormsg = $(".bizgaze_FormErrorMessages:visible").attr("id");
var issingle = $("#chk_issingleaccount").is(":checked");
if (issingle == false) {
if (crtot != drtot) {
MessageHelper.Instance().showError("Credit Total and Debit Total should be Equal", errormsg);
return false;
}
else {
var countOfTrns = $(".divTransactonList").children().length;
if (countOfTrns < 3) {
MessageHelper.Instance().showError("Please Add altleast two Accounts", "" + errormsg);
return false;
}
if (crtot == 0 || drtot == 0) {
MessageHelper.Instance().showError("Credit Total and Debit Total should be greater than Zero", "" + errormsg);
return false;
}
}
}
var flag = 0;
var journalEntries = new Array();
$('.transactonList_item').each(function (index) {
var element = $(this);
if (index > 0) {
var debit = Number(element.find('.txt_Debit').val());
var credit = Number(element.find('.txt_Credit').val());
if (debit == 0 && credit == 0) {
MessageHelper.Instance().showError('Please remove the account "' + element.find('.accountName').text() + '" which has no debits or credits.', '' + errormsg);
flag = 1;
}
var trnId = element.find('.hf_TransactionId').val();
var wAdjusted = Number(element.find('.txtTotalWalletAdjusted').val());
var dAdjusted = Number(element.find('.txtTotalDueAdjusted').val());
if (debit != 0 || credit != 0) {
if (wAdjusted > (debit + credit)) {
MessageHelper.Instance().showError("Adjusted amount should be not be greater than debit and credit amount", "" + errormsg);
flag = 1;
Bizgaze.Apps.Transact.Controls.Voucher.Instance().AutoAdjustDues(trnId);
}
}
var trnType = element.find('.hf_TransactionType').val();
var journalEntryId = element.find('.hf_JournalEntryId').val();
trnId = element.find('.hf_TransactionId').val();
if (trnType == "" || trnType == undefined) {
if (debit == 0)
trnType = "credit";
else
trnType = "debit";
}
var contactId = element.find('.hf_ContactId').val();
var issingle = $("#chk_issingleaccount").is(":checked");
var allocations = new Array();
if (contactId != "0") {
if (issingle == false) {
allocations = instance.journalAllocations(trnId);
}
}
var jE_ContactId = Number(element.find('.hf_ContactId').val());
if (jE_ContactId == 0) {
jE_ContactId = Number(element.find('.hfddl_OrgAutocomplete').val());
}
journalEntries.push({
JournalEntryId: Number(element.find('.hf_JournalEntryId').val()),
JournalId: Number(element.find('.hf_JournalIdforJEntry').val()),
RefJournalId: Number(element.find('.hf_RefJournalId').val()),
ContactId: jE_ContactId,
Debit: Number(debit),
Credit: Number(credit),
LedgerId: Number(element.find('.hf_AccountId').val()),
LedgerName: element.find('.accountName ').val(),
Description: element.find('#txt_AcNarration').val(),
TransactonType: trnType,
JournalAllocations: allocations,
PaymentAmount: Number($('#credittotal').html()),
});
}
});
if (flag == 1) {
return false;
}
return journalEntries;
}
bindVoucherEntriesAccount(reconOBJ) {
var instance = this;
var element = $('.transactonList_item_TRN2');
element.find('.hf_AccountId').val(reconOBJ.ledgerid);
$('.txt_refno').val(reconOBJ.refno);
$('.date_journaldate').val(reconOBJ.transactiondate);
element.find("#txt_AccountName_TRN2").empty();
element.find("#txt_AccountName_TRN2").attr('data-addlData', reconOBJ.closingbal);
element.find("#txt_AccountName_TRN2").append('
').trigger("change");
if (reconOBJ.bankaction == "spent" && Number(reconOBJ.debit) > 0) {
reconOBJ.credit = reconOBJ.debit;
reconOBJ.debit = 0;
}
else {
if (reconOBJ.bankaction == "received" && Number(reconOBJ.credit) > 0) {
reconOBJ.debit = reconOBJ.credit;
reconOBJ.credit = 0;
}
}
element.find('.txt_Debit').val(reconOBJ.debit);
element.find('.txt_Credit').val(reconOBJ.credit);
$("#txt_AccountName_TRN2").attr("disabled", "disabled");
if (reconOBJ.debit > 0) {
$('.txt_Debit_TRN2').keyup();
}
if (reconOBJ.credit > 0) {
$('.txt_Credit_TRN2').keyup();
}
$(".divCustomProperties_issystemgenerated").find(".hdn_issystemgenerated").val('true');
}
;
printVoucher() {
var instance = this;
if ($(".printsetting").length != 0) {
var printhtml = $(".printsetting")[0].outerHTML;
$(".printsetting").remove();
$("#div_App_DefaultWidgetSettings").find(".row").append(printhtml);
$(".printsetting").find(".pull-right").removeClass("pull-right");
}
let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
$(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Print').html('
');
$(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Print').click(function () {
var VoucherId = Unibase.Themes.Providers.DetailHelper.recordId;
Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/managers/vouchers/vouchermanager.js", function () {
Bizgaze.Apps.Transact.Managers.VoucherManager.Instance().PrintVouchers(VoucherId).then(function (response) {
var result = response.result;
if (isMobileApp()) {
Unibase.Platform.Helpers.MobileHelper.Instance().previewHtml(result.PrintHTML);
}
else {
instance.printPopup(result.PrintHTML);
}
});
});
});
}
printPopup(data) {
var mywindow = window.open('', 'my Print', 'height=400,width=850');
var content = '
Print';
content += data;
content += "";
content += '';
mywindow.document.write(content);
return true;
}
static Instance() {
if (this._instance === undefined)
this._instance = new Voucher();
return this._instance;
}
}
Controls.Voucher = Voucher;
})(Controls = Transact.Controls || (Transact.Controls = {}));
})(Transact = Apps.Transact || (Apps.Transact = {}));
})(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
})(Bizgaze || (Bizgaze = {}));