Files
Backend-Api/ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeave.cshtml
2024-08-24 19:13:34 +03:30

501 lines
17 KiB
Plaintext
Raw 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.
@model CompanyManagment.App.Contracts.Leave.CreateLeave
@{
int i = 1;
}
@{
<style>
#paidLeave .panel-title {
font-size: 14px;
margin-bottom: 0;
margin-top: 0;
padding: 5px 7px 5px 7px;
}
.modal-body {
top: 2.5rem;
}
.modal-dialog {
width: 30%;
margin: 30px auto;
}
.modal .modal-dialog .modal-content {
min-height: auto;
height: auto !important;
}
.modal-footer {
display: flex;
justify-content: flex-end;
}
.modal-footer .btn + .btn {
margin-bottom: 0;
margin-right: 5px;
}
@@media (max-width: 1580px) {
.modal-dialog {
width: 50%;
}
}
@@media (max-width: 768px) {
.modal-dialog {
width: 90%;
}
}
#paidLeave .panel-heading {
border-radius: 17px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border: none !important;
padding: 0px 20px;
background-color: #505050 !important;
color: #ffffff;
}
#paidLeave .form-control {
border: 1px solid #ababab;
}
#paidLeave .panel .panel-body {
padding: 0;
padding-bottom: 20px;
}
.modal-content .panel {
border-radius: 17px;
}
</style>
<link href="~/AdminTheme/assets/datatables/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
}
<div class="container" id="paidLeave">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<form asp-page="./Index" asp-page-handler="CreatePaidLeave" autocomplete="off"
method="post"
data-ajax="true"
data-callback=""
data-action="ReloadPaidLeave">
<div class="modal-body">
<div class="row">
<fieldset style="border: 1px solid #999797; border-radius: 10px; padding: revert">
<legend style="margin-bottom: 5px; font-size: large; border-bottom: 0px; color: #505458; width: 150px; text-align: center;"> مرخصی استحقاقی </legend>
<div class="row">
<div class="col-md-12">
<fieldset style="border: 1px solid #c3c3c3; background-color: #ddd; border-radius: 10px; padding: 5px 0 5px 0; margin-bottom: 10px; ">
<div class="flexible-div">
<div class="col-md-4" style="margin-top: 3px">
نوع مرخصی <span style="color: red">*</span>
</div>
<div class="col-md-4">
روزانه <input type="radio" checked="checked" value="روزانه" asp-for="PaidLeaveType">
</div>
<div class="col-md-4">
ساعتی <input type="radio" value="ساعتی" asp-for="PaidLeaveType">
</div>
</div>
</fieldset>
<span asp-validation-for="PaidLeaveType" class="error"></span>
</div>
</div>
<div class="row m-t-10 flexible-div">
<div class="col-md-5">
<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" onchange="validDate(this);" asp-for="StartLeave" />
<span asp-validation-for="StartLeave" class="error"></span>
</div>
</div>
<div class="col-md-5">
<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" onchange="validDate(this);" asp-for="EndLeave" />
<span asp-validation-for="EndLeave" class="error"></span>
</div>
</div>
<div class="col-md-2">
<div class="m-b-0" dir="rtl">
<label asp-for="LeaveHourses" class="control-label m-r-5">ساعت</label>
<input id="hours" dir="ltr" maxlength="2" style="text-align: center" class="form-control" asp-for="LeaveHourses" />
<span asp-validation-for="LeaveHourses" class="error"></span>
</div>
</div>
</div>
</fieldset>
</div>
<div class="row">
<div class="m-t-10">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-list" style="padding-left: 3px; font-size: 14px"></i> سوابق مرخصی استحقاقی </h3>
</div>
<div class="panel-body">
<div class="row">
<div id="data-PaidLeave" class="col-sm-12 col-sm-12 col-xs-12">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<input type="hidden" asp-for="EmployeeId" />
@*<input type="hidden" asp-for="WorkshopId" />*@
<div class="modal-footer">
<button type="button" class="btn btn-default btn-rounded waves-effect waves-light" data-dismiss="modal">بستن</button>
<button type="submit" class="btn btn-success btn-rounded waves-effect waves-light" style="background: #0f9500;border: #0f9500;">ذخیره</button>
</div>
</form>
<form asp-page="./Index" asp-page-handler="RemovePaidLeave" autocomplete="off" id="sub"
method="post"
data-ajax="true"
data-callback=""
data-action="ReloadPaidLeave">
<div style="display: none">
<input type="hidden" id="LeftId" name="id" />
<input type="hidden" asp-for="EmployeeId" />
@*<input type="hidden" asp-for="WorkshopId" />*@
@*<input type="hidden" asp-for="id" value="id"/>*@
<div class="modal-footer" style="margin-bottom: 10px">
<input type="submit" id="sendFinaly" form="sub" value="fine" name="fine" style="display: none" />
</div>
</div>
</form>
</div>
<script src="~/adminTheme/assets/datatables/jquery.dataTables.min.js"></script>
<script src="~/adminTheme/assets/datatables/dataTables.bootstrap.js"></script>
<script>
$(document).ready(function () {
reloadPaidLeaveList();
});
function reloadPaidLeaveList(){
$("#data-PaidLeave").html('');
$("#data-PaidLeave").html('<div class="ring"> منتظر بمانید<span></span></div>');
$.ajax({
url: '@Url.Page("/Company/Employees/Index", "PaidLeave")',
data:{"employeeId":@Model.EmployeeId,"workshopId_":@Model.WorkshopId },
type: "Get",
dataType: 'html',
success: function(data) {
$('#data-PaidLeave').html(data);
}
});
}
$("#hours").attr("disabled", "disabled");
$('input:radio[name="PaidLeaveType"]').change(
function () {
if ($(this).is(':checked') && $(this).val() == 'روزانه') {
$("#hours").val('');
$("#hours").attr("disabled", "disabled");
$("#endLeave").removeAttr("disabled");
} else if ($(this).is(':checked') && $(this).val() == 'ساعتی') {
$("#endLeave").val('');
$("#endLeave").attr("disabled", "disabled");
$("#hours").removeAttr("disabled");
}
});
</script>
<script>
$('.RemoveLeftWork').on("click",
function () {
var id = $(this).closest("div").find("input[name='LeftworkId']").val();
$('#LeftId').val(id);
swal({
title: "آیا حذف این سابقه مرخصی اطمینان دارید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
if (isConfirm) {
$('#sendFinaly').click();
}
});
});
</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>