Merge branch 'Feature/Insurance/add-not-created-tab'
This commit is contained in:
@@ -5,14 +5,14 @@ namespace _0_Framework.InfraStructure;
|
||||
|
||||
public static class QueryableExtensions
|
||||
{
|
||||
public static IQueryable<T> ApplyPagination<T>(this IQueryable<T> query, int page, int pageSize)
|
||||
public static IQueryable<T> ApplyPagination<T>(this IQueryable<T> query, int page, int pageSize = 30)
|
||||
{
|
||||
if (page <= 0) page = 1;
|
||||
if (pageSize <= 0) pageSize = 10;
|
||||
|
||||
return query.Skip((page - 1) * pageSize).Take(pageSize);
|
||||
}
|
||||
public static IEnumerable<T> ApplyPagination<T>(this IEnumerable<T> source, int page, int pageSize)
|
||||
public static IEnumerable<T> ApplyPagination<T>(this IEnumerable<T> source, int page, int pageSize = 30)
|
||||
{
|
||||
if (page <= 0) page = 1;
|
||||
if (pageSize <= 0) pageSize = 10;
|
||||
|
||||
@@ -67,6 +67,8 @@ public interface IInsuranceListRepository:IRepository<long, InsuranceList>
|
||||
Task<InsuranceListTabsCountViewModel> GetTabCounts(InsuranceListSearchModel searchModel);
|
||||
|
||||
#endregion
|
||||
|
||||
Task<List<InsuranceListViewModel>> GetNotCreatedWorkshop(InsuranceListSearchModel searchModel);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.InsuranceList;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.InsuranceList;
|
||||
|
||||
@@ -47,4 +48,6 @@ public interface IInsuranceListApplication
|
||||
Task<InsuranceListTabsCountViewModel> GetTabCounts(InsuranceListSearchModel searchModel);
|
||||
|
||||
#endregion
|
||||
|
||||
Task<List<InsuranceListViewModel>> GetNotCreatedWorkshop(InsuranceListSearchModel searchModel);
|
||||
}
|
||||
@@ -2366,5 +2366,10 @@ public class InsuranceListApplication : IInsuranceListApplication
|
||||
return _insuranceListRepositpry.GetTabCounts(searchModel);
|
||||
}
|
||||
|
||||
public async Task<List<InsuranceListViewModel>> GetNotCreatedWorkshop(InsuranceListSearchModel searchModel)
|
||||
{
|
||||
return await _insuranceListRepositpry.GetNotCreatedWorkshop(searchModel);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -342,43 +342,7 @@ public class InsuranceListRepository : RepositoryBase<long, InsuranceList>, IIns
|
||||
|
||||
var acountId = _authHelper.CurrentAccountId();
|
||||
var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId);
|
||||
|
||||
#region sample
|
||||
|
||||
//var query = _context.InsuranceListSet
|
||||
// .Where(x => workshopIds.Contains(x.WorkshopId))
|
||||
// .Join(_context.Workshops.Include(x => x.InsuranceWorkshopInfo),
|
||||
// insurance => insurance.WorkshopId,
|
||||
// workshop => workshop.id,
|
||||
// (insurance, workshop) => new { insurance, workshop })
|
||||
// .Join(_context.WorkshopEmployers,
|
||||
// result => result.workshop.id,
|
||||
// employer => employer.WorkshopId,
|
||||
// (result, employer) => new InsuranceListViewModel
|
||||
// {
|
||||
// Id = result.insurance.id,
|
||||
// Year = result.insurance.Year,
|
||||
// MonthNumber = result.insurance.Month,
|
||||
// Month = result.insurance.Month.GetMonthByNumber(),
|
||||
// WorkShopId = result.insurance.WorkshopId,
|
||||
// WorkShopCode = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.InsuranceCode : result.workshop.InsuranceCode,
|
||||
// WorkShopName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.WorkshopName : result.workshop.WorkshopFullName,
|
||||
// TypeOfInsuranceSend = result.workshop.TypeOfInsuranceSend == "NormalList" ? "عادی" :
|
||||
// result.workshop.TypeOfInsuranceSend == "Govermentlist" ? "کمک دولت" :
|
||||
// result.workshop.TypeOfInsuranceSend == "Familylist" ? "خانوادگی" : "",
|
||||
// FixedSalary = result.workshop.FixedSalary,
|
||||
// StrFixedSalary = result.workshop.FixedSalary ? "دارد" : "ندارد",
|
||||
// EmployerName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.EmployerName : result.workshop.WorkshopFullName,
|
||||
// Branch = "",
|
||||
// City = "",
|
||||
// ConfirmSentlist = result.insurance.ConfirmSentlist,
|
||||
// IsBlockCantracingParty = "",
|
||||
// EmployerId = employer.EmployerId,
|
||||
|
||||
// });
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
var query = _context.InsuranceListSet
|
||||
.Where(x => workshopIds.Contains(x.WorkshopId))
|
||||
@@ -1509,6 +1473,7 @@ public class InsuranceListRepository : RepositoryBase<long, InsuranceList>, IIns
|
||||
var workshopIds = _context.WorkshopAccounts
|
||||
.Where(a => a.AccountId == acountId)
|
||||
.Select(a => a.WorkshopId);
|
||||
|
||||
var query = _context.InsuranceListSet
|
||||
.Where(x => workshopIds.Contains(x.WorkshopId))
|
||||
.Join(_context.Workshops.Include(x => x.InsuranceWorkshopInfo),
|
||||
@@ -1605,7 +1570,59 @@ public class InsuranceListRepository : RepositoryBase<long, InsuranceList>, IIns
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
public async Task<List<InsuranceListViewModel>> GetNotCreatedWorkshop(InsuranceListSearchModel searchModel)
|
||||
{
|
||||
if (string.IsNullOrEmpty(searchModel.Month) || string.IsNullOrEmpty(searchModel.Year) )
|
||||
{
|
||||
return [];
|
||||
}
|
||||
var acountId = _authHelper.CurrentAccountId();
|
||||
var accountWorkshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId)
|
||||
.Select(x => x.WorkshopId);
|
||||
|
||||
var insuranceWorkshops = _context.Workshops
|
||||
.Where(x=>x.InsuranceCode != null && x.InsuranceCode.Length >=10 && accountWorkshopIds.Contains(x.id) && x.IsActiveString== "true");
|
||||
|
||||
|
||||
var existInsurances = _context.InsuranceListSet
|
||||
.Where(x=>x.Month == searchModel.Month&& x.Year == searchModel.Year).AsQueryable();
|
||||
|
||||
var notCreatedWorkshop = insuranceWorkshops.Where(w=>!existInsurances.Select(x=>x.WorkshopId).Contains(w.id));
|
||||
|
||||
var res = await notCreatedWorkshop
|
||||
.GroupJoin(_context.WorkshopEmployers,
|
||||
workshop => workshop.id,
|
||||
workshopEmployer => workshopEmployer.WorkshopId,
|
||||
(workshop, workshopEmployer) => new { workshop, workshopEmployer })
|
||||
.SelectMany(x => x.workshopEmployer.DefaultIfEmpty(), (x, workshopEmployer) => new { x.workshop, workshopEmployer })
|
||||
.GroupJoin(_context.Employers,
|
||||
allResult => allResult.workshopEmployer.EmployerId,
|
||||
employer => employer.id,
|
||||
(allResult, employer) => new { allResult.workshop, allResult.workshopEmployer, employer })
|
||||
.SelectMany(x => x.employer.DefaultIfEmpty(), (x, employer) => new { x.workshop, x.workshopEmployer, employer })
|
||||
.Select(x => new InsuranceListViewModel
|
||||
{
|
||||
WorkShopId = x.workshop.id,
|
||||
WorkShopCode = x.workshop.InsuranceCode,
|
||||
WorkShopName = x.workshop.InsuranceWorkshopInfo != null ? x.workshop.InsuranceWorkshopInfo.WorkshopName : x.workshop.WorkshopFullName,
|
||||
EmployerName = x.employer != null ? x.employer.FullName : (x.workshop.InsuranceWorkshopInfo != null ? x.workshop.InsuranceWorkshopInfo.EmployerName : x.workshop.WorkshopFullName),
|
||||
Year = searchModel.Year,
|
||||
Month = searchModel.Month,
|
||||
TypeOfInsuranceSend = x.workshop.TypeOfInsuranceSend == "NormalList" ? "عادی" :
|
||||
x.workshop.TypeOfInsuranceSend == "Govermentlist" ? "کمک دولت" :
|
||||
x.workshop.TypeOfInsuranceSend == "Familylist" ? "خانوادگی" : "",
|
||||
FixedSalary = (bool)x.workshop.FixedSalary,
|
||||
StrFixedSalary = (bool)x.workshop.FixedSalary ? "دارد" : "ندارد",
|
||||
EmployerId = x.workshopEmployer != null ? x.workshopEmployer.EmployerId : 0,
|
||||
ArchiveCode = x.workshop.ArchiveCode,
|
||||
City = x.workshop.City,
|
||||
}).Skip(searchModel.PageIndex).Take(30).ToListAsync();
|
||||
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="year"></param>
|
||||
|
||||
@@ -320,6 +320,11 @@
|
||||
<div class="mb-2 tw-flex tw-flex-col">
|
||||
<div class="custom-scrollbar-x tw-w-full tw-overflow-x-auto">
|
||||
<div class="tab-bar tw-flex tw-w-max tw-gap-3 tw-whitespace-nowrap">
|
||||
|
||||
<button permission="80217" data-permission="80217" type="button" class="tab-bar__tab u-tactile tab-bar__tab--active js-document-click" value="4">
|
||||
<span class="tab-bar__tab-label">ایجاد نشده</span>
|
||||
<span class="" id="notCreated"></span>
|
||||
</button>
|
||||
<button permission="80217" data-permission="80217" type="button" class="tab-bar__tab u-tactile tab-bar__tab--active js-document-click" value="0">
|
||||
<span class="tab-bar__tab-label"> انجام نشده</span>
|
||||
<span class="tab-bar__tab-badge" id="notStarted"></span>
|
||||
@@ -539,6 +544,7 @@
|
||||
|
||||
var ajaxGetTabCountsUrl = `@Url.Page("/Company/InsuranceList/Index", "TabCounts")`;
|
||||
var ajaxSearchNewUrl = `@Url.Page("/Company/InsuranceList/Index", "SearchNew")`;
|
||||
var ajaxNotCreatedUrl = `@Url.Page("/Company/InsuranceList/Index", "NotCreatedWorkshops")`;
|
||||
var openOperationsModalUrl = `@Url.Page("/Company/InsuranceList/Index", "OperationsModal")`;
|
||||
var editUrl = `#showmodal=@Url.Page("/Company/InsuranceList/Index", "Edit")`;
|
||||
var insuranceSummaryUrl = `#showmodal=@Url.Page("/Company/InsuranceList/Index", "InsuranceSummary")`;
|
||||
|
||||
@@ -1162,6 +1162,17 @@ public class IndexModel : PageModel
|
||||
});
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnGetNotCreatedWorkshops(InsuranceListSearchModel searchModel)
|
||||
{
|
||||
var result =await _insuranceListApplication.GetNotCreatedWorkshop(searchModel);
|
||||
return new JsonResult(new
|
||||
{
|
||||
data = result
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnGetTabCounts(InsuranceListSearchModel searchModel)
|
||||
{
|
||||
|
||||
|
||||
@@ -117,9 +117,13 @@ $(document).ready(function () {
|
||||
case "3":
|
||||
loadSearchNew(3);
|
||||
break;
|
||||
default:
|
||||
case "4":
|
||||
loadNotCreatedData();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('.btn-search-click').click(function () {
|
||||
urlParamsSearch
|
||||
@@ -144,7 +148,10 @@ $(document).ready(function () {
|
||||
$("#load-data-html-mobile").html('');
|
||||
$('#load-data-html').html('');
|
||||
loadGetTabCounts();
|
||||
loadSearchNew(activeValue);
|
||||
if(activeValue==="4")
|
||||
loadNotCreatedData();
|
||||
else
|
||||
loadSearchNew(activeValue);
|
||||
|
||||
$('.btn-clear-filter').removeClass('disable');
|
||||
});
|
||||
@@ -165,13 +172,274 @@ $(document).ready(function () {
|
||||
$(this).addClass("tab-bar__tab--active");
|
||||
|
||||
var status = parseInt($(this).val());
|
||||
loadSearchNew(status);
|
||||
if (status === 4)
|
||||
loadNotCreatedData();
|
||||
else
|
||||
loadSearchNew(status);
|
||||
|
||||
found = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
function loadNotCreatedData() {
|
||||
var pageIndex = pageIndexJs;
|
||||
|
||||
var html = "";
|
||||
var htmlMobile = "";
|
||||
|
||||
var paramsUrl = UrlParamsBuilder.readParams([
|
||||
"year",
|
||||
"month",
|
||||
"workshop-code",
|
||||
"employee-id",
|
||||
"workshop-id",
|
||||
"type-of-insurance",
|
||||
//"branch",
|
||||
//"city",
|
||||
"fixed-salary"
|
||||
]);
|
||||
|
||||
var searchModel = {
|
||||
Year: paramsUrl['year'] !== "" ? paramsUrl['year'] : year,
|
||||
Month: paramsUrl['month'] !== "" ? paramsUrl['month'] : month,
|
||||
WorkShopCode: paramsUrl['workshop-code'],
|
||||
EmployerId: paramsUrl['employee-id'],
|
||||
WorkshopId: paramsUrl['workshop-id'],
|
||||
TypeOfInsuranceSend: paramsUrl['type-of-insurance'],
|
||||
//Branch: paramsUrl['branch'],
|
||||
//City: paramsUrl['city'],
|
||||
FixedSalary: paramsUrl['fixed-salary'],
|
||||
PageIndex: pageIndex
|
||||
};
|
||||
|
||||
var b = pageIndexJs % 30;
|
||||
|
||||
if (b === 0 && hasMoreData) {
|
||||
ajaxService.get(ajaxNotCreatedUrl, searchModel, false)
|
||||
.then(response => {
|
||||
var responseData = response.data;
|
||||
|
||||
if (responseData.length > 0) {
|
||||
responseData.forEach(function (item) {
|
||||
|
||||
var n = pageIndexJs + 1;
|
||||
var pathDSKKAR00 = item.workShopId + "\\" + item.year + "_" + item.month + "\\DSKKAR00.dbf";
|
||||
var pathDSKWOR00 = item.workShopId + "\\" + item.year + "_" + item.month + "\\DSKWOR00.dbf";
|
||||
|
||||
const rowBgClass = item.isBlockCantracingParty === "true"
|
||||
? "tw-bg-[#b1c3c3] hover:tw-bg-[#bbc6c6]"
|
||||
: item.confirmSentlist
|
||||
? "tw-bg-[#d8f5d2] hover:tw-bg-[#c7ebc0]"
|
||||
: (n % 2 === 0
|
||||
? "tw-bg-[#ecffff] hover:tw-bg-[#C9F0F0]"
|
||||
: "tw-bg-[#ddf4f4] hover:tw-bg-[#C9F0F0]");
|
||||
|
||||
html += `
|
||||
<div class="insurance-table__container">
|
||||
<div class="insurance-table__row tw-transition-all tw-font-[400] tw-flex tw-h-[35px] tw-items-center tw-rounded-[5px] ${rowBgClass} tw-px-2 tw-text-[12px]">
|
||||
<div class="insurance-table__cell tw-w-[3%]">
|
||||
<div class="insurance-table__cell-card insurance-table__cell-card--small ${item.isBlockCantracingParty === "true" ? `` : item.confirmSentlist ? `!tw-bg-[#a3d798]` : ``} ${item.isBlockCantracingParty === "true" ? `!tw-bg-[#9b9d9d] !tw-text-white` : ``}">
|
||||
${n++}
|
||||
</div>
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[4%] tw-text-center">${item.year}</div>
|
||||
<div class="insurance-table__cell tw-w-[5%] tw-text-center">${convertMonthToString(item.month)}</div>
|
||||
<div class="insurance-table__cell tw-w-[5%] tw-text-center">${item.archiveCode}</div>
|
||||
|
||||
<div class="insurance-table__cell tw-w-[10%] tw-text-center">${item.workShopCode}</div>
|
||||
<div class="insurance-table__cell tw-w-[13%] tw-text-right">
|
||||
<div class="tooltip-container tw-text-right">
|
||||
<div class="tooltip__trigger tw-truncate tw-text-right">${item.employerName}</div>
|
||||
<div class="tooltip-container__text">
|
||||
${item.employerName}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[13%] tw-text-right">
|
||||
<div class="tooltip-container tw-text-right">
|
||||
<div class="tooltip__trigger tw-truncate tw-text-right">${item.workShopName}</div>
|
||||
<div class="tooltip-container__text">
|
||||
${item.workShopName}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[7%] tw-text-center">${item.typeOfInsuranceSend}</div>
|
||||
<div class="insurance-table__cell tw-w-[7%] tw-text-center tw-flex tw-justify-center">
|
||||
${booleanSvgResponse(item.inspectionDone)}
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[7%] tw-text-center tw-flex tw-justify-center">
|
||||
${booleanSvgResponse(item.debtDone)}
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[7%] tw-text-center tw-flex tw-justify-center">
|
||||
${booleanSvgResponse(item.employerApproved)}
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[7%] tw-text-center tw-flex tw-justify-center">
|
||||
${booleanSvgResponse(item.confirmSentlist, item.employerApprovalStatus)}
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[12%] tw-text-end">
|
||||
<div class="tw-flex tw-justify-end tw-gap-2">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- toggle content -->
|
||||
<div class="insurance-table__toggle tw-mx-auto tw-flex tw-w-[97%] tw-flex-col tw-gap-2 tw-px-2">
|
||||
<div class="insurance-table__toggle-row tw-flex tw-gap-2">
|
||||
<div class="insurance-table__toggle-item tw-mb-2 tw-flex tw-w-[20%]">
|
||||
<span class="insurance-table__toggle-label tw-w-[30%]">شعبه تامین اجتماعی:</span>
|
||||
<span class="insurance-table__toggle-value tw-w-[50%]">${item.branch === `` ? `-` : item.branch}</span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-mb-2 tw-flex tw-flex tw-w-[20%] tw-gap-40 tw-gap-2">
|
||||
<span class="insurance-table__toggle-label tw-w-[30%]">شهرستان:</span>
|
||||
<span class="insurance-table__toggle-value tw-w-[50%]">${item.city === `` ? `-` : item.city}</span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-mb-2 tw-flex tw-flex tw-w-[20%] tw-gap-40 tw-gap-2">
|
||||
<span class="insurance-table__toggle-label tw-w-[30%]">لیست مقطوع:</span>
|
||||
<span class="insurance-table__toggle-value tw-w-[50%]">${item.strFixedSalary}</span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-mb-2 tw-flex tw-flex tw-w-[20%] tw-gap-40 tw-gap-2">
|
||||
<span class="insurance-table__toggle-label tw-w-[30%]"></span>
|
||||
<span class="insurance-table__toggle-value tw-w-[50%]"></span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-mb-2 tw-flex tw-flex tw-w-[20%] tw-gap-40 tw-gap-2">
|
||||
<span class="insurance-table__toggle-label tw-w-[30%]"></span>
|
||||
<span class="insurance-table__toggle-value tw-w-[50%]"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
htmlMobile += `<div class="insurance-table__container tw-cursor-pointer">
|
||||
<div class="insurance-table__row tw-font-[500] tw-flex tw-h-[35px] tw-items-center tw-rounded-[5px] ${rowBgClass} tw-px-2 tw-text-[12px] md:tw-font-[400] md:tw-text-[14px]">
|
||||
<div class="insurance-table__cell tw-w-[10%]">
|
||||
<div class="insurance-table__cell-card insurance-table__cell-card--small tw-text-center ${item.isBlockCantracingParty === "true" ? `` : item.confirmSentlist ? `!tw-bg-[#a3d798]` : ``} ${item.isBlockCantracingParty === "true" ? `!tw-bg-[#9b9d9d] !tw-text-white` : ``}">
|
||||
${n++}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[15%] tw-text-center">${item.year}</div>
|
||||
<div class="insurance-table__cell tw-w-[20%] tw-text-center">${convertMonthToString(item.month)}</div>
|
||||
<div class="insurance-table__cell tw-w-[10%] tw-text-center">${item.archiveCode}</div>
|
||||
|
||||
<div class="insurance-table__cell tw-w-[40%] tw-text-center">
|
||||
<div class="tooltip-container tw-text-center">
|
||||
<div class="tooltip__trigger tw-truncate tw-text-center">${item.workShopName}</div>
|
||||
<div class="tooltip-container__text">
|
||||
${item.employerName}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__cell tw-flex tw-w-[10%] tw-justify-end tw-gap-2">
|
||||
<button class="u-tactile">
|
||||
<svg width="21" height="21" viewBox="0 0 21 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="21" height="21" rx="3" fill="#23bab9"/>
|
||||
<path d="M10.4375 14.1484C11.3436 14.1484 12.0781 14.8891 12.0781 15.8028C12.0781 16.7166 11.3436 17.4573 10.4375 17.4573C9.53141 17.4573 8.79688 16.7166 8.79688 15.8028C8.79688 14.8891 9.53141 14.1484 10.4375 14.1484Z" fill="white"/>
|
||||
<path d="M10.4375 9.07031C11.3436 9.07031 12.0781 9.81102 12.0781 10.7247C12.0781 11.6384 11.3436 12.3791 10.4375 12.3791C9.53141 12.3791 8.79688 11.6384 8.79688 10.7247C8.79688 9.81102 9.53141 9.07031 10.4375 9.07031Z" fill="white"/>
|
||||
<path d="M12.0781 5.65441C12.0781 4.7407 11.3436 4 10.4375 4C9.53141 4 8.79688 4.74071 8.79688 5.65441C8.79688 6.56812 9.53141 7.30882 10.4375 7.30882C11.3436 7.30882 12.0781 6.56812 12.0781 5.65441Z" fill="white"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- toggle content -->
|
||||
<div class="insurance-table__toggle tw-mx-auto tw-flex tw-w-[95%] tw-flex-col tw-gap-2 tw-px-2">
|
||||
|
||||
<div class="insurance-table__toggle-row tw-flex">
|
||||
<div class="insurance-table__toggle-item tw-flex tw-items-center tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">بازرسی: </span>
|
||||
<span class="insurance-table__toggle-value">${booleanSvgResponse(item.inspectionDone)}</span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-flex tw-items-center tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">بدهی: </span>
|
||||
<span class="insurance-table__toggle-value">${booleanSvgResponse(item.debtDone)}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-row tw-flex">
|
||||
<div class="insurance-table__toggle-item tw-flex tw-items-center tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">تاییده کارفرما: </span>
|
||||
<span class="insurance-table__toggle-value">${booleanSvgResponse(item.employerApproved)}</span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-flex tw-items-center tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">ارسال لیست: </span>
|
||||
<span class="insurance-table__toggle-value">${booleanSvgResponse(item.confirmSentlist, item.employerApprovalStatus)}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-row tw-flex">
|
||||
<div class="insurance-table__toggle-item tw-flex tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">شعبه تامین اجتماعی: </span>
|
||||
<span class="insurance-table__toggle-value">${item.branch === `` ? `-` : item.branch}</span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-flex tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">لیست مقطوع: </span>
|
||||
<span class="insurance-table__toggle-value">${item.strFixedSalary}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-row tw-flex ">
|
||||
<div class="insurance-table__toggle-item tw-flex tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">شهرستان: </span>
|
||||
<span class="insurance-table__toggle-value">${item.city === `` ? `-` : item.city}</span>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-item tw-flex tw-w-[50%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">نوع ارسال لیست: </span>
|
||||
<span class="insurance-table__toggle-value">${item.typeOfInsuranceSend}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-row tw-flex ">
|
||||
<div class="insurance-table__toggle-item tw-flex tw-w-[100%] tw-gap-2">
|
||||
<span class="insurance-table__toggle-label">نام کافرما:</span>
|
||||
<span class="insurance-table__toggle-value">${item.employerName}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="insurance-table__toggle-row tw-flex ">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
pageIndexJs++;
|
||||
});
|
||||
} else {
|
||||
var emptyHtml = ``;
|
||||
if (pageIndexJs === responseData.length) {
|
||||
emptyHtml = `
|
||||
<div class="text-center bg-white card py-5 d-flex align-items-center justify-content-center">
|
||||
<div class="tw-w-full text-center">
|
||||
<img src="/assetsclient/images/empty.png" alt="" class="img-fluid" style="margin: auto;" />
|
||||
<h5>اطلاعاتی وجود ندارد.</h5>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
html += emptyHtml;
|
||||
htmlMobile += emptyHtml;
|
||||
hasMoreData = false;
|
||||
}
|
||||
|
||||
$("#load-data-html").append(html);
|
||||
$("#load-data-html-mobile").append(htmlMobile);
|
||||
});
|
||||
}
|
||||
}
|
||||
function removeSearch() {
|
||||
window.location.href = baseUrl;
|
||||
}
|
||||
@@ -207,6 +475,7 @@ async function loadGetTabCounts() {
|
||||
try {
|
||||
var response = await ajaxService.get(ajaxGetTabCountsUrl, searchModel, true);
|
||||
|
||||
|
||||
updateStatus('notStarted', response.notStarted);
|
||||
updateStatus('inProgress', response.inProgress);
|
||||
updateStatus('readyToSendList', response.readyToSendList);
|
||||
@@ -234,7 +503,10 @@ $(window).scroll(function () {
|
||||
if ($(window).scrollTop() + $(window).height() > $(document).height() - 600) {
|
||||
var $activeTab = $('.tab-bar__tab--active');
|
||||
var activeValue = $activeTab.val();
|
||||
loadSearchNew(activeValue);
|
||||
if (activeValue==="4")
|
||||
loadNotCreatedData();
|
||||
else
|
||||
loadSearchNew(activeValue);
|
||||
}
|
||||
|
||||
if ($(this).scrollTop() > 100) {
|
||||
@@ -249,7 +521,7 @@ function loadSearchNew(status = 0) {
|
||||
|
||||
var html = "";
|
||||
var htmlMobile = "";
|
||||
|
||||
|
||||
var paramsUrl = UrlParamsBuilder.readParams([
|
||||
"year",
|
||||
"month",
|
||||
@@ -277,25 +549,26 @@ function loadSearchNew(status = 0) {
|
||||
};
|
||||
|
||||
var b = pageIndexJs % 30;
|
||||
|
||||
|
||||
if (b === 0 && hasMoreData) {
|
||||
ajaxService.get(ajaxSearchNewUrl, searchModel, false)
|
||||
.then(response => {
|
||||
var responseData = response.data;
|
||||
|
||||
if (responseData.length > 0) {
|
||||
if (responseData.length > 0) {
|
||||
responseData.forEach(function (item) {
|
||||
|
||||
var n = pageIndexJs + 1;
|
||||
var pathDSKKAR00 = item.workShopId + "\\" + item.year + "_" + item.month + "\\DSKKAR00.dbf";
|
||||
var pathDSKWOR00 = item.workShopId + "\\" + item.year + "_" + item.month + "\\DSKWOR00.dbf";
|
||||
|
||||
|
||||
const rowBgClass = item.isBlockCantracingParty === "true"
|
||||
? "tw-bg-[#b1c3c3] hover:tw-bg-[#bbc6c6]"
|
||||
: item.confirmSentlist
|
||||
? "tw-bg-[#d8f5d2] hover:tw-bg-[#c7ebc0]"
|
||||
: (n % 2 === 0
|
||||
? "tw-bg-[#ecffff] hover:tw-bg-[#C9F0F0]"
|
||||
: "tw-bg-[#ddf4f4] hover:tw-bg-[#C9F0F0]");
|
||||
? "tw-bg-[#d8f5d2] hover:tw-bg-[#c7ebc0]"
|
||||
: (n % 2 === 0
|
||||
? "tw-bg-[#ecffff] hover:tw-bg-[#C9F0F0]"
|
||||
: "tw-bg-[#ddf4f4] hover:tw-bg-[#C9F0F0]");
|
||||
|
||||
html += `
|
||||
<div class="insurance-table__container">
|
||||
@@ -307,7 +580,8 @@ function loadSearchNew(status = 0) {
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[4%] tw-text-center">${item.year}</div>
|
||||
<div class="insurance-table__cell tw-w-[5%] tw-text-center">${convertMonthToString(item.month)}</div>
|
||||
<div class="insurance-table__cell tw-w-[5%] tw-text-center">${item.archiveCode}</div>
|
||||
<div class="insurance-table__cell tw-w-[5%] tw-text-center">${item.archiveCode}</div>
|
||||
|
||||
<div class="insurance-table__cell tw-w-[10%] tw-text-center">${item.workShopCode}</div>
|
||||
<div class="insurance-table__cell tw-w-[13%] tw-text-right">
|
||||
<div class="tooltip-container tw-text-right">
|
||||
@@ -389,8 +663,9 @@ function loadSearchNew(status = 0) {
|
||||
|
||||
</div>
|
||||
<div class="insurance-table__cell tw-w-[15%] tw-text-center">${item.year}</div>
|
||||
<div class="insurance-table__cell tw-w-[20%] tw-text-center">${convertMonthToString(item.month)}</div>
|
||||
<div class="insurance-table__cell tw-w-[10%] tw-text-center">${item.archiveCode}</div>
|
||||
<div class="insurance-table__cell tw-w-[20%] tw-text-center">${convertMonthToString(item.month)}</div>
|
||||
<div class="insurance-table__cell tw-w-[10%] tw-text-center">${item.archiveCode}</div>
|
||||
|
||||
<div class="insurance-table__cell tw-w-[40%] tw-text-center">
|
||||
<div class="tooltip-container tw-text-center">
|
||||
<div class="tooltip__trigger tw-truncate tw-text-center">${item.workShopName}</div>
|
||||
@@ -505,7 +780,7 @@ function loadSearchNew(status = 0) {
|
||||
function generateButtons(item, pathDSKKAR00, pathDSKWOR00) {
|
||||
var html = '';
|
||||
var htmlMobile = '';
|
||||
|
||||
|
||||
var canShowActions = (currentAccountId === 1 && item.confirmSentlist) || !item.confirmSentlist;
|
||||
var isDisabled = item.isBlockCantracingParty === 'true' ? 'disable' : '';
|
||||
|
||||
@@ -548,11 +823,11 @@ function generateButtons(item, pathDSKKAR00, pathDSKWOR00) {
|
||||
}
|
||||
|
||||
//if (item.inspectionDone && item.debtDone && item.employerApproved && item.confirmSentlist) {
|
||||
//if (item.inspectionDone || item.debtDone || item.employerApproved || item.confirmSentlist) {
|
||||
if (item.inspectionDone || item.debtDone || item.employerApproved || item.confirmSentlist) {
|
||||
// Confirm List and Print Button
|
||||
if (hasPermission_80215) {
|
||||
html += `
|
||||
<a href="${insuranceConfirmUrl + `&id=` + item.id}" class="printModal tw-flex tw-items-center tw-justify-center tw-rounded-[5px] tw-bg-[#38BBF6] tw-w-full md:tw-w-[25px] tw-h-[25px] ${isDisabled} ">
|
||||
<a href="${insuranceConfirmUrl + `&id=` + item.id}" class="printModal tw-flex tw-items-center tw-justify-center tw-rounded-[5px] tw-bg-[#38BBF6] tw-w-full md:tw-w-[25px] tw-h-[25px] ${isDisabled}">
|
||||
<svg width="22" height="22" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="16" height="16" fill="#38BBF6"/>
|
||||
<path d="M12 9.0026H12.1111C12.6293 9.0026 12.8883 9.0026 13.0893 8.90891C13.3023 8.80955 13.4736 8.6383 13.573 8.42522C13.6666 8.2243 13.6666 7.96522 13.6666 7.44705V7.44705C13.6666 6.41071 13.6666 5.89255 13.4793 5.4907C13.2805 5.06455 12.938 4.72204 12.5119 4.52332C12.11 4.33594 11.5919 4.33594 10.5555 4.33594H6.06665C4.43893 4.33594 3.62508 4.33594 3.07467 4.78165C2.96606 4.8696 2.86697 4.96869 2.77902 5.0773C2.33331 5.6277 2.33331 6.44156 2.33331 8.06927V8.06927C2.33331 8.4762 2.33331 8.67966 2.44474 8.81726C2.46673 8.84442 2.4915 8.86919 2.51865 8.89118C2.65625 9.0026 2.85972 9.0026 3.26665 9.0026H3.99998" stroke="#FFFEFE"/>
|
||||
@@ -564,7 +839,7 @@ function generateButtons(item, pathDSKKAR00, pathDSKWOR00) {
|
||||
<span class="tw-flex md:tw-hidden tw-text-sm tw-text-white">پرینت</span>
|
||||
</a>`;
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
if (item.inspectionDone || item.debtDone || item.employerApproved || item.confirmSentlist) {
|
||||
// Summary List and Print Button
|
||||
@@ -627,7 +902,7 @@ function booleanSvgResponse(bool, employerApprovalStatus) {
|
||||
var isWrittenVerbal = employerApprovalStatus === 1;
|
||||
|
||||
var svg = ``;
|
||||
if (bool) {
|
||||
if (bool) {
|
||||
svg = `<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" r="8" fill="#A7E1C7"/>
|
||||
<path d="M8.5 11L11.3939 13.8939C11.4525 13.9525 11.5475 13.9525 11.6061 13.8939L19.5 6" stroke="#00B521" stroke-width="1.2" stroke-linecap="round"/>
|
||||
@@ -687,7 +962,7 @@ function convertMonthToString(value) {
|
||||
result = "بدون ماه";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -827,8 +1102,8 @@ searchBoxWorkshop.on('keyup keypress', function (e) {
|
||||
//keyboard Arrow Key Select And Enter
|
||||
liListWorkshop = $('#empWorkshop ul li');
|
||||
mixContainerAndSerchResultWorkshop.animate({
|
||||
scrollTop: $(liListWorkshop.eq(0)).offset().top - containerWorkshop.offset().top + containerWorkshop.scrollTop()
|
||||
},
|
||||
scrollTop: $(liListWorkshop.eq(0)).offset().top - containerWorkshop.offset().top + containerWorkshop.scrollTop()
|
||||
},
|
||||
50);
|
||||
if (e.which === 40) {// if ArrowUp
|
||||
if (countWorkshop > 0 && countWorkshop <= liListWorkshop.length) {
|
||||
@@ -840,8 +1115,8 @@ searchBoxWorkshop.on('keyup keypress', function (e) {
|
||||
if (countWorkshop > 4) {
|
||||
//ScrollDown
|
||||
mixContainerAndSerchResultWorkshop.animate({
|
||||
scrollTop: $(liPointerWorkshop).offset().top - containerWorkshop.offset().top + containerWorkshop.scrollTop()
|
||||
},
|
||||
scrollTop: $(liPointerWorkshop).offset().top - containerWorkshop.offset().top + containerWorkshop.scrollTop()
|
||||
},
|
||||
50);
|
||||
}
|
||||
countWorkshop += 1;
|
||||
@@ -984,8 +1259,8 @@ searchBoxEmployer.on('keyup keypress', function (e) {
|
||||
//keyboard Arrow Key Select And Enter
|
||||
liListEmployer = $('#empEmployer ul li');
|
||||
mixContainerAndSerchResultEmployer.animate({
|
||||
scrollTop: $(liListEmployer.eq(0)).offset().top - containerEmployer.offset().top + containerEmployer.scrollTop()
|
||||
},
|
||||
scrollTop: $(liListEmployer.eq(0)).offset().top - containerEmployer.offset().top + containerEmployer.scrollTop()
|
||||
},
|
||||
50);
|
||||
if (e.which === 40) {// if ArrowUp
|
||||
if (countEmployer > 0 && countEmployer <= liListEmployer.length) {
|
||||
@@ -997,8 +1272,8 @@ searchBoxEmployer.on('keyup keypress', function (e) {
|
||||
if (countEmployer > 4) {
|
||||
//ScrollDown
|
||||
mixContainerAndSerchResultEmployer.animate({
|
||||
scrollTop: $(liPointerEmployer).offset().top - containerEmployer.offset().top + containerEmployer.scrollTop()
|
||||
},
|
||||
scrollTop: $(liPointerEmployer).offset().top - containerEmployer.offset().top + containerEmployer.scrollTop()
|
||||
},
|
||||
50);
|
||||
}
|
||||
countEmployer += 1;
|
||||
@@ -1017,8 +1292,8 @@ searchBoxEmployer.on('keyup keypress', function (e) {
|
||||
liPointerEmployer = liListEmployer.eq(countEmployer);
|
||||
//ScrollUp
|
||||
mixContainerAndSerchResultEmployer.animate({
|
||||
scrollTop: $(liPointerEmployer).offset().top - containerEmployer.offset().top + containerEmployer.scrollTop()
|
||||
},
|
||||
scrollTop: $(liPointerEmployer).offset().top - containerEmployer.offset().top + containerEmployer.scrollTop()
|
||||
},
|
||||
50);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user