Files
Backend-Api/ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateBankInfoModal.js
2025-03-09 21:52:06 +03:30

468 lines
18 KiB
JavaScript

var urlPathname = location.pathname;
var filledBankCount = 0;
var newItemIndex = 1;
var employeeBankInfos = [];
$(document).ready(function () {
$('.loading').hide();
$(".select2Option").select2({
language: "fa",
dir: "rtl",
dropdownParent: $('#MainModal'),
templateResult: function (data, container) {
if (data.element) {
$(container).addClass($(data.element).attr("class"));
}
return data.text;
}
});
$("#CardNumber").each(function () {
$("#CardNumber").mask("0000-0000-0000-0000");
$("#CardNumber").attr("placeholder", "XXXX-XXXX-XXXX-XXXX");
});
$("#ShebaNumber").each(function () {
$("#ShebaNumber").mask("IR-00-0000-0000-0000-0000-0000-00");
$("#ShebaNumber").attr("placeholder", "IR-XX-XXXX-XXXX-XXXX-XXXX-XXXX-XX");
});
$("#BankAccountNumber").each(function () {
$("#BankAccountNumber").unmask();
$("#BankAccountNumber").attr("placeholder", "");
});
$('#BankAccountNumber').on('keypress', function (e) {
if (e.which < 48 || e.which > 57) {
e.preventDefault();
}
});
ajaxCreateBanks();
//$("#addNewItemBtn").removeClass("disable");
});
function ajaxCreateBanks() {
$.ajax({
url: bankListAjax,
type: 'GET',
success: function (response) {
if (response.success) {
var banks = response.data;
var bankOptionsHtml = '<option value="0">انتخاب بانک ...</option>';
banks.forEach(function (bank) {
bankOptionsHtml += `<option value="${bank.id}">${bank.bankName}</option>`;
});
$('#bankSelectCreate').html(bankOptionsHtml);
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
}
});
}
function addDataToTable() {
var employeeSelectName = $('#select2-employeeSelectCreate-container').text();
var employeeSelect = $('#employeeSelectCreate').val();
var bankSelectName = $('#select2-bankSelectCreate-container').text();
var bankSelect = $('#bankSelectCreate').val();
var cardNumber = $('#CardNumber');
var shebaNumber = $('#ShebaNumber');
var bankAccountNumber = $('#BankAccountNumber');
filledBankCount = 0;
if (cardNumber.val() !== '') {
filledBankCount++;
}
if (shebaNumber.val() !== '') {
filledBankCount++;
}
if (bankAccountNumber.val() !== '') {
filledBankCount++;
}
if (employeeSelect === "0") {
$('.alert-msg').show();
$('.alert-msg p').text('لطفا اسامی پرسنل را کلیک و مشخص نمائید');
$('.select-alert-employee').addClass('errored');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
$('.select-alert-employee').removeClass('errored');
}, 3500);
return;
}
if (bankSelect === "0") {
$('.alert-msg').show();
$('.alert-msg p').text('لطفا نام بانک را کلیک و مشخص نمائید');
$('.select-alert-bank').addClass('errored');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
$('.select-alert-bank').removeClass('errored');
}, 3500);
return;
}
if (!cardNumber.val() && !shebaNumber.val() && !bankAccountNumber.val()) {
cardNumber.addClass('errored');
shebaNumber.addClass('errored');
bankAccountNumber.addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('لطفا حداقل یکی از فیلدها را وارد نمائید');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
cardNumber.removeClass('errored');
shebaNumber.removeClass('errored');
bankAccountNumber.removeClass('errored');
}, 3500);
return;
}
var cardNumberLength = cardNumber.val().length;
if (cardNumberLength > 0 && cardNumberLength !== 19) {
cardNumber.addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('شماره کارت باید 16 رقم باشد');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
cardNumber.removeClass('errored');
}, 3500);
return;
}
var shebaNumberLength = shebaNumber.val().length;
if (shebaNumber.val() && shebaNumberLength !== 33) {
shebaNumber.addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('شماره کارت باید 24 رقم باشد');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
shebaNumber.removeClass('errored');
}, 3500);
return;
}
var newId = newItemIndex++;
//const createEmployeeInformation = {};
//createEmployeeInformation.EmployeeId = employeeSelect;
//createEmployeeInformation.BankId = bankSelect;
//createEmployeeInformation.BankAccountNumber = bankAccountNumber.val();
//createEmployeeInformation.CardNumber = cardNumber.val();
//createEmployeeInformation.ShebaNumber = shebaNumber.val();
//createEmployeeInformation.newItemId = newId;
let employeeData = {
EmployeeId: employeeSelect,
BankId: bankSelect,
BankAccountNumber: bankAccountNumber.val(),
CardNumber: cardNumber.val().replace(/-/g, ""),
ShebaNumber: shebaNumber.val().replace(/-/g, ""),
newItemId: newId
};
let isDuplicate = employeeBankInfos.some(existingItem =>
existingItem.EmployeeId === employeeData.EmployeeId &&
existingItem.BankId === employeeData.BankId &&
existingItem.BankAccountNumber === employeeData.BankAccountNumber &&
existingItem.CardNumber === employeeData.CardNumber &&
existingItem.ShebaNumber === employeeData.ShebaNumber
);
if (!isDuplicate) {
employeeBankInfos.push(employeeData);
} else {
$('.alert-msg').show();
$('.alert-msg p').text('این داده قبلاً وارد شده است');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
shebaNumber.removeClass('errored');
}, 3500);
return;
}
loadDataCreate(newId, employeeSelectName, bankSelectName, filledBankCount);
}
function loadDataCreate(newId, employeeName, bankName, bankCount) {
$('.select-alert-employee .select2.select2-container.select2-container--default').addClass("disable");
$('#createData').removeClass("disable");
var fullName = $("#firstName").val() + " " + $('#lastName').val();
$("#emptyData").addClass("d-none");
var n = $('#dataLoad .Rtable-row').length + 1;
var html = `<div></div>
<div class="Rtable-row align-items-center openAction load-create-row" id="Employees" data-item-new-id="${newId}">
<div class="Rtable-cell width1 widthNumberCustom1">
<label for="${n}" class="Rtable-cell--content prevent-select">
<span class="d-flex justify-content-center align-items-center justify-content-center row-number">
${n}
</span>
</label>
</div>
<div class="Rtable-cell justify-content-start width2">
<div class="Rtable-cell--content text-start">${fullName}</div>
</div>
<div class="Rtable-cell d-md-flex justify-content-center d-none width3">
<div class="Rtable-cell--content" id="bankCount">${bankCount}</div>
</div>
<div class="Rtable-cell d-md-block d-none width4">
<div class="Rtable-cell--content" id="bankName">${bankName}</div>
</div>
<div class="Rtable-cell width5 text-end">
<div class="Rtable-cell--content align-items-center justify-content-end d-flex text-end">
<button onclick="editNewItem(${newId})" type="button" class="btn-edit position-relative d-md-block d-none">
<svg width="20" height="20" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.6027 6.838L5.85304 13.5876C5.84201 13.5987 5.83107 13.6096 5.8202 13.6204C5.65773 13.7825 5.5139 13.9261 5.41254 14.1051C5.31117 14.2841 5.2621 14.4813 5.20667 14.704C5.20296 14.7189 5.19923 14.7339 5.19545 14.7491L4.5813 17.2057C4.57908 17.2145 4.57686 17.2234 4.57462 17.2323C4.53537 17.389 4.49347 17.5564 4.47972 17.6969C4.46458 17.8516 4.46811 18.1127 4.67752 18.3221L5.03035 17.9693L4.67752 18.3221C4.88693 18.5315 5.14799 18.535 5.30272 18.5199C5.44326 18.5062 5.6106 18.4643 5.76728 18.425C5.77622 18.4228 5.78512 18.4205 5.79398 18.4183L8.25057 17.8042C8.26569 17.8004 8.28069 17.7967 8.29558 17.793C8.51832 17.7375 8.71549 17.6885 8.89452 17.5871C9.07356 17.4857 9.21708 17.3419 9.37921 17.1794C9.39005 17.1686 9.40097 17.1576 9.412 17.1466L16.1616 10.397L16.1849 10.3737C16.4983 10.0603 16.7684 9.79025 16.9556 9.54492C17.1562 9.282 17.3081 8.98958 17.3081 8.6292C17.3081 8.26759 17.1541 7.97384 16.9522 7.71001C16.7633 7.46303 16.4905 7.1903 16.1731 6.87292L16.1499 6.84972L16.1267 6.82652C15.8093 6.5091 15.5366 6.23634 15.2896 6.04738C15.0258 5.84553 14.732 5.69156 14.3704 5.69156C14.01 5.69156 13.7176 5.84345 13.4547 6.04405C13.2094 6.23123 12.9393 6.5013 12.6259 6.81474L12.6027 6.838Z" stroke-width="1.5" stroke="#4DA9D1" />
<path d="M11.9939 7.20397L14.8457 5.30273L17.6976 8.15459L15.7964 11.0064L11.9939 7.20397Z" fill="#4DA9D1" />
</svg>
<span class="mx-1">ویرایش</span>
</button>
<button onclick="alertRemoveRecordAfterAddNewItem(${newId})" type="button" class="btn-delete d-md-block d-none">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
<path d="M8.70825 13.2915L8.70825 10.5415" stroke-width="1.5" stroke-linecap="round" />
<path d="M13.2917 13.2915L13.2917 10.5415" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z" stroke-width="1.5" stroke-linecap="round" />
<path d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817" stroke-width="1.5" stroke-linecap="round" />
</svg>
<span class="mx-1">حذف</span>
</button>
</div>
</div>
</div>`;
$('#bankSelectCreate').val("0").trigger('change');
$('#CardNumber').val("");
$('#ShebaNumber').val("");
$('#BankAccountNumber').val("");
$('.data-load .wrapper').show();
$('#dataLoad').append(html);
}
function alertRemoveRecordAfterAddNewItem(id) {
swal({
title: "آیا از حذف این حساب اطمینان دارید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
if (isConfirm) {
removeRecordAfterAddNewItem(id);
}
});
}
function removeRecordAfterAddNewItem(id) {
$(`[data-item-new-id="${id}"]`).remove();
updateRows();
$('.alert-success-msg').show();
$('.alert-success-msg p').text("عملیات با موفقیت انجام شد");
setTimeout(function () {
$('.alert-success-msg').hide();
$('.alert-success-msg p').text('');
}, 2000);
employeeBankInfos = employeeBankInfos.filter(employee => employee.newItemId !== id);
//let indexToDelete = employeeBankInfos.findIndex(employee => employee.newItemId === id);
//if (indexToDelete !== -1) {
// employeeBankInfos.splice(indexToDelete, 1);
//}
if (employeeBankInfos.length === 0) {
$('.select-alert-employee .select2.select2-container.select2-container--default').removeClass("disable");
$('#createData').addClass("disable");
$("#emptyData").removeClass("d-none");
}
}
function editNewItem(newId) {
$('#prevStep5').addClass('disable');
$('#nextStep5').addClass('disable');
$('#addNewItemBtn').hide();
$('#editNewItemBtn').show();
$('#createData').addClass("disable");
let employeeBankInfo = employeeBankInfos.find(employee => employee.newItemId === newId);
$('#editNewItemBtn').attr('onclick', 'saveEditNewItem(' + newId + ')');
$('#bankSelectCreate').val(employeeBankInfo.BankId).trigger('change');
$('#CardNumber').val(employeeBankInfo.CardNumber);
$('#ShebaNumber').val(employeeBankInfo.ShebaNumber);
$('#BankAccountNumber').val(employeeBankInfo.BankAccountNumber);
$('#CardNumber').mask("0000-0000-0000-0000", {
placeholder: "XXXX-XXXX-XXXX-XXXX"
});
$('#CardNumber').val(employeeBankInfo.CardNumber).keyup();
$('#ShebaNumber').mask("IR-00-0000-0000-0000-0000-0000-00", {
placeholder: "IR-XX-XXXX-XXXX-XXXX-XXXX-XXXX-XX"
});
$('#ShebaNumber').val(employeeBankInfo.ShebaNumber).keyup();
}
function saveEditNewItem(newId) {
var employeeSelect = $('#employeeSelectCreate').val();
var bankSelectName = $('#select2-bankSelectCreate-container').text();
var bankSelect = $('#bankSelectCreate').val();
var cardNumber = $('#CardNumber');
var shebaNumber = $('#ShebaNumber');
var bankAccountNumber = $('#BankAccountNumber');
filledBankCount = 0;
if (cardNumber.val() !== '') {
filledBankCount++;
}
if (shebaNumber.val() !== '') {
filledBankCount++;
}
if (bankAccountNumber.val() !== '') {
filledBankCount++;
}
if (employeeSelect === "0") {
$('.alert-msg').show();
$('.alert-msg p').text('لطفا اسامی پرسنل را کلیک و مشخص نمائید');
$('.select-alert-employee').addClass('errored');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
$('.select-alert-employee').removeClass('errored');
}, 3500);
return;
}
if (bankSelect === "0") {
$('.alert-msg').show();
$('.alert-msg p').text('لطفا نام بانک را کلیک و مشخص نمائید');
$('.select-alert-bank').addClass('errored');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
$('.select-alert-bank').removeClass('errored');
}, 3500);
return;
}
if (!cardNumber.val() && !shebaNumber.val() && !bankAccountNumber.val()) {
cardNumber.addClass('errored');
shebaNumber.addClass('errored');
bankAccountNumber.addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('لطفا حداقل یکی از فیلدها را وارد نمائید');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
cardNumber.removeClass('errored');
shebaNumber.removeClass('errored');
bankAccountNumber.removeClass('errored');
}, 3500);
return;
}
var cardNumberLength = cardNumber.val().length;
if (cardNumberLength > 0 && cardNumberLength !== 19) {
cardNumber.addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('شماره کارت باید 16 رقم باشد');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
cardNumber.removeClass('errored');
}, 3500);
return;
}
var shebaNumberLength = shebaNumber.val().length;
if (shebaNumber.val() && shebaNumberLength !== 33) {
shebaNumber.addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('شماره کارت باید 24 رقم باشد');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
shebaNumber.removeClass('errored');
}, 3500);
return;
}
let updatedData = {
EmployeeId: employeeSelect,
BankId: bankSelect,
BankAccountNumber: bankAccountNumber.val(),
CardNumber: cardNumber.val().replace(/-/g, ""),
ShebaNumber: shebaNumber.val().replace(/-/g, ""),
newItemId: newId
};
let indexToEdit = employeeBankInfos.findIndex(employee => employee.newItemId === newId);
if (indexToEdit !== -1) {
employeeBankInfos[indexToEdit] = { ...employeeBankInfos[indexToEdit], ...updatedData };
}
$('#bankSelectCreate').val("0").trigger('change');
$('#CardNumber').val("");
$('#ShebaNumber').val("");
$('#BankAccountNumber').val("");
$('#editNewItemBtn').attr('onclick', 'saveEditNewItem()');
$(`[data-item-new-id="${newId}"] #bankCount`).text(filledBankCount);
$(`[data-item-new-id="${newId}"] #bankName`).text(bankSelectName);
$('#addNewItemBtn').show();
$('#editNewItemBtn').hide();
$('#createData').removeClass("disable");
$('#prevStep5').removeClass('disable');
$('#nextStep5').removeClass('disable');
}
function updateRows() {
$('.load-create-row.width1').each(function (index) {
$(this).find('span.row-number').text(index + 1);
});
}