change
This commit is contained in:
@@ -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; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user