$(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); $('#year-select-mobile').val(year !== "0" ? year : Number($('#year-select').val())); $("#month-select-mobile").val(month !== "0" ? month : currentMonth); $("#employer-select-mobile").val(employer); $("#workshop-select-mobile").val(workshopAndArchive); if (workshopAndArchive && workshopAndArchiveName) { const option = new Option(workshopAndArchiveName, workshopAndArchive, true, true); $("#workshop-select").append(option).trigger('change'); $("#workshop-select-mobile").append(option).trigger('change'); } if (employer && employerName) { const option = new Option(employerName, employer, true, true); $("#employer-select").append(option).trigger('change'); $("#employer-select-mobile").append(option).trigger('change'); } $("#admin-personnel-select").val(adminPersonnel); $("#admin-personnel-select-mobile").val(adminPersonnel); $("#status-select").val(status !== "" ? status : 2); $("#status-select-mobile").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') }); $(".EmployerSelect2OptionMobile").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: $('#searchModal') }); $(".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') }); $(".WorkshopSelect2OptionMobile").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: $('#searchModal') }); $(".AdminPersonnelNameSelect2Option").select2({ language: "fa", dir: "rtl" //dropdownParent: $('#MainModal') }); $(".AdminPersonnelNameSelect2OptionMobile").select2({ language: "fa", dir: "rtl", dropdownParent: $('#MainModal') }); $("#status-select").select2({ language: "fa", dir: "rtl" //dropdownParent: $('#MainModal') }); $("#status-select-mobile").select2({ language: "fa", dir: "rtl", dropdownParent: $('#searchModal') }); $("#year-select").select2({ language: "fa", dir: "rtl" //dropdownParent: $('#MainModal') }); $("#year-select-mobile").select2({ language: "fa", dir: "rtl", dropdownParent: $('#searchModal') }); $("#month-select").select2({ language: "fa", dir: "rtl" //dropdownParent: $('#MainModal') }); $("#month-select-mobile").select2({ language: "fa", dir: "rtl", dropdownParent: $('#searchModal') }); 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-mobile').val(); filterMonth = $('#month-select-mobile').val(); filterEmployer = $('#employer-select-mobile').val(); filterEmployerName = $('#employer-select-mobile').select2('data')[0].text; filterWorkshopAndArchive = $('#workshop-select-mobile').val(); filterWorkshopAndArchiveName = $("#workshop-select-mobile").select2('data')[0].text; filterAdminPersonnel = $('#admin-personnel-select-mobile').val(); filterStatus = $('#status-select-mobile').val(); } else { filterYear = $('#year-select').val(); filterMonth = $('#month-select').val(); filterEmployer = $('#employer-select').val(); filterEmployerName = $('#employer-select').select2('data')[0].text; filterWorkshopAndArchive = $('#workshop-select').val(); filterWorkshopAndArchiveName = $("#workshop-select").select2('data')[0].text; filterAdminPersonnel = $('#admin-personnel-select').val(); 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); var isMobile = window.matchMedia('(max-width: 767px)').matches; if (isMobile) { $('#searchModal').modal('hide'); } 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() { $('#load-data-html-step0').html(''); $('#load-data-html-step1').html(''); $('#load-data-html-step2').html(''); $('#load-data-html-step3').html(''); $('#load-data-html-step4').html(''); $('#load-data-html-stepAll').html(''); $("#loadingSkeleton").show(); 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); } $("#loadingSkeleton").hide(); } 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 += `
${indexNumber++}
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما : ${item.employerName}
تعداد پرسنل قرارداد: ${item.contractEmployeeCount} نفر
شماره تماس کارفرما : ${item.employerPhoneNumber}
تعداد پرسنل تصفیه: ${item.checkoutEmployeeCount} نفر
`; } }); data.forEach(function (item) { if (item.status === 0) { htmlMobile += `
${indexNumberMobile++}
${item.workshopArchiveCode}
${item.workshopName}
${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 += `
${indexNumber++}
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما : ${item.employerName}
تعداد پرسنل قرارداد: ${item.contractEmployeeCount} نفر
شماره تماس کارفرما : ${item.employerPhoneNumber}
تعداد پرسنل تصفیه: ${item.checkoutEmployeeCount} نفر
`; htmlStep1Mobile += `
ردیف
نام کارگاه
عملیات
${indexNumberMobile++}
${item.workshopName}
استان: ${item.province}
شهرستان: ${item.city}
جزئیات نشانی: ${item.address}
شماره تماس نماینده: ${item.agentPhoneNumber}
پرسنل امور اجرائی: ${item.adminFullName}
نام کافرما: ${item.employerName}
شماره تماس کافرما: ${item.employerPhoneNumber}
تعداد پرسنل: ${item.employeeCount}
`; } //Step 2 if (item.status === 2) { htmlStep2 += `
${indexNumber++}
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما : ${item.employerName}
تعداد پرسنل قرارداد: ${item.contractEmployeeCount} نفر
شماره تماس کارفرما : ${item.employerPhoneNumber}
تعداد پرسنل تصفیه: ${item.checkoutEmployeeCount} نفر
`; htmlStep1Mobile += `
ردیف
نام کارگاه
عملیات
${indexNumberMobile++}
${item.workshopName}
استان: ${item.province}
شهرستان: ${item.city}
جزئیات نشانی: ${item.address}
شماره تماس نماینده: ${item.agentPhoneNumber}
پرسنل امور اجرائی: ${item.adminFullName}
نام کافرما: ${item.employerName}
شماره تماس کافرما: ${item.employerPhoneNumber}
تعداد پرسنل: ${item.employeeCount}
`; } //Step 3 if (item.status === 3) { htmlStep3 += `
${indexNumber++}
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما : ${item.employerName}
تعداد پرسنل قرارداد: ${item.contractEmployeeCount} نفر
شماره تماس کارفرما : ${item.employerPhoneNumber}
تعداد پرسنل تصفیه: ${item.checkoutEmployeeCount} نفر
`; htmlStep1Mobile += `
ردیف
نام کارگاه
عملیات
${indexNumberMobile++}
${item.workshopName}
استان: ${item.province}
شهرستان: ${item.city}
جزئیات نشانی: ${item.address}
شماره تماس نماینده: ${item.agentPhoneNumber}
پرسنل امور اجرائی: ${item.adminFullName}
نام کافرما: ${item.employerName}
شماره تماس کافرما: ${item.employerPhoneNumber}
تعداد پرسنل: ${item.employeeCount}
`; } //Step 4 if (item.status === 4) { htmlStep4 += `
${indexNumber++}
${item.workshopArchiveCode}
${item.workshopName}
${item.province}
${item.city}
${item.address}
${item.address}
${item.agentPhoneNumber}
${item.adminFullName}
نام کارفرما : ${item.employerName}
تعداد پرسنل قرارداد: ${item.contractEmployeeCount} نفر
شماره تماس کارفرما : ${item.employerPhoneNumber}
تعداد پرسنل تصفیه: ${item.checkoutEmployeeCount} نفر
`; htmlStep1Mobile += `
ردیف
نام کارگاه
عملیات
${indexNumberMobile++}
${item.workshopName}
استان: ${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 += `
${indexNumber++}
${item.workshopArchiveCode}
${item.workshopName}
${item.employerName}
${item.province}
${item.city}
${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 += `
نام کارفرما : ${item.employerName}
تعداد پرسنل قرارداد: ${item.contractEmployeeCount} نفر
شماره تماس کارفرما : ${item.employerPhoneNumber}
تعداد پرسنل تصفیه: ${item.checkoutEmployeeCount} نفر
`; htmlMobile += `
${indexNumberMobile++}
${item.workshopName}
استان: ${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 += ``; }); $('#admin-personnel-select').html(optionsHtml); $('#admin-personnel-select-mobile').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'); $('#admin-personnel-select-mobile').prop('disabled', true).closest("div").addClass('disable'); $("#admin-personnel-select-mobile").val(adminAccountId).trigger('change'); } else { $('#admin-personnel-select').prop('disabled', false).closest("div").removeClass('disable'); $("#admin-personnel-select").val(adminPersonnel).trigger('change'); $('#admin-personnel-select-mobile').prop('disabled', false).closest("div").removeClass('disable'); $("#admin-personnel-select-mobile").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") || "" }; }