diff --git a/Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs b/Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs index 34d4477d..71ab9b19 100644 --- a/Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs +++ b/Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs @@ -1,4 +1,6 @@ -using _0_Framework.Domain; +using System.Collections.Generic; +using System.Threading.Tasks; +using _0_Framework.Domain; using CompanyManagment.App.Contracts.EmployeeClientTemp; namespace Company.Domain.EmployeeClientTempAgg; @@ -8,4 +10,5 @@ public interface IEmployeeClientTempRepository : IRepository> GetByEmployeeId(long employeeId); } \ No newline at end of file diff --git a/Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs b/Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs index 63a95131..fe8235f5 100644 --- a/Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs +++ b/Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs @@ -16,4 +16,5 @@ public interface ILeftWorkTempRepository:IRepository Task GetStartAndLeftWorkDetails(long employeeId, long workshopId); void Remove(LeftWorkTemp entity); List GetLeftWorksByWorkshopId(long workshopId); + Task> GetLeftWorkTempsByEmployeeId(long employeeId); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs b/CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs index 985ddad8..73eafee0 100644 --- a/CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs +++ b/CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework.Application; namespace CompanyManagment.App.Contracts.EmployeeClientTemp; @@ -8,7 +10,19 @@ public interface IEmployeeClientTempApplication OperationResult Create(CreateEmployeeClientTemp command); EmployeeClientTempGetDetailsViewModel GetDetails(long employeeId, long workshopId); + Task> GetByEmployeeId(long employeeId); + +} + +public class EmployeeClientTempViewModel +{ + public string EmployeeFullName { get; set; } + public long WorkshopId { get; set; } + public long EmployeeId { get; set; } + public DateTime StartWorkDate { get; set; } + + public string MaritalStatus { get; set; } } public class EmployeeClientTempGetDetailsViewModel diff --git a/CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs b/CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs index 0062dbb6..4bb83c56 100644 --- a/CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs +++ b/CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs @@ -32,15 +32,18 @@ public interface ILeftWorkTempApplication /// Task AcceptLeftWork(AcceptLeftWorkTemp command); + Task> GetLeftWorkTempsByEmployeeId(long employeeId); + + List GetLeftWorksByWorkshopId(long workshopId); } public class LeftWorkTempViewModel { public long LeftWorkId { get; set; } - public string StartWork { get; set; } - public string LeftWork { get; set; } - public string LastDayStanding { get; set; } + public DateTime StartWork { get; set; } + public DateTime LeftWork { get; set; } + public DateTime LastDayStanding { get; set; } public long WorkshopId { get; set; } public long EmployeeId { get; set; } public long JobId { get; set; } diff --git a/CompanyManagment.Application/EmployeeClientTempApplication.cs b/CompanyManagment.Application/EmployeeClientTempApplication.cs index a7f9adf8..b83b5503 100644 --- a/CompanyManagment.Application/EmployeeClientTempApplication.cs +++ b/CompanyManagment.Application/EmployeeClientTempApplication.cs @@ -1,4 +1,6 @@ -using _0_Framework.Application; +using System.Collections.Generic; +using System.Threading.Tasks; +using _0_Framework.Application; using Company.Domain.EmployeeClientTempAgg; using CompanyManagment.App.Contracts.EmployeeClientTemp; @@ -29,4 +31,10 @@ public class EmployeeClientTempApplication : IEmployeeClientTempApplication { return _employeeClientTempRepository.GetDetails(employeeId, workshopId); } + + public async Task> GetByEmployeeId(long employeeId) + { + return await _employeeClientTempRepository.GetByEmployeeId(employeeId); + + } } \ No newline at end of file diff --git a/CompanyManagment.Application/LeftWorkTempApplication.cs b/CompanyManagment.Application/LeftWorkTempApplication.cs index a09f0fa2..d351f619 100644 --- a/CompanyManagment.Application/LeftWorkTempApplication.cs +++ b/CompanyManagment.Application/LeftWorkTempApplication.cs @@ -240,6 +240,11 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication return op.Succcedded(); } + public async Task> GetLeftWorkTempsByEmployeeId(long employeeId) + { + return await _leftWorkTempRepository.GetLeftWorkTempsByEmployeeId(employeeId); + } + public List GetLeftWorksByWorkshopId(long workshopId) { return _leftWorkTempRepository.GetLeftWorksByWorkshopId(workshopId); diff --git a/CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs b/CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs index 17dae772..447b4c27 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs @@ -1,8 +1,11 @@ -using System.Linq; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.EmployeeClientTempAgg; using CompanyManagment.App.Contracts.EmployeeClientTemp; +using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; @@ -32,4 +35,18 @@ public class EmployeeClientTempRepository: RepositoryBase> GetByEmployeeId(long employeeId) + { + return await _context.EmployeeClientTemps.Where(x => x.EmployeeId == employeeId).Select(x => + new EmployeeClientTempViewModel() + { + EmployeeId = x.EmployeeId, + WorkshopId = x.WorkshopId, + EmployeeFullName = x.EmployeeFullName, + MaritalStatus = x.MaritalStatus, + StartWorkDate = x.StartWorkDate + + }).ToListAsync(); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs b/CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs index d333c5a4..e1fd1de7 100644 --- a/CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs @@ -92,12 +92,28 @@ public class LeftWorkTempRepository : RepositoryBase, ILeftW WorkshopId = x.WorkshopId, EmployeeId = x.EmployeeId, JobId = x.JobId, - LastDayStanding = x.LastDayStanding.ToFarsi(), - LeftWork = x.LeftWork.ToFarsi(), + LastDayStanding = x.LastDayStanding, + LeftWork = x.LeftWork, LeftWorkType = x.LeftWorkType, - StartWork = x.StartWork.ToFarsi() + StartWork = x.StartWork }).ToList(); return data; } + + public async Task> GetLeftWorkTempsByEmployeeId(long employeeId) + { + return await _companyContext.LeftWorkTemps.Where(x => x.EmployeeId == employeeId).Select(x => + new LeftWorkTempViewModel() + { + EmployeeId = x.EmployeeId, + WorkshopId = x.WorkshopId, + LeftWorkType = x.LeftWorkType, + StartWork = x.StartWork, + LeftWork = x.LeftWork, + JobId = x.JobId, + LastDayStanding = x.LastDayStanding, + LeftWorkId = x.LeftWorkId + }).ToListAsync(); + } } \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs index 86730b38..3eaabd91 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs @@ -6,11 +6,14 @@ using CompanyManagment.App.Contracts.Checkout; using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.Employee; using CompanyManagment.App.Contracts.EmployeeChildren; +using CompanyManagment.App.Contracts.EmployeeClientTemp; using CompanyManagment.App.Contracts.EmployeeInsuranceRecord; using CompanyManagment.App.Contracts.Employer; +using CompanyManagment.App.Contracts.Error; using CompanyManagment.App.Contracts.Job; using CompanyManagment.App.Contracts.LeftWork; using CompanyManagment.App.Contracts.LeftWorkInsurance; +using CompanyManagment.App.Contracts.LeftWorkTemp; using CompanyManagment.App.Contracts.PersonnleCode; using CompanyManagment.App.Contracts.Workshop; using Microsoft.AspNetCore.Authorization; @@ -42,7 +45,9 @@ public class IndexModel : PageModel private readonly IPersonnelCodeApplication _personnelCodeApplication; private readonly IWebHostEnvironment _webHostEnvironment; private readonly IWorkshopApplication _workShopApplication; - public List ChildrenList; + private readonly ILeftWorkTempApplication _leftWorkTempApplication; + private readonly IEmployeeClientTempApplication _employeeClientTempApplication; + public List ChildrenList; public string employeeFullName; public List Employees; public string EmployerFullName; @@ -57,7 +62,7 @@ public class IndexModel : PageModel ICheckoutApplication checkoutApplication, ICheckoutRepository checkoutRepository, IWebHostEnvironment webHostEnvironment, ILeftWorkInsuranceApplication leftWorkInsuranceApplication, ILeftWorkApplication leftWorkApplication, IPersonnelCodeApplication personnelCodeApplication, - IJobApplication jobApplication, IEmployerApplication employerApplication) + IJobApplication jobApplication, IEmployerApplication employerApplication, ILeftWorkTempApplication leftWorkTempApplication, IEmployeeClientTempApplication employeeClientTempApplication) { _employeeApplication = employeeApplication; _employeeChildrenApplication = employeeChildrenApplication; @@ -72,7 +77,9 @@ public class IndexModel : PageModel _personnelCodeApplication = personnelCodeApplication; _jobApplication = jobApplication; _employerApplication = employerApplication; - _authHelper = authHelper; + _leftWorkTempApplication = leftWorkTempApplication; + _employeeClientTempApplication = employeeClientTempApplication; + _authHelper = authHelper; } [TempData] public string Message { get; set; } @@ -1466,7 +1473,27 @@ public class IndexModel : PageModel PermissionIds = permissionIds }; - return Partial("./LeftWork", command); + var leftWorks = _leftWorkTempApplication.GetLeftWorkTempsByEmployeeId(employeeId).GetAwaiter().GetResult(); + if (leftWorks.Any(x => x.LeftWorkType == LeftWorkTempType.LeftWork)) + { + var resultError = new ErrorViewModel() + { + Message = "این پرسنل دارای یک درخواست ترک کار میباشد لطفا اول آن را در کارپوشه خود تعیین تکلیف نمایید", + }; + return Partial("../Error/_ErrorModal", resultError); + } + + var clientTemps = _employeeClientTempApplication.GetByEmployeeId(employeeId).GetAwaiter().GetResult(); + if (leftWorks.Any(x => x.LeftWorkType == LeftWorkTempType.StartWork) || clientTemps.Any()) + { + var resultError = new ErrorViewModel() + { + Message = "این پرسنل دارای یک درخواست شروع به کار میباشد لطفا اول آن را در کارپوشه خود تعیین تکلیف نمایید", + }; + return Partial("../Error/_ErrorModal", resultError); + } + + return Partial("./LeftWork", command); } public IActionResult OnPostCreateLeftWork(LeftWorkDividedList command) diff --git a/ServiceHost/Areas/Admin/Pages/Company/Error/_ErrorModal.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Error/_ErrorModal.cshtml new file mode 100644 index 00000000..808169da --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Error/_ErrorModal.cshtml @@ -0,0 +1,39 @@ +@model CompanyManagment.App.Contracts.Error.ErrorViewModel + +@{ + +} + + + + + +