$(document).ready(async function () {
/* سلکت شدن ماه جاری */
const monthSelect = document.getElementById('month-select');
monthSelect.value = currentMonth;
/* سلکت شدن ماه جاری */
const { year, month, employer, employerName, workshopAndArchive, workshopAndArchiveName, adminPersonnel, status } = getSearchParamsFromUrl();
$('#year-select').val(year !== "0" ? year : Number($('#year-select').val()));
$("#month-select").val(month !== "0" ? month : currentMonth);
$("#employer-select").val(employer);
$("#workshop-select").val(workshopAndArchive);
if (workshopAndArchive && workshopAndArchiveName) {
const option = new Option(workshopAndArchiveName, workshopAndArchive, true, true);
$("#workshop-select").append(option).trigger('change');
}
if (employer && employerName) {
const option = new Option(employerName, employer, true, true);
$("#employer-select").append(option).trigger('change');
}
$("#admin-personnel-select").val(adminPersonnel);
$("#status-select").val(status !== "" ? status : 2);
if (year !== "0" || month !== '0' || employer !== '0' || workshopAndArchive !== '0' || adminPersonnel !== '0' || status !== '') {
$('.btn-clear-filter').removeClass('disable');
} else {
$('.btn-clear-filter').addClass('disable');
}
$(".EmployerSelect2Option").select2({
language: "fa",
dir: "rtl",
ajax: {
url: employerSelectListUrl,
dataType: 'json',
delay: 250,
data: function (params) {
return {
search: params.term
};
},
processResults: function (response) {
const originalList = response.data.map(item => ({
id: item.id,
text: item.name
}));
const manualItems = [
{ id: 0, text: 'انتخاب کارفرما ...' }
];
const finalList = manualItems.concat(originalList);
return {
results: finalList
};
},
cache: false
},
minimumInputLength: 0
//dropdownParent: $('#MainModal')
});
$(".WorkshopSelect2Option").select2({
language: "fa",
dir: "rtl",
ajax: {
url: workshopSelectListUrl,
dataType: 'json',
delay: 250,
data: function (params) {
return {
search: params.term
};
},
processResults: function (response) {
const originalList = response.data.map(item => ({
id: item.id,
text: item.name + " - " + item.archiveCode
}));
const manualItems = [
{ id: 0, text: 'انتخاب نام کارگاه /شماره بایگانی ...' }
];
const finalList = manualItems.concat(originalList);
return {
results: finalList
};
},
cache: false
},
minimumInputLength: 0
//dropdownParent: $('#MainModal')
});
$(".AdminPersonnelNameSelect2Option").select2({
language: "fa",
dir: "rtl"
//dropdownParent: $('#MainModal')
});
$("#status-select").select2({
language: "fa",
dir: "rtl"
//dropdownParent: $('#MainModal')
});
$("#year-select").select2({
language: "fa",
dir: "rtl"
//dropdownParent: $('#MainModal')
});
$("#month-select").select2({
language: "fa",
dir: "rtl"
//dropdownParent: $('#MainModal')
});
await ajaxAdminPersonnel();
await loadMonthlyOverviewData();
});
// Open Div Mobile
$(document).on('click', '.monthly-table__row' ,function () {
var container = $(this).closest('.monthly-table__container');
var toggleDiv = container.find('.monthly-table__toggle');
var isOpen = toggleDiv.hasClass('show');
// Close all
$('.monthly-table__toggle.show').removeClass('show');
// Open this one only if it wasn't already open
if (!isOpen) {
toggleDiv.addClass('show');
}
});
$(document).on('click', '.btn-search-click, .btn-search-click-mobile', function () {
const { year, month, employer, employerName, workshopAndArchive, workshopAndArchiveName, adminPersonnel, status } = getSearchParamsFromUrl();
var filterYear = year;
var filterMonth = month;
var filterEmployer = employer;
var filterEmployerName = employerName;
var filterWorkshopAndArchive = workshopAndArchive;
var filterWorkshopAndArchiveName = workshopAndArchiveName;
var filterAdminPersonnel = adminPersonnel;
var filterStatus = status;
if (window.matchMedia('(max-width: 767px)').matches) {
filterYear = $('#year-select').val();
filterMonth = $('#month-select').val().trim();
filterEmployer = $('#employer-select').val().trim();
filterEmployerName = $('#employer-select').select2('data')[0].text;
filterWorkshopAndArchive = $('#workshop-select').val();
filterWorkshopAndArchiveName = $("#workshop-select").select2('data')[0].text;
filterAdminPersonnel = $('#admin-personnel-select').val().trim();
filterStatus = $('#status-select').val();
} else {
filterYear = $('#year-select').val();
filterMonth = $('#month-select').val().trim();
filterEmployer = $('#employer-select').val().trim();
filterEmployerName = $('#employer-select').select2('data')[0].text;
filterWorkshopAndArchive = $('#workshop-select').val();
filterWorkshopAndArchiveName = $("#workshop-select").select2('data')[0].text;
filterAdminPersonnel = $('#admin-personnel-select').val().trim();
filterStatus = $('#status-select').val();
}
if (filterYear !== "0" || filterMonth !== '0' || filterEmployer !== '0' || filterWorkshopAndArchive !== '0' || filterAdminPersonnel !== '0' || filterStatus !== '') {
$('.btn-clear-filter').removeClass('disable');
} else {
$('.btn-clear-filter').addClass('disable');
}
paramsUrl(filterYear, filterMonth, filterEmployer, filterEmployerName, filterWorkshopAndArchive, filterWorkshopAndArchiveName, filterAdminPersonnel, filterStatus);
loadMonthlyOverviewData();
});
$(document).on('click', '.btn-clear-filter', function () {
$('.btn-clear-filter').addClass('disable');
//$('.employeeName').val('');
$('#searchModal').modal('hide');
loadMonthlyOverviewData();
});
$(document).on('click', '.js-document-click', function () {
$('.js-document-click').removeClass('tab-bar__tab--active');
$(this).addClass('tab-bar__tab--active');
var statusValue = $(this).prop('value');
var isMobile = window.matchMedia('(max-width: 767px)').matches;
$(".monthly-table__body").hide();
$(".card-container").hide();
switch (statusValue) {
case "0":
!isMobile ? $('#load-data-html-step0').show() : $('#load-data-html-step0-mobile').show();
!isMobile ? $('#overviewSteps').show() : $('#overviewSteps-mobile').show();
!isMobile ? $('#overviewAll').hide() : $('#overviewAll-mobile').hide();
break;
case "1":
!isMobile ? $('#load-data-html-step1').show() : $('#load-data-html-step1-mobile').show();
!isMobile ? $('#overviewSteps').show() : $('#overviewSteps-mobile').show();
!isMobile ? $('#overviewAll').hide() : $('#overviewAll-mobile').hide();
break;
case "2":
!isMobile ? $('#load-data-html-step2').show() : $('#load-data-html-step2-mobile').show();
!isMobile ? $('#overviewSteps').show() : $('#overviewSteps-mobile').show();
!isMobile ? $('#overviewAll').hide() : $('#overviewAll-mobile').hide();
break;
case "3":
!isMobile ? $('#load-data-html-step3').show() : $('#load-data-html-step3-mobile').show();
!isMobile ? $('#overviewSteps').show() : $('#overviewSteps-mobile').show();
!isMobile ? $('#overviewAll').hide() : $('#overviewAll-mobile').hide();
break;
case "4":
!isMobile ? $('#load-data-html-step4').show() : $('#load-data-html-step4-mobile').show();
!isMobile ? $('#overviewSteps').show() : $('#overviewSteps-mobile').show();
!isMobile ? $('#overviewAll').hide() : $('#overviewAll-mobile').hide();
break;
case "5":
!isMobile ? $('#load-data-html-stepAll').show() : $('#load-data-html-stepAll-mobile').show();
!isMobile ? $('#overviewAll').show() : $('#overviewAll-mobile').show();
!isMobile ? $('#overviewSteps').hide() : $('#overviewSteps-mobile').hide();
break;
default:
}
});
async function loadMonthlyOverviewData() {
var html = '';
const { year, month, employer, employerName, workshopAndArchive, workshopAndArchiveName, adminPersonnel, status } = getSearchParamsFromUrl();
var searchModel = {
'Year': year !== "0" ? year : Number($('#year-select').val()),
'Month': month !== "0" ? month : Number($('#month-select').val()),
'WorkshopId': workshopAndArchive,
'EmployerId': employer,
'AdminAccountId': adminPersonnel !== "0" ? adminPersonnel : adminAccountId,
'ActivationStatus': Number(status)
};
try {
const response = await ajax.get(loadMonthlyOverviewDataUrl, searchModel, true);
var responseData = response.data;
var countStatusStep0 = responseData.filter(x => x.status === 0).length;
$("#step0-badge").text(countStatusStep0).toggle(countStatusStep0 > 0);
var countStatusStep1 = responseData.filter(x => x.status === 1).length;
$("#step1-badge").text(countStatusStep1).toggle(countStatusStep1 > 0);
var countStatusStep2 = responseData.filter(x => x.status === 2).length;
$("#step2-badge").text(countStatusStep2).toggle(countStatusStep2 > 0);
var countStatusStep3 = responseData.filter(x => x.status === 3).length;
$("#step3-badge").text(countStatusStep3).toggle(countStatusStep3 > 0);
var countStatusStep4 = responseData.filter(x => x.status === 4).length;
$("#step4-badge").text(countStatusStep4).toggle(countStatusStep4 > 0);
var countStatusStep5 = responseData.length;
$("#step5-badge").text(countStatusStep5).toggle(countStatusStep5 > 0);
if (responseData.length > 0) {
initialDocument(responseData);
monthlyOverviewStatusDocument(responseData);
allWorkshops(responseData);
} else {
html += `
اطلاعاتی وجود ندارد.
`;
$('#load-data-html-step0').html(html);
$('#load-data-html-step1').html(html);
$('#load-data-html-step2').html(html);
$('#load-data-html-step3').html(html);
$('#load-data-html-step4').html(html);
$('#load-data-html-stepAll').html(html);
}
} catch (err) {
console.error("خطا در ajax.post:", err);
}
}
function initialDocument(data) {
var html = '';
var htmlMobile = '';
var indexNumber = 1;
var indexNumberMobile = 1;
data.forEach(function (item) {
if (item.status === 0) {
html += `
${item.workshopArchiveCode}
${item.province}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
عملیات
نام کارفرما :
${item.employerName}
تعداد پرسنل :
${item.employeeCount} نفر
شماره تماس کارفرما :
${item.employerPhoneNumber}
`;
}
});
data.forEach(function (item) {
if (item.status === 0) {
htmlMobile += `
${item.workshopArchiveCode}
${item.agentPhoneNumber}
استان:
${item.province}
تعداد پرسنل:
${item.employeeCount}
شهرستان:
${item.city}
شماره تماس کافرما:
${item.employerPhoneNumber}
جزئیات نشانی:
${item.address}
پرسنل امور اجرائی:
${item.adminFullName}
نام کافرما:
${item.employerName}
`;
}
});
$('#load-data-html-step0').html(html);
$('#load-data-html-step0-mobile').html(htmlMobile);
}
function monthlyOverviewStatusDocument(data) {
var htmlStep1 = '';
var htmlStep2 = '';
var htmlStep3 = '';
var htmlStep4 = '';
var htmlStep1Mobile = '';
var htmlStep2Mobile = '';
var htmlStep3Mobile = '';
var htmlStep4Mobile = '';
var indexNumber = 1;
var indexNumberMobile = 1;
data.forEach(function (item) {
//Step 1
if (item.status === 1) {
htmlStep1 += `
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما :
${item.employerName}
تعداد پرسنل :
${item.employeeCount} نفر
شماره تماس کارفرما :
${item.employerPhoneNumber}
`;
htmlStep1Mobile += `
استان:
${item.province}
شهرستان:
${item.city}
جزئیات نشانی:
${item.address}
شماره تماس نماینده:
${item.agentPhoneNumber}
پرسنل امور اجرائی:
${item.adminFullName}
نام کافرما:
${item.employerName}
شماره تماس کافرما:
${item.employerPhoneNumber}
تعداد پرسنل:
${item.employeeCount}
`;
}
//Step 2
if (item.status === 2) {
htmlStep2 += `
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما :
${item.employerName}
تعداد پرسنل :
${item.employeeCount} نفر
شماره تماس کارفرما :
${item.employerPhoneNumber}
`;
htmlStep1Mobile += `
استان:
${item.province}
شهرستان:
${item.city}
جزئیات نشانی:
${item.address}
شماره تماس نماینده:
${item.agentPhoneNumber}
پرسنل امور اجرائی:
${item.adminFullName}
نام کافرما:
${item.employerName}
شماره تماس کافرما:
${item.employerPhoneNumber}
تعداد پرسنل:
${item.employeeCount}
`;
}
//Step 3
if (item.status === 3) {
htmlStep3 += `
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما :
${item.employerName}
تعداد پرسنل :
${item.employeeCount} نفر
شماره تماس کارفرما :
${item.employerPhoneNumber}
`;
htmlStep1Mobile += `
استان:
${item.province}
شهرستان:
${item.city}
جزئیات نشانی:
${item.address}
شماره تماس نماینده:
${item.agentPhoneNumber}
پرسنل امور اجرائی:
${item.adminFullName}
نام کافرما:
${item.employerName}
شماره تماس کافرما:
${item.employerPhoneNumber}
تعداد پرسنل:
${item.employeeCount}
`;
}
//Step 4
if (item.status === 4) {
htmlStep4 += `
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما :
${item.employerName}
تعداد پرسنل :
${item.employeeCount} نفر
شماره تماس کارفرما :
${item.employerPhoneNumber}
`;
htmlStep1Mobile += `
استان:
${item.province}
شهرستان:
${item.city}
جزئیات نشانی:
${item.address}
شماره تماس نماینده:
${item.agentPhoneNumber}
پرسنل امور اجرائی:
${item.adminFullName}
نام کافرما:
${item.employerName}
شماره تماس کافرما:
${item.employerPhoneNumber}
تعداد پرسنل:
${item.employeeCount}
`;
}
});
$('#load-data-html-step1').html(htmlStep1);
$('#load-data-html-step2').html(htmlStep2);
$('#load-data-html-step3').html(htmlStep3);
$('#load-data-html-step4').html(htmlStep4);
}
function allWorkshops(data) {
var html = '';
var htmlMobile = '';
var indexNumber = 1;
var indexNumberMobile = 1;
var strTextStatus = "";
var strColorStatus = "";
data.sort((a, b) => a.status - b.status);
data.forEach(function (item) {
html += `
${item.workshopArchiveCode}
${item.workshopName}
${item.employerName}
${item.province}
${item.city}
${item.address}
${item.address}
`;
switch (item.status) {
case 0:
strTextStatus = "تنظیم مستندات";
strColorStatus = "documents-setup";
break;
case 1:
strTextStatus = "در انتظار مراجعه";
strColorStatus = "step1";
break;
case 2:
strTextStatus = "در حال مراجعه";
strColorStatus = "step2";
break;
case 3:
strTextStatus = "اتمام امور";
strColorStatus = "step3";
break;
case 4:
strTextStatus = "بایگانی";
strColorStatus = "step4";
break;
default:
}
html += `
${strTextStatus}
نام کارفرما :
${item.employerName}
تعداد پرسنل :
${item.employeeCount} نفر
شماره تماس کارفرما :
${item.employerPhoneNumber}
`;
htmlMobile += `
استان:
${item.province}
شهرستان:
${item.city}
جزئیات نشانی:
${item.address}
شماره تماس نماینده:
${item.agentPhoneNumber}
پرسنل امور اجرائی:
${item.employerName}
نام کافرما:
${item.employerName}
شماره تماس کافرما:
${item.employerPhoneNumber}
تعداد پرسنل:
${item.employeeCount}
`;
});
$('#load-data-html-stepAll').html(html);
$('#load-data-html-stepAll-mobile').html(htmlMobile);
}
function showConfirmSwal() {
return new Promise((resolve) => {
swal({
title: "آیا از انتقال مطمئن هستید؟",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "بله",
cancelButtonText: "خیر",
closeOnConfirm: true,
closeOnCancel: true
}, function (isConfirm) {
resolve(isConfirm);
});
});
}
async function handlerStep(id, stepStr) {
let handlerUrl = stepStr === "next" ? nextUrl : backUrl;
const isConfirm = await showConfirmSwal();
if (!isConfirm) return;
try {
const response = await ajax.post(handlerUrl, { id: id }, true);
if (response.isSuccedded) {
$('.alert-success-msg').show().find('p').text(response.message);
setTimeout(() => {
$('.alert-success-msg').hide().find('p').text('');
}, 1500);
loadMonthlyOverviewData();
} else {
$('.alert-msg').show().find('p').text(response.message);
setTimeout(() => {
$('.alert-msg').hide().find('p').text('');
}, 2000);
}
} catch (err) {
console.error("خطا در ajax.post:", err);
}
}
async function ajaxAdminPersonnel() {
await $.ajax({
url: accountSelectListUrl,
type: 'GET',
success: function (response) {
if (response.data.length > 0) {
var items = response.data;
var optionsHtml = 'انتخاب اعضاء ';
const filteredItems = items.filter(item => item.id !== 2 && item.id !== 3);
filteredItems.forEach(function (item) {
optionsHtml += `${item.name} `;
});
$('#admin-personnel-select').html(optionsHtml);
const { year, month, employer, employerName, workshopAndArchive, workshopAndArchiveName, adminPersonnel, status } = getSearchParamsFromUrl();
if (![2, 3].includes(adminAccountId)) {
$('#admin-personnel-select').prop('disabled', true).closest("div").addClass('disable');
$("#admin-personnel-select").val(adminAccountId).trigger('change');
} else {
$('#admin-personnel-select').prop('disabled', false).closest("div").removeClass('disable');
$("#admin-personnel-select").val(adminPersonnel).trigger('change');
}
}
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
}
});
}
function paramsUrl(year, month, employer, employerName, workshopAndArchive, workshopAndArchiveName, adminPersonnel, status) {
const params = new URLSearchParams();
let hasAnyFilter = false;
if (year !== '0') {
params.set("year", year);
hasAnyFilter = true;
}
if (month !== '0') {
params.set("month", month);
hasAnyFilter = true;
}
if (employer !== '0') {
params.set("employer", employer);
hasAnyFilter = true;
}
if (employer !== '0') {
params.set("employer-name", employerName);
hasAnyFilter = true;
}
if (workshopAndArchive !== '0') {
params.set("workshop-archive", workshopAndArchive);
hasAnyFilter = true;
}
if (workshopAndArchive !== '0') {
params.set("workshop-name", workshopAndArchiveName);
hasAnyFilter = true;
}
if (adminPersonnel !== "0") {
params.set("admin-personnel", adminPersonnel);
hasAnyFilter = true;
}
if (status !== "2") {
params.set("status", status);
hasAnyFilter = true;
}
const newUrl = hasAnyFilter
? `${window.location.origin}/AdminNew/Company/MonthlyOverview?${params.toString()}`
: `${window.location.origin}/AdminNew/Company/MonthlyOverview`;
window.history.pushState({}, '', newUrl);
}
function getSearchParamsFromUrl() {
const urlParams = new URLSearchParams(window.location.search);
return {
year: urlParams.get("year") || "0",
month: urlParams.get("month") || "0",
employer: urlParams.get("employer") || "0",
employerName: urlParams.get("employer-name") || "",
workshopAndArchive: urlParams.get("workshop-archive") || "0",
workshopAndArchiveName: urlParams.get("workshop-name") || "",
adminPersonnel: urlParams.get("admin-personnel") || "0",
status: urlParams.get("status") || ""
};
}