This commit is contained in:
SamSys
2025-06-17 14:45:36 +03:30
parent 41ec3fb9cf
commit e379727606
3 changed files with 192 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace CompanyManagment.App.Contracts.Workshop.DTOs;
public class AutoExtensionDto
{
/// <summary>
/// نام کارگاه
/// </summary>
public string WorkshopName { get; set; }
/// <summary>
/// آیا کارفرما خطای اطلاعات هویتی دارد
/// </summary>
public bool EmployerWarning { get; set; }
/// <summary>
/// پیام خطاهای کارفرما
/// </summary>
public string EmployerWarningMessage { get; set; }
/// <summary>
/// آیا کارگاه پرسنل دارد
/// </summary>
public bool HavingPersonel { get; set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// کد بایگانی کارگاه
/// </summary>
public string ArchiveCode { get; set; }
/// <summary>
/// آدرس کارگاه
/// </summary>
public string WAddress1 { get; set; }
/// <summary>
/// آی دی کارفرما
/// </summary>
public long EmployerId { get; set; }
/// <summary>
/// سلکت لیست پرسنل
/// </summary>
public SelectList EmployeeSelectList { get; set; }
/// <summary>
/// لیست پرسنل
/// </summary>
public List<AutoExtensionEmployeeListDto> EmployeeList { get; set; }
/// <summary>
/// آیا مجاز به ایجاد قراداد است؟
/// </summary>
public bool CreateContract { get; set; }
}

View File

@@ -0,0 +1,37 @@
namespace CompanyManagment.App.Contracts.Workshop.DTOs;
public class AutoExtensionEmployeeListDto
{
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string EmployeeName { get; set; }
/// <summary>
/// کد پرسنلی
/// </summary>
public long PersonnelCode { get; set; }
/// <summary>
/// سمت
/// </summary>
public string JobType { get; set; }
/// <summary>
/// آی دی شغل
/// </summary>
public long JobTypeId { get; set; }
/// <summary>
/// آیا پرسنل اجازه ایجاد قرارداد دارد
/// </summary>
public bool EmployeeHasCreateContract { get; set; }
}

View File

@@ -6,8 +6,11 @@ using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.LeftWorkAgg;
using Company.Domain.PersonnelCodeAgg;
using CompanyManagment.App.Contracts.InsuranceList;
using CompanyManagment.App.Contracts.LeftWork;
using CompanyManagment.App.Contracts.PersonnleCode;
using CompanyManagment.App.Contracts.Workshop.DTOs;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
namespace CompanyManagment.EFCore.Repository;
@@ -728,4 +731,92 @@ public class LeftWorkRepository : RepositoryBase<long, LeftWork>, ILeftWorkRepos
}
#endregion
#region AutoExtentionEmployees
public AutoExtensionDto AutoExtentionEmployees(long workshopId)
{
if (workshopId == 0)
return new AutoExtensionDto();
var query = _context.LeftWorkList.Include(x => x.Employee).Include(w=>w.Workshop)
.Where(x => x.WorkshopId == workshopId)
.Join(_context.PersonnelCodeSet.AsSplitQuery().Where(p => p.WorkshopId == workshopId),
leftList => leftList.EmployeeId,
personnelCode => personnelCode.EmployeeId,
(leftList, personnelCode) =>
new { leftList, personnelCode })
.Join(_context.Jobs,
left => left.leftList.JobId,
job => job.id,
(left, job) => new { left, job })
.Join(_context.EmployeeComputeOptionsSet.Where(o=>o.WorkshopId == workshopId),
leftResult => leftResult.left.leftList.EmployeeId,
options => options.EmployeeId,
(leftResult, options) => new { leftResult, options })
.Select(result => new AutoExtensionEmployeeListDto()
{
EmployeeId = result.leftResult.left.leftList.EmployeeId,
EmployeeName = result.leftResult.left.leftList.EmployeeFullName,
PersonnelCode = result.leftResult.left.personnelCode == null ? 0 : result.leftResult.left.personnelCode.PersonnelCode,
JobType = result.leftResult.job.JobName,
JobTypeId = result.leftResult.job.id,
EmployeeHasCreateContract = result.options == null ? result.leftResult.left.leftList.Workshop.CreateContract : result.options.CreateContract
}).ToList();
var workshop = _context.Workshops.FirstOrDefault(x => x.id == workshopId);
if (query.Count > 0 && workshop != null)
{
var result = new AutoExtensionDto()
{
WorkshopId = workshopId,
HavingPersonel = true,
WorkshopName = workshop.WorkshopFullName,
ArchiveCode = workshop.ArchiveCode,
WAddress1 = workshop.Address,
CreateContract = workshop.CreateContract,
EmployeeList = query.Select(x=> new AutoExtensionEmployeeListDto()
{
EmployeeId = x.EmployeeId,
EmployeeName = x.EmployeeName,
PersonnelCode = x.PersonnelCode,
JobType = x.JobType,
JobTypeId = x.JobTypeId,
EmployeeHasCreateContract = x.EmployeeHasCreateContract
}).ToList(),
EmployeeSelectList = new SelectList(query.Where(x=>x.EmployeeHasCreateContract), "EmployeeId", "EmployeeName ")
};
}
else
{
var result = new AutoExtensionDto()
{
WorkshopId = workshopId,
HavingPersonel = false,
WorkshopName = workshop.WorkshopFullName,
ArchiveCode = workshop.ArchiveCode,
WAddress1 = workshop.Address,
CreateContract = workshop.CreateContract
};
}
return result;
}
#endregion
}