406 lines
9.4 KiB
JavaScript
406 lines
9.4 KiB
JavaScript
|
||
$(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> </span><span>:</span> <span> </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> </span><span>:</span> <span> </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);
|
||
});
|