Files
Backend-Api/ServiceHost/wwwroot/AssetsAdmin/page/Contracts/js/editPaidLeave.js
2025-05-13 18:34:50 +03:30

406 lines
9.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
$(document).ready(function() {
const IsAcceptedCheck = $('#IsAccepted').is(':checked');
if (IsAcceptedCheck) {
$('#descriptionAcceptedCheck').removeClass('errored');
$('#descriptionAcceptedCheck').addClass('disable-input');
$("#descriptionAcceptedCheck").prop('disabled', true);
} else {
$('#descriptionAcceptedCheck').removeClass('disable-input');
$("#descriptionAcceptedCheck").prop('disabled', false);
}
});
$(document).ready(
function() {
computeHourse();
const saati = $('input:radio[class="saati"]');
const roozane = $('input:radio[class="roozane"]');
if ($(roozane).is(':checked') && $(roozane).val() == 'روزانه') {
$("#hours").val('');
$("#hours").attr("disabled", "disabled");
$("#endLeave").removeAttr("disabled");
$("#saati").css("visibility", "hidden");
$('.hourses').css({
display: "none"
});
$('.sumHourseDiv').hide();
$('.sumDaysDiv').show();
$('.res').remove();
$('.validTime').removeClass("validTime");
} else if ($(saati).is(':checked') && $(saati).val() == 'ساعتی') {
$("#endLeave").val('');
$("#endLeave").attr("disabled", "disabled");
$("#endLeave").hide();
$('.endLeaveLabal').hide();
$('.hourses').css({
display: "flex"
});
$("#hours").removeAttr("disabled");
$('.sumHourseDiv').show();
$('#roozaneh').hide();
$('.sumDaysDiv').hide();
}
});
computeDays();
$('#save').on('click',
function() {
$("#descriptionAcceptedCheck").on("change",
function() {
$('#descriptionAcceptedCheck').removeClass('errored');
});
const IsAcceptedCheck = $('#IsAccepted').is(':checked');
const descriptionAcceptedCheck = $('#descriptionAcceptedCheck').val();
if (!IsAcceptedCheck && descriptionAcceptedCheck.length === 0) {
$('#descriptionAcceptedCheck').addClass('errored');
$.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "لطفا توضیحات در صورت عدم موافقت را پر کنید.");
return;
}
if ($('.errored').length < 1 && $('.invalidTime').length < 1) {
$('#editFinaly').click();
}
});
$(".date").mask("0000/00/00");
$('.date').on('input',
function() {
const startDate = this.value;
if (startDate.length == 10) {
const submitcheck = dateValidcheck(this);
if (submitcheck) {
$(this).removeClass('errored');
if ($('#startLeave').val() != '' && $('#endLeave').val() != '') {
computeDays();
}
} else {
$(this).addClass('errored');
}
} else {
$(this).addClass('errored');
}
});
/////////////////Time Input Validatet/////////////////
$('#StartHoure').on("keyup",
function() {
const 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('invalidTime') && $('#EndHours').val() != null) {
computeHourse();
}
} else {
$(this).removeClass("validTime");
$(this).addClass("invalidTime");
}
});
$('#EndHours').on("keyup",
function() {
const 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 (!$('#StartHoure').hasClass('invalidTime') && $('#StartHoure').val() != null) {
computeHourse();
}
} else {
$(this).removeClass("validTime");
$(this).addClass("invalidTime");
}
});
function computeHourse() {
$('.res').remove();
$.ajax({
/* contentType: 'charset=utf-8',*/
async: false,
dataType: 'json',
type: 'GET',
url: computeLeavHourseAjaxUrl,
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
data: { "startHours": $('#StartHoure').val(), "endHourse": $('#EndHours').val() },
success: function(response) {
const res = ` <span class="res"><span>&nbsp;</span><span>:</span> <span>&nbsp;</span><span>${response.res}</span></span>`;
$('.sumHours').append(res);
},
failure: function(response) {
console.log(5, response);
}
});
}
function computeDays() {
$('.resultDays').remove();
$.ajax({
/* contentType: 'charset=utf-8',*/
async: false,
dataType: 'json',
type: 'GET',
url: computeLeavDaysAjaxUrl,
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
data: { "startDay": $('#startLeave').val(), "endDay": $('#endLeave').val() },
success: function(response) {
const res = ` <span class="resultDays"><span>&nbsp;</span><span>:</span> <span>&nbsp;</span><span>${response.res}</span></span>`;
$('.sumDays').append(res);
},
failure: function(response) {
console.log(5, response);
}
});
}
function dateValidcheck(inputField1) {
const persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g];
const arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g];
const fixNumbers = function(str) {
if (typeof str === 'string') {
for (let i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
const getdate = inputField1.value;
let m1, m2;
let y1, y2, y3, y4;
let d1, d2;
let s1, s2;
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 === 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]);
}
}
const yRes = y1 + y2 + y3 + y4;
const year = parseInt(yRes);
const mRes = m1 + m2;
const month = parseInt(mRes);
const dRes = d1 + d2;
const day = parseInt(dRes);
const fixResult = yRes + s1 + mRes + s2 + dRes;
const test1 = checkEnValid(inputField1.value);
const 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;
} else {
if (inputField1.value != "") {
// inputField1.style.backgroundColor = '#f94c4c';
$.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "لطفا تاریخ را بصورت صحیح وارد کنید");
start1valid = false;
}
}
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 (let 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) {
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;
}
}
$(document).ready(function() {
setTimeout(function() {
window.location.hash = "##";
},
1000);
});