From 6469bf5a50688f289e64b18be46b89362ed5041f Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Sun, 1 Jun 2025 17:43:53 +0330 Subject: [PATCH] fix createEmployee personnel code bug --- .../ILeftWorkInsuranceRepository.cs | 3 +++ .../EmployeeAplication.cs | 21 ++++++++++++++----- .../Repository/LeftWorkInsuranceRepository.cs | 6 ++++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs b/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs index ef638a91..0d6de0d1 100644 --- a/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs +++ b/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs @@ -52,5 +52,8 @@ public interface ILeftWorkInsuranceRepository : IRepository List GetEmployeesWithContractExitOnly(long workshopId); + LeftWorkInsurance GetLastLeftWorkByEmployeeIdAndWorkshopId(long workshopId, long employeeId); + #endregion + } \ No newline at end of file diff --git a/CompanyManagment.Application/EmployeeAplication.cs b/CompanyManagment.Application/EmployeeAplication.cs index 4a683a38..7201bbac 100644 --- a/CompanyManagment.Application/EmployeeAplication.cs +++ b/CompanyManagment.Application/EmployeeAplication.cs @@ -30,6 +30,7 @@ using Company.Domain.CustomizeWorkshopGroupSettingsAgg; using Company.Domain.LeftWorkAgg; using CompanyManagment.App.Contracts.Employee.DTO; using Company.Domain.EmployeeAuthorizeTempAgg; +using Company.Domain.LeftWorkInsuranceAgg; namespace CompanyManagment.Application; @@ -59,8 +60,9 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli private readonly IEmployeeClientTempRepository _employeeClientTempRepository; private readonly ICustomizeWorkshopGroupSettingsRepository _customizeWorkshopGroupSettingsRepository; private readonly IEmployeeAuthorizeTempRepository _employeeAuthorizeTempRepository; + private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository ; - public EmployeeAplication(IEmployeeRepository employeeRepository, CompanyContext context, IWorkshopRepository workShopRepository, IWebHostEnvironment webHostEnvironment, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication, IRollCallEmployeeRepository rollCallEmployeeRepository, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IEmployeeDocumentsApplication employeeDocumentsApplication, IEmployeeDocumentsRepository employeeDocumentsRepository, IEmployeeBankInformationApplication employeeBankInformationApplication, ILeftWorkTempRepository leftWorkTempRepository, IUidService uidService, ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository, IPersonnelCodeRepository personnelCodeRepository, IEmployeeClientTempRepository employeeClientTempRepository, ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository, ILeftWorkRepository leftWorkRepository, IEmployeeAuthorizeTempRepository employeeAuthorizeTempRepository) : base(context) + public EmployeeAplication(IEmployeeRepository employeeRepository, CompanyContext context, IWorkshopRepository workShopRepository, IWebHostEnvironment webHostEnvironment, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication, IRollCallEmployeeRepository rollCallEmployeeRepository, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IEmployeeDocumentsApplication employeeDocumentsApplication, IEmployeeDocumentsRepository employeeDocumentsRepository, IEmployeeBankInformationApplication employeeBankInformationApplication, ILeftWorkTempRepository leftWorkTempRepository, IUidService uidService, ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository, IPersonnelCodeRepository personnelCodeRepository, IEmployeeClientTempRepository employeeClientTempRepository, ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository, ILeftWorkRepository leftWorkRepository, IEmployeeAuthorizeTempRepository employeeAuthorizeTempRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository) : base(context) { _context = context; _WorkShopRepository = workShopRepository; @@ -77,6 +79,7 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli _employeeClientTempRepository = employeeClientTempRepository; _leftWorkRepository = leftWorkRepository; _employeeAuthorizeTempRepository = employeeAuthorizeTempRepository; + _leftWorkInsuranceRepository = leftWorkInsuranceRepository; _EmployeeRepository = employeeRepository; } @@ -1009,7 +1012,9 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli var startLeftWork = command.StartLeftWork.ToGeorgianDateTime(); var leftWorkViewModel = _leftWorkRepository.GetLastLeftWorkByEmployeeIdAndWorkshopId(command.WorkshopId, employee.id); - PersonnelCodeDomain personnelCode = null; + + + PersonnelCodeDomain personnelCode = null; if (leftWorkViewModel != null) { if (leftWorkViewModel.HasLeft == false && leftWorkViewModel.LeftWorkDate > DateTime.Now) @@ -1024,10 +1029,16 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli } else { - var lastPersonnelCodeByWorkshop = _personnelCodeRepository.GetLastPersonnelCodeByWorkshop(command.WorkshopId); + var insuranceLeftWork = + _leftWorkInsuranceRepository.GetLastLeftWorkByEmployeeIdAndWorkshopId(command.WorkshopId, employee.id); + if (insuranceLeftWork == null) + { + var lastPersonnelCodeByWorkshop = + _personnelCodeRepository.GetLastPersonnelCodeByWorkshop(command.WorkshopId); - personnelCode = new PersonnelCodeDomain(command.WorkshopId, - employee.id, lastPersonnelCodeByWorkshop + 1); + personnelCode = new PersonnelCodeDomain(command.WorkshopId, + employee.id, lastPersonnelCodeByWorkshop + 1); + } } var leftWorkTemp = LeftWorkTemp.CreateStartWork(command.WorkshopId, employee.id, startLeftWork, command.JobId); diff --git a/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs b/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs index fdd2f89e..72b977ef 100644 --- a/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs +++ b/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs @@ -796,5 +796,11 @@ public class LeftWorkInsuranceRepository : RepositoryBase x.WorkshopId == workshopId && x.EmployeeId == employeeId) + .OrderByDescending(x => x.StartWorkDate).FirstOrDefault(); + } + #endregion } \ No newline at end of file