Files
Backend-Api/ServiceHost/Areas/Client/Pages/Company/Employees/Leave.cshtml

3024 lines
198 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.
@page
@using Version = _0_Framework.Application.Version
@model ServiceHost.Areas.Client.Pages.Company.Employees.LeaveModel
@{
ViewData["title"] = " - مرخصی پرسنل";
int index = 1;
}
@section Styles {
<link href="~/AssetsClient/css/table-style.css?ver=@Version.StyleVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/table-responsive.css?ver=@Version.StyleVersion" rel="stylesheet" />
<link href="~/assetsclient/css/table-grid.css?ver=@Version.StyleVersion" rel="stylesheet" />
<link href="~/assetsclient/css/operation-button.css?ver=@Version.StyleVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/select2.css?ver=@Version.StyleVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/datetimepicker.css?ver=@Version.StyleVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/dropdown.css?ver=@Version.StyleVersion" rel="stylesheet" />
<link href="~/AssetsClient/css/filter-search.css?ver=@Version.StyleVersion" rel="stylesheet" />
<!-- sweet alerts -->
<link href="~/AdminTheme/assets/sweet-alert/sweet-alert.min.css" rel="stylesheet">
<style>
#my-scrollbar {
height: auto;
max-height: 200px;
overflow-x: hidden;
}
.sweet-alert {
font-family: 'IranSans' !important
}
.errored {
animation: shake 300ms;
color: #eb3434 !important;
background-color: #fef2f2 !important;
border: 1px solid #eb3434 !important;
border-radius: 9px;
}
.errored2 {
animation: shake 300ms;
color: #eb3434 !important;
border: 2px solid #eb3434 !important;
border-radius: 9px;
}
.wrapper-dropdown {
min-width: auto;
}
@@media(max-width: 1260px) {
.md-grid-cols-8 {
grid-template-columns: repeat(8, minmax(0, 1fr));
}
.md-col-span-3 {
grid-column: span 3 / span 1;
}
.md-col-span-4 {
grid-column: span 4 / span 1;
}
}
@@media(max-width: 1366px) {
.personal-paid-leave-grid .personal-paid-leave-grid-list .column-heading {
font-size:11px
}
.personal-paid-leave-grid .personal-grid-row .Rtable-cell .Rtable-cell--content {
font-size: 11px
}
.personal-paid-leave-grid .personal-grid-row .Rtable-cell .Rtable-cell--content,
.personal-paid-leave-grid .personal-grid-row .Rtable-cell .width7 {
font-size: 11px;
}
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge.badge-paid-leave,
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge.sick {
width: 60px;
}
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge.badge-paid-leave span,
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge.sick span {
font-size: 11px;
}
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge,
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge.disagree {
width: 25px;
font-size: 2px;
border: 0;
border-radius: 0;
color: transparent;
background-color: transparent;
}
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge svg,
.personal-paid-leave-grid-list .Rtable-row .Rtable-cell .Rtable-cell--content .badge.disagree svg{
width: 25px;
}
.text-clear-md {
display:none;
}
}
.blackSelect {
background-color: #cbd5e1;
}
</style>
}
<div class="content-container">
<div class="container-fluid">
<div class="row p-2">
<div class="col p-0 m-0 d-flex align-items-center justify-content-between">
<div class="col d-flex align-items-center justify-content-start">
<img src="~/AssetsClient/images/icons/leave.png" alt="" class="img-fluid me-2" style="width: 45px;" />
<div>
<h4 class="title d-flex align-items-center">مرخصی پرسنل @Model.EmployeeFullName</h4>
<div>@Model.WorkshopFullName</div>
</div>
</div>
<div>
<a asp-page="/Company/Workshop/Index" class="back-btn" type="button">
<span>بازگشت</span>
</a>
</div>
</div>
</div>
</div>
@*
<!-- Box -->
<div class="container-fluid mb-3">
<div class="row g-2 paid-leave-scroll">
<div class="col-lg-4">
<div class="card p-0">
<div class="card-body">
<h5 class="card-title mb-3">مرخصی استفاده شده</h5>
<p class="card-text">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.14063 4.43245C7.14063 4.27684 7.14063 4.19903 7.08972 4.15423C7.03882 4.10944 6.96307 4.11915 6.81157 4.13857C5.69027 4.28229 4.90869 4.57508 4.3122 5.17157C3.14062 6.34315 3.14062 8.22876 3.14062 12C3.14062 15.7712 3.14062 17.6569 4.3122 18.8284C5.48377 20 7.36939 20 11.1406 20H13.1406C16.9119 20 18.7975 20 19.9691 18.8284C21.1406 17.6569 21.1406 15.7712 21.1406 12C21.1406 8.22876 21.1406 6.34315 19.9691 5.17157C19.3726 4.57508 18.591 4.28229 17.4697 4.13857C17.3182 4.11915 17.2424 4.10944 17.1915 4.15424C17.1406 4.19903 17.1406 4.27684 17.1406 4.43245L17.1406 6.5C17.1406 7.32843 16.4691 8 15.6406 8C14.8122 8 14.1406 7.32843 14.1406 6.5L14.1406 4.30005C14.1406 4.15898 14.1406 4.08844 14.0968 4.04451C14.0529 4.00059 13.9824 4.0005 13.8415 4.00031C13.6154 4 13.3819 4 13.1406 4H11.1406C10.8994 4 10.6659 4 10.4397 4.00031C10.2988 4.0005 10.2284 4.00059 10.1845 4.04452C10.1406 4.08844 10.1406 4.15898 10.1406 4.30005L10.1406 6.5C10.1406 7.32843 9.46906 8 8.64063 8C7.8122 8 7.14063 7.32843 7.14063 6.5L7.14063 4.43245Z" fill="#8CF6F6" />
<path d="M8.64062 2.5L8.64062 6.5" stroke="#0A7777" stroke-linecap="round" />
<path d="M15.6406 2.5L15.6406 6.5" stroke="#0A7777" stroke-linecap="round" />
<circle cx="7.64062" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="7.64062" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="7.64062" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="16.5" r="0.5" fill="#0A7777" />
</svg>
<span>4 روز</span>
</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card p-0">
<div class="card-body">
<h5 class="card-title mb-3">مرخصی استفاده شده</h5>
<p class="card-text">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.14063 4.43245C7.14063 4.27684 7.14063 4.19903 7.08972 4.15423C7.03882 4.10944 6.96307 4.11915 6.81157 4.13857C5.69027 4.28229 4.90869 4.57508 4.3122 5.17157C3.14062 6.34315 3.14062 8.22876 3.14062 12C3.14062 15.7712 3.14062 17.6569 4.3122 18.8284C5.48377 20 7.36939 20 11.1406 20H13.1406C16.9119 20 18.7975 20 19.9691 18.8284C21.1406 17.6569 21.1406 15.7712 21.1406 12C21.1406 8.22876 21.1406 6.34315 19.9691 5.17157C19.3726 4.57508 18.591 4.28229 17.4697 4.13857C17.3182 4.11915 17.2424 4.10944 17.1915 4.15424C17.1406 4.19903 17.1406 4.27684 17.1406 4.43245L17.1406 6.5C17.1406 7.32843 16.4691 8 15.6406 8C14.8122 8 14.1406 7.32843 14.1406 6.5L14.1406 4.30005C14.1406 4.15898 14.1406 4.08844 14.0968 4.04451C14.0529 4.00059 13.9824 4.0005 13.8415 4.00031C13.6154 4 13.3819 4 13.1406 4H11.1406C10.8994 4 10.6659 4 10.4397 4.00031C10.2988 4.0005 10.2284 4.00059 10.1845 4.04452C10.1406 4.08844 10.1406 4.15898 10.1406 4.30005L10.1406 6.5C10.1406 7.32843 9.46906 8 8.64063 8C7.8122 8 7.14063 7.32843 7.14063 6.5L7.14063 4.43245Z" fill="#8CF6F6" />
<path d="M8.64062 2.5L8.64062 6.5" stroke="#0A7777" stroke-linecap="round" />
<path d="M15.6406 2.5L15.6406 6.5" stroke="#0A7777" stroke-linecap="round" />
<circle cx="7.64062" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="7.64062" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="7.64062" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="16.5" r="0.5" fill="#0A7777" />
</svg>
<span>4 روز</span>
</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card p-0">
<div class="card-body">
<h5 class="card-title mb-3">مرخصی استفاده شده</h5>
<p class="card-text">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.14063 4.43245C7.14063 4.27684 7.14063 4.19903 7.08972 4.15423C7.03882 4.10944 6.96307 4.11915 6.81157 4.13857C5.69027 4.28229 4.90869 4.57508 4.3122 5.17157C3.14062 6.34315 3.14062 8.22876 3.14062 12C3.14062 15.7712 3.14062 17.6569 4.3122 18.8284C5.48377 20 7.36939 20 11.1406 20H13.1406C16.9119 20 18.7975 20 19.9691 18.8284C21.1406 17.6569 21.1406 15.7712 21.1406 12C21.1406 8.22876 21.1406 6.34315 19.9691 5.17157C19.3726 4.57508 18.591 4.28229 17.4697 4.13857C17.3182 4.11915 17.2424 4.10944 17.1915 4.15424C17.1406 4.19903 17.1406 4.27684 17.1406 4.43245L17.1406 6.5C17.1406 7.32843 16.4691 8 15.6406 8C14.8122 8 14.1406 7.32843 14.1406 6.5L14.1406 4.30005C14.1406 4.15898 14.1406 4.08844 14.0968 4.04451C14.0529 4.00059 13.9824 4.0005 13.8415 4.00031C13.6154 4 13.3819 4 13.1406 4H11.1406C10.8994 4 10.6659 4 10.4397 4.00031C10.2988 4.0005 10.2284 4.00059 10.1845 4.04452C10.1406 4.08844 10.1406 4.15898 10.1406 4.30005L10.1406 6.5C10.1406 7.32843 9.46906 8 8.64063 8C7.8122 8 7.14063 7.32843 7.14063 6.5L7.14063 4.43245Z" fill="#8CF6F6" />
<path d="M8.64062 2.5L8.64062 6.5" stroke="#0A7777" stroke-linecap="round" />
<path d="M15.6406 2.5L15.6406 6.5" stroke="#0A7777" stroke-linecap="round" />
<circle cx="7.64062" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="10.5" r="0.5" fill="#0A7777" />
<circle cx="7.64062" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="13.5" r="0.5" fill="#0A7777" />
<circle cx="7.64062" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="10.6406" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="13.6406" cy="16.5" r="0.5" fill="#0A7777" />
<circle cx="16.6406" cy="16.5" r="0.5" fill="#0A7777" />
</svg>
<span>4 روز</span>
</p>
</div>
</div>
</div>
</div>
</div>
<!-- End Box --> *@
<form role="form" method="get" name="search-theme-form1" id="search-theme-form1" autocomplete="off">
<input type="hidden" asp-for="WorkshopId" />
<input type="hidden" asp-for="EmployeeId" id="EmployeeIdSearch" />
<input type="hidden" name="year" id="year" asp-for="SearchModel.Year" />
<input type="hidden" name="month" id="month" asp-for="SearchModel.Month" />
<input type="hidden" name="leaveType" id="leaveType" asp-for="SearchModel.LeaveType" />
<input type="hidden" name="start" id="start" asp-for="SearchModel.StartLeave" />
<input type="hidden" name="end" id="end" asp-for="SearchModel.EndLeave" />
<div class="container-fluid d-none d-lg-block">
<div class="row px-2">
<div class="search-box card border-0" id="LeaveFilterIntro">
<div class="row">
<div class="col-12">
<div class="d-grid search-section gap-2">
<div class="d-grid grid-cols-3 gap-2 col-span-4">
<div class="wrapper-dropdown-normal btn-dropdown" id="dropdown-normal">
<span class="selected-display" id="destination-normal">هر دو</span>
<svg id="drp-arrow" class="arrow transition-all ml-auto rotate-180" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-normal boxes">
<li class="item" value-data-normal="both">هر دو</li>
<li class="item" value-data-normal="paidLeave">استحقاقی</li>
<li class="item" value-data-normal="sickLeave">استعلاجی</li>
</ul>
<input type="hidden" id="sendSorting" asp-for="SearchModel.LeaveType"/>
</div>
<div class="wrapper-dropdown-year btn-dropdown" id="dropdown-year">
<span class="selected-display" id="destination-year">سال</span>
<svg class="arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="transition-all ml-auto rotate-180">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-year boxes" id="my-scrollbar">
<li class="item" value-data-year="0">سال</li>
@foreach (string year in @Model.YearlyList)
{
<li class="item" value-data-year="@year">@year</li>
}
</ul>
<input type="hidden" id="sendDropdownYear" asp-for="SearchModel.Year"/>
</div>
<div class="wrapper-dropdown-month btn-dropdown" id="dropdown-month">
<span class="selected-display" id="destination-month">ماه</span>
<svg class="arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="transition-all ml-auto rotate-180">
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
<ul class="dropdown-month boxes">
<li class="item" value-data-month="0">ماه</li>
<li class="item" value-data-month="01">فروردین</li>
<li class="item" value-data-month="02">اردیبهشت</li>
<li class="item" value-data-month="03">خرداد</li>
<li class="item" value-data-month="04">تیر</li>
<li class="item" value-data-month="05">مرداد</li>
<li class="item" value-data-month="06">شهریور</li>
<li class="item" value-data-month="07">مهر</li>
<li class="item" value-data-month="08">آبان</li>
<li class="item" value-data-month="09">آذر</li>
<li class="item" value-data-month="10">دی</li>
<li class="item" value-data-month="11">بهمن</li>
<li class="item" value-data-month="12">اسفند</li>
</ul>
<input type="hidden" id="sendDropdownMonth" asp-for="SearchModel.Month"/>
</div>
</div>
<div class="col-span-2 md-col-span-2"><input type="text" class="form-control date start-date" asp-for="SearchModel.StartLeave" placeholder="تاریخ شروع"></div>
<div class="col-span-2 md-col-span-2"><input type="text" class="form-control date end-date" asp-for="SearchModel.EndLeave" placeholder="تاریخ پایان"></div>
<div class="col-span-2 md-col-span-3">
<div class="employeeSelect">
<select class="form-select select2Option" aria-label="انتخاب پرسنل ..." asp-for="SearchModel.EmployeeId" id="employeeSelect">
<option value="">ابتدا کارگاه را انتخاب کنید ...</option>
</select>
</div>
</div>
<div class="d-flex gap-2 col-span-2">
<button class="btn-search btn-w-size btn-search-click text-nowrap d-flex align-items-center justify-content-center" id="searchBtn" type="submit">
<span>جستجو</span>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<circle cx="11" cy="11" r="6" stroke="white" />
<path d="M20 20L17 17" stroke="white" stroke-linecap="round" />
</svg>
</button>
<a asp-page="/Company/Employees/Leave" class="btn-clear-filter btn-w-size text-nowrap d-flex align-items-center justify-content-center disable">
<span>حذف جستجو</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<!-- List Items -->
<div class="container-fluid">
<div class="row p-lg-2 p-auto">
<div class="wrapper list-box bg-white personal-paid-leave-grid-wrapper">
<!-- Advance Search Box -->
<div class="container-fluid d-block d-lg-none">
<div class="row d-flex align-items-center justify-content-between">
<div class="col-6">
<button class="btn-search w-100 py-2" type="button" data-bs-toggle="modal" data-bs-target="#searchModal">
<span>جستجو پیشرفته</span>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none">
<circle cx="11" cy="11" r="6" stroke="white" />
<path d="M20 20L17 17" stroke="white" stroke-linecap="round" />
</svg>
</button>
</div>
<div class="col-6">
<button class="register-btn w-100 py-2" onclick="location.href='#showmodal=@Url.Page("./Leave", "CreateLeave", new { employeeId = Model.EmployeeId, workshopId = Model.WorkshopId})';">
@* <button class="register-btn w-100 py-2" type="button" data-bs-toggle="modal" data-bs-target="#morakhasiEstehghaghiModal"> *@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 25 25" fill="none">
<circle cx="12.5" cy="12.5" r="8.775" stroke="white" stroke-width="2" stroke-opacity="0.84" />
<path d="M12.5 8.3335L12.5 16.6668" stroke="white" stroke-width="2" stroke-linecap="round" />
<path d="M16.6667 12.5L8.33342 12.5" stroke="white" stroke-width="2" stroke-linecap="round" />
</svg>
<span>ثبت مرخصی</span>
</button>
</div>
</div>
</div>
<!-- End Advance Search Box -->
<div class="d-flex justify-content-center align-items-center my-1 d-none d-lg-flex">
<div class="row w-100">
<div class="col-4 p-0">
<button class="btn-search" onclick="location.href = '#showmodal=@Url.Page("./Leave", "CreateLeave", new { employeeId = Model.EmployeeId, workshopId = Model.WorkshopId })';" id="btnNewLeaveIntro">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 25 25" fill="none">
<circle cx="12.5" cy="12.5" r="8.775" stroke="white" stroke-width="2" stroke-opacity="0.84"/>
<path d="M12.5 8.3335L12.5 16.6668" stroke="white" stroke-width="2" stroke-linecap="round"/>
<path d="M16.6667 12.5L8.33342 12.5" stroke="white" stroke-width="2" stroke-linecap="round"/>
</svg>
<span>ثبت مرخصی</span>
</button>
</div>
<div class="col-4 p-0">
<div class="title text-center">لیست مرخصی</div>
</div>
<div class="col-4 text-end p-0">
@* @if (@Model.LeaveSearch.Count > 0)
{ *@
<button onclick="printAll()" class="btn-print-all" type="button">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" stroke="#1E293B" />
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" stroke="#1E293B" />
<path d="M7.91675 11.25L11.2501 11.25" stroke="#1E293B" stroke-linecap="round" />
<path d="M7.91675 13.75L12.0834 13.75" stroke="#1E293B" stroke-linecap="round" />
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" stroke="#1E293B" />
</svg>
<span>پرینت گروهی</span>
</button>
<button onclick="printAllList()" class="btn-print-all" type="button">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" stroke="#1E293B" />
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" stroke="#1E293B" />
<path d="M7.91675 11.25L11.2501 11.25" stroke="#1E293B" stroke-linecap="round" />
<path d="M7.91675 13.75L12.0834 13.75" stroke="#1E293B" stroke-linecap="round" />
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" stroke="#1E293B" />
</svg>
<span>پرینت لیستی</span>
</button>
@* } *@
</div>
</div>
</div>
@if(Model.IsEmployeeActive)
{
@if (@Model.LeaveSearch.Count > 0)
{
<!-- Start For Desktop View -->
<div class="personal-paid-leave-grid d-none d-lg-block">
<div class="Rtable Rtable--5cols Rtable--collapse personal-paid-leave-grid-list">
<div class="Rtable-row Rtable-row--head align-items-center d-grid gap-2 grid-cols-12 sticky-div">
<div class="d-flex col-span-2">
<div class="Rtable-cell column-heading width1">سال</div>
<div class="Rtable-cell column-heading width2">ماه</div>
</div>
<div class="d-flex col-span-10">
<div class="Rtable-cell column-heading width3">
<span class="d-flex justify-content-start text-white align-items-center">
<input type="checkbox" class="form-check-input checkAll" name="" id="checkAll2">
<label for="checkAll2" class="prevent-select">ردیف</label>
</span>
</div>
<div class="Rtable-cell column-heading width4 text-center">نوع مرخصی</div>
<div class="Rtable-cell column-heading width5">تاریخ شروع</div>
<div class="Rtable-cell column-heading width6">تاریخ پایان</div>
<div class="Rtable-cell column-heading width7">زمان مرخصی</div>
<div class="Rtable-cell column-heading width8">مدت مرخصی</div>
<div class="Rtable-cell column-heading width9">وضعیت موافقت</div>
<div class="Rtable-cell column-heading width10">عملیات</div>
</div>
</div>
<div class="w-100 personal-paid-leave-scroll" id="EmployeesLeaveListIntro">
<!-- this empty div must be initialed for color -->
<div></div>
<!-- this empty div must be initialed for color -->
@foreach (var item in Model.LeaveSearch)
{
<div class="personal-grid-row d-grid gap-2 grid-cols-12 w-100">
<div class="Rtable-row align-items-center col-span-2">
<div class="Rtable-cell width1">
<div class="Rtable-cell--content">
@item.Year
</div>
</div>
<div class="Rtable-cell width2">
<div class="Rtable-cell--content">
@item.MonthStr
</div>
</div>
</div>
<div class="col-span-10 position-relative">
@foreach (var itemLeave in item.LeaveList)
{
<div class="Rtable-row align-items-center w-100 ">
<div class="Rtable-cell width3">
<div class="Rtable-cell--heading">
ردیف
</div>
<label for="@index" class="Rtable-cell--content prevent-select">
<span class="d-flex justify-content-center align-items-center justify-content-between">
<input id="@index" type="checkbox" class="form-check-input foo" name="" value="@itemLeave.Id">
@index
</span>
</label>
@{
index++;
}
</div>
<div class="Rtable-cell width4">
<div class="Rtable-cell--content text-center">
<div>
@{
if (itemLeave.LeaveType == "استحقاقی")
{
<span class="badge badge-paid-leave badge-secondary text-center">
<span>
استحقاقی
</span>
</span>
}
if (itemLeave.LeaveType == "استعلاجی")
{
<span class="badge sick badge-secondary text-center">
<span>
استعلاجی
</span>
</span>
}
}
</div>
</div>
</div>
<div class="Rtable-cell width5">
<div class="Rtable-cell--content">
<div>@itemLeave.StartLeave</div>
</div>
</div>
<div class="Rtable-cell width6">
<div class="Rtable-cell--content">
<div>
@if (itemLeave.PaidLeaveType == "ساعتی")
{
<span>-</span>
}
else
{
<span>@itemLeave.EndLeave</span>
}
</div>
</div>
</div>
<div class="Rtable-cell width7">
<div class="Rtable-cell--content">
<div>
@if (itemLeave.PaidLeaveType == "ساعتی")
{
<span>@itemLeave.StartLeaveGr.ToString("HH:mm")</span> <span>الی</span> <span>@itemLeave.EndLeaveGr.ToString("HH:mm")</span>
}
else
{
<span>-</span>
}
</div>
</div>
</div>
<div class="Rtable-cell width8">
<div class="Rtable-cell--content">
<div>@itemLeave.LeaveHourses</div>
</div>
</div>
<div class="Rtable-cell width9">
<div class="Rtable-cell--content">
<div>
@if (itemLeave.IsAccepted)
{
<span class="badge badge-secondary d-flex align-items-center justify-content-start">
<svg class="me-1" width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2.625" y="2.625" width="11.75" height="11.75" rx="2.5" stroke-width="1.3" stroke="#65A30D" />
<path d="M5.66659 8.5L7.79159 10.625L11.3333 6.375" stroke-width="1.3" stroke="#65A30D" stroke-linecap="round" />
</svg>
<span class="text-clear-md">موافقت</span>
</span>
}
else
{
<span class="badge disagree badge-secondary d-flex align-items-center justify-content-start">
<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2.625" y="2.625" width="11.75" height="11.75" rx="2.5" stroke-width="1.3" stroke="#DC2626" />
<path d="M6.375 6.375L10.625 10.625" stroke="#DC2626" stroke-width="1.3" stroke-linecap="round" />
<path d="M10.625 6.375L6.375 10.625" stroke="#DC2626" stroke-width="1.3" stroke-linecap="round" />
</svg>
<span class="text-clear-md">عدم موافقت</span>
</span>
}
</div>
</div>
</div>
<div class="Rtable-cell width10">
<div class="Rtable-cell--content">
<div class="Rtable-cell--content align-items-center d-flex justify-content-end editButtonFind">
<button type="button" class="btn-print" onclick="printOne(@itemLeave.Id)">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor">
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" />
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" />
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round" />
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round" />
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" />
</svg>
</button>
<button onclick="checkIfValidToEdit(@itemLeave.Id)" data-desktop-leaveid="@itemLeave.Id" class="btn-edit position-relative">
<svg width="20" height="20" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.6027 6.838L5.85304 13.5876C5.84201 13.5987 5.83107 13.6096 5.8202 13.6204C5.65773 13.7825 5.5139 13.9261 5.41254 14.1051C5.31117 14.2841 5.2621 14.4813 5.20667 14.704C5.20296 14.7189 5.19923 14.7339 5.19545 14.7491L4.5813 17.2057C4.57908 17.2145 4.57686 17.2234 4.57462 17.2323C4.53537 17.389 4.49347 17.5564 4.47972 17.6969C4.46458 17.8516 4.46811 18.1127 4.67752 18.3221L5.03035 17.9693L4.67752 18.3221C4.88693 18.5315 5.14799 18.535 5.30272 18.5199C5.44326 18.5062 5.6106 18.4643 5.76728 18.425C5.77622 18.4228 5.78512 18.4205 5.79398 18.4183L8.25057 17.8042C8.26569 17.8004 8.28069 17.7967 8.29558 17.793C8.51832 17.7375 8.71549 17.6885 8.89452 17.5871C9.07356 17.4857 9.21708 17.3419 9.37921 17.1794C9.39005 17.1686 9.40097 17.1576 9.412 17.1466L16.1616 10.397L16.1849 10.3737C16.4983 10.0603 16.7684 9.79025 16.9556 9.54492C17.1562 9.282 17.3081 8.98958 17.3081 8.6292C17.3081 8.26759 17.1541 7.97384 16.9522 7.71001C16.7633 7.46303 16.4905 7.1903 16.1731 6.87292L16.1499 6.84972L16.1267 6.82652C15.8093 6.5091 15.5366 6.23634 15.2896 6.04738C15.0258 5.84553 14.732 5.69156 14.3704 5.69156C14.01 5.69156 13.7176 5.84345 13.4547 6.04405C13.2094 6.23123 12.9393 6.5013 12.6259 6.81474L12.6027 6.838Z" stroke-width="1.5" stroke="#4DA9D1" />
<path d="M11.9939 7.20397L14.8457 5.30273L17.6976 8.15459L15.7964 11.0064L11.9939 7.20397Z" fill="#4DA9D1" />
</svg>
<span class="mx-1">ویرایش</span>
</button>
<form asp-page="./Leave" class="d-flex" asp-page-handler="RemovePaidLeave" autocomplete="off"
method="post"
data-ajax="true"
data-callback=""
data-action="ReloadLeave">
<button type="button" class="btn-delete RemoveLeftWork">
<div style="display: none">
<input type="hidden" asp-for="@itemLeave.Id" id="leaveItemId_@itemLeave.Id" name="id" />
<input type="hidden" asp-for="EmployeeId" />
<input type="hidden" asp-for="WorkshopId" />
<input type="submit" id="sendFinaly_@itemLeave.Id" style="display: none" />
</div>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
<path d="M8.70825 13.2915L8.70825 10.5415" stroke-width="1.5" stroke-linecap="round" />
<path d="M13.2917 13.2915L13.2917 10.5415" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z" stroke-width="1.5" stroke-linecap="round" />
<path d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817" stroke-width="1.5" stroke-linecap="round" />
</svg>
<span class="mx-1">حذف</span>
</button>
</form>
</div>
</div>
</div>
</div>
}
</div>
</div>
}
</div>
</div>
</div>
<!-- End For Desktop View -->
<!-- Start For Mobile View -->
<div class="personal-paid-leave-mobile Rtable Rtable--collapse d-flex d-lg-none">
<div></div>
@foreach (var item in Model.LeaveSearch)
{
<div class="Rtable-row align-items-center position-relative openAction">
<div class="w-100 d-flex align-items-center justify-content-between">
<div class="d-flex justify-content-center align-items-center justify-content-between">
<div class="Rtable-cell--content">
<span class="mx-sm-2">
@item.Year
</span>
</div>
<div class="Rtable-cell--content ">
<span class="mx-sm-2">
@item.MonthStr
</span>
</div>
</div>
<div class="Rtable-cell--content d-flex justify-content-end align-items-center">
<div class="Rtable-cell--heading d-block text-center">
<button class="btn-details" type="button">
<svg width="22" height="22" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.39779 5.55805C9.46429 5.63785 9.56279 5.68398 9.66667 5.68398H10.3333C10.8041 5.68398 11.1396 5.68417 11.4038 5.7022C11.6649 5.72002 11.8307 5.75407 11.9648 5.80958C12.3691 5.97705 12.6903 6.29826 12.8577 6.70256C12.9132 6.83657 12.9473 7.0024 12.9651 7.2635C12.9831 7.52773 12.9833 7.86325 12.9833 8.33398C12.9833 8.80471 12.9831 9.14023 12.9651 9.40447C12.9473 9.66556 12.9132 9.8314 12.8577 9.96541C12.6903 10.3697 12.3691 10.6909 11.9648 10.8584C11.8307 10.9139 11.6649 10.948 11.4038 10.9658C11.1396 10.9838 10.8041 10.984 10.3333 10.984H7.2C6.63417 10.984 6.23085 10.9837 5.9149 10.9579C5.60305 10.9324 5.40726 10.8838 5.25092 10.8041C4.94045 10.646 4.68803 10.3935 4.52984 10.0831C4.45018 9.92672 4.40157 9.73094 4.37609 9.41908C4.35027 9.10313 4.35 8.69981 4.35 8.13398V6.05808C4.35 5.35995 4.35354 5.08568 4.41626 4.8711C4.57419 4.33073 4.99674 3.90818 5.53711 3.75024C5.75169 3.68753 6.02596 3.68398 6.7241 3.68398C7.06744 3.68398 7.20079 3.68501 7.32383 3.70469C7.62934 3.75355 7.91497 3.88733 8.14809 4.09076C8.24197 4.17268 8.32814 4.27446 8.54793 4.53822L9.39779 5.55805Z" stroke="#4DA9D1" stroke-width="0.7" stroke-linejoin="round" />
<path d="M11.3333 10.6673V10.934C11.3333 11.7741 11.3333 12.1941 11.1698 12.515C11.026 12.7972 10.7966 13.0267 10.5143 13.1705C10.1935 13.334 9.77341 13.334 8.93333 13.334H4.4C3.55992 13.334 3.13988 13.334 2.81901 13.1705C2.53677 13.0267 2.3073 12.7972 2.16349 12.515C2 12.1941 2 11.7741 2 10.934V7.73398C2 6.89391 2 6.47387 2.16349 6.153C2.3073 5.87076 2.53677 5.64128 2.81901 5.49747C3.13988 5.33398 3.55992 5.33398 4.4 5.33398H4.66667" stroke="#4DA9D1" stroke-width="0.7" stroke-linejoin="round" />
</svg>
<span>نمایش جزئیات</span>
</button>
</div>
</div>
</div>
</div>
<div class="operation-div w-100">
<div class="operations-btns">
<div class="container-fluid px-0">
<div class="row">
@foreach (var itemLeave in item.LeaveList)
{
<div class="col-12">
<div class="leaveDiv">
<div class="d-flex align-items-center justify-content-between">
<div>نوع مرخصی (@itemLeave.PaidLeaveType)</div>
<div class="">@itemLeave.LeaveType</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>تاریخ شروع</div>
<div class="">@itemLeave.StartLeave</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>تاریخ پایان</div>
<div class="">@itemLeave.EndLeave</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>مدت مرخصی</div>
<div class="">
@if (itemLeave.PaidLeaveType == "ساعتی")
{
<span>@itemLeave.StartLeaveGr.ToString("HH:mm")</span> <span>الی</span> <span>@itemLeave.EndLeaveGr.ToString("HH:mm")</span>
}
else
{
<span>@itemLeave.LeaveHourses</span>
}
</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>وضعیت موافقت</div>
@if (itemLeave.IsAccepted)
{
<div>موافقت</div>
}
else
{
<div>عدم موافقت</div>
}
</div>
<div class="row">
<div class="col-4">
<button type="button" class="btn-print lessThan992" onclick="printOneMobile(@itemLeave.Id)">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor">
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" />
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" />
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round" />
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round" />
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" />
</svg>
<span class="mx-1">پرینت</span>
</button>
</div>
<div class="col-4 editButtonFind">
<button onclick="checkIfValidToEdit(@itemLeave.Id)" data-mobile-leaveid="@itemLeave.Id" class="btn-edit position-relative">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
<path d="M12.0433 6.49955L12.0214 6.52145L5.53808 13.0047C5.52706 13.0158 5.51612 13.0267 5.50525 13.0375C5.34278 13.1996 5.19895 13.3432 5.09758 13.5222L5.5266 13.7651L5.09758 13.5222C4.99622 13.7012 4.94714 13.8984 4.89171 14.1211C4.88801 14.136 4.88427 14.151 4.88049 14.1662L4.30029 16.4869L4.78351 16.6077L4.30029 16.4869C4.29808 16.4958 4.29585 16.5047 4.29361 16.5136C4.25437 16.6703 4.21246 16.8377 4.19871 16.9782C4.18357 17.1329 4.1871 17.394 4.39651 17.6034C4.60592 17.8128 4.86698 17.8163 5.02171 17.8012C5.16225 17.7875 5.32958 17.7456 5.48627 17.7063C5.49521 17.7041 5.50411 17.7018 5.51297 17.6996L7.83376 17.1194C7.84888 17.1156 7.86388 17.1119 7.87878 17.1082C8.10151 17.0528 8.29868 17.0037 8.47772 16.9023C8.65675 16.801 8.80027 16.6571 8.9624 16.4947C8.97324 16.4838 8.98416 16.4729 8.99519 16.4618L15.4785 9.97855L15.5004 9.95666C15.796 9.6611 16.0507 9.40638 16.2296 9.17534C16.4208 8.9284 16.5695 8.65435 16.5843 8.31531C16.5862 8.27179 16.5862 8.22821 16.5843 8.18469C16.5695 7.84565 16.4208 7.5716 16.2296 7.32466C16.0507 7.09362 15.796 6.8389 15.5004 6.54334L15.4785 6.52145L15.4566 6.49954C15.161 6.20396 14.9063 5.94922 14.6753 5.77034C14.4283 5.57917 14.1543 5.43041 13.8152 5.41564C13.7717 5.41374 13.7281 5.41374 13.6846 5.41564C13.3456 5.43041 13.0715 5.57917 12.8246 5.77034C12.5935 5.94922 12.3388 6.20396 12.0433 6.49955Z" />
<path d="M11.4583 6.87484L14.2083 5.0415L16.9583 7.7915L15.1249 10.5415L11.4583 6.87484Z" />
</svg>
<span class="mx-1">ویرایش</span>
</button>
</div>
<div class="col-4">
<form asp-page="./Leave" class="d-flex" asp-page-handler="RemovePaidLeave" autocomplete="off" id="sub"
method="post"
data-ajax="true"
data-callback=""
data-action="ReloadLeave">
<button type="button" class="btn-delete RemoveLeftWork_mobile">
<div style="display: none">
<input type="hidden" asp-for="@itemLeave.Id" id="paymentItemId_mobile_@itemLeave.Id" name="id" />
<input type="hidden" asp-for="EmployeeId" />
<input type="hidden" asp-for="WorkshopId" />
<input type="submit" id="sendFinaly_mobile_@itemLeave.Id" style="display: none" />
</div>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
<path d="M8.70825 13.2915L8.70825 10.5415" stroke-linecap="round" />
<path d="M13.2917 13.2915L13.2917 10.5415" stroke-linecap="round" />
<path d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z" stroke-linecap="round" />
<path d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817" stroke-linecap="round" />
</svg>
<span class="mx-1">حذف</span>
</button>
</form>
</div>
</div>
</div>
<div class="lineMobile mt-3 mb-2"></div>
</div>
}
</div>
</div>
</div>
</div>
}
</div>
<input type="hidden" id="editId" asp-for="@Model.EditId" value="@Model.EditId" />
<!-- End For Mobile View -->
}
else
{
<div class="empty w-100 text-center bg-white d-flex align-items-center justify-content-center">
<div class="">
<img src="~/assetsclient/images/empty.png" alt="" class="img-fluid w-100" />
<h5>اطلاعاتی وجود ندارد.</h5>
</div>
</div>
}
}
else
{
<div id="AllLastList">
<div class="personal-paid-leave-grid d-none d-lg-block">
<div class="Rtable Rtable--5cols Rtable--collapse personal-paid-leave-grid-list">
<div class="Rtable-row Rtable-row--head align-items-center d-grid gap-2 grid-cols-12 sticky-div">
<div class="d-flex col-span-12">
<div class="Rtable-cell column-heading width1">
<span class="d-flex justify-content-start text-white align-items-center">
<input type="checkbox" class="form-check-input checkAll" name="" id="checkAll2">
<label for="checkAll2" class="prevent-select">ردیف</label>
</span>
</div>
<div class="Rtable-cell column-heading width4" style="width: 12%;">نام و نام خانوادگی</div>
<div class="Rtable-cell column-heading width2">سال</div>
<div class="Rtable-cell column-heading width3">ماه</div>
<div class="Rtable-cell column-heading width4 text-center">نوع مرخصی</div>
<div class="Rtable-cell column-heading width5">تاریخ شروع</div>
<div class="Rtable-cell column-heading width6">تاریخ پایان</div>
<div class="Rtable-cell column-heading width7">زمان مرخصی</div>
<div class="Rtable-cell column-heading width8">مدت مرخصی</div>
<div class="Rtable-cell column-heading width9 d-xl-block d-none">وضعیت موافقت</div>
<div class="Rtable-cell column-heading width10">عملیات</div>
</div>
</div>
<div class="w-100 personal-paid-leave-scroll" id="EmployeesLeaveList">
<!-- this empty div must be initialed for color -->
<div></div>
</div>
</div>
</div>
@* mobile *@
<div class="personal-paid-leave-mobile Rtable Rtable--collapse d-flex d-lg-none">
<div class="w-100" id="EmployeesLeaveMobileList">
<div></div>
</div>
</div>
</div>
<div id="AllLastListEmpty">
<div class="empty w-100 text-center bg-white d-flex align-items-center justify-content-center">
<div class="">
<img src="~/assetsclient/images/empty.png" alt="" class="img-fluid w-100" />
<h5>اطلاعاتی وجود ندارد.</h5>
</div>
</div>
</div>
}
</div>
</div>
</div>
<!-- End List Items -->
</div>
<!-- END MAIN CONTENT -->
<!-- Modal From Bottom For Advance Search -->
<div class="modal fade" id="searchModal" tabindex="-1" data-bs-backdrop="static" aria-labelledby="searchModalModalLabel" aria-hidden="true">
<div class="modal-dialog modal-fullscreen">
<div class="modal-content">
<form role="form" method="get" name="search-theme-form2" id="search-theme-form2" autocomplete="off">
<div class="modal-header d-block text-center pb-0">
<div class="iphone-line mx-auto mb-3"></div>
<h5 class="modal-title mb-4 text-start" id="searchModalLabel">جستجوی پیشرفته</h5>
</div>
<input type="hidden" asp-for="WorkshopId" />
<input type="hidden" asp-for="EmployeeId" id="EmployeeIdMobile" />
<div class="modal-body pt-0 mb-3">
<div class="container-fluid search-box">
<div id="overlaySearchAdvance" class=""></div>
<div class="row">
<div class="col-12 text-start mb-4">
<div class="mb-2 employeeSelectMobile">
<select class="form-select select2OptionMobile" aria-label="انتخاب پرسنل ..." asp-for="SearchModel.EmployeeId" id="employeeSelectMobile">
<option value="">ابتدا کارگاه را انتخاب کنید ...</option>
</select>
</div>
<div class="mb-2">
<select class="form-select" asp-for="SearchModel.LeaveType">
<option value="both" selected>هر دو</option>
<option value="paidLeave">استحقاقی</option>
<option value="sickLeave">استعلاجی</option>
</select>
</div>
<div>
<span class="form-control text-center persianDateInputStartDate" id="start-date">تاریخ شروع</span>
<input type="hidden" class="form-control date start-date" asp-for="SearchModel.StartLeave" placeholder="تاریخ شروع">
</div>
<div>
<span class="form-control text-center persianDateInputEndDate" id="end-date">تاریخ پایان</span>
<input type="hidden" class="form-control date end-date" asp-for="SearchModel.EndLeave" placeholder="تاریخ پایان">
</div>
</div>
<div class="col-12 text-start">
<p class="mb-3">جستجو بر اساس سال و ماه</p>
<div class="row">
<div class="col-6">
<div class="form-group">
<span class="form-control text-center persianDateInputYear" id="yearText">
@{
if (Model.Year == 0)
{
<span>سال</span>
}
else
{
@Model.SearchModel.Year
}
}
</span>
<input type="hidden" class="form-control" asp-for="SearchModel.Year" value="@Model.SearchModel.Year" id="yearModal" maxlength="4" />
@* <span asp-validation-for="DateOfYear" class="error"></span> *@
</div>
</div>
<div class="col-6">
<div class="form-group">
<span class="form-control text-center persianDateInputMonth" id="monthText">
@{
if (Model.Month == 0)
{
<span>ماه</span>
}
else
{
@switch (@Model.SearchModel.Month)
{
case 01:
<span>فروردین</span>
break;
case 02:
<span>اردیبهشت</span>
break;
case 03:
<span>خرداد</span>
break;
case 04:
<span>تیر</span>
break;
case 05:
<span>مرداد</span>
break;
case 06:
<span>شهریور</span>
break;
case 07:
<span>مهر</span>
break;
case 08:
<span>آبان</span>
break;
case 09:
<span>آذر</span>
break;
case 10:
<span>دی</span>
break;
case 11:
<span>بهمن</span>
break;
case 12:
<span>اسفند</span>
break;
default:
<span>ماه</span>
break;
}
}
}
</span>
<input type="hidden" class="form-control" asp-for="SearchModel.Month" value="@Model.SearchModel.Month" id="monthModal" />
@* <span asp-validation-for="DateOfMonth" class="error"></span> *@
</div>
</div>
<div class="col-12">
<a asp-page="/Company/Employees/Leave" class="btn-clear-filter py-2 text-center d-block w-100 mt-2 disable" id="filterRemove">
<span class="w-100">حذف جستجو</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer justify-content-center align-items-center">
<div class="container-fluid">
<div class="row">
<div class="col-6 text-end">
<button type="button" class="btn-cancel w-100" data-bs-dismiss="modal">بستن</button>
</div>
<div class="col-6 text-start">
<button type="submit" class="btn-search btn-search-click w-100">جستجو</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- End Modal From Bottom For Advance Search -->
<!-- مودال مربوط به مرخصی -->
<!-- Modal Moraghasi Estehghaghi -->
@* <div class="modal fade" id="morakhasiEstehghaghiModal" tabindex="-1" data-bs-backdrop="static" aria-labelledby="morakhasiEstehghaghiModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-centered">
</div>
</div> *@
<!-- End Modal Moraghasi Estelaji -->
<!-- مودال مربوط به مرخصی استعلاجی -->
<div id="MainModal" class="modal fade personalListModal" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content" id="ModalContent">
</div>
</div>
</div>
<input type="hidden" asp-for="@Model.IsEmployeeActive" id="IsEmployeeActive" />
<input type="hidden" id="pageIndex" value="0" />
@section Script {
<script src="~/assetsclient/js/site.js?ver=@Version.StyleVersion"></script>
<script src="~/AdminTheme/assets/sweet-alert/sweet-alert.min.js"></script>
<script src="~/AdminTheme/assets/sweet-alert/sweet-alert.init.js"></script>
<script src="~/AssetsClient/js/dropdown.js?ver=@Version.StyleVersion"></script>
<script src="~/assetsclient/js/smooth-scrollbar.js"></script>
<script>
$(document).ready(function () {
var IsEmployeeActive = $('#IsEmployeeActive').val();
if (IsEmployeeActive === "False") {
// لود شدن ajax در صورتی که کاربر انتخاب نشده باشد
ajaxDataWithoutEmployee();
}
var filterEmployeeId = $('#EmployeeIdSearch').val();
var filterYear = $('#year').val();
var filterMonth = $('#month').val();
var filterStart = $('#start').val();
var filterEnd = $('#end').val();
var filterLeaveType = $('#leaveType').val();
if ( filterYear != 0 || filterMonth != 0 || filterStart != '' || filterEnd != '' || filterLeaveType != '' || filterEmployeeId != 0) {
$('.btn-clear-filter').removeClass('disable');
} else {
$('.btn-clear-filter').addClass('disable');
}
//******************** اسکرول سال ********************
var Scrollbar = window.Scrollbar;
Scrollbar.init(document.querySelector('#my-scrollbar'), {
alwaysShowTracks: true,
});
//******************** اسکرول سال ********************
var editId = $('#editId').val();
if (editId > 0) {
if ($(window).width() > 768) {
var editButton = $(".editButtonFind").find("[data-desktop-leaveid='" + editId + "']");
editButton.click();
}
if ($(window).width() < 768) {
var editButton = $(".editButtonFind").find("[data-mobile-leaveid='" + editId + "']");
editButton.click();
}
}
$(document).on('click', ".openAction", function () {
$(this).next().find(".operations-btns").slideToggle(500);
$(".operations-btns").not($(this).next().find(".operations-btns")).slideUp(500);
});
//******************** انتخاب همه ی چک باکس ها ********************
$(".checkAll").change(function () {
let dataValYear = Number($('#year').val());
let dataValMonth = Number($('#month').val());
// if (dataValYear == 0 || dataValMonth == 0) {
// $('#SearchModel_Year').addClass("errored");
// $('#SearchModel_Month').addClass("errored");
// $(this).prop('checked', false);
// $('.alert-msg').show();
// $('.alert-msg p').text('جهت انتخاب گروهی مرخصی ها ابتدا میبایست سال و ماه مورد نظر را انتخاب نمائید.');
// setTimeout(function () {
// $('.alert-msg').hide();
// $('.alert-msg p').text('');
// $('#SearchModel_Year').removeClass("errored");
// $('#SearchModel_Month').removeClass("errored");
// }, 3500);
// } else {
$('input:checkbox').not(this).prop('checked', this.checked);
// }
});
//******************** انتخاب همه ی چک باکس ها ********************
//******************** برای نوشتن تاریخ ********************
// $(".date").mask("0000/00/00");
$(".date").on('input', function () {
var value = $(this).val();
$(this).val(convertPersianNumbersToEnglish(value));
}).mask("0000/00/00");
$(".date").keyup(function () {
let value = $(this).val();
let lengthValue = value.length;
if (lengthValue == 10) {
if (!dateValidcheck(this)) {
$(this).addClass("errored");
} else {
$(this).removeClass("errored");
}
} else if (lengthValue == 0) {
$(this).removeClass("errored");
}
});
//******************** برای نوشتن تاریخ ********************
// *************************** مربوط به جستجو در دسکتاپ ********************************
const selectedAll = document.querySelectorAll(".wrapper-dropdown");
var wrapperDropdown = $(".wrapper-dropdown");
$(document).ready(function () {
wrapperDropdown.on("click", function () {
var dropdown = $(this);
var optionsContainer = dropdown.children(".dropdown");
var optionsList = optionsContainer.find(".item");
dropdown.toggleClass("active");
if (dropdown.hasClass("active")) {
wrapperDropdown.not(this).removeClass("active");
}
optionsList.on("click", function () {
var selectedOption = $(this);
var valueData = selectedOption.data("value");
dropdown.removeClass("active");
dropdown.find(".selected-display").text(selectedOption.text());
$("#sendSorting").val(valueData);
optionsList.removeClass("active");
selectedOption.addClass("active");
});
});
var defaultValue = $("#sendSorting").val();
if (defaultValue) {
let defaultItem = $(".dropdown").find(".item[value-data='" + defaultValue + "']");
defaultItem.addClass("active");
var selectedDisplay = wrapperDropdown.find(".selected-display");
selectedDisplay.text(defaultItem.text());
}
});
$('.dropdown .item').on("click", function () {
let dataVal = $(this).attr("value-data");
$('#sendSorting').val(dataVal);
$('#sendSorting').val(dataVal);
//$('#dropdown').removeClass('active');
// $('#searchBtn').click();
});
$('.dropdown-normal .item').on("click", function () {
let dataVal = $(this).attr("value-data-normal");
$('#sendSorting').val(dataVal);
});
$('.dropdown-year .item').on("click", function () {
let dataVal = $(this).attr("value-data-year");
$('#sendDropdownYear').val(dataVal);
});
$('.dropdown-month .item').on("click", function () {
let dataVal = $(this).attr("value-data-month");
$('#sendDropdownMonth').val(dataVal);
});
var sendDropdownNormal = $("#sendSorting").val();
if (sendDropdownNormal) {
let itemDropdownNormal = $(".dropdown-normal").find(".item[value-data-normal='" + sendDropdownNormal + "']");
itemDropdownNormal.addClass("active");
var selectedNormalDisplay = $(".wrapper-dropdown-normal").find(".selected-display");
selectedNormalDisplay.text(itemDropdownNormal.text());
}
var sendDropdownYear = $("#sendDropdownYear").val();
if (sendDropdownYear) {
let itemDropdownYear = $(".dropdown-year").find(".item[value-data-year='" + sendDropdownYear + "']");
itemDropdownYear.addClass("active");
var selectedYearDisplay = $(".wrapper-dropdown-year").find(".selected-display");
selectedYearDisplay.text(itemDropdownYear.text());
}
var sendDropdownMonth = $("#sendDropdownMonth").val();
if (sendDropdownMonth) {
let itemDropdownMonth = $(".dropdown-month").find(".item[value-data-month='" + sendDropdownMonth + "']");
itemDropdownMonth.addClass("active");
var selectedMonthDisplay = $(".wrapper-dropdown-month").find(".selected-display");
selectedMonthDisplay.text(itemDropdownMonth.text());
}
// check if anything else ofther than the dropdown is clicked
window.addEventListener("click", function (e) {
if (e.target.closest(".wrapper-dropdown") === null) {
closeAllDropdowns();
}
});
// close all the dropdowns
function closeAllDropdowns() {
const selectedAll = document.querySelectorAll(".wrapper-dropdown");
selectedAll.forEach((selected) => {
const optionsContainer = selected.children[2];
let arrow = selected.children[1];
handleDropdown(selected, arrow, false);
});
}
// open all the dropdowns
function handleDropdown(dropdown, arrow, open) {
if (open) {
arrow.classList.add("rotated");
dropdown.classList.add("active");
} else {
arrow.classList.remove("rotated");
dropdown.classList.remove("active");
}
}
// *************************** مربوط به جستجو در دسکتاپ ********************************
//******************** فیلتر کردن برای جستجو ********************
$(document).on('click', '.btn-search-click', function () {
$('#filterRemove').show();
});
$(document).on('click', '.btn-view-all', function () {
$(this).hide();
$('.search-box input').val('');
$('.search-box .form-select').val(null);
$('#yearText').text('سال');
$('#monthText').text('ماه');
middleYearIndex = 2;
selectedMonth = 1;
});
//******************** فیلتر کردن برای جستجو ********************
//******************** برای حذف مرخصی ********************
$('.RemoveLeftWork').on("click", function () {
var id = $(this).closest("div").find("input[name='id']").val();
var btnId = "#sendFinaly_" + id;
swal({
title: "آیا حذف این سابقه مرخصی اطمینان دارید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
if (isConfirm) {
$(btnId).click();
}
});
});
//******************** برای حذف مرخصی ********************
//******************** برای حذف مرخصی در موبایل********************
$('.RemoveLeftWork_mobile').on("click", function () {
var id = $(this).closest("div").find("input[name='id']").val();
var btnId = "#sendFinaly_mobile_" + id;
swal({
title: "آیا حذف این سابقه مرخصی اطمینان دارید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
if (isConfirm) {
$(btnId).click();
}
});
});
//******************** برای حذف مرخصی در موبایل********************
//******************** برای تاریک و محو کردن بکگراند مربوط به انتخاب تاریخ سال و ماه ********************
$("#overlaySearchAdvance").click(function () {
$('#overlaySearchAdvance').toggleClass("overlaySearchAdvance");
$('.datepicker-container-year').remove();
$('.datepicker-container-month').remove();
});
//******************** برای تاریک و محو کردن بکگراند مربوط به انتخاب تاریخ سال و ماه ********************
//******************** نمایش سال و ماه در موبایل ********************
if ($(window).width() < 768) {
var middleYearIndex = 2;
var selectedMonth = 2;
//************* Year *************
$('.persianDateInputYear').on('click',
function () {
$('#overlaySearchAdvance').addClass("overlaySearchAdvance");
var datepicker = $(this);
if ($(this).parent().find('.datepicker-container-year').length) {
return false;
} else {
$(this).parent().append(`
<div class="datepicker-container-year">
<div class="datepicker-container-date-div">
<div class="date-container">
<div id="years" class="scrollable-container"></div>
</div>
<div class="d-flex justify-content-around">
<button type="button" class="btn-secondary" id="cancelYear" style="width:100px; font-size: 11px;">انصراف</button>
<button type="button" class="btn-primary" id="confirmYear" style="width:100px; font-size: 11px;">تائید</button>
</div>
</div>
</div>
`);
}
var datepickerContainer = $(this).parent().find('.datepicker-container-year');
var years = datepickerContainer.find('#years');
// datepickerContainer.width(datepicker.outerWidth());
var middleYearIndexArray = [];
let yearlyList = [];
yearlyList.push({ year: 1368 });
yearlyList.push({ year: 1369 });
@foreach (var items in Model.YearlyList.OrderBy(x => x))
{
@:yearlyList.push({ year: Number(@items) });
}
var yearIndex = yearlyList.length;
yearIndex = yearIndex - 1;
var no3 = yearlyList[yearIndex].year + 1;
var no4 = yearlyList[yearIndex].year + 2;
yearlyList.push({ year: no3 });
yearlyList.push({ year: no4 });
var i = 0;
for (var j = yearlyList[yearIndex + 2].year; j >= 1368; j--) {
let y = { index: i, value: j };
middleYearIndexArray.push(j);
i++;
var formattedNumber = String(j).padStart(2, '0');
if (j == no3 || j == no4) {
years.append($('<span>').text('-').css('visibility', 'hidden'));
} else if (j == 1368 || j == 1369) {
years.append($('<span>').text(formattedNumber).css('visibility', 'hidden'));
} else {
years.append($('<span>').text(formattedNumber));
}
// var middleYearIndex = Math.floor(years.children('span').length / 2) - 2;
years.children('span').eq(middleYearIndex).addClass('chosen-date');
var containerHeightYear = years.height();
var optionHeightYear = years.children('span').outerHeight();
var scrollOffsetYear = optionHeightYear * middleYearIndex;
years.scrollTop(scrollOffsetYear - containerHeightYear / 2);
}
// datepickerContainer.addClass("date-container");
var selectedYear = yearlyList[yearIndex].year;
var yearsScrollTop;
var scrollTimeout;
// Scroll event listener
datepickerContainer.find('.scrollable-container').on('scroll',
function () {
var optionHeightYear = years.children('span').outerHeight();
// var scrollTopYear = years.scrollTop() + (optionHeightYear * 2);
var scrollTopYear = Math.round((years.scrollTop() + (optionHeightYear * 2)) / 10) * 10;
var selectedIndexYear = Math.round(scrollTopYear / optionHeightYear);
years.children('span').removeClass('chosen-date');
years.children('span').eq(selectedIndexYear).addClass('chosen-date');
yearsScrollTop = years.scrollTop();
var selectedValueYear = years.children('span').eq(selectedIndexYear).text();
clearTimeout(scrollTimeout);
scrollTimeout = setTimeout(function () {
var scrollTopYearRounded = customRound(yearsScrollTop);
if (yearsScrollTop !== scrollTopYearRounded) {
years.scrollTop(scrollTopYearRounded);
}
},
250);
var containerId = $(this).attr('id');
if (containerId === 'years') {
selectedYear = selectedValueYear;
index = middleYearIndexArray.indexOf(Number(selectedValueYear));
middleYearIndex = index;
}
if (selectedYear) {
var formattedDate = selectedYear;
datepicker.val(formattedDate);
$('#yearModal').val(formattedDate);
$('#yearText').text(selectedYear);
}
});
$(document).on('click',
'#confirmYear',
function (event) {
$('#yearModal').val(selectedYear);
$('#yearText').text(selectedYear);
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
$(document).on('click',
'#cancelYear',
function (event) {
$('#yearModal').val('');
$('#yearText').text('سال');
middleYearIndex = 2;
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
$(document).on('click',
'.chosen-date',
function () {
// if (selectedYear == 0) {
// $('#yearModal').val($(this).text());
// console.log(selectedYear)
// $('#yearText').text($(this).text());
// } else {
$('#yearModal').val(selectedYear);
$('#yearText').text(selectedYear);
// }
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
datepickerContainer.remove();
});
});
//************* End Year *************
//************* Month *************
$('.persianDateInputMonth').on('click',
function () {
$('#overlaySearchAdvance').addClass("overlaySearchAdvance");
var datepicker = $(this);
if ($(this).parent().find('.datepicker-container-month').length) {
return false;
} else {
$(this).parent().append(`
<div class="datepicker-container-month">
<div class="datepicker-container-date-div">
<div class="date-container">
<div id="months" class="scrollable-container"></div>
</div>
<div class="d-flex justify-content-around">
<button type="button" class="btn-secondary" id="cancelMonth" style="width:100px; font-size: 11px;">انصراف</button>
<button type="button" class="btn-primary" id="confirmMonth" style="width:100px; font-size: 11px;">تائید</button>
</div>
</div>
</div>
`);
if ($(this).val() != '') {
let number = selectedMonth + 1;
var middleMonthIndex = number;
}
}
var datepickerContainer = $(this).parent().find('.datepicker-container-month');
var months = datepickerContainer.find('#months');
// Populate months
var monthNames = ['-', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند', '-'];
for (var j = 0; j < 14; j++) {
var monthIndex = j;
// var monthIndex = (j * 12) % 12;
// var monthIndex = (j + i * 12) % 12;
var monthName = monthNames[j];
if (j == 0) {
months.append($('<span>').text('-').css('visibility', 'hidden'));
months.append($('<span>').text('-').css('visibility', 'hidden'));
} else if (j == 13) {
months.append($('<span>').text('-').css('visibility', 'hidden'));
months.append($('<span>').text('-').css('visibility', 'hidden'));
} else {
months.append($('<span>').text(monthName));
}
// var middleMonthIndex = selectedMonth;
// var middleMonthIndex = Math.floor(months.children('span').length / 2) - 17;
months.children('span').eq(selectedMonth).addClass('chosen-date');
var containerHeightMonth = months.height();
var optionHeightMonth = months.children('span').outerHeight();
var scrollOffsetMonth = optionHeightMonth * middleMonthIndex;
months.scrollTop(scrollOffsetMonth - containerHeightMonth / 2);
}
var selectedMonthValue = "01";
var selectedNumber = 2;
var selectedMonthText = "فروردین";
var monthScrollTop;
var scrollTimeout;
// Scroll event listener
datepickerContainer.find('.scrollable-container').on('scroll',
function () {
var optionHeightMonth = months.children('span').outerHeight();
var scrollTopMonth = Math.round((months.scrollTop() + (optionHeightMonth * 2)) / 10) * 10;
var selectedIndexMonth = Math.round(scrollTopMonth / optionHeightMonth);
months.children('span').removeClass('chosen-date');
months.children('span').eq(selectedIndexMonth).addClass('chosen-date');
monthScrollTop = months.scrollTop();
var selectedValueMonth = months.children('span').eq(selectedIndexMonth).text();
clearTimeout(scrollTimeout);
scrollTimeout = setTimeout(function () {
var scrollTopMonthRounded = customRound(monthScrollTop);
if (monthScrollTop !== scrollTopMonthRounded) {
months.scrollTop(scrollTopMonthRounded);
}
},
250);
var containerId = $(this).attr('id');
if (containerId === 'months') {
if (selectedValueMonth === 'فروردین') {
selectedMonthValue = '01';
selectedNumber = 1;
selectedMonthText = "فروردین";
} else if (selectedValueMonth === 'اردیبهشت') {
selectedMonthValue = '02';
selectedNumber = 2;
selectedMonthText = "اردیبهشت";
} else if (selectedValueMonth === 'خرداد') {
selectedMonthValue = '03';
selectedNumber = 3;
selectedMonthText = "خرداد";
} else if (selectedValueMonth === 'تیر') {
selectedMonthValue = '04';
selectedNumber = 4;
selectedMonthText = "تیر";
} else if (selectedValueMonth === 'مرداد') {
selectedMonthValue = '05';
selectedNumber = 5;
selectedMonthText = "مرداد";
} else if (selectedValueMonth === 'شهریور') {
selectedMonthValue = '06';
selectedNumber = 6;
selectedMonthText = "شهریور";
} else if (selectedValueMonth === 'مهر') {
selectedMonthValue = '07';
selectedNumber = 7;
selectedMonthText = "مهر";
} else if (selectedValueMonth === 'آبان') {
selectedMonthValue = '08';
selectedNumber = 8;
selectedMonthText = "آبان";
} else if (selectedValueMonth === 'آذر') {
selectedMonthValue = '09';
selectedNumber = 9;
selectedMonthText = "آذر";
} else if (selectedValueMonth === 'دی') {
selectedMonthValue = '10';
selectedNumber = 10;
selectedMonthText = "دی";
} else if (selectedValueMonth === 'بهمن') {
selectedMonthValue = '11';
selectedNumber = 11;
selectedMonthText = "بهمن";
} else if (selectedValueMonth === 'اسفند') {
selectedMonthValue = '12';
selectedNumber = 12;
selectedMonthText = "اسفند";
}
}
if (selectedMonthValue) {
var formattedDate = selectedMonthValue;
datepicker.val(formattedDate);
$('#monthModal').val(formattedDate);
$('#monthText').text(selectedMonthText);
selectedMonth = selectedNumber;
}
});
$(document).on('click',
'#confirmMonth',
function (event) {
$('#monthModal').val(selectedMonthValue);
$('#monthText').text(selectedMonthText);
selectedMonth = selectedNumber;
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
$(document).on('click',
'#cancelMonth',
function (event) {
$('#monthModal').val('');
$('#monthText').text('ماه');
selectedMonth = 2;
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
$(document).on('click',
'.chosen-date',
function () {
$('#monthModal').val(selectedMonthValue);
$('#monthText').text(selectedMonthText);
selectedMonth = selectedNumber;
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
datepickerContainer.remove();
});
});
//************* End Month *************
//Pixel of height for Span in date
//For example: datepicker-container-date .years span
function customRound(number) {
var roundedNumber = Math.round(number);
var remainder = roundedNumber % 60; //60px
if (remainder <= 10) {
return roundedNumber - remainder;
} else {
return roundedNumber + (60 - remainder);
}
}
}
//******************** نمایش سال و ماه در موبایل ********************
//******************** نمایش تاریخ در موبایل ********************
if ($(window).width() < 768) {
// display text
var SearchModel_StartLeave = $("#SearchModel_StartLeave").val();
if (SearchModel_StartLeave != '') {
$("#start-date").text(SearchModel_StartLeave)
}
var SearchModel_EndLeave = $("#SearchModel_EndLeave").val();
if (SearchModel_EndLeave != '') {
$("#end-date").text(SearchModel_EndLeave)
}
// Input Start Date
var middleYearIndexDateStart = 2;
var selectedMonthDateStart = 2;
var middleDayIndexStart = 2;
$('.persianDateInputStartDate').on('click',
function () {
$('#overlaySearchAdvance').addClass("overlaySearchAdvance");
var datepicker = $(this);
if ($(this).parent().find('.datepicker-container-date').length) {
return false;
} else {
$(this).parent().append(`
<div class="datepicker-container-date">
<div class="datepicker-container-date-div">
<div class="date-container">
<div id="yearsValue" class="years scrollable-container"></div>
<div id="monthsValue" class="months scrollable-container"></div>
<div id="daysValue" class="days scrollable-container"></div>
</div>
<div class="d-flex justify-content-around">
<button type="button" class="btn-secondary" id="cancelDateStart" style="width:100px; font-size: 11px;">انصراف</button>
<button type="button" class="btn-primary" id="confirmDateStart" style="width:100px; font-size: 11px;">تائید</button>
</div>
</div>
</div>
`);
if ($(this).val() != '') {
let number = selectedMonthDateStart + 1;
var middleMonthIndex = number;
}
}
var datepickerContainer = $(this).parent().find('.datepicker-container-date');
var years = datepickerContainer.find('.years');
var months = datepickerContainer.find('.months');
var days = datepickerContainer.find('.days');
// datepickerContainer.width(datepicker.outerWidth());
// Populate years, months, and days
var middleYearIndexArray = [];
let yearlyList = [];
yearlyList.push({ year: 1368 });
yearlyList.push({ year: 1369 });
@foreach (var items in Model.YearlyList.OrderBy(x => x))
{
@:yearlyList.push({ year: Number(@items) });
}
var yearIndex = yearlyList.length;
yearIndex = yearIndex - 1;
var no3 = yearlyList[yearIndex].year + 1;
var no4 = yearlyList[yearIndex].year + 2;
yearlyList.push({ year: no3 });
yearlyList.push({ year: no4 });
var i = 0;
for (var j = yearlyList[yearIndex + 2].year; j >= 1368; j--) {
let y = { index: i, value: j };
middleYearIndexArray.push(j);
i++;
var formattedNumber = String(j).padStart(2, '0');
if (j == no3 || j == no4) {
years.append($('<span>').text('-').css('visibility', 'hidden'));
} else if (j == 1368 || j == 1369) {
years.append($('<span>').text(formattedNumber).css('visibility', 'hidden'));
} else {
years.append($('<span>').text(formattedNumber));
}
years.children('span').eq(middleYearIndexDateStart).addClass('chosen-date');
var containerHeightYear = years.height();
var optionHeightYear = years.children('span').outerHeight();
var scrollOffsetYear = optionHeightYear * middleYearIndexDateStart;
years.scrollTop(scrollOffsetYear - containerHeightYear / 2);
}
var monthNames = ['-', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند', '-'];
for (var j = 0; j < 14; j++) {
var monthIndex = j;
// var monthIndex = (j * 12) % 12;
// var monthIndex = (j + i * 12) % 12;
var monthName = monthNames[j];
if (j == 0) {
months.append($('<span>').text('-').css('visibility', 'hidden'));
months.append($('<span>').text('-').css('visibility', 'hidden'));
} else if (j == 13) {
months.append($('<span>').text('-').css('visibility', 'hidden'));
months.append($('<span>').text('-').css('visibility', 'hidden'));
} else {
months.append($('<span>').text(monthName));
}
var containerHeightMonth = months.height();
var optionHeightMonth = months.children('span').outerHeight();
var scrollOffsetMonth = optionHeightMonth * middleMonthIndex;
months.scrollTop(scrollOffsetMonth - containerHeightMonth / 2);
}
for (var d = 1; d <= 31; d++) {
var formattedNumber = String(d).padStart(2, '0');
if (d == 1) {
days.append($('<span>').text('-').css('visibility', 'hidden'));
days.append($('<span>').text('-').css('visibility', 'hidden'));
days.append($('<span>').text(formattedNumber));
} else if (d == 31) {
days.append($('<span>').text(formattedNumber));
days.append($('<span>').text('-').css('visibility', 'hidden'));
days.append($('<span>').text('-').css('visibility', 'hidden'));
} else {
days.append($('<span>').text(formattedNumber));
}
// var middleDayIndex = Math.floor(days.children('span').length / 2) - 45;
var containerHeightDay = days.height();
var optionHeightDay = days.children('span').outerHeight();
var scrollOffsetDay = optionHeightDay * middleDayIndexStart;
days.scrollTop(scrollOffsetDay - containerHeightDay / 2);
}
var selectedYear = yearlyList[yearIndex].year;
var selectedMonth = "01";
var selectedNumberMonth = 1;
var selectedDay = "01";
var yearsScrollTop;
var monthScrollTop;
var dayScrollTop;
var scrollTimeout;
var formattedDate;
// Scroll event listener
datepickerContainer.find('.scrollable-container').on('scroll',
function () {
var optionHeightYear = years.children('span').outerHeight();
var scrollTopYear = years.scrollTop() + (optionHeightYear * 2);
var selectedIndexYear = Math.round(scrollTopYear / optionHeightYear);
yearsScrollTop = years.scrollTop();
years.children('span').removeClass('chosen-date');
years.children('span').eq(selectedIndexYear).addClass('chosen-date');
var selectedValueYear = years.children('span').eq(selectedIndexYear).text();
var optionHeightMonth = months.children('span').outerHeight();
var scrollTopMonth = Math.round((months.scrollTop() + (optionHeightMonth * 2)) / 10) * 10;
var selectedIndexMonth = Math.round(scrollTopMonth / optionHeightMonth);
months.children('span').removeClass('chosen-date');
months.children('span').eq(selectedIndexMonth).addClass('chosen-date');
monthScrollTop = months.scrollTop();
var selectedValueMonth = months.children('span').eq(selectedIndexMonth).text();
var optionHeightDay = days.children('span').outerHeight();
var scrollTopDay = days.scrollTop() + (optionHeightDay * 2);
var selectedIndexDay = Math.round(scrollTopDay / optionHeightDay);
dayScrollTop = days.scrollTop();
days.children('span').removeClass('chosen-date');
days.children('span').eq(selectedIndexDay).addClass('chosen-date');
var selectedValueDay = days.children('span').eq(selectedIndexDay).text();
clearTimeout(scrollTimeout);
scrollTimeout = setTimeout(function () {
var scrollTopYearRounded = customRound(yearsScrollTop);
var scrollTopMonthRounded = customRound(monthScrollTop);
var scrollTopDayRounded = customRound(dayScrollTop);
if (yearsScrollTop !== scrollTopYearRounded) {
years.scrollTop(scrollTopYearRounded);
}
if (monthScrollTop !== scrollTopMonthRounded) {
months.scrollTop(scrollTopMonthRounded);
}
if (dayScrollTop !== scrollTopDayRounded) {
days.scrollTop(scrollTopDayRounded);
}
},
250);
var containerId = $(this).attr('id');
if (containerId === 'yearsValue') {
selectedYear = selectedValueYear;
index = middleYearIndexArray.indexOf(Number(selectedValueYear));
middleYearIndexDateStart = index;
} else if (containerId === 'monthsValue') {
if (selectedValueMonth === 'فروردین') {
selectedMonth = '01';
selectedNumberMonth = 1;
} else if (selectedValueMonth === 'اردیبهشت') {
selectedMonth = '02';
selectedNumberMonth = 2;
} else if (selectedValueMonth === 'خرداد') {
selectedMonth = '03';
selectedNumberMonth = 3;
} else if (selectedValueMonth === 'تیر') {
selectedMonth = '04';
selectedNumberMonth = 4;
} else if (selectedValueMonth === 'مرداد') {
selectedMonth = '05';
selectedNumberMonth = 5;
} else if (selectedValueMonth === 'شهریور') {
selectedMonth = '06';
selectedNumberMonth = 6;
} else if (selectedValueMonth === 'مهر') {
selectedMonth = '07';
selectedNumberMonth = 7;
} else if (selectedValueMonth === 'آبان') {
selectedMonth = '08';
selectedNumberMonth = 8;
} else if (selectedValueMonth === 'آذر') {
selectedMonth = '09';
selectedNumberMonth = 9;
} else if (selectedValueMonth === 'دی') {
selectedMonth = '10';
selectedNumberMonth = 10;
} else if (selectedValueMonth === 'بهمن') {
selectedMonth = '11';
selectedNumberMonth = 11;
} else if (selectedValueMonth === 'اسفند') {
selectedMonth = '12';
selectedNumberMonth = 12;
}
} else if (containerId === 'daysValue') {
selectedDay = selectedValueDay;
middleDayIndexStart = parseInt(selectedValueDay) + 1;
}
selectedMonthDateStart = selectedNumberMonth;
formattedDate = selectedYear + '/' + selectedMonth + '/' + selectedDay;
datepicker.val(formattedDate);
});
$(document).on('click',
'#overlaySearchAdvance',
function () {
datepickerContainer.remove();
});
$(document).on('click',
'.chosen-date',
function () {
$('#start-date').text(formattedDate);
$('.start-date').val(formattedDate);
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
datepickerContainer.remove();
});
$(document).on('click',
'#confirmDateStart',
function (event) {
$(this).parents().eq(2).find('.persianDateInput').val(formattedDate);
$('#start-date').text(formattedDate);
$('.start-date').val(formattedDate);
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
$(document).on('click',
'#cancelDateStart',
function (event) {
// $(this).parents().eq(3).find('.persianDateInputStartDate').val('');
$('#start-date').text('تاریخ شروع');
$('.start-date').val('');
middleYearIndexDateStart = 2;
selectedMonthDateStart = 2;
middleDayIndexStart = 2;
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
});
// Input End Date
var middleYearIndexDateEnd = 2;
var selectedMonthDateEnd = 2;
var middleDayIndexEnd = 2;
$('.persianDateInputEndDate').on('click',
function () {
$('#overlaySearchAdvance').addClass("overlaySearchAdvance");
var datepicker = $(this);
if ($(this).parent().find('.datepicker-container-date').length) {
return false;
} else {
$(this).parent().append(`
<div class="datepicker-container-date">
<div class="datepicker-container-date-div">
<div class="date-container">
<div id="yearsValue" class="years scrollable-container"></div>
<div id="monthsValue" class="months scrollable-container"></div>
<div id="daysValue" class="days scrollable-container"></div>
</div>
<div class="d-flex justify-content-around">
<button type="button" class="btn-secondary" id="cancelDateEnd" style="width:100px; font-size: 11px;">انصراف</button>
<button type="button" class="btn-primary" id="confirmDateEnd" style="width:100px; font-size: 11px;">تائید</button>
</div>
</div>
</div>
`);
if ($(this).val() != '') {
let number = selectedMonthDateEnd + 1;
var middleMonthIndex = number;
}
}
var datepickerContainer = $(this).parent().find('.datepicker-container-date');
var years = datepickerContainer.find('.years');
var months = datepickerContainer.find('.months');
var days = datepickerContainer.find('.days');
// datepickerContainer.width(datepicker.outerWidth());
// Populate years, months, and days
var middleYearIndexArray = [];
let yearlyList = [];
yearlyList.push({ year: 1368 });
yearlyList.push({ year: 1369 });
@foreach (var items in Model.YearlyList.OrderBy(x => x))
{
@:yearlyList.push({ year: Number(@items) });
}
var yearIndex = yearlyList.length;
yearIndex = yearIndex - 1;
var no3 = yearlyList[yearIndex].year + 1;
var no4 = yearlyList[yearIndex].year + 2;
yearlyList.push({ year: no3 });
yearlyList.push({ year: no4 });
var i = 0;
for (var j = yearlyList[yearIndex + 2].year; j >= 1368; j--) {
let y = { index: i, value: j };
middleYearIndexArray.push(j);
i++;
var formattedNumber = String(j).padStart(2, '0');
if (j == no3 || j == no4) {
years.append($('<span>').text('-').css('visibility', 'hidden'));
} else if (j == 1368 || j == 1369) {
years.append($('<span>').text(formattedNumber).css('visibility', 'hidden'));
} else {
years.append($('<span>').text(formattedNumber));
}
years.children('span').eq(middleYearIndexDateEnd).addClass('chosen-date');
var containerHeightYear = years.height();
var optionHeightYear = years.children('span').outerHeight();
var scrollOffsetYear = optionHeightYear * middleYearIndexDateEnd;
years.scrollTop(scrollOffsetYear - containerHeightYear / 2);
}
var monthNames = ['-', 'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند', '-'];
for (var j = 0; j < 14; j++) {
var monthIndex = j;
// var monthIndex = (j * 12) % 12;
// var monthIndex = (j + i * 12) % 12;
var monthName = monthNames[j];
if (j == 0) {
months.append($('<span>').text('-').css('visibility', 'hidden'));
months.append($('<span>').text('-').css('visibility', 'hidden'));
} else if (j == 13) {
months.append($('<span>').text('-').css('visibility', 'hidden'));
months.append($('<span>').text('-').css('visibility', 'hidden'));
} else {
months.append($('<span>').text(monthName));
}
var containerHeightMonth = months.height();
var optionHeightMonth = months.children('span').outerHeight();
var scrollOffsetMonth = optionHeightMonth * middleMonthIndex;
months.scrollTop(scrollOffsetMonth - containerHeightMonth / 2);
}
for (var d = 1; d <= 31; d++) {
var formattedNumber = String(d).padStart(2, '0');
if (d == 1) {
days.append($('<span>').text('-').css('visibility', 'hidden'));
days.append($('<span>').text('-').css('visibility', 'hidden'));
days.append($('<span>').text(formattedNumber));
} else if (d == 31) {
days.append($('<span>').text(formattedNumber));
days.append($('<span>').text('-').css('visibility', 'hidden'));
days.append($('<span>').text('-').css('visibility', 'hidden'));
} else {
days.append($('<span>').text(formattedNumber));
}
// var middleDayIndex = Math.floor(days.children('span').length / 2) - 45;
var containerHeightDay = days.height();
var optionHeightDay = days.children('span').outerHeight();
var scrollOffsetDay = optionHeightDay * middleDayIndexEnd;
days.scrollTop(scrollOffsetDay - containerHeightDay / 2);
}
var selectedYear = yearlyList[yearIndex].year;
var selectedMonth = "01";
var selectedNumberMonth = 1;
var selectedDay = "01";
var yearsScrollTop;
var monthScrollTop;
var dayScrollTop;
var scrollTimeout;
var formattedDate;
// Scroll event listener
datepickerContainer.find('.scrollable-container').on('scroll',
function () {
var optionHeightYear = years.children('span').outerHeight();
var scrollTopYear = years.scrollTop() + (optionHeightYear * 2);
var selectedIndexYear = Math.round(scrollTopYear / optionHeightYear);
yearsScrollTop = years.scrollTop();
years.children('span').removeClass('chosen-date');
years.children('span').eq(selectedIndexYear).addClass('chosen-date');
var selectedValueYear = years.children('span').eq(selectedIndexYear).text();
var optionHeightMonth = months.children('span').outerHeight();
var scrollTopMonth = Math.round((months.scrollTop() + (optionHeightMonth * 2)) / 10) * 10;
var selectedIndexMonth = Math.round(scrollTopMonth / optionHeightMonth);
months.children('span').removeClass('chosen-date');
months.children('span').eq(selectedIndexMonth).addClass('chosen-date');
monthScrollTop = months.scrollTop();
var selectedValueMonth = months.children('span').eq(selectedIndexMonth).text();
var optionHeightDay = days.children('span').outerHeight();
var scrollTopDay = days.scrollTop() + (optionHeightDay * 2);
var selectedIndexDay = Math.round(scrollTopDay / optionHeightDay);
dayScrollTop = days.scrollTop();
days.children('span').removeClass('chosen-date');
days.children('span').eq(selectedIndexDay).addClass('chosen-date');
var selectedValueDay = days.children('span').eq(selectedIndexDay).text();
clearTimeout(scrollTimeout);
scrollTimeout = setTimeout(function () {
var scrollTopYearRounded = customRound(yearsScrollTop);
var scrollTopMonthRounded = customRound(monthScrollTop);
var scrollTopDayRounded = customRound(dayScrollTop);
if (yearsScrollTop !== scrollTopYearRounded) {
years.scrollTop(scrollTopYearRounded);
}
if (monthScrollTop !== scrollTopMonthRounded) {
months.scrollTop(scrollTopMonthRounded);
}
if (dayScrollTop !== scrollTopDayRounded) {
days.scrollTop(scrollTopDayRounded);
}
},
250);
var containerId = $(this).attr('id');
if (containerId === 'yearsValue') {
selectedYear = selectedValueYear;
index = middleYearIndexArray.indexOf(Number(selectedValueYear));
middleYearIndexDateEnd = index;
} else if (containerId === 'monthsValue') {
if (selectedValueMonth === 'فروردین') {
selectedMonth = '01';
selectedNumberMonth = 1;
} else if (selectedValueMonth === 'اردیبهشت') {
selectedMonth = '02';
selectedNumberMonth = 2;
} else if (selectedValueMonth === 'خرداد') {
selectedMonth = '03';
selectedNumberMonth = 3;
} else if (selectedValueMonth === 'تیر') {
selectedMonth = '04';
selectedNumberMonth = 4;
} else if (selectedValueMonth === 'مرداد') {
selectedMonth = '05';
selectedNumberMonth = 5;
} else if (selectedValueMonth === 'شهریور') {
selectedMonth = '06';
selectedNumberMonth = 6;
} else if (selectedValueMonth === 'مهر') {
selectedMonth = '07';
selectedNumberMonth = 7;
} else if (selectedValueMonth === 'آبان') {
selectedMonth = '08';
selectedNumberMonth = 8;
} else if (selectedValueMonth === 'آذر') {
selectedMonth = '09';
selectedNumberMonth = 9;
} else if (selectedValueMonth === 'دی') {
selectedMonth = '10';
selectedNumberMonth = 10;
} else if (selectedValueMonth === 'بهمن') {
selectedMonth = '11';
selectedNumberMonth = 11;
} else if (selectedValueMonth === 'اسفند') {
selectedMonth = '12';
selectedNumberMonth = 12;
}
} else if (containerId === 'daysValue') {
selectedDay = selectedValueDay;
middleDayIndexEnd = parseInt(selectedValueDay) + 1;
}
selectedMonthDateEnd = selectedNumberMonth;
formattedDate = selectedYear + '/' + selectedMonth + '/' + selectedDay;
datepicker.val(formattedDate);
});
$(document).on('click',
'#overlaySearchAdvance',
function () {
datepickerContainer.remove();
});
$(document).on('click',
'.chosen-date',
function () {
$('#end-date').text(formattedDate);
$('.end-date').val(formattedDate);
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
datepickerContainer.remove();
});
$(document).on('click',
'#confirmDateEnd',
function (event) {
$('#end-date').text(formattedDate);
$('.end-date').val(formattedDate);
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
$(document).on('click',
'#cancelDateEnd',
function (event) {
$('#end-date').text('تاریخ پایان');
$('.end-date').val('');
middleYearIndexDateEnd = 2;
selectedMonthDateEnd = 2;
middleDayIndexEnd = 2;
datepickerContainer.remove();
$('#overlaySearchAdvance').removeClass("overlaySearchAdvance");
});
});
//Pixel of height for Span in date
//For example: datepicker-container-date .years span
function customRound(number) {
let roundedNumber = Math.round(number);
var remainder = roundedNumber % 60; // 60px
if (remainder <= 10) {
return roundedNumber - remainder;
} else {
return roundedNumber + (60 - remainder);
}
}
}
//******************** نمایش تاریخ در موبایل ********************
});
//******************** عملیات مربوط به پرینت ********************
function printOne(id) {
var parametr = '&id=' + id;
var url = '#showmodal=@Url.Page("/Company/Employees/Leave", "PrintOne")';
window.location.href = url + parametr;
}
function printOneMobile(id) {
var parametr = '&id=' + id;
var url = '#showmodal=@Url.Page("/Company/Employees/Leave", "PrintOneMobile")';
window.location.href = url + parametr;
}
function printAll() {
var idlist = "";
// if (!($('input:checkbox').is(":checked"))) {
// $('.alert-msg').show();
// $('.alert-msg p').text('برای پرینت لطفا اسامی را انتخاب نمائید');
// setTimeout(function () {
// $('.alert-msg').hide();
// $('.alert-msg p').text('');
// }, 3500);
// return
// }
var monthValue = $('#month').val();
var yearValue = $('#year').val();
var employeeIdValue = $('#EmployeeIdSearch').val();
if (employeeIdValue === "0" || yearValue === "0") {
$('.alert-msg').show();
$('.alert-msg p').text('برای پرینت ابتدا سال و نام پرسنل را انتخاب نموده و دکمه جستجو را کلیک نمایید');
$('#dropdown-year').addClass("errored");
$('.persianDateInputYear').addClass("errored");
$('.employeeSelect').addClass("errored");
$('.employeeSelectMobile').addClass("errored");
$('.btn-search-click').addClass("errored2");
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
$('#dropdown-year').removeClass("errored");
$('.persianDateInputYear').removeClass("errored");
$('.employeeSelect').removeClass("errored");
$('.employeeSelectMobile').removeClass("errored");
$('.btn-search-click').removeClass("errored2");
}, 3500);
return;
}
$('.foo').each(function () {
if ($(this).is(":checked")) {
var a = $(this).val();
var b = a + "+";
idlist += b;
}
});
if(idlist == "") {
$('.foo').each(function () {
var a = $(this).val();
var b = a + "+";
idlist += b;
});
}
if (idlist != "") {
var url = '@Url.Page("/Company/Employees/LeavePrintAll")';
window.location.href = url + '?idlist=' + idlist;
} else {
$('.alert-msg').show();
$('.alert-msg p').text('اطلاعاتی وجود ندارد');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
}
function printAllList() {
var idlist = "";
// if (!($('input:checkbox').is(":checked"))) {
// $('.alert-msg').show();
// $('.alert-msg p').text('برای پرینت لطفا اسامی را انتخاب نمائید');
// setTimeout(function () {
// $('.alert-msg').hide();
// $('.alert-msg p').text('');
// }, 3500);
// return
// }
var monthValue = $('#month').val();
var yearValue = $('#year').val();
var employeeIdValue = $('#EmployeeIdSearch').val();
if (employeeIdValue === "0" || yearValue === "0") {
$('.alert-msg').show();
$('.alert-msg p').text('برای پرینت ابتدا سال و نام پرسنل را انتخاب نموده و دکمه جستجو را کلیک نمایید');
$('#dropdown-year').addClass("errored");
$('.persianDateInputYear').addClass("errored");
$('.employeeSelect').addClass("errored");
$('.employeeSelectMobile').addClass("errored");
$('.btn-search-click').addClass("errored2");
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
$('#dropdown-year').removeClass("errored");
$('.persianDateInputYear').removeClass("errored");
$('.employeeSelect').removeClass("errored");
$('.employeeSelectMobile').removeClass("errored");
$('.btn-search-click').removeClass("errored2");
}, 3500);
return;
}
$('.foo').each(function () {
if ($(this).is(":checked")) {
var a = $(this).val();
var b = a + "+";
idlist += b;
}
});
if (idlist == "") {
$('.foo').each(function () {
var a = $(this).val();
var b = a + "+";
idlist += b;
});
}
if (idlist != "") {
var parametr = '&idlist=' + idlist;
var url = '#showmodal=@Url.Page("/Company/Employees/Leave", "LeavePrintAllList")';
window.location.href = url + parametr;
} else {
$('.alert-msg').show();
$('.alert-msg p').text('اطلاعاتی وجود ندارد');
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
}
//******************** عملیات مربوط به پرینت ********************
//Edit Leave
function checkIfValidToEdit(id) {
var leaveId = Number(id);
$.ajax({
/* contentType: 'charset=utf-8',*/
// async: false,
dataType: 'json',
type: 'GET',
url: '@Url.Page("/Company/Employees/Leave", "CheckIfValidToEdit")',
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
data: { "id": leaveId },
success: function (response) {
if (response.validToEdit) {
var goTo = `#showmodal=/Client/Company/Employees/Leave?id=${leaveId}&handler=EditLeave`;
window.location.href = goTo;
} else {
$('.alert-msg').show();
$('.alert-msg p').text("در بازه زمانی این مرخصی و یا بعد از آن فیش حقوقی وجود دارد");
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
},
failure: function (response) {
console.log(5, response);
}
});
}
// // Intro for Leave
// if ($(window).width() > 768) {
// if (@Model.LeaveSearch.Count > 0) {
// var hasCompletedEmployeesLeaveListTour = localStorage.getItem('hasCompletedEmployeesLeaveListTour');
// if (!hasCompletedEmployeesLeaveListTour) {
// introJs().setOptions({
// nextLabel: 'بعد',
// prevLabel: 'قبل',
// doneLabel: 'اتمام',
// showBullets: false,
// steps: [
// {
// element: document.querySelector('#EmployeesLeaveListIntro'),
// intro: 'جهت مشاهده لیست اطلاعات کل سال و ماه را نمایش می‌دهد.'
// }
// // {
// // title: 'ویرایش مرخصی',
// // element: document.querySelector('#btnCardStatusIntro'),
// // intro: 'جهت ویرایش مرخصی بر روی این گزینه کلیک نمائید.'
// // }
// ]
// }).start();
// localStorage.setItem('hasCompletedEmployeesLeaveListTour', true);
// }
// }
// var hasCompletedEmployeesLeaveTour = localStorage.getItem('hasCompletedEmployeesLeaveTour');
// if (!hasCompletedEmployeesLeaveTour) {
// introJs().setOptions({
// nextLabel: 'بعد',
// prevLabel: 'قبل',
// doneLabel: 'اتمام',
// showBullets: false,
// steps: [
// {
// title: "مرتب سازی",
// element: document.querySelector('#LeaveFilterIntro'),
// intro: 'جهت مشاهده بر اساس مرتب سازی لیست اطلاعات مرخصی بر روی این گزینه‌ها اعمال نمائید.'
// },
// {
// title: 'ثبت مرخصی',
// element: document.querySelector('#btnNewLeaveIntro'),
// intro: 'برای عملیات ثبت مرخصی این گزینه را کلیک نمایید.'
// },
// ]
// }).start();
// localStorage.setItem('hasCompletedEmployeesLeaveTour', true);
// }
// }
//************************************ برای مشاهده کل مرخصی از طریق کارگاه **********************************/
$(document).ready(function () {
$(".select2Option").select2({
language: "fa",
dir: "rtl",
templateResult: function (data, container) {
if (data.element) {
$(container).addClass($(data.element).attr("class"));
}
return data.text;
}
});
$(".select2OptionMobile").select2({
language: "fa",
dir: "rtl",
dropdownParent: $('#searchModal'),
templateResult: function (data, container) {
if (data.element) {
$(container).addClass($(data.element).attr("class"));
}
return data.text;
}
});
function formatSelection(val) {
return val.id;
}
$($('#employeeSelect').val()).select2({
formatSelection: formatSelection,
width: 300,
templateResult: function (data, container) {
if (data.element) {
$(container).addClass($(data.element).attr("class"));
}
return data.text;
}
});
$($('#employeeSelectMobile').val()).select2({
formatSelection: formatSelection,
width: 300
});
var workshopId = $('#WorkshopId').val();
var employeeIdSelected = Number($('#EmployeeIdSearch').val());
if (workshopId) {
$.ajax({
url: '@Url.Page("/Company/Employees/Leave", "EmployeeList")',
type: 'GET',
data: { workshopId: workshopId },
success: function (response) {
var employees = response.personleList.connectedPersonnelViewModels;
var employeeOptionsHtml = `<option value="" ${employeeIdSelected == 0 ? 'selected' : ''}>انتخاب پرسنل ...</option>`;
employees.forEach(function (employee) {
var black = employee.black ? "blackSelect" : "";
employeeOptionsHtml += `<option class="${black}" value="${employee.employeeId}" ${employeeIdSelected === employee.employeeId ? 'selected' : ''}>${employee.personName}</option>`;
});
$('#employeeSelect').html(employeeOptionsHtml);
$('#employeeSelectMobile').html(employeeOptionsHtml);
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
}
});
}
$('#employeeSelect').change(function () {
var workshopId = $('#WorkshopId').val();
if ($('#employeeSelect').val() != '') {
var employeeId = $('#employeeSelect').val();
$("#EmployeeIdSearch").val(employeeId);
$("#EmployeeIdMobile").val(employeeId);
// var url = '@Url.Page("/Company/Employees/Leave/")';
// window.location.href = url + '?workshopId=' + workshopId + '&employeeId=' + employeeId;
}
});
$('#employeeSelectMobile').change(function () {
var workshopId = $('#WorkshopId').val();
if ($('#employeeSelectMobile').val() != '') {
var employeeId = $('#employeeSelectMobile').val();
$("#EmployeeIdSearch").val(employeeId);
$("#EmployeeIdMobile").val(employeeId);
// var url = '@Url.Page("/Company/Employees/Leave/")';
// window.location.href = url + '?workshopId=' + workshopId + '&employeeId=' + employeeId;
}
});
});
//************************************ برای مشاهده کل مرخصی از طریق کارگاه **********************************/
function ajaxDataWithoutEmployee() {
let pageIndex = Number($('#pageIndex').val());
var b = pageIndex % 30;
var workshopId = $('#WorkshopId').val();
var data = {
'searchModel.WorkshopId': $('#WorkshopId').val(),
'searchModel.EmployeeId': $('#EmployeeIdSearch').val(),
'searchModel.Year': $('#year').val(),
'searchModel.Month': $('#month').val(),
'searchModel.LeaveType': $('#leaveType').val(),
'searchModel.StartLeave': $('#start').val(),
'searchModel.EndLeave': $('#end').val(),
'searchModel.PageIndex': $('#pageIndex').val()
};
if (b === 0) {
$('#AllLastList').hide();
$('#AllLastListEmpty').show();
$.ajax({
async: false,
contentType: 'charset=utf-8',
dataType: 'json',
type: 'GET',
url: '@Url.Page("/Company/Employees/Leave", "LastLeave")',
data: data,
headers: { "RequestVerificationToken": $('@Html.AntiForgeryToken()').val() },
success: function (response) {
if (response.pageIndex > 0) {
var n = pageIndex + 1;
$.each(response.data,
function(i, item) {
const html = `
<div class="personal-grid-row d-grid gap-2 grid-cols-12 w-100">
<div class="col-span-12 position-relative">
<div class="Rtable-row align-items-center w-100 ">
<div class="Rtable-cell width1">
<div class="Rtable-cell--heading">
ردیف
</div>
<label for="${n}" class="Rtable-cell--content prevent-select">
<span class="d-flex justify-content-center align-items-center justify-content-between">
<input id="${n}" type="checkbox" class="form-check-input foo" name="" value="${item.id}">
${n}
</span>
</label>
</div>
<div class="Rtable-cell width4" style="width: 12%;">
<div class="Rtable-cell--content">
${item.employeeFullName}
</div>
</div>
<div class="Rtable-cell width2">
<div class="Rtable-cell--content">
${item.year}
</div>
</div>
<div class="Rtable-cell width3">
<div class="Rtable-cell--content">
${item.monthStr}
</div>
</div>
<div class="Rtable-cell width4">
<div class="Rtable-cell--content text-center">
<div>
${item.leaveType == "استحقاقی"
? `<span class="badge badge-paid-leave badge-secondary text-center">
<span>
استحقاقی
</span>
</span>`
: `<span class="badge sick badge-secondary">
<span>
استعلاجی
</span>
</span>`
}
</div>
</div>
</div>
<div class="Rtable-cell width5">
<div class="Rtable-cell--content">
<div>${item.startLeave}</div>
</div>
</div>
<div class="Rtable-cell width6">
<div class="Rtable-cell--content">
<div>
${item.paidLeaveType == "ساعتی"
? `<span>-</span>`
: `<span>${item.endLeave}</span>`
}
</div>
</div>
</div>
<div class="Rtable-cell width7">
<div class="Rtable-cell--content">
<div>
${item.paidLeaveType == "ساعتی"
? `<span>${time_format(item.startLeaveGr)} الی ${time_format(item.endLeaveGr)}</span>`
: `<span>-</span>`
}
</div>
</div>
</div>
<div class="Rtable-cell width8">
<div class="Rtable-cell--content">
<div>${item.leaveHourses}</div>
</div>
</div>
<div class="Rtable-cell width9 d-xl-block d-none">
<div class="Rtable-cell--content">
<div>
${item.isAccepted
? `<span class="badge badge-secondary d-flex align-items-center justify-content-start">
<svg class="me-1" width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2.625" y="2.625" width="11.75" height="11.75" rx="2.5" stroke-width="1.3" stroke="#65A30D" />
<path d="M5.66659 8.5L7.79159 10.625L11.3333 6.375" stroke-width="1.3" stroke="#65A30D" stroke-linecap="round" />
</svg>
<span class="text-clear-md">موافقت</span>
</span>`
: `<span class="badge disagree badge-secondary d-flex align-items-center justify-content-start">
<svg width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2.625" y="2.625" width="11.75" height="11.75" rx="2.5" stroke-width="1.3" stroke="#DC2626" />
<path d="M6.375 6.375L10.625 10.625" stroke="#DC2626" stroke-width="1.3" stroke-linecap="round" />
<path d="M10.625 6.375L6.375 10.625" stroke="#DC2626" stroke-width="1.3" stroke-linecap="round" />
</svg>
<span class="text-clear-md">عدم موافقت</span>
</span>`
}
</div>
</div>
</div>
<div class="Rtable-cell width10">
<div class="Rtable-cell--content">
<div class="Rtable-cell--content align-items-center d-flex justify-content-end editButtonFind">
<button type="button" class="btn-print" onclick="printOne(${item.id})">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor">
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" />
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" />
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round" />
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round" />
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" />
</svg>
</button>
<button onclick="checkIfValidToEdit(${item.id})" data-desktop-leaveid="${item.id}" class="btn-edit position-relative">
<svg width="20" height="20" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.6027 6.838L5.85304 13.5876C5.84201 13.5987 5.83107 13.6096 5.8202 13.6204C5.65773 13.7825 5.5139 13.9261 5.41254 14.1051C5.31117 14.2841 5.2621 14.4813 5.20667 14.704C5.20296 14.7189 5.19923 14.7339 5.19545 14.7491L4.5813 17.2057C4.57908 17.2145 4.57686 17.2234 4.57462 17.2323C4.53537 17.389 4.49347 17.5564 4.47972 17.6969C4.46458 17.8516 4.46811 18.1127 4.67752 18.3221L5.03035 17.9693L4.67752 18.3221C4.88693 18.5315 5.14799 18.535 5.30272 18.5199C5.44326 18.5062 5.6106 18.4643 5.76728 18.425C5.77622 18.4228 5.78512 18.4205 5.79398 18.4183L8.25057 17.8042C8.26569 17.8004 8.28069 17.7967 8.29558 17.793C8.51832 17.7375 8.71549 17.6885 8.89452 17.5871C9.07356 17.4857 9.21708 17.3419 9.37921 17.1794C9.39005 17.1686 9.40097 17.1576 9.412 17.1466L16.1616 10.397L16.1849 10.3737C16.4983 10.0603 16.7684 9.79025 16.9556 9.54492C17.1562 9.282 17.3081 8.98958 17.3081 8.6292C17.3081 8.26759 17.1541 7.97384 16.9522 7.71001C16.7633 7.46303 16.4905 7.1903 16.1731 6.87292L16.1499 6.84972L16.1267 6.82652C15.8093 6.5091 15.5366 6.23634 15.2896 6.04738C15.0258 5.84553 14.732 5.69156 14.3704 5.69156C14.01 5.69156 13.7176 5.84345 13.4547 6.04405C13.2094 6.23123 12.9393 6.5013 12.6259 6.81474L12.6027 6.838Z" stroke-width="1.5" stroke="#4DA9D1" />
<path d="M11.9939 7.20397L14.8457 5.30273L17.6976 8.15459L15.7964 11.0064L11.9939 7.20397Z" fill="#4DA9D1" />
</svg>
<span class="mx-1">ویرایش</span>
</button>
<button type="button" class="btn-delete" onclick="removeLeaveConfirm(${item.id}, ${item.workshopId}, ${item.employeeId})">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
<path d="M8.70825 13.2915L8.70825 10.5415" stroke-width="1.5" stroke-linecap="round" />
<path d="M13.2917 13.2915L13.2917 10.5415" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z" stroke-width="1.5" stroke-linecap="round" />
<path d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817" stroke-width="1.5" stroke-linecap="round" />
</svg>
<span class="mx-1">حذف</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
`;
$('#EmployeesLeaveList').append(html);
const htmlMobile = `
<div class="Rtable-row align-items-center position-relative openAction">
<div class="w-100 d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center justify-content-between w-100">
<div class="Rtable-cell--content">
<span class="mx-sm-2">
${item.employeeFullName}
</span>
</div>
<div class="d-flex align-items-center">
<div class="Rtable-cell--content p-0 pe-1">
<span class="mx-sm-2">
${item.year}
</span>
<span class="mx-sm-2">
${item.monthStr}
</span>
</div>
</div>
</div>
<div class="Rtable-cell--content d-flex justify-content-end align-items-center">
<div class="Rtable-cell--heading d-block text-center">
<button class="btn-details" type="button">
<svg width="22" height="22" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.39779 5.55805C9.46429 5.63785 9.56279 5.68398 9.66667 5.68398H10.3333C10.8041 5.68398 11.1396 5.68417 11.4038 5.7022C11.6649 5.72002 11.8307 5.75407 11.9648 5.80958C12.3691 5.97705 12.6903 6.29826 12.8577 6.70256C12.9132 6.83657 12.9473 7.0024 12.9651 7.2635C12.9831 7.52773 12.9833 7.86325 12.9833 8.33398C12.9833 8.80471 12.9831 9.14023 12.9651 9.40447C12.9473 9.66556 12.9132 9.8314 12.8577 9.96541C12.6903 10.3697 12.3691 10.6909 11.9648 10.8584C11.8307 10.9139 11.6649 10.948 11.4038 10.9658C11.1396 10.9838 10.8041 10.984 10.3333 10.984H7.2C6.63417 10.984 6.23085 10.9837 5.9149 10.9579C5.60305 10.9324 5.40726 10.8838 5.25092 10.8041C4.94045 10.646 4.68803 10.3935 4.52984 10.0831C4.45018 9.92672 4.40157 9.73094 4.37609 9.41908C4.35027 9.10313 4.35 8.69981 4.35 8.13398V6.05808C4.35 5.35995 4.35354 5.08568 4.41626 4.8711C4.57419 4.33073 4.99674 3.90818 5.53711 3.75024C5.75169 3.68753 6.02596 3.68398 6.7241 3.68398C7.06744 3.68398 7.20079 3.68501 7.32383 3.70469C7.62934 3.75355 7.91497 3.88733 8.14809 4.09076C8.24197 4.17268 8.32814 4.27446 8.54793 4.53822L9.39779 5.55805Z" stroke="#4DA9D1" stroke-width="0.7" stroke-linejoin="round"/>
<path d="M11.3333 10.6673V10.934C11.3333 11.7741 11.3333 12.1941 11.1698 12.515C11.026 12.7972 10.7966 13.0267 10.5143 13.1705C10.1935 13.334 9.77341 13.334 8.93333 13.334H4.4C3.55992 13.334 3.13988 13.334 2.81901 13.1705C2.53677 13.0267 2.3073 12.7972 2.16349 12.515C2 12.1941 2 11.7741 2 10.934V7.73398C2 6.89391 2 6.47387 2.16349 6.153C2.3073 5.87076 2.53677 5.64128 2.81901 5.49747C3.13988 5.33398 3.55992 5.33398 4.4 5.33398H4.66667" stroke="#4DA9D1" stroke-width="0.7" stroke-linejoin="round"/>
</svg>
<span>نمایش جزئیات</span>
</button>
</div>
</div>
</div>
</div>
<div class="operation-div w-100">
<div class="operations-btns">
<div class="container-fluid px-0">
<div class="row">
<div class="col-12">
<div class="leaveDiv">
<div class="d-flex align-items-center justify-content-between">
<div>نوع مرخصی (${item.paidLeaveType})</div>
<div class="">${item.leaveType}</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>تاریخ شروع</div>
<div class="">${item.startLeave}</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>تاریخ پایان</div>
<div class="">${item.endLeave}</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>مدت مرخصی</div>
<div class="">
${item.paidLeaveType == "ساعتی"
? `<span>${time_format(item.startLeaveGr)}</span>
<span>الی</span>
<span>${time_format(item.endLeaveGr)}</span>`
: `<span>${item.leaveHourses}</span>`
}
</div>
</div>
<div class="d-flex align-items-center justify-content-between">
<div>وضعیت موافقت</div>
${item.isAccepted
? `<div>موافقت</div>`
: `<div>عدم موافقت</div>`
}
</div>
<div class="row">
<div class="col-4">
<button type="button" class="btn-print lessThan992" onclick="printOneMobile(${item.id})">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor">
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008"/>
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z"/>
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round"/>
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round"/>
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732"/>
</svg>
<span class="mx-1">پرینت</span>
</button>
</div>
<div class="col-4 editButtonFind">
<button onclick="checkIfValidToEdit(${item.id})" data-mobile-leaveid="${item.id}" class="btn-edit position-relative">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
<path d="M12.0433 6.49955L12.0214 6.52145L5.53808 13.0047C5.52706 13.0158 5.51612 13.0267 5.50525 13.0375C5.34278 13.1996 5.19895 13.3432 5.09758 13.5222L5.5266 13.7651L5.09758 13.5222C4.99622 13.7012 4.94714 13.8984 4.89171 14.1211C4.88801 14.136 4.88427 14.151 4.88049 14.1662L4.30029 16.4869L4.78351 16.6077L4.30029 16.4869C4.29808 16.4958 4.29585 16.5047 4.29361 16.5136C4.25437 16.6703 4.21246 16.8377 4.19871 16.9782C4.18357 17.1329 4.1871 17.394 4.39651 17.6034C4.60592 17.8128 4.86698 17.8163 5.02171 17.8012C5.16225 17.7875 5.32958 17.7456 5.48627 17.7063C5.49521 17.7041 5.50411 17.7018 5.51297 17.6996L7.83376 17.1194C7.84888 17.1156 7.86388 17.1119 7.87878 17.1082C8.10151 17.0528 8.29868 17.0037 8.47772 16.9023C8.65675 16.801 8.80027 16.6571 8.9624 16.4947C8.97324 16.4838 8.98416 16.4729 8.99519 16.4618L15.4785 9.97855L15.5004 9.95666C15.796 9.6611 16.0507 9.40638 16.2296 9.17534C16.4208 8.9284 16.5695 8.65435 16.5843 8.31531C16.5862 8.27179 16.5862 8.22821 16.5843 8.18469C16.5695 7.84565 16.4208 7.5716 16.2296 7.32466C16.0507 7.09362 15.796 6.8389 15.5004 6.54334L15.4785 6.52145L15.4566 6.49954C15.161 6.20396 14.9063 5.94922 14.6753 5.77034C14.4283 5.57917 14.1543 5.43041 13.8152 5.41564C13.7717 5.41374 13.7281 5.41374 13.6846 5.41564C13.3456 5.43041 13.0715 5.57917 12.8246 5.77034C12.5935 5.94922 12.3388 6.20396 12.0433 6.49955Z"/>
<path d="M11.4583 6.87484L14.2083 5.0415L16.9583 7.7915L15.1249 10.5415L11.4583 6.87484Z"/>
</svg>
<span class="mx-1">ویرایش</span>
</button>
</div>
<div class="col-4">
<button type="button" class="btn-delete" onclick="removeLeaveConfirm(${item.id}, ${item.workshopId}, ${item.employeeId})">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
<path d="M8.70825 13.2915L8.70825 10.5415" stroke-linecap="round"/>
<path d="M13.2917 13.2915L13.2917 10.5415" stroke-linecap="round"/>
<path d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z" stroke-linecap="round"/>
<path d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817" stroke-linecap="round"/>
</svg>
<span class="mx-1">حذف</span>
</button>
</div>
</div>
</div>
<div class="lineMobile mt-3 mb-2"></div>
</div>
</div>
</div>
</div>
</div>
`;
$('#EmployeesLeaveMobileList').append(htmlMobile);
n += 1;
});
var newPageIndex = pageIndex + response.pageIndex;
$('#AllLastList').show();
$('#AllLastListEmpty').hide();
$('#pageIndex').val(newPageIndex);
} else {
$('#AllLastList').hide();
$('#AllLastListEmpty').show();
}
},
failure: function (response) {
console.log(5, response);
}
});
}
}
$(document).ready(function () {
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 600) {
ajaxDataWithoutEmployee();
}
if ($(this).scrollTop() > 100) {
$('.goToTop').show().fadeIn();
} else {
$('.goToTop').fadeOut().hide();
}
});
$('.goToTop').on('click', function () {
$('html, body').animate({ scrollTop: 0 }, 360);
return false;
});
});
function removeLeaveConfirm(id, workshopId, employeeId) {
swal({
title: "آیا حذف این سابقه مرخصی اطمینان دارید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
if (isConfirm) {
removeLeave(id, workshopId, employeeId);
}
});
}
function removeLeave(id, workshopId, employeeId) {
var ID = Number(id);
var WorkshopID = Number(workshopId);
var EmployeeID = Number(employeeId);
$.ajax({
async: false,
dataType: 'json',
type: 'POST',
url: '@Url.Page("./Leave", "RemovePaidLeave")',
headers: { "RequestVerificationToken": $('@Html.AntiForgeryToken()').val() },
data: { id: ID, EmployeeId: EmployeeID, WorkshopId: WorkshopID },
success: function (response) {
if (response.isSuccedded) {
$('.alert-success-msg').show();
$('.alert-success-msg p').text(response.message);
setTimeout(function () {
$('.alert-success-msg').hide();
$('.alert-success-msg p').text('');
window.location.reload();
}, 1000);
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
},
error: function (err) {
console.log(err);
}
});
}
function time_format(date) {
var d = new Date(date);
hours = format_two_digits(d.getHours());
minutes = format_two_digits(d.getMinutes());
return hours + ":" + minutes;
}
function format_two_digits(n) {
return n < 10 ? '0' + n : n;
}
</script>
}