fix employee document bug for uploading client

This commit is contained in:
MahanCh
2025-03-16 17:52:48 +03:30
parent 1acd218f77
commit 424acb9661
4 changed files with 564 additions and 565 deletions

View File

@@ -54,11 +54,12 @@ namespace Company.Domain.EmployeeDocumentsAgg
var currentItems = EmployeeDocumentItemCollection.Where(x => x.DocumentStatus != DocumentStatus.Unsubmitted)
.GroupBy(x => x.DocumentLabel).Select(x => x.OrderByDescending(y => y.CreationDate).First());
var currentItemsFiltered = currentItems.Where(x => x.DocumentStatus == DocumentStatus.Confirmed || x.DocumentStatus == DocumentStatus.SubmittedByAdmin)
.Select(x => new{x.DocumentStatus,x.DocumentLabel}).ToList();
var currentItemsFiltered = currentItems.Where(x => x.DocumentStatus is DocumentStatus.Confirmed or DocumentStatus.SubmittedByAdmin or DocumentStatus.SubmittedByClient)
.Select(x => new { x.DocumentStatus, x.DocumentLabel }).ToList();
// ReSharper disable once SimplifyLinqExpressionUseAll
if (!currentItemsFiltered.Any(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin))
if (!currentItemsFiltered.Any(x => x.DocumentStatus is DocumentStatus.SubmittedByAdmin or DocumentStatus.SubmittedByClient))
IsSentToChecker = false;
else

File diff suppressed because it is too large Load Diff

View File

@@ -594,12 +594,12 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
public List<WorkshopWithEmployeeDocumentsViewModel> GetWorkshopsWithUploadedDocuments()
{
var itemsQuery = _companyContext.EmployeeDocumentItems
.Where(x => x.DocumentStatus != DocumentStatus.Unsubmitted && x.DocumentStatus != DocumentStatus.SubmittedByClient)
.Where(x => x.DocumentStatus != DocumentStatus.Unsubmitted)
.Include(x => x.EmployeeDocuments)
.ThenInclude(x => x.Workshop).ThenInclude(x=>x.WorkshopEmployers).ThenInclude(x=>x.Employer)
.GroupBy(x=>x.WorkshopId).Select(x => new WorkshopWithEmployeeDocumentsViewModel()
{
SubmittedItemsCount = x.Count(y => y.DocumentStatus == DocumentStatus.SubmittedByAdmin),
SubmittedItemsCount = x.Count(y => y.DocumentStatus == DocumentStatus.SubmittedByAdmin || y.DocumentStatus == DocumentStatus.SubmittedByClient),
WorkshopId = x.Key,
WorkshopFullName = x.First().EmployeeDocuments.Workshop.WorkshopName,
EmployerName = x.First().EmployeeDocuments.Workshop.WorkshopEmployers.First().Employer.FullName
@@ -666,7 +666,7 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
var workshopDocuments = _companyContext.EmployeeDocuments.Where(x => x.WorkshopId == workshopId)
.Include(x => x.EmployeeDocumentItemCollection)
.Where(x=>x.EmployeeDocumentItemCollection.Any(y =>
y.DocumentStatus != DocumentStatus.Unsubmitted && y.DocumentStatus != DocumentStatus.SubmittedByClient));
y.DocumentStatus != DocumentStatus.Unsubmitted));
var employeesList = _companyContext.Employees.Where(x =>
workshopDocuments.Any(y => y.EmployeeId == x.id))
@@ -688,8 +688,7 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
var workshopDocumentsListWithConfirmed = workshopDocumentsList.Select(x => new
{
EmployeeDocuments = x,
EmployeeDocumentItemCollection = x.EmployeeDocumentItemCollection.Where(y=> y.DocumentStatus != DocumentStatus.Unsubmitted &&
y.DocumentStatus != DocumentStatus.SubmittedByClient)
EmployeeDocumentItemCollection = x.EmployeeDocumentItemCollection.Where(y=> y.DocumentStatus != DocumentStatus.Unsubmitted)
.GroupBy(y => y.DocumentLabel)
.Select(y => y.MaxBy(z => z.CreationDate))
. ToList()
@@ -709,8 +708,8 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
x.EmployeeDocumentItemCollection.All(y => y.DocumentStatus != DocumentStatus.SubmittedByAdmin)).ToList();
else
workshopDocumentsListWithConfirmed = workshopDocumentsListWithConfirmed.Where(x =>
x.EmployeeDocumentItemCollection.Any(y => y.DocumentStatus == DocumentStatus.SubmittedByAdmin)).ToList();
x.EmployeeDocumentItemCollection.Any(y => y.DocumentStatus is DocumentStatus.SubmittedByAdmin or DocumentStatus.SubmittedByClient)).ToList();
return workshopDocumentsListWithConfirmed.Select(x => new EmployeeDocumentsViewModel()
{
Id=x.EmployeeDocuments.id,
@@ -737,7 +736,7 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
DocumentItemLabel.MilitaryServiceCard),
EmployeePicture = GetByLabelAndLoadMedia(x.EmployeeDocumentItemCollection, mediasList,
DocumentItemLabel.EmployeePicture),
SubmittedItemsCount = x.EmployeeDocumentItemCollection.Count(y=>y.DocumentStatus==DocumentStatus.SubmittedByAdmin),
SubmittedItemsCount = x.EmployeeDocumentItemCollection.Count(y=>y.DocumentStatus is DocumentStatus.SubmittedByAdmin or DocumentStatus.SubmittedByClient),
RejectedItemsCount = x.EmployeeDocumentItemCollection.Count(y => y.DocumentStatus == DocumentStatus.Rejected),
ConfirmedItemsCount = x.EmployeeDocumentItemCollection.Count(y => y.DocumentStatus == DocumentStatus.Confirmed),
EmployerFullName = employerName,
@@ -753,7 +752,7 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
public async Task<int> GetCheckerWorkFlowCount()
{
return await _companyContext.EmployeeDocumentItems.Include(x => x.EmployeeDocuments)
.CountAsync(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin);
.CountAsync(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin || x.DocumentStatus == DocumentStatus.SubmittedByClient);
}
@@ -833,7 +832,7 @@ public class EmployeeDocumentsRepository : RepositoryBase<long, EmployeeDocument
.Select(x => new MediaViewModel() { Id = x.id, Path = x.Path }).ToList();
workshopDocumentsListWithConfirmed = workshopDocumentsListWithConfirmed.Where(x =>
x.EmployeeDocumentItemCollection.Any(y => y.DocumentStatus == DocumentStatus.SubmittedByAdmin)).ToList();
x.EmployeeDocumentItemCollection.Any(y => y.DocumentStatus is DocumentStatus.SubmittedByAdmin or DocumentStatus.SubmittedByClient)).ToList();
return workshopDocumentsListWithConfirmed.Select(x => new EmployeeDocumentsViewModel()
{

View File

@@ -71,7 +71,7 @@ $(document).ready(function () {
$('.signHolder').each(function() {
const buttonClass = $(this).find('button').attr('class');
const spanElement = $(this).find('span.sign');
if (buttonClass.includes('submittedbyadmin')) {
if (buttonClass.includes('submittedbyadmin') || buttonClass.includes('submittedbyclient')) {
$(this).addClass('pending');
spanElement.html(svgPending);
} else if (buttonClass.includes('rejected')) {
@@ -163,7 +163,7 @@ $(document).ready(function () {
//debugger;
let enable = false;
$(".mg-btn.active").each(function () {
if ($(this).hasClass("submittedbyadmin")) {
if ($(this).hasClass("submittedbyadmin") || $(this).hasClass("submittedbyclient")) {
enable = true;
}
});
@@ -301,7 +301,7 @@ function checkFields() {
var inputValue = $("#label_" + index).val();
$("#confirm").click(function () {
$(this).removeClass('submittedbyadmin').addClass("confirmed");
$(this).removeClass('submittedbyadmin submittedbyclient').addClass('confirmed');
$(this).closest('.signHolder').removeClass("pending").addClass("confirmed");
$(this).siblings("span.sign").html(svgConfirmed);
//تایید توضیحات نمیخواد
@@ -310,7 +310,7 @@ function checkFields() {
});
$("#reject").click(function () {
$(this).removeClass('submittedbyadmin').addClass("reject");
$(this).removeClass('submittedbyadmin submittedbyclient').addClass('reject');
$(this).closest('.signHolder').removeClass("pending").addClass("rejected");
$(this).siblings("span.sign").html(svgReject);
inputValue = $("#message").val();
@@ -347,7 +347,7 @@ function rejectAjax() {
showAlertMessage('.alert-success-msg', 'تصویر موجود رد شد.', 3500);
$(".mg-btn.active").removeClass('submittedbyadmin').addClass("reject");
$(".mg-btn.active").removeClass('submittedbyadmin submittedbyclient').addClass('reject');
$(".mg-btn.active").closest('.signHolder').removeClass("pending").addClass("rejected");
$(".mg-btn.active").siblings("span.sign").html(svgReject);
@@ -376,7 +376,7 @@ function confirmAjax() {
showAlertMessage('.alert-success-msg', 'تصویر موجود تایید شد.', 3500);
$(".mg-btn.active").removeClass('submittedbyadmin').addClass("confirmed");
$(".mg-btn.active").removeClass('submittedbyadmin submittedbyclient').addClass('confirmed');
$(".mg-btn.active").closest('.signHolder').removeClass("pending").addClass("confirmed");
$(".mg-btn.active").siblings("span.sign").html(svgConfirmed);