Files
Backend-Api/ServiceHost/wwwroot/AssetsAdminNew/Tasks/js/Index.js
2024-07-24 16:13:54 +03:30

2058 lines
91 KiB
JavaScript
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.
$('#MainModal').on('hidden.bs.modal', function () {
$("#ModalContent").html("");
$(".modal-xl-taskTime").removeClass('modal-xxxl');
});
$(document).on('click', ".openAction", function () {
$(this).next().find(".operations-btns").slideToggle(500);
$(".operations-btns").not($(this).next().find(".operations-btns")).slideUp(500);
});
//$(document).on('click', ".btnTaskList", function () {
// $('.btnTaskRequest').removeClass('active');
// $('.btnTaskList').addClass('active');
// $('#divTaskList').show();
// $('#divTaskRequest').hide();
// $('#tasksAjax').html('');
// Number($('#pageIndex').val(0));
// Number($('#AccountId').val(0));
// $('#StartDate').val('');
// $('#EndDate').val('');
// $('#IsDone').val('');
// //loadMore(type);
//});
$(document).ready(function () {
$(document).on('click', ".loadingButton", function () {
var button = $(this);
var loadingDiv = button.find('.loading');
loadingDiv.show();
});
$('.goToTop').hide();
});
$('.goToTop').on('click',
function () {
$('html, body').animate({ scrollTop: 0 }, 360);
return false;
});
function loadSticky() {
var stickyDiv = $(".sticky-div");
var stickyOffset = stickyDiv.offset().top;
$(window).scroll(function () {
if (window.pageYOffset >= stickyOffset) {
stickyDiv.addClass("sticky");
} else {
stickyDiv.removeClass("sticky");
}
if ($(this).scrollTop() > 100) {
$('.goToTop').show().fadeIn();
} else {
$('.goToTop').fadeOut().hide();
}
});
}
$('#searchBtn').on('click', function () {
$('#pageIndex').val(0);
$('#tasksAjax').html('');
$('#taskRequestsAjax').html('');
if ($('#btnTaskListSelfTask').hasClass('active')) {
loadMore('selfTask');
} else if ($('#btnTaskListAllTask').hasClass('active')) {
loadMore('AllTask');
} else if ($('#btnTaskListSent').hasClass('active')) {
loadMore('sent');
} else if ($('#btnTaskListReceived').hasClass('active')) {
loadMore('received');
} else if ($('#btnTaskList').hasClass('active')) {
loadMore('list');
} else if ($('#btnTaskRequest').hasClass('active')) {
loadMoreRequest('');
} else if ($('#btnAllTaskRequest').hasClass('active')) {
loadMoreRequest('');
}
});
$(document).on('click', "#btnTaskListSelfTask", function () {
$('#btnAllTaskRequest').removeClass('active');
$('#tasksAjax').html('');
Number($('#pageIndex').val(0));
Number($('#AccountId').val(0));
$('#AccountId').trigger('change');
$('#StartDate').val('');
$('#EndDate').val('');
$('#IsDone').val('');
$('.dropdown-IsDone .item').removeClass("active");
$('.dropdown-IsDone .item:first').addClass("active");
$('.selected-display').text($('.dropdown-IsDone .item:first').text());
$('#GeneralSearch').val('');
$('#divTaskList').show();
$('#divTaskRequest').hide();
loadMore('selfTask');
});
$(document).on('click', "#btnTaskListAllTask", function () {
$('#btnAllTaskRequest').removeClass('active');
$('#tasksAjax').html('');
Number($('#pageIndex').val(0));
Number($('#AccountId').val(0));
$('#AccountId').trigger('change');
$('#StartDate').val('');
$('#EndDate').val('');
$('#IsDone').val('');
$('.dropdown-IsDone .item').removeClass("active");
$('.dropdown-IsDone .item:first').addClass("active");
$('.selected-display').text($('.dropdown-IsDone .item:first').text());
$('#GeneralSearch').val('');
$('#divTaskList').show();
$('#divTaskRequest').hide();
loadMore('AllTask');
});
$(document).on('click', "#btnTaskListSent", function () {
$('#btnAllTaskRequest').removeClass('active');
$('#tasksAjax').html('');
Number($('#pageIndex').val(0));
Number($('#AccountId').val(0));
$('#AccountId').trigger('change');
$('#StartDate').val('');
$('#EndDate').val('');
$('#IsDone').val('');
$('.dropdown-IsDone .item').removeClass("active");
$('.dropdown-IsDone .item:first').addClass("active");
$('.selected-display').text($('.dropdown-IsDone .item:first').text());
$('#GeneralSearch').val('');
$('#divTaskList').show();
$('#divTaskRequest').hide();
loadMore('sent');
});
$(document).on('click', "#btnTaskListReceived", function () {
$('#btnAllTaskRequest').removeClass('active');
$('#tasksAjax').html('');
Number($('#pageIndex').val(0));
Number($('#AccountId').val(0));
$('#StartDate').val('');
$('#EndDate').val('');
$('#IsDone').val('');
$('.dropdown-IsDone .item').removeClass("active");
$('.dropdown-IsDone .item:first').addClass("active");
$('.selected-display').text($('.dropdown-IsDone .item:first').text());
$('#GeneralSearch').val('');
$('#divTaskList').show();
$('#divTaskRequest').hide();
loadMore('received');
});
$(document).on('click', "#btnTaskList", function () {
$('#btnAllTaskRequest').removeClass('active');
$('#tasksAjax').html('');
Number($('#pageIndex').val(0));
Number($('#AccountId').val(0));
$('#AccountId').trigger('change');
$('#StartDate').val('');
$('#EndDate').val('');
$('#IsDone').val('');
$('.dropdown-IsDone .item').removeClass("active");
$('.dropdown-IsDone .item:first').addClass("active");
$('.selected-display').text($('.dropdown-IsDone .item:first').text());
$('#GeneralSearch').val('');
$('#divTaskList').show();
$('#divTaskRequest').hide();
loadMore('list');
});
$(document).on('click', ".btnTaskRequest", function () {
$('#btnTaskListSelfTask').removeClass('active');
$('#btnTaskListAllTask').removeClass('active');
$('#btnTaskListSent').removeClass('active');
$('#btnTaskListReceived').removeClass('active');
$('#btnTaskList').removeClass('active');
$('#btnAllTaskRequest').removeClass('active');
$('.btnTaskRequest').addClass('active');
$('#divTaskList').hide();
$('#divTaskRequest').show();
$('#taskRequestsAjax').html('');
$('#GeneralSearch').val('');
Number($('#pageIndex').val(0));
Number($('#AccountId').val(0));
$('#AccountId').trigger('change');
$('#StartDate').val('');
$('#EndDate').val('');
$('#IsDone').val('');
$('.dropdown-IsDone .item').removeClass("active");
$('.dropdown-IsDone .item:first').addClass("active");
$('.selected-display').text($('.dropdown-IsDone .item:first').text());
// $('#IsCanceled').val('');
// $('#IsCancelRequest').val('');
// $('#IsTimeRequest').val('');
// $('#TimeRequestAccepted').val('');
loadMoreRequest('request');
});
$(document).on('click', ".btnTaskRequestAll", function () {
$('#btnTaskListSelfTask').removeClass('active');
$('#btnTaskListAllTask').removeClass('active');
$('#btnTaskListSent').removeClass('active');
$('#btnTaskListReceived').removeClass('active');
$('#btnTaskList').removeClass('active');
$('#btnTaskRequest').removeClass('active');
$('#btnAllTaskRequest').addClass('active');
$('#divTaskList').hide();
$('#divTaskRequest').show();
$('#taskRequestsAjax').html('');
$('#GeneralSearch').val('');
Number($('#pageIndex').val(0));
Number($('#AccountId').val(0));
$('#AccountId').trigger('change');
$('#StartDate').val('');
$('#EndDate').val('');
$('#IsDone').val('');
$('.dropdown-IsDone .item').removeClass("active");
$('.dropdown-IsDone .item:first').addClass("active");
$('.selected-display').text($('.dropdown-IsDone .item:first').text());
// $('#IsCanceled').val('');
// $('#IsCancelRequest').val('');
// $('#IsTimeRequest').val('');
// $('#TimeRequestAccepted').val('');
loadMoreRequest('allRequested');
});
function loadMore(type) {
if (type == 'selfTask') {
$('#btnTaskListSelfTask').addClass('active');
$('#btnTaskListAllTask').removeClass('active');
$('#btnTaskListSent').removeClass('active');
$('#btnTaskListReceived').removeClass('active');
$('#btnTaskList').removeClass('active');
$('#btnTaskRequest').removeClass('active');
} else if (type == 'AllTask') {
$('#btnTaskListSelfTask').removeClass('active');
$('#btnTaskListAllTask').addClass('active');
$('#btnTaskListSent').removeClass('active');
$('#btnTaskListReceived').removeClass('active');
$('#btnTaskList').removeClass('active');
$('#btnTaskRequest').removeClass('active');
} else if (type == 'sent') {
$('#btnTaskListSelfTask').removeClass('active');
$('#btnTaskListAllTask').removeClass('active');
$('#btnTaskListSent').addClass('active');
$('#btnTaskListReceived').removeClass('active');
$('#btnTaskList').removeClass('active');
$('#btnTaskRequest').removeClass('active');
} else if (type == 'received') {
$('#btnTaskListSelfTask').removeClass('active');
$('#btnTaskListAllTask').removeClass('active');
$('#btnTaskListSent').removeClass('active');
$('#btnTaskListReceived').addClass('active');
$('#btnTaskList').removeClass('active');
$('#btnTaskRequest').removeClass('active');
} else if (type == 'list') {
$('#btnTaskListSelfTask').removeClass('active');
$('#btnTaskListAllTask').removeClass('active');
$('#btnTaskListSent').removeClass('active');
$('#btnTaskListReceived').removeClass('active');
$('#btnTaskList').addClass('active');
$('#btnTaskRequest').removeClass('active');
}
let pageIndex = Number($('#pageIndex').val());
var b = pageIndex % 30;
var AccountId = Number($('#AccountId').val());
var StartDate = $('#StartDate').val();
var EndDate = $('#EndDate').val();
var IsCanceled = $('#IsCanceled').val();
var IsCancelRequest = $('#IsCancelRequest').val();
var IsTimeRequest = $('#IsTimeRequest').val();
var TimeRequestAccepted = $('#TimeRequestAccepted').val();
var IsDone = $('#IsDone').val();
var IsDoneRequest = $('#IsDoneRequest').val();
var generalSearch = $('#GeneralSearch').val();
var index = 1;
var html = '';
console.log(type);
if (b === 0) {
// var searchModel = {};
// searchModel.Status = $('#status').val();
// searchModel.ContractingPatyId = Number($('#contractingPatyId').val());
$.ajax({
async: false,
contentType: 'charset=utf-8',
dataType: 'json',
type: 'GET',
url: `${loadMoreAjax}`,
data: {
pageIndex: pageIndex,
accountId: AccountId,
startDate: StartDate,
endDate: EndDate,
isCanceled: IsCanceled,
isCancelRequest: IsCancelRequest,
isTimeRequest: IsTimeRequest,
timeRequestAccepted: TimeRequestAccepted,
isDoneRequest: IsDoneRequest,
isDone: IsDone,
type: type,
generalSearch:generalSearch
},
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
success: function (response) {
if (response.pageIndex > 0) {
var n = pageIndex + 1;
var taskList = response.taskList;
if (n == 1) {
html += `<div class="Rtable-row Rtable-row--head align-items-center d-flex sticky-div">
<div class="Rtable-cell column-heading width1">ردیف</div>
<div class="Rtable-cell column-heading d-md-flex d-none width2">
<div class="w-100">ارجاع دهنده</div>
<div class="w-100">خودم</div>`;
if (response.positions.length > 0) {
response.positions.forEach(function (pos) {
html += `<div class="w-100">${pos.name}</div>`;
});
}
html += `</div>
<div class="Rtable-cell column-heading d-md-block d-none width3">تاریخ سررسید</div>
<div class="Rtable-cell column-heading d-md-block d-none width4">طرف حساب</div>
<div class="Rtable-cell column-heading width5">عنوان وظیفه</div>
<div class="Rtable-cell column-heading d-md-block d-none width6">جزئیات</div>
<div class="Rtable-cell column-heading width7 text-end">عملیات</div>
</div>`;
}
taskList.forEach(function (item) {
var successSend = item.status == "موفق" ? "successSend" : "";
html += `<div class="Rtable-row align-items-center position-relative openAction tm-${item.color}" style="cursor: pointer;">
<div class="Rtable-cell d-md-block d-flex width1">
<div class="Rtable-cell--content">
<span class="d-flex justify-content-center span-number">
${n}
</span>
</div>
</div>
<div class="Rtable-cell d-md-flex d-none width2">
<div class="Rtable-cell--content w-100 position-relative color-width2"><div class="position-relative">${item.assigner}</div></div>
<div class="Rtable-cell--content w-100 position-relative color-width2"><div class="position-relative">${item.selfName}</div></div>`;
if (response.positions.length > 0) {
response.positions.forEach(function (position) {
if ((item.assignList.filter((x) => x.posValue == position.value && x.assignViewModels.length > 0)).length > 0) {
var assignlistt = item.assignList.filter((x) => x.posValue == position.value && x.assignViewModels.length > 0);
html += `
<div class="tooltipfull-container w-100 position-relative color-width2" id="workShopEmpListIntro">
<p class="m-0 ellipsed text-center">
<span class="position-relative">${assignlistt[0].assignViewModels[0].assignedName}</span>
</p>
<span class="tooltipfull" style="right: 47px;">
`;
assignlistt[0].assignViewModels.forEach(function (aVMs) {
html += `<p class="m-0">${aVMs.assignedName}</p>`;
});
html += `</span>
</div>`;
}
else {
html += `<div class="Rtable-cell--content position-relative w-100 color-width2"><div class="position-relative">-</div></div>`;
}
});
}
html += `</div>`;
html += `<div class="Rtable-cell d-md-block d-none width3">
<div class="Rtable-cell--content ">${item.endTaskTime} ${item.endTaskDateFA}</div>
</div>
<div class="Rtable-cell d-md-block d-none width4">
<div class="Rtable-cell--content">
<div class="tooltipfull-container">
<p class="m-0 ellipsed">
<span>${item.contractingPartyName}</span>
</p>
<span class="tooltipfull" >
${item.contractingPartyName}
</span>
</div>
</div>
</div>
<div class="Rtable-cell d-md-block d-flex width5 text-start">
<div class="Rtable-cell--content">
<div class="tooltipfull-container">
<p class="m-0 ellipsed">
<span>${item.name}</span>
</p>
<span class="tooltipfull" >
${item.name}
</span>
</div>
</div>
</div>
<div class="Rtable-cell d-md-block d-none width6">
<div class="Rtable-cell--content">`;
if (item.hasAttachment) {
html += `<button class="btn-taskmanager-detail position-relative" onclick="Detail(${item.id})">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="currentColor">
<path d="M3.5 9.9C3.5 9.05992 3.5 8.63988 3.66349 8.31901C3.8073 8.03677 4.03677 7.8073 4.31901 7.66349C4.63988 7.5 5.05992 7.5 5.9 7.5H8.31332C8.74409 7.5 8.95947 7.5 9.14963 7.56559C9.31778 7.62359 9.47094 7.71825 9.59801 7.84272C9.74171 7.98347 9.83803 8.17612 10.0307 8.56142L10.9693 10.439C11.162 10.8243 11.2583 11.0169 11.402 11.1577C11.5291 11.2821 11.6822 11.3768 11.8504 11.4348C12.0405 11.5004 12.2559 11.5004 12.6867 11.5004H18.1C18.9401 11.5004 19.3601 11.5004 19.681 11.6639C19.9632 11.8077 20.1927 12.0372 20.3365 12.3194C20.5 12.6403 20.5 13.0603 20.5 13.9004V18.1004C20.5 18.9405 20.5 19.3605 20.3365 19.6814C20.1927 19.9636 19.9632 20.1931 19.681 20.3369C19.3601 20.5004 18.9401 20.5004 18.1 20.5004H5.9C5.05992 20.5004 4.63988 20.5004 4.31901 20.3369C4.03677 20.1931 3.8073 19.9636 3.66349 19.6814C3.5 19.3605 3.5 18.9405 3.5 18.1004V9.9Z"/>
<path d="M17.5 11V5.9C17.5 5.05992 17.5 4.63988 17.3365 4.31901C17.1927 4.03677 16.9632 3.8073 16.681 3.66349C16.3601 3.5 15.9401 3.5 15.1 3.5H8.9C8.05992 3.5 7.63988 3.5 7.31901 3.66349C7.03677 3.8073 6.8073 4.03677 6.66349 4.31901C6.5 4.63988 6.5 5.05992 6.5 5.9V8"/>
</svg>
<span class="mx-1 d-none">جزئیات</span>
</button>`;
}
html += `</div>
</div>
`;
html += `<div class="Rtable-cell width7">
<div class="Rtable-cell--content align-items-center d-flex justify-content-end">`;
if (!item.isDone && !item.isCancel) {
html += `
${item.canEdit ?
`<button class="btn-taskmanager-edit position-relative d-md-block d-none" onclick="EditTask(${item.id})">
<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 d-md-none d-flex">ویرایش</span>
</button>`: ``
}
${item.canDelete ?
`<button href="" class="btn-taskmanager-delete d-md-block d-none" onclick="removeConfirm(${item.id})">
<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 d-md-none d-flex">حذف</span>
</button>`: ``
}
<button class="btn-taskmanager-more position-relative">
<span> </span>
<span> </span>
<span> </span>
<span> </span>
<span class="mx-1 align-items-center d-flex justify-content-center">
<p class="my-0 mx-1">عملیات</p>
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16" fill="currentColor">
<circle cx="8.4001" cy="8.39922" r="1.2" transform="rotate(90 8.4001 8.39922)"/>
<circle cx="8.4001" cy="4.39922" r="1.2" transform="rotate(90 8.4001 4.39922)"/>
<circle cx="8.4001" cy="12.3992" r="1.2" transform="rotate(90 8.4001 12.3992)"/>
</svg>
</span>
</button>`;
} else {
html += `<button class="btn-taskmanager-more position-relative" onclick="Detail(${item.id})">
<span class="mx-1 align-items-center d-flex justify-content-center">
<p class="m-1">جزئیات</p>
</span>
</button>`;
}
html += `</div>
</div>
</div>`;
if (!item.isDone && !item.isCancel) {
html += `<div class="tm-${item.color}-operation operation-div w-100">
<div class="operations-btns">
<div class="row p-0">
<div class="col-md-12 col-12 p-1">
<div class="d-flex">`;
if (response.positions.length > 0) {
response.positions.forEach(function (position) {
if ((item.assignList.filter((x) => x.posValue == position.value && x.assignViewModels.length > 0)).length > 0) {
var assignlistt = item.assignList.filter((x) => x.posValue == position.value && x.assignViewModels.length > 0)
html += `<div class="Rtable-cell d-md-none d-block width2">
<div class="Rtable-cell--content" > ${assignlistt[0].assignViewModels[0].assignedName}
<span> - </span>
</div>
</div> `;
}
});
}
html += `</div>
<div class="d-flex justify-content-between">
<div class="d-md-none d-block">
<div class="Rtable-cell--content ">${item.contractingPartyName}</div>
</div>
<div class="d-md-none d-block">
<div class="Rtable-cell--content ">${item.endTaskTime} ${item.endTaskDateFA}</div>
</div>
</div>
</div>
<div class="col-md-12 col-12 text-end p-1">
<div class="d-flex sub-buttons">
${item.canAssign && AssignPermission === `True` ? `<button type="button" class="btn1 loadingButton" onclick="Operation(${item.id}, 'assign')">ارجاع</button>` : ``}
${timeRequestPermission === `True` ? `<button type="button" class="btn1 loadingButton" onclick="Operation(${item.id}, 'request_time')">مهلت برای روز خاص</button>` : ``}
<button permission="90112" type="button" class="btn2 loadingButton" onclick="Operation(${item.id}, 'canceled')">قابل انجام نیست</button>
<button type="button" class="btn3 loadingButton" onclick="Operation(${item.id}, 'completed')">انجام شد</button>
<button permission="90113" type="button" class="btn3 loadingButton d-md-block d-none" onclick="Detail(${item.id})">جزئیات</button>
</div>
</div>
<div class="col-md-12 col-12 p-1">
<div class="d-flex justify-content-between">
${item.canEdit ?
`<button class="btn-taskmanager-edit position-relative w-100 mx-1 d-md-none d-flex align-items-center justify-content-center" onclick="EditTask(${item.id})">
<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 d-flex">ویرایش</span>
</button>`: ``}
${item.canDelete ?
`<button class="btn-taskmanager-delete w-100 mx-1 d-md-none d-flex align-items-center justify-content-center" onclick="removeConfirm(${item.id})">
<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 d-flex">حذف</span>
</button>`: ``}
<button class="btn-taskmanager-detail w-100 mx-1 d-md-none d-flex align-items-center justify-content-center" onclick="Detail(${item.id})">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="currentColor">
<path d="M3.5 9.9C3.5 9.05992 3.5 8.63988 3.66349 8.31901C3.8073 8.03677 4.03677 7.8073 4.31901 7.66349C4.63988 7.5 5.05992 7.5 5.9 7.5H8.31332C8.74409 7.5 8.95947 7.5 9.14963 7.56559C9.31778 7.62359 9.47094 7.71825 9.59801 7.84272C9.74171 7.98347 9.83803 8.17612 10.0307 8.56142L10.9693 10.439C11.162 10.8243 11.2583 11.0169 11.402 11.1577C11.5291 11.2821 11.6822 11.3768 11.8504 11.4348C12.0405 11.5004 12.2559 11.5004 12.6867 11.5004H18.1C18.9401 11.5004 19.3601 11.5004 19.681 11.6639C19.9632 11.8077 20.1927 12.0372 20.3365 12.3194C20.5 12.6403 20.5 13.0603 20.5 13.9004V18.1004C20.5 18.9405 20.5 19.3605 20.3365 19.6814C20.1927 19.9636 19.9632 20.1931 19.681 20.3369C19.3601 20.5004 18.9401 20.5004 18.1 20.5004H5.9C5.05992 20.5004 4.63988 20.5004 4.31901 20.3369C4.03677 20.1931 3.8073 19.9636 3.66349 19.6814C3.5 19.3605 3.5 18.9405 3.5 18.1004V9.9Z"/>
<path d="M17.5 11V5.9C17.5 5.05992 17.5 4.63988 17.3365 4.31901C17.1927 4.03677 16.9632 3.8073 16.681 3.66349C16.3601 3.5 15.9401 3.5 15.1 3.5H8.9C8.05992 3.5 7.63988 3.5 7.31901 3.66349C7.03677 3.8073 6.8073 4.03677 6.66349 4.31901C6.5 4.63988 6.5 5.05992 6.5 5.9V8"/>
</svg>
<span class="mx-1 d-flex">جزئیات</span>
</button>`;
html += `</div>
</div>
</div>
</div>`;
}
html += `</div>`;
n += 1;
});
$('#tasksAjax').append(html);
var newPageIndex = pageIndex + response.pageIndex;
$('#pageIndex').val(newPageIndex);
}
loadSticky();
},
failure: function (response) {
console.log(5, response);
}
});
}
}
function loadRequestCount() {
$.ajax({
async: false,
dataType: 'json',
type: 'GET',
url: `${loadRequestCountAjax}`,
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
success: function (response) {
$('#badgeRequestCount').text(response.result);
},
error: function (err) {
console.log(err);
}
});
}
function loadMoreRequest(type) {
loadRequestCount();
let pageIndex = Number($('#pageIndex').val());
var b = pageIndex % 30;
var AccountId = Number($('#AccountId').val());
var StartDate = $('#StartDate').val();
var EndDate = $('#EndDate').val();
var IsCanceled = $('#IsCanceled').val();
var IsCancelRequest = $('#IsCancelRequest').val();
var IsTimeRequest = $('#IsTimeRequest').val();
var TimeRequestAccepted = $('#TimeRequestAccepted').val();
var IsDone = $('#IsDone').val();
var IsDoneRequest = $('#IsDoneRequest').val();
var generalSearch = $('#GeneralSearch').val();
var index = 1;
var html = '';
if (b === 0) {
// var searchModel = {};
// searchModel.Status = $('#status').val();
// searchModel.ContractingPatyId = Number($('#contractingPatyId').val());
$.ajax({
async: false,
contentType: 'charset=utf-8',
dataType: 'json',
type: 'GET',
url: `${loadMoreAjax}`,
data: {
pageIndex: pageIndex,
accountId: AccountId,
endDate: EndDate,
isCanceled: IsCanceled,
isCancelRequest: IsCancelRequest,
isDone: IsDone,
isTimeRequest: IsTimeRequest,
startDate: StartDate,
timeRequestAccepted: TimeRequestAccepted,
generalSearch: generalSearch,
type: type
},
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
success: function (response) {
console.log(response);
if (response.pageIndex > 0) {
var n = pageIndex + 1;
var taskList = response.taskList;
if (n == 1) {
html += `<div class="Rtable-row Rtable-row--head align-items-center sticky-div">
<div class="Rtable-cell column-heading d-md-block d-none width1">ردیف</div>
<div class="Rtable-cell column-heading d-md-flex d-none width2">
<div class="w-100">ارجاع دهنده</div>
<div class="w-100">خودم</div>`;
if (response.positions.length > 0) {
response.positions.forEach(function (pos) {
html += `<div class="w-100">${pos.name}</div>`;
});
}
html += `</div>
<div class="Rtable-cell column-heading d-md-block d-none width3">تاریخ سررسید</div>
<div class="Rtable-cell column-heading d-md-block d-none width4">طرف حساب</div>
<div class="Rtable-cell column-heading d-md-block d-none width5">عنوان وظیفه</div>
<div class="Rtable-cell column-heading width7 text-end">عملیات</div>
</div>`;
}
taskList.forEach(function (item) {
var successSend = item.status == "موفق" ? "successSend" : "";
var operation;
switch (item.color) {
case "red":
operation = "cancel_request";
break;
case "yellow":
operation = "request_time";
break;
case "green":
operation = "complete_request";
break;
default:
operation = "";
}
html += `<div class="Rtable-row align-items-center position-relative openAction hideDivRequest${item.id} tm-${item.color}" style="cursor: pointer;">
<div class="Rtable-cell d-md-block d-flex width1">
<div class="Rtable-cell--content">
<span class="d-flex justify-content-center span-number">
${n}
</span>
</div>
</div>
<div class="Rtable-cell d-md-flex d-none width2">
<div class="Rtable-cell--content w-100 position-relative color-width2"><div class="position-relative">${item.assigner}</div></div>
<div class="Rtable-cell--content w-100 position-relative color-width2"><div class="position-relative">${item.selfName}</div></div>`;
if (response.positions.length > 0) {
response.positions.forEach(function (position) {
if ((item.assignList.filter((x) => x.posValue == position.value && x.assignViewModels.length > 0)).length > 0) {
var assignlistt = item.assignList.filter((x) => x.posValue == position.value && x.assignViewModels.length > 0);
html += `
<div class="tooltipfull-container w-100 position-relative color-width2" id="workShopEmpListIntro">
<p class="m-0 ellipsed text-center">
<span class="position-relative">${assignlistt[0].assignViewModels[0].assignedName}</span>
</p>
<span class="tooltipfull" style="right: 47px;">
`;
assignlistt[0].assignViewModels.forEach(function (aVMs) {
html += `<p class="m-0">${aVMs.assignedName}</p>`;
});
html += `</span>
</div>`;
}
else {
html += `<div class="Rtable-cell--content position-relative w-100 color-width2"><div class="position-relative">-</div></div>`;
}
});
}
html += `</div>`;
html += `<div class="Rtable-cell d-md-block d-none width3">
<div class="Rtable-cell--content ">${item.endTaskTime} ${item.endTaskDateFA}</div>
</div>
<div class="Rtable-cell d-md-block d-none width4">
<div class="Rtable-cell--content">
<div class="tooltipfull-container">
<p class="m-0 ellipsed">
<span>${item.contractingPartyName}</span>
</p>
<span class="tooltipfull" >
${item.contractingPartyName}
</span>
</div>
</div>
</div>
<div class="Rtable-cell d-md-block d-none width5">
<div class="Rtable-cell--content">
<div class="tooltipfull-container">
<p class="m-0 ellipsed">
<span>${item.name}</span>
</p>
<span class="tooltipfull" >
${item.name}
</span>
</div>
</div>
</div>`;
html += `<div class="Rtable-cell width7">
<div class="Rtable-cell--content align-items-center d-flex justify-content-end">`;
html += `${item.canCheckRequests && CheckRequestPermission === `True` ? `<button permission="90120" class="btn-taskmanager-more position-relative" onclick="OperationRequest(${item.id}, '${operation}')">
<span class="mx-1 align-items-center d-flex justify-content-center">
<p class="m-1">بررسی</p>
</span>
</button>`: ``}`;
html += `</div>
</div>
</div>`;
html += `</div>`;
n += 1;
});
$('#taskRequestsAjax').append(html);
var newPageIndex = pageIndex + response.pageIndex;
$('#pageIndex').val(newPageIndex);
index++;
}
loadSticky();
},
failure: function (response) {
console.log(5, response);
}
});
}
}
$(document).ready(function () {
if (userPositionValue == 1) {
loadMore('selfTask');
} else if (userPositionValue > 1 && userPositionValue < LastPositionValue) {
loadMore('received');
} else if (userPositionValue == LastPositionValue) {
loadMore('list');
}
var filterEmployeeId = $('#AccountId').val();
var filterStart = $('#StartDate').val().trim();
var filterEnd = $('#EndDate').val().trim();
var filterIsDone = $('#IsDone').val().trim();
var filterGeneralSearch = $('#GeneralSearch').val().trim();
if (filterEmployeeId != 0 || filterStart != '' || filterEnd != '' || filterIsDone != '' || filterGeneralSearch !='' ) {
$('.btn-clear-filter').removeClass('disable');
} else {
$('.btn-clear-filter').addClass('disable');
}
});
// var extraHeight = 1680;
// var divHeight = 1550;
// $("#divTaskList").scroll(function () {
// if ($("#divTaskList").scrollTop() + $("#divTaskList").height() > extraHeight - 100) {
// alert("loading..");
// loadMore();
// extraHeight += divHeight;
// }
// });
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 600) {
if ($('#btnTaskListSelfTask').hasClass('active')) {
loadMore('selfTask');
} else if ($('#btnTaskListAllTask').hasClass('active')) {
loadMore('AllTask');
} else if ($('#btnTaskListSent').hasClass('active')) {
loadMore('sent');
} else if ($('#btnTaskListReceived').hasClass('active')) {
loadMore('received');
} else if ($('#btnTaskList').hasClass('active')) {
loadMore('list');
} else if ($('#btnTaskRequest').hasClass('active')) {
loadMore('request');
}
}
});
// *************************** مربوط به جستجو در دسکتاپ ********************************
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-IsTimeRequest .item').on("click", function () {
let dataVal = $(this).attr("value-data-normal");
$('#IsTimeRequest').val(dataVal);
});
$('.dropdown-IsCanceled .item').on("click", function () {
let dataVal = $(this).attr("value-data-normal");
$('#IsCanceled').val(dataVal);
});
$('.dropdown-IsCancelRequest .item').on("click", function () {
let dataVal = $(this).attr("value-data-normal");
$('#IsCancelRequest').val(dataVal);
});
$('.dropdown-TimeRequestAccepted .item').on("click", function () {
let dataVal = $(this).attr("value-data-normal");
$('#TimeRequestAccepted').val(dataVal);
});
$('.dropdown-IsDone .item').on("click", function () {
let dataVal = $(this).attr("value-data-normal");
$('#IsDone').val(dataVal);
});
$('.dropdown-IsDoneRequest .item').on("click", function () {
let dataVal = $(this).attr("value-data-normal");
$('#IsDoneRequest').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();
$('#filterRemoveMobile').show();
var filterEmployeeId = $('#AccountId').val();
var filterStart = $('#StartDate').val().trim();
var filterEnd = $('#EndDate').val().trim();
var filterIsDone = $('#IsDone').val().trim();
var filterGeneralSearch = $('#GeneralSearch').val().trim();
var filterGeneralSearchMobile = $('#GeneralSearchMobile').val().trim();
$('#GeneralSearch').val(filterGeneralSearch);
$('#GeneralSearchMobile').val(filterGeneralSearchMobile);
if (filterEmployeeId != 0 || filterStart != '' || filterEnd != '' || filterIsDone != '' || filterGeneralSearch != '' || filterGeneralSearchMobile != '') {
$('.btn-clear-filter').removeClass('disable');
} else {
$('.btn-clear-filter').addClass('disable');
}
$("#searchModal").modal("hide");
});
$(document).on('click', '.btn-clear-filter', function () {
$(this).hide();
var filterEmployeeId = $('#AccountId').val();
var filterStart = $('#StartDate').val().trim();
var filterEnd = $('#EndDate').val().trim();
var filterIsDone = $('#IsDone').val().trim();
var filterGeneralSearch = $('#GeneralSearch').val().trim();
var filterGeneralSearchMobile = $('#GeneralSearchMobile').val().trim();
$('#GeneralSearch').val(filterGeneralSearch);
$('#GeneralSearchMobile').val(filterGeneralSearchMobile);
if (filterEmployeeId != 0 || filterStart != '' || filterEnd != '' || filterIsDone != '' || filterGeneralSearch != '' || filterGeneralSearchMobile != '') {
$('.btn-clear-filter').removeClass('disable');
} else {
$('.btn-clear-filter').addClass('disable');
}
$("#searchModal").modal("hide");
});
//******************** فیلتر کردن برای جستجو ********************
//Edit Task
function EditTask(id) {
var ID = Number(id);
$(".modal-xl-taskTime").addClass('modal-xxxl');
var goTo = `#showmodal=/AdminNew/Company/Task/Index?taskId=${ID}&handler=EditTask`;
window.location.href = goTo;
}
function removeConfirm(id) {
swal({
title: "آیا از حذف این وظیفه اطمینان دارید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
if (isConfirm) {
remove(id);
}
});
}
function remove(id) {
var ID = Number(id);
$.ajax({
async: false,
dataType: 'json',
type: 'POST',
url: `${removeAjax}`,
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
data: { taskId: ID },
success: function (response) {
if (response.isSuccess) {
$('.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 Operation(id, type) {
var task_ID = Number(id);
var goTo = `#showmodal=/AdminNew/Company/Task/Index?taskId=${task_ID}&type=${type}&handler=AssignTo`;
window.location.href = goTo;
}
function OperationRequest(id, type) {
var task_ID = Number(id);
var goTo = `#showmodal=/AdminNew/Company/Task/Index?taskId=${task_ID}&type=${type}&handler=OperationRequestTask`;
window.location.href = goTo;
}
function Detail(id) {
var task_ID = Number(id);
var goTo = `#showmodal=/AdminNew/Company/Task/Index?taskId=${task_ID}&handler=DetailsTask`;
window.location.href = goTo;
}
//************************************ برای مشاهده زمان و ساعت **********************************/
//$(".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");
}
});
function dateValidcheck(inputField1) {
console.log(inputField1);
let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
fixNumbers = function (str) {
if (typeof str === 'string') {
for (var i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
let getdate = inputField1.value;
let m1, m2;
let y1, y2, y3, y4;
let d1, d2;
let s1, s2;
for (var i = 0; i < getdate.length; i++) {
if (i === 0) {
y1 = fixNumbers(getdate[i]);
}
if (i === 1) {
y2 = fixNumbers(getdate[i]);
}
if (i === 2) {
y3 = fixNumbers(getdate[i]);
}
if (i === 3) {
y4 = fixNumbers(getdate[i]);
}
if (i === 4) {
s1 = fixNumbers(getdate[i]);
}
if (i === 5) {
m1 = fixNumbers(getdate[i]);
}
if (i === 6) {
m2 = fixNumbers(getdate[i]);
}
if (i === 7) {
s2 = fixNumbers(getdate[i]);
}
if (i === 8) {
d1 = fixNumbers(getdate[i]);
}
if (i === 9) {
d2 = fixNumbers(getdate[i]);
}
}
let yRes = y1 + y2 + y3 + y4;
let year = parseInt(yRes);
let mRes = m1 + m2;
let month = parseInt(mRes);
let dRes = d1 + d2;
let day = parseInt(dRes);
let fixResult = yRes + s1 + mRes + s2 + dRes;
let test1 = checkEnValid(inputField1.value);
let isValid = /^([1][3-4][0-9][0-9][/])([0][1-9]|[1][0-2])([/])([0][1-9]|[1-2][0-9]|[3][0-1])$/.test(fixResult);
if (isValid && test1) {
// inputField1.style.backgroundColor = '#a6e9a6';
start1valid = true;
} else {
if (inputField1.value != "") {
// inputField1.style.backgroundColor = '#f94c4c';
$.Notification.autoHideNotify('error', 'top center', 'پیام سیستم ', "لطفا تاریخ را بصورت صحیح وارد کنید");
start1valid = false;
}
}
return start1valid;
}
function checkEnValid(fixDate1) {
let persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],
fixNumbers = function (str) {
if (typeof str === 'string') {
for (var i = 0; i < 10; i++) {
str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);
}
}
return str;
};
let getdate = fixDate1;
let m1, m2;
let y1, y2, y3, y4;
let d1, d2;
for (let i = 0; i < getdate.length; i++) {
if (i === 0) {
y1 = fixNumbers(getdate[i]);
}
if (i === 1) {
y2 = fixNumbers(getdate[i]);
}
if (i === 2) {
y3 = fixNumbers(getdate[i]);
}
if (i === 3) {
y4 = fixNumbers(getdate[i]);
}
if (i === 5) {
m1 = fixNumbers(getdate[i]);
}
if (i === 6) {
m2 = fixNumbers(getdate[i]);
}
if (i === 8) {
d1 = fixNumbers(getdate[i]);
}
if (i === 9) {
d2 = fixNumbers(getdate[i]);
}
}
let yRes = y1 + y2 + y3 + y4;
let year = parseInt(yRes);
let mRes = m1 + m2;
let month = parseInt(mRes);
let dRes = d1 + d2;
let day = parseInt(dRes);
let kabiseh = false;
if (month <= 6 && day > 31) {
return false;
} else if (month > 6 && month < 12 && day > 30) {
return false;
} else if (month === 12) {
switch (year) {
case 1346:
kabiseh = true;
break;
case 1350:
kabiseh = true;
break;
case 1354:
kabiseh = true;
break;
case 1358:
kabiseh = true;
break;
case 1362:
kabiseh = true;
break;
case 1366:
kabiseh = true;
break;
case 1370:
kabiseh = true;
break;
case 1375:
kabiseh = true;
break;
case 1379:
kabiseh = true;
break;
case 1383:
kabiseh = true;
break;
case 1387:
kabiseh = true;
break;
case 1391:
kabiseh = true;
break;
case 1395:
kabiseh = true;
break;
case 1399:
kabiseh = true;
break;
case 1403:
kabiseh = true;
break;
case 1408:
kabiseh = true;
break;
case 1412:
kabiseh = true;
break;
case 1416:
kabiseh = true;
break;
case 1420:
kabiseh = true;
break;
case 1424:
kabiseh = true;
break;
case 1428:
kabiseh = true;
break;
case 1432:
kabiseh = true;
break;
case 1436:
kabiseh = true;
break;
case 1441:
kabiseh = true;
break;
case 1445:
kabiseh = true;
break;
default:
kabiseh = false;
}
if (kabiseh == true && day > 30) {
return false;
} else if (kabiseh == false && day > 29) {
return false;
} else {
return true;
}
} else {
return true;
}
}
//************************************ برای مشاهده زمان و ساعت **********************************/
//************************************ برای مشاهده پرسنل **********************************/
$(document).ready(function () {
$(".select2Option").select2({
language: "fa",
dir: "rtl",
});
function formatSelection(val) {
return val.id;
}
$($('#AccountId').val()).select2({
formatSelection: formatSelection,
width: 300
});
var employeeIdSelected = $('#EmployeeId').val();
$.ajax({
url: `${employeeListAjax}`,
type: 'GET',
success: function (response) {
var employees = response.result;
var employeeOptionsHtml = `<option value="0" ${employeeIdSelected == 0 ? 'selected' : ''}>انتخاب پرسنل ...</option>`;
employees.forEach(function (employee) {
employeeOptionsHtml += `<option value="${employee.id}" ${employeeIdSelected == employee.id ? 'selected' : ''}>${employee.fullname}</option>`;
});
$('#AccountId').html(employeeOptionsHtml);
$('#AccountIdMobile').html(employeeOptionsHtml);
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
}
});
$('#AccountId').change(function () {
if ($('#AccountId').val() != '') {
var employeeId = $('#AccountId').val();
$("#EmployeeIdSearch").val(employeeId);
}
});
});
//************************************ برای مشاهده پرسنل **********************************/
//******************** نمایش تاریخ در موبایل ********************
if ($(window).width() < 768) {
// 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 = [];
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 = [];
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);
}
}
}
//******************** نمایش تاریخ در موبایل ********************