366 lines
12 KiB
Plaintext
366 lines
12 KiB
Plaintext
@model CompanyManagment.App.Contracts.Leave.EditLeave
|
||
|
||
@{
|
||
}
|
||
<link href="@Href("~/Clienttheme/css/sickLeave.css")" rel="stylesheet" />
|
||
<div class="container" id="sickLeaveEdit">
|
||
<div class="modal-header">
|
||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||
</div>
|
||
<form id="EditForm" asp-page="./Index" asp-page-handler="EditSickLeave" autocomplete="off" class="sickLeave"
|
||
method="post"
|
||
data-ajax="true">
|
||
<div class="modal-body">
|
||
<div class="row">
|
||
<fieldset style="border: 1px solid #999797; border-radius: 17px; padding: revert">
|
||
<legend style="margin-bottom: 5px; font-size: 16px; color: #505458; width: 150px; text-align: center;"> مرخصی استعلاجی </legend>
|
||
<div class="row m-t-10 m-b-10 d-flex">
|
||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||
<div class="m-b-0" dir="rtl">
|
||
<label asp-for="StartLeave" class="control-label m-r-5">تاریخ شروع مرخصی</label>
|
||
<input id="startLeave" dir="ltr" maxlength="10" style="text-align: center" class="form-control persianDateInput" asp-for="StartLeave" />
|
||
<span asp-validation-for="StartLeave" class="error"></span>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||
<div class="m-b-0" dir="rtl">
|
||
<label asp-for="EndLeave" class="control-label m-r-5">تاریخ پایان مرخصی</label>
|
||
<input id="endLeave" dir="ltr" maxlength="10" style="text-align: center" class="form-control persianDateInput" asp-for="EndLeave" />
|
||
<span asp-validation-for="EndLeave" class="error"></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div id="data-SickLeave" class="row">
|
||
</div>
|
||
|
||
</div>
|
||
<input type="hidden" asp-for="Id" value="@Model.Id" />
|
||
<input type="hidden" asp-for="EmployeeId" />
|
||
@*<input type="hidden" asp-for="WorkshopId" />*@
|
||
<div class="modal-footer">
|
||
|
||
@*<a data-dismiss="modal" class="btn btn-default btn-rounded waves-effect waves-light m-b-5"> بازگشت</a>*@
|
||
<a href="#showmodal=@Url.Page("/Company/Employees/Index", "CreateSickLeave", new { employeeId = @Model.EmployeeId, workshopId = @Model.WorkshopId, hd = 1 })" class="btn btn-default btn-rounded waves-effect waves-light" id="close"> بازگشت</a>
|
||
<a href="#" onclick="editSickLeave()" class="btn btn-success btn-rounded waves-effect waves-light" style="background: #0f9500;border: #0f9500;">ذخیره</a>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script>
|
||
|
||
function editSickLeave(){
|
||
$("#EditForm").submit();
|
||
}
|
||
|
||
$(document).on("click", function (event) {
|
||
var target = $(event.target);
|
||
if (!target.is("#sickLeaveEdit")
|
||
&& !target.is("#sickLeaveEdit *")
|
||
) {
|
||
$(".datepicker-container").hide();
|
||
}
|
||
});
|
||
$("#close , .close").on('click', function () {
|
||
$(".datepicker-container").hide();
|
||
});
|
||
$('#EditForm').submit(function(e){
|
||
e.preventDefault();
|
||
e.stopImmediatePropagation();
|
||
$.ajax({
|
||
type: "POST",
|
||
url: $(this).attr( 'action' ),
|
||
data: $(this).serialize(),
|
||
success: function (response) {
|
||
if (response.isSuccedded == true) {
|
||
$.Notification.autoHideNotify('success', 'top right', response.message);
|
||
reloadSickLeaveList();
|
||
}
|
||
else{
|
||
$.Notification.autoHideNotify('error', 'top right', response.message);
|
||
}
|
||
}
|
||
});
|
||
return false;
|
||
});
|
||
function reloadSickLeaveList(){
|
||
$("#data-SickLeave").html('');
|
||
$("#data-SickLeave").html('<div class="ring"> منتظر بمانید<span></span></div>');
|
||
$.ajax({
|
||
url: '@Url.Page("/Company/Employees/Index", "SickList")',
|
||
data:{"employeeId":@Model.EmployeeId,"workshopId_":@Model.WorkshopId },
|
||
type: "Get",
|
||
dataType: 'html',
|
||
success: function(data) {
|
||
$('#data-SickLeave').html(data);
|
||
}
|
||
});
|
||
}
|
||
</script>
|
||
<script>
|
||
$(document).ready(function () {
|
||
setTimeout(function () {
|
||
|
||
window.location.hash = "##";
|
||
}, 1000);
|
||
});
|
||
</script>
|
||
<script>
|
||
$(".persianDateInput").on('keyup', function () {
|
||
if (event.which !== 8 && event.which !== 46) {
|
||
let value = $(this).val();
|
||
let lengthValue = value.length;
|
||
if (lengthValue === 4) {
|
||
value += '/'
|
||
}
|
||
if (lengthValue === 7) {
|
||
value += '/'
|
||
}
|
||
$(this).val(value);
|
||
}
|
||
});
|
||
$(".persianDateInput").on('blur', function () {
|
||
let value = $(this).val();
|
||
let lengthValue = value.length;
|
||
if (!dateValidCheck(this)) {
|
||
$(this).addClass("errored");
|
||
}
|
||
else {
|
||
$(this).removeClass("errored");
|
||
}
|
||
});
|
||
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 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;
|
||
}
|
||
|
||
}
|
||
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 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 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.addClass("errored");
|
||
inputField1.style.boxShadow = 'none';
|
||
inputField1.style.border = '1px solid #c7c7c7';
|
||
start1valid = true;
|
||
} else {
|
||
if (inputField1.value != "") {
|
||
//inputField1.addClass("errored");
|
||
inputField1.style.boxShadow = 'inset 0 0 2px #eb3434, 0 0 5px #eb3434';
|
||
inputField1.style.border = '1px solid #eb3434';
|
||
$.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "لطفا تاریخ را بصورت صحیح وارد کنید");
|
||
start1valid = false;
|
||
}
|
||
}
|
||
return start1valid;
|
||
}
|
||
</script> |