add isInvalid to leave entity - set query filter for it

This commit is contained in:
2025-10-06 19:50:42 +03:30
parent f50fdd7f91
commit 21df40af3b
21 changed files with 10982 additions and 488 deletions

View File

@@ -548,6 +548,7 @@ svg {
overflow: hidden;
}
.dropdown-global-item {
padding: 4px 10px;
cursor: pointer;
@@ -567,4 +568,101 @@ svg {
.dropdown-global.active .dropdown-global-content {
display: flex;
}
}
/* --------------------------------------------------------------------------------Invalid-------------------------------------------------------------------------------------- */
/* the code below is for the dropdown menu */
.wrapper-dropdown-invalid {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: 3px 7px;
border-radius: 7px;
background: #ffffff;
color: #575a5d;
border: 1px solid #DADADA;
font-size: 12px;
font-weight: 400;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.wrapper-dropdown-invalid::before {
position: absolute;
top: 50%;
right: 16px;
margin-top: -2px;
border-width: 6px 6px 0 6px;
border-style: solid;
border-color: #fff transparent;
}
.wrapper-dropdown-invalid .dropdown-invalid {
transition: 0.3s;
position: absolute;
top: 120%;
right: 0;
left: 0;
margin: 0;
padding: 0;
list-style: none;
z-index: 99;
border-radius: 15px;
background: inherit;
-webkit-transform-origin: top;
-moz-transform-origin: top;
-ms-transform-origin: top;
transform-origin: top;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
opacity: 0;
visibility: hidden;
height: auto;
overflow: auto;
scrollbar-width: none;
scrollbar-color: #dfe3ea #fff;
border: 1px solid #DADADA;
}
.wrapper-dropdown-invalid .dropdown-invalid li {
padding: 0 10px;
line-height: 36px;
overflow: hidden;
transition: all .1s ease;
margin: 2px 0;
white-space: nowrap;
}
.wrapper-dropdown-invalid .dropdown-invalid li:last-child {
border-bottom: none;
}
.dropdown-invalid {
padding: 0.5rem !important;
}
.wrapper-dropdown-invalid .dropdown-invalid li:hover {
background-color: #3ad1d1;
color: #fff;
border-radius: 10px;
}
.wrapper-dropdown-invalid .dropdown-invalid .active {
background-color: #3ad1d1;
color: #fff;
border-radius: 10px;
}
.wrapper-dropdown-invalid.active .dropdown-invalid {
opacity: 1;
visibility: visible;
border-radius: 15px;
}

View File

@@ -14,7 +14,7 @@ $(document).ready(function () {
return data.text;
}
});
$(".select2OptionShift").select2({
language: "fa",
dir: "rtl",
@@ -27,12 +27,12 @@ $(document).ready(function () {
}
});
ajaxPersonals();
ajaxPersonals();
$("#cardSectionLeave div *").prop('disabled', true);
document.getElementById("MainModal").style.visibility = "visible";
document.getElementById("MainModal").style.visibility = "visible";
$('#employeeSelectList').on('change', function () {
$('#employeeSelectList').on('change', function () {
$('#rotatingShiftSection').addClass('disable');
$('#HasRollCall').val(false);
previousStartDate = "";
@@ -65,7 +65,7 @@ $(document).ready(function () {
$('#SelectedShift_EndTime').val(endTime || '');
});
$('#employeeSelectList').change(function () {
$('#employeeSelectList').change(function () {
var selectValue = $('#employeeSelectList').val();
if (selectValue === '') {
@@ -78,64 +78,64 @@ $(document).ready(function () {
}
});
//******************** شرط استحقاقی و استعلاجی ********************
$(document).on("change", ".LeaveType", function () {
if ($('#paid').is(':checked')) {
$('#dailyType').css('visibility', 'visible');
rotatingShift();
}
if ($('#sick').is(':checked')) {
$('#dailyType').css('visibility', 'hidden');
$('#daily').prop('checked', true);
if ($('#daily').is(':checked')) {
$('#end_date_estehghaghi').show();
$('.time_paid').hide();
}
//******************** شرط استحقاقی و استعلاجی ********************
$(document).on("change", ".LeaveType", function () {
if ($('#paid').is(':checked')) {
$('#dailyType').css('visibility', 'visible');
rotatingShift();
}
});
}
// شرط ساعتی و روزانه
$(document).on("change", ".LeaveTime", function () {
if ($('#daily').is(':checked')) {
$('#end_date_estehghaghi').show();
$('.time_paid').hide();
if ($('#sick').is(':checked')) {
$('#dailyType').css('visibility', 'hidden');
$('#daily').prop('checked', true);
if ($('#daily').is(':checked')) {
$('#end_date_estehghaghi').show();
$('.time_paid').hide();
}
rotatingShift();
}
}
});
if ($('#hourly').is(':checked')) {
$('#end_date_estehghaghi').hide();
$('.time_paid').show();
// شرط ساعتی و روزانه
$(document).on("change", ".LeaveTime", function () {
if ($('#daily').is(':checked')) {
$('#end_date_estehghaghi').show();
$('.time_paid').hide();
rotatingShift();
}
});
//******************** شرط استحقاقی و استعلاجی ********************
}
if ($('#hourly').is(':checked')) {
$('#end_date_estehghaghi').hide();
$('.time_paid').show();
rotatingShift();
}
});
//******************** شرط استحقاقی و استعلاجی ********************
//******************** بلور کردن باکس ********************
$('#IsAccepted').on('change', function () {
if ($(this).is(':checked')) {
$('#blur-div').addClass('blur');
$('#textArea').text('');
$('#textArea').attr('disabled', true);
//******************** بلور کردن باکس ********************
$('#IsAccepted').on('change', function () {
if ($(this).is(':checked')) {
$('#blur-div').addClass('blur');
$('#textArea').text('');
$('#textArea').attr('disabled', true);
} else {
$('#blur-div').removeClass('blur');
$('#textArea').attr('disabled', false);
}
});
} else {
$('#blur-div').removeClass('blur');
$('#textArea').attr('disabled', false);
}
});
if ($('#IsAccepted').is(':checked')) {
$('#blur-div').addClass('blur');
$('#textArea').text('');
$('#textArea').attr('disabled', true);
} else {
$('#blur-div').removeClass('blur');
$('#textArea').attr('disabled', false);
}
//******************** بلور کردن باکس ********************
if ($('#IsAccepted').is(':checked')) {
$('#blur-div').addClass('blur');
$('#textArea').text('');
$('#textArea').attr('disabled', true);
} else {
$('#blur-div').removeClass('blur');
$('#textArea').attr('disabled', false);
}
//******************** بلور کردن باکس ********************
$(document).on("change", "#IsAccepted", function () {
var IsAcceptedCheck = $('#IsAccepted').is(':checked');
@@ -149,7 +149,7 @@ $(document).ready(function () {
}
});
$('#save').on('click', function () {
$('#save').on('click', function () {
var hasRollCallInput = $("#HasRollCall").val();
var rotatingShiftInput = $("#rotatingShift").val();
@@ -166,91 +166,128 @@ $(document).ready(function () {
}
}
$("#descriptionAcceptedCheck").on("change", function () {
$('#descriptionAcceptedCheck').removeClass('errored');
});
$("#descriptionAcceptedCheck").on("change", function () {
$('#descriptionAcceptedCheck').removeClass('errored');
});
var IsAcceptedCheck = $('#IsAccepted').is(':checked');
var descriptionAcceptedCheck = $('#descriptionAcceptedCheck').val();
var IsAcceptedCheck = $('#IsAccepted').is(':checked');
var descriptionAcceptedCheck = $('#descriptionAcceptedCheck').val();
if (!IsAcceptedCheck && descriptionAcceptedCheck.length === 0) {
$('#descriptionAcceptedCheck').addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('لطفا توضیحات در صورت عدم موافقت را پر کنید.');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
return false;
}
if (!IsAcceptedCheck && descriptionAcceptedCheck.length === 0) {
$('#descriptionAcceptedCheck').addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('لطفا توضیحات در صورت عدم موافقت را پر کنید.');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
return false;
}
if ($('.errored').length < 1) {
$('#saveFinaly').click();
} else {
$('.alert-msg').show();
$('.alert-msg p').text('لطفا خطاها را برطرف کنید.');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
});
if ($('.errored').length < 1) {
$.ajax({
/* contentType: 'charset=utf-8',*/
async: false,
dataType: 'json',
type: 'POST',
url: checkCanCreateInvalidUrl,
headers: {"RequestVerificationToken": antiForgeryToken},
data: {"startDate": $('#StartLeave').val()},
success: function (response) {
debugger;
if (response.isInHoliday) {
if (response.canCreateInvalid) {
swal({
title: "در قانون کار کشور ایجاد مرخصی در روز های تعطیل فاقد اعتبار میباشد، و فقط در فیش های حقوقی غیر رسمی قابل استفاده میباشند. آیا میخواهید ادامه دهید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true
},
function (isConfirm) {
if (isConfirm) {
$('#isInvalid').val("true");
$('#saveFinaly').click();
}
});
}
} else if (response.isInHoliday === false) {
$('#saveFinaly').click();
}
},
failure: function (response) {
console.log(5, response);
}
});
//$('#saveFinaly').click();
} else {
$('.alert-msg').show();
$('.alert-msg p').text('لطفا خطاها را برطرف کنید.');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
});
$(".date").on('input', function () {
var value = $(this).val();
$(this).val(convertPersianNumbersToEnglish(value));
}).mask("0000/00/00");
$('.date').on('input', function () {
let startDate = this.value;
if (startDate.length === 10) {
let submitcheck = dateValidcheck(this);
if (submitcheck) {
$(".date").on('input', function () {
var value = $(this).val();
$(this).val(convertPersianNumbersToEnglish(value));
}).mask("0000/00/00");
$('.date').on('input', function () {
let startDate = this.value;
if (startDate.length === 10) {
let submitcheck = dateValidcheck(this);
if (submitcheck) {
$(this).removeClass('errored');
if ($('#StartLeave').val() != '' && $('#EndLeave').val() != '') {
computeDays();
}
$(this).removeClass('errored');
if ($('#StartLeave').val() != '' && $('#EndLeave').val() != '') {
computeDays();
}
} else {
$(this).addClass('errored');
} else {
$(this).addClass('errored');
}
}
} else {
$(this).addClass('errored');
}
});
} else {
$(this).addClass('errored');
}
});
$('input:radio[name="PaidLeaveType"]').change(function () {
if ($(this).is(':checked') && $(this).val() == 'روزانه') {
$("#hours").val('');
$("#hours").attr("disabled", "disabled");
$("#endLeave").removeAttr("disabled");
$('.endLeaveLabal').show();
$('#StartHoures').removeClass("invalidTime");
$('#StartHoures').val('');
$('#EndHours').removeClass("invalidTime");
$('#EndHours').val('');
$("#endLeave").show();
$('.res').remove();
$('.validTime').removeClass("validTime");
$('.sumHourseDiv').hide();
$('.sumDaysDiv').show();
} else if ($(this).is(':checked') && $(this).val() == 'ساعتی') {
$("#endLeave").val('');
$("#endLeave").attr("disabled", "disabled");
$("#endLeave").hide();
$('.endLeaveLabal').hide();
$("#hours").removeAttr("disabled");
$('.sumHourseDiv').show();
$('.sumDaysDiv').hide();
}
});
/////////////////Time Input Validatet/////////////////
$('input:radio[name="PaidLeaveType"]').change(function () {
if ($(this).is(':checked') && $(this).val() == 'روزانه') {
$("#hours").val('');
$("#hours").attr("disabled", "disabled");
$("#endLeave").removeAttr("disabled");
$('.endLeaveLabal').show();
$('#StartHoures').removeClass("invalidTime");
$('#StartHoures').val('');
$('#EndHours').removeClass("invalidTime");
$('#EndHours').val('');
$("#endLeave").show();
$('.res').remove();
$('.validTime').removeClass("validTime");
$('.sumHourseDiv').hide();
$('.sumDaysDiv').show();
} else if ($(this).is(':checked') && $(this).val() == 'ساعتی') {
$("#endLeave").val('');
$("#endLeave").attr("disabled", "disabled");
$("#endLeave").hide();
$('.endLeaveLabal').hide();
$("#hours").removeAttr("disabled");
$('.sumHourseDiv').show();
$('.sumDaysDiv').hide();
}
});
/////////////////Time Input Validatet/////////////////
$(".dateTime").each(function () {
$(".dateTime").each(function () {
let element = $(this);
element.on('input', function () {
let value = convertPersianNumbersToEnglish(element.val());
@@ -264,6 +301,7 @@ $(document).ready(function () {
});
$("#StartHoures, #EndHours").on("keyup", validateTimeOrder);
function parseTimeToMinutes(time) {
const [hours, minutes] = time.split(':').map(Number);
return hours * 60 + minutes;
@@ -301,121 +339,122 @@ $(document).ready(function () {
return true;
}
//$('#StartHoures').on("keyup", function () {
// var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val());
// if (isValid) {
// $(this).addClass("validTime");
// $(this).removeClass("invalidTime");
// if ($('#EndHours').hasClass('validTime') && $('#EndHours').val() != null) {
// computeHourse();
// }
// } else {
// $(this).removeClass("validTime");
// $(this).addClass("invalidTime");
// }
// });
//$('#EndHours').on("keyup", function () {
// var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val());
// if (isValid) {
// $(this).addClass("validTime");
// $(this).removeClass("invalidTime");
// if ($('#StartHoures').hasClass('validTime') && $('#StartHoures').val() != null) {
// computeHourse();
// }
// } else {
// $(this).removeClass("validTime");
// $(this).addClass("invalidTime");
// }
// });
//$('#StartHoures').on("keyup", function () {
// var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val());
// if (isValid) {
// $(this).addClass("validTime");
// $(this).removeClass("invalidTime");
// if ($('#EndHours').hasClass('validTime') && $('#EndHours').val() != null) {
// computeHourse();
// }
// } else {
// $(this).removeClass("validTime");
// $(this).addClass("invalidTime");
// }
// });
//$('#EndHours').on("keyup", function () {
// var isValid = /^([2][0-3]|[1][0-9]|[0-9]|[0][0-9])([:][0-5][0-9])$/.test($(this).val());
// if (isValid) {
// $(this).addClass("validTime");
// $(this).removeClass("invalidTime");
// if ($('#StartHoures').hasClass('validTime') && $('#StartHoures').val() != null) {
// computeHourse();
// }
// } else {
// $(this).removeClass("validTime");
// $(this).addClass("invalidTime");
// }
// });
//$('#employeeSelect').change(function () {
// var selectValue = $('#employeeSelect').val();
//
// if (selectValue == '') {
// $('#cardSectionLeave').addClass('blur');
// $("#cardSectionLeave div *").prop('disabled', true);
// } else {
// $('#cardSectionLeave').removeClass('blur');
// $("#cardSectionLeave div *").prop('disabled', false);
// $('#descriptionAcceptedCheck').attr('disabled', true);
// }
//});
//$('#employeeSelect').change(function () {
// var selectValue = $('#employeeSelect').val();
//
// if (selectValue == '') {
// $('#cardSectionLeave').addClass('blur');
// $("#cardSectionLeave div *").prop('disabled', true);
// } else {
// $('#cardSectionLeave').removeClass('blur');
// $("#cardSectionLeave div *").prop('disabled', false);
// $('#descriptionAcceptedCheck').attr('disabled', true);
// }
//});
});
function dateValidcheck(inputField1) {
let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
fixNumbers = function (str) {
if (typeof str === 'string') {
for (var i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
let getdate = inputField1.value;
let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
fixNumbers = function (str) {
if (typeof str === 'string') {
for (var i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
let getdate = inputField1.value;
let m1, m2;
let y1, y2, y3, y4;
let d1, d2;
let s1, s2;
for (var i = 0; i < getdate.length; i++) {
if (i === 0) {
y1 = fixNumbers(getdate[i]);
}
if (i === 1) {
y2 = fixNumbers(getdate[i]);
}
if (i === 2) {
y3 = fixNumbers(getdate[i]);
}
if (i === 3) {
y4 = fixNumbers(getdate[i]);
}
if (i === 4) {
s1 = fixNumbers(getdate[i]);
}
if (i === 5) {
m1 = fixNumbers(getdate[i]);
}
if (i === 6) {
m2 = fixNumbers(getdate[i]);
}
if (i === 7) {
s2 = fixNumbers(getdate[i]);
}
if (i === 8) {
d1 = fixNumbers(getdate[i]);
}
if (i === 9) {
d2 = fixNumbers(getdate[i]);
}
let m1, m2;
let y1, y2, y3, y4;
let d1, d2;
let s1, s2;
for (var i = 0; i < getdate.length; i++) {
if (i === 0) {
y1 = fixNumbers(getdate[i]);
}
if (i === 1) {
y2 = fixNumbers(getdate[i]);
}
if (i === 2) {
y3 = fixNumbers(getdate[i]);
}
if (i === 3) {
y4 = fixNumbers(getdate[i]);
}
if (i === 4) {
s1 = fixNumbers(getdate[i]);
}
if (i === 5) {
m1 = fixNumbers(getdate[i]);
}
if (i === 6) {
m2 = fixNumbers(getdate[i]);
}
if (i === 7) {
s2 = fixNumbers(getdate[i]);
}
if (i === 8) {
d1 = fixNumbers(getdate[i]);
}
if (i === 9) {
d2 = fixNumbers(getdate[i]);
}
}
let yRes = y1 + y2 + y3 + y4;
let year = parseInt(yRes);
let mRes = m1 + m2;
let month = parseInt(mRes);
let dRes = d1 + d2;
let day = parseInt(dRes);
let fixResult = yRes + s1 + mRes + s2 + dRes;
let test1 = checkEnValid(inputField1.value);
}
let yRes = y1 + y2 + y3 + y4;
let year = parseInt(yRes);
let mRes = m1 + m2;
let month = parseInt(mRes);
let dRes = d1 + d2;
let day = parseInt(dRes);
let fixResult = yRes + s1 + mRes + s2 + dRes;
let test1 = checkEnValid(inputField1.value);
let isValid = /^([1][3-4][0-9][0-9][/])([0][1-9]|[1][0-2])([/])([0][1-9]|[1-2][0-9]|[3][0-1])$/.test(fixResult);
let isValid = /^([1][3-4][0-9][0-9][/])([0][1-9]|[1][0-2])([/])([0][1-9]|[1-2][0-9]|[3][0-1])$/.test(fixResult);
if (isValid && test1) {
// inputField1.style.backgroundColor = '#a6e9a6';
start1valid = true;
if (isValid && test1) {
// inputField1.style.backgroundColor = '#a6e9a6';
start1valid = true;
} else {
} else {
if (inputField1.value != "") {
// inputField1.style.backgroundColor = '#f94c4c';
//$.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "لطفا تاریخ را بصورت صحیح وارد کنید");
if (inputField1.value != "") {
// inputField1.style.backgroundColor = '#f94c4c';
//$.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "لطفا تاریخ را بصورت صحیح وارد کنید");
$('#StartLeave').addClass('errored');
$('.alert-msg').show();
$('.alert-msg p').text('لطفا تاریخ را بصورت صحیح وارد کنید');
@@ -424,161 +463,161 @@ function dateValidcheck(inputField1) {
$('.alert-msg p').text("");
$('#StartLeave').removeClass("errored");
}, 3500);
start1valid = false;
}
start1valid = false;
}
}
return start1valid;
}
return start1valid;
}
function checkEnValid(fixDate1) {
let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
fixNumbers = function (str) {
if (typeof str === 'string') {
for (var i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
let getdate = fixDate1;
let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
fixNumbers = function (str) {
if (typeof str === 'string') {
for (var i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
let getdate = fixDate1;
let m1, m2;
let y1, y2, y3, y4;
let d1, d2;
for (let i = 0; i < getdate.length; i++) {
if (i === 0) {
y1 = fixNumbers(getdate[i]);
}
if (i === 1) {
y2 = fixNumbers(getdate[i]);
}
if (i === 2) {
y3 = fixNumbers(getdate[i]);
}
if (i === 3) {
y4 = fixNumbers(getdate[i]);
}
if (i === 5) {
m1 = fixNumbers(getdate[i]);
}
if (i === 6) {
m2 = fixNumbers(getdate[i]);
}
if (i === 8) {
d1 = fixNumbers(getdate[i]);
}
if (i === 9) {
d2 = fixNumbers(getdate[i]);
}
}
let yRes = y1 + y2 + y3 + y4;
let year = parseInt(yRes);
let mRes = m1 + m2;
let month = parseInt(mRes);
let dRes = d1 + d2;
let day = parseInt(dRes);
let kabiseh = false;
if (month <= 6 && day > 31) {
return false;
} else if (month > 6 && month < 12 && day > 30) {
return false;
} else if (month === 12) {
let m1, m2;
let y1, y2, y3, y4;
let d1, d2;
for (let i = 0; i < getdate.length; i++) {
if (i === 0) {
y1 = fixNumbers(getdate[i]);
}
if (i === 1) {
y2 = fixNumbers(getdate[i]);
}
if (i === 2) {
y3 = fixNumbers(getdate[i]);
}
if (i === 3) {
y4 = fixNumbers(getdate[i]);
}
if (i === 5) {
m1 = fixNumbers(getdate[i]);
}
if (i === 6) {
m2 = fixNumbers(getdate[i]);
}
if (i === 8) {
d1 = fixNumbers(getdate[i]);
}
if (i === 9) {
d2 = fixNumbers(getdate[i]);
}
}
let yRes = y1 + y2 + y3 + y4;
let year = parseInt(yRes);
let mRes = m1 + m2;
let month = parseInt(mRes);
let dRes = d1 + d2;
let day = parseInt(dRes);
let kabiseh = false;
if (month <= 6 && day > 31) {
return false;
} else if (month > 6 && month < 12 && day > 30) {
return false;
} else if (month === 12) {
switch (year) {
case 1346:
kabiseh = true;
break;
case 1350:
kabiseh = true;
break;
case 1354:
kabiseh = true;
break;
case 1358:
kabiseh = true;
break;
case 1362:
kabiseh = true;
break;
case 1366:
kabiseh = true;
break;
case 1370:
kabiseh = true;
break;
case 1375:
kabiseh = true;
break;
case 1379:
kabiseh = true;
break;
case 1383:
kabiseh = true;
break;
case 1387:
kabiseh = true;
break;
case 1391:
kabiseh = true;
break;
case 1395:
kabiseh = true;
break;
case 1399:
kabiseh = true;
break;
case 1403:
kabiseh = true;
break;
case 1408:
kabiseh = true;
break;
case 1412:
kabiseh = true;
break;
case 1416:
kabiseh = true;
break;
case 1420:
kabiseh = true;
break;
case 1424:
kabiseh = true;
break;
case 1428:
kabiseh = true;
break;
case 1432:
kabiseh = true;
break;
case 1436:
kabiseh = true;
break;
case 1441:
kabiseh = true;
break;
case 1445:
kabiseh = true;
break;
default:
kabiseh = false;
switch (year) {
case 1346:
kabiseh = true;
break;
case 1350:
kabiseh = true;
break;
case 1354:
kabiseh = true;
break;
case 1358:
kabiseh = true;
break;
case 1362:
kabiseh = true;
break;
case 1366:
kabiseh = true;
break;
case 1370:
kabiseh = true;
break;
case 1375:
kabiseh = true;
break;
case 1379:
kabiseh = true;
break;
case 1383:
kabiseh = true;
break;
case 1387:
kabiseh = true;
break;
case 1391:
kabiseh = true;
break;
case 1395:
kabiseh = true;
break;
case 1399:
kabiseh = true;
break;
case 1403:
kabiseh = true;
break;
case 1408:
kabiseh = true;
break;
case 1412:
kabiseh = true;
break;
case 1416:
kabiseh = true;
break;
case 1420:
kabiseh = true;
break;
case 1424:
kabiseh = true;
break;
case 1428:
kabiseh = true;
break;
case 1432:
kabiseh = true;
break;
case 1436:
kabiseh = true;
break;
case 1441:
kabiseh = true;
break;
case 1445:
kabiseh = true;
break;
default:
kabiseh = false;
}
if (kabiseh == true && day > 30) {
return false;
} else if (kabiseh == false && day > 29) {
return false;
} else {
return true;
}
} else {
return true;
}
}
if (kabiseh == true && day > 30) {
return false;
} else if (kabiseh == false && day > 29) {
return false;
} else {
return true;
}
} else {
return true;
}
}
function computeHourse() {
@@ -588,9 +627,9 @@ function computeHourse() {
async: false,
dataType: 'json',
type: 'GET',
url: computeLeaveHourlyAjax,
headers: { "RequestVerificationToken": antiForgeryToken },
data: { "startHours": $('#StartHoures').val(), "endHours": $('#EndHours').val() },
url: computeLeaveHourlyAjax,
headers: {"RequestVerificationToken": antiForgeryToken},
data: {"startHours": $('#StartHoures').val(), "endHours": $('#EndHours').val()},
success: function (response) {
let res = `<span class="res">${response.res}</span>`;
$('.sumHours').append(res);
@@ -608,9 +647,9 @@ function computeDays() {
async: false,
dataType: 'json',
type: 'GET',
url: computeLeaveDailyAjax,
headers: { "RequestVerificationToken": antiForgeryToken },
data: { "startDay": $('#StartLeave').val(), "endDay": $('#EndLeave').val() },
url: computeLeaveDailyAjax,
headers: {"RequestVerificationToken": antiForgeryToken},
data: {"startDay": $('#StartLeave').val(), "endDay": $('#EndLeave').val()},
success: function (response) {
if (response.status == false) {
$('.sumDays').addClass("note");
@@ -635,11 +674,11 @@ function ajaxPersonals() {
$("#cardSectionLeave div *").prop('disabled', true);
var employees = response.data;
var employeeOptionsHtml = '<option value="">انتخاب پرسنل ...</option>';
employees.forEach(function (employee) {
var black = employee.black ? "blackSelect" : "";
employees.forEach(function (employee) {
var black = employee.black ? "blackSelect" : "";
employeeOptionsHtml += `<option class="${black}" value="${employee.id}">${employee.employeeFullName}</option>`;
});
$('#employeeSelectList').html(employeeOptionsHtml);
$('#employeeSelectList').html(employeeOptionsHtml);
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
@@ -648,15 +687,13 @@ function ajaxPersonals() {
}
function rotatingShift() {
var startDateValue = $('#StartLeave').val();
$('#rotatingShiftSection').addClass('disable');
if ($('#paid').is(':checked') && $('#daily').is(':checked') && startDateValue.length === 10) {
ajaxService.get(hasRotatingShiftAjax, { employeeId: currentEmployeeId, startDateTime: startDateValue })
ajaxService.get(hasRotatingShiftAjax, {employeeId: currentEmployeeId, startDateTime: startDateValue})
.then(response => {
$('#HasRollCall').val(response.hasRollCall);