From c7bace728ed5dc6a86c921e57125e566047e7895 Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 28 Oct 2025 12:31:08 +0330 Subject: [PATCH 1/3] feat: integrate workshop repository for roll call workflows --- .../WorkFlowApplication.cs | 44 +++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs b/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs index 9bed52c5..ed188fea 100644 --- a/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs +++ b/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs @@ -1,6 +1,7 @@ using _0_Framework.Application; using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using Company.Domain.RollCallAgg.DomainService; +using Company.Domain.WorkshopAgg; using CompanyManagment.App.Contracts.EmployeeDocuments; using WorkFlow.Application.Contracts.RollCallConfirmedAbsence; using WorkFlow.Application.Contracts.RollCallConfirmedWithoutLunchBreak; @@ -23,7 +24,9 @@ public class WorkFlowApplication : IWorkFlowApplication private readonly IRollCallDomainService _rollCallDomainService; private readonly IRollCallConfirmedWithoutLunchBreakRepository _rollCallConfirmedWithoutLunchBreakRepository; private readonly IEmployeeDocumentsApplication _employeeDocumentsApplication; - public WorkFlowApplication(IRollCallConfirmedAbsenceRepository absenceRepository, IWorkFlowRollCallACL rollCallACL, IWorkFlowCheckoutACL checkoutACL, IWorkFlowCustomizedWorkshopSettingsACL customizedWorkshopSettingsACL, IRollCallConfirmedWithoutLunchBreakRepository rollCallConfirmedWithoutLunchBreakRepository, IRollCallDomainService rollCallDomainService, IEmployeeDocumentsApplication employeeDocumentsApplication) + private readonly IWorkshopRepository _workshopRepository; + + public WorkFlowApplication(IRollCallConfirmedAbsenceRepository absenceRepository, IWorkFlowRollCallACL rollCallACL, IWorkFlowCheckoutACL checkoutACL, IWorkFlowCustomizedWorkshopSettingsACL customizedWorkshopSettingsACL, IRollCallConfirmedWithoutLunchBreakRepository rollCallConfirmedWithoutLunchBreakRepository, IRollCallDomainService rollCallDomainService, IEmployeeDocumentsApplication employeeDocumentsApplication, IWorkshopRepository workshopRepository) { _absenceRepository = absenceRepository; _rollCallACL = rollCallACL; @@ -32,6 +35,7 @@ public class WorkFlowApplication : IWorkFlowApplication _rollCallConfirmedWithoutLunchBreakRepository = rollCallConfirmedWithoutLunchBreakRepository; _rollCallDomainService = rollCallDomainService; _employeeDocumentsApplication = employeeDocumentsApplication; + _workshopRepository = workshopRepository; } public async Task CreateRollCallConfirmedAbsence(CreateRollCallConfirmedAbsence command) @@ -416,6 +420,10 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetUndefinedRollCalls(long workshopId) { + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return []; var now = DateTime.Now; DateTime.Now.Date.AddMonthsFa(-2, out var twoMonthsAgo); @@ -443,6 +451,10 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetRollCallWorkFlowsCutByBgService(long workshopId) { + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return []; var now = DateTime.Now; DateTime.Now.Date.AddMonthsFa(-2, out var twoMonthsAgo); @@ -468,6 +480,11 @@ public class WorkFlowApplication : IWorkFlowApplication public async Task CountCutByBgServiceLastMonth(long workshopId) { + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return 0; + DateTime lastMonthEnd = ($"{DateTime.Now.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime().AddDays(-1); var now = lastMonthEnd; var twoMonthsAgo = ($"{lastMonthEnd.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime(); @@ -496,7 +513,11 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task CountAbsentRollCallLastMonth(long workshopId) { - + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return 0; + DateTime lastMonthEnd = ($"{DateTime.Now.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime().AddDays(-1); var now = lastMonthEnd; var twoMonthsAgo = ($"{lastMonthEnd.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime(); @@ -558,6 +579,11 @@ public class WorkFlowApplication : IWorkFlowApplication public async Task CountEmployeesWithoutLunchBreakLastMonth(long workshopId) { + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return 0; + DateTime lastMonthEnd = ($"{DateTime.Now.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime().AddDays(-1); var now = lastMonthEnd; var twoMonthsAgo = ($"{lastMonthEnd.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime(); @@ -596,6 +622,11 @@ public class WorkFlowApplication : IWorkFlowApplication public async Task CountUndefinedLastMonth(long workshopId) { + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return 0; + DateTime lastMonthEnd = ($"{DateTime.Now.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime().AddDays(-1); var now = lastMonthEnd; var twoMonthsAgo = ($"{lastMonthEnd.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime(); @@ -625,7 +656,10 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetAbsentRollCallWorkFlows(long workshopId) { - + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return []; var now = DateTime.Now; DateTime.Now.Date.AddMonthsFa(-2, out var twoMonthsAgo); @@ -689,6 +723,10 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetEmployeesWithoutLunchBreak(long workshopId) { + var workshop = _workshopRepository.Get(workshopId); + + if (workshop == null || workshop.IsStaticCheckout) + return []; var now = DateTime.Now.Date; now.AddMonthsFa(-2, out var twoMonthsAgo); From 595b2c8a2d14200acbc6f2eb0f393ae41d454137 Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 28 Oct 2025 13:15:46 +0330 Subject: [PATCH 2/3] feat: update verification date and time properties in institution contract model --- .../InstitutionContract/IInstitutionContractApplication.cs | 3 ++- .../Repository/InstitutionContractRepository.cs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs index 816745a6..92463672 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs @@ -266,7 +266,8 @@ public class InstitutionContractPrintViewModel public string TaxPrice { get; set; } public string PaymentPrice { get; set; } public string VerifyCode { get; set; } - public string VerifyDateTime { get; set; } + public string VerifyDate { get; set; } + public string VerifyTime { get; set; } public string VerifierFullName { get; set; } public string VerifierPhoneNumber { get; set; } public LawViewModel LawViewModel { get; set; } diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index a9a4b365..ea81f2d4 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -2740,7 +2740,8 @@ public class InstitutionContractRepository : RepositoryBase new GetInstitutionVerificationDetailsWorkshopsViewModel() { From ca1ef420afa76b2aea840f6c17b1d38ae1984491 Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 28 Oct 2025 17:31:43 +0330 Subject: [PATCH 3/3] feat: add exception for Amir's pizza workshop to adjust roll call date handling --- .../WorkFlowApplication.cs | 43 ++++++++++++------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs b/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs index ed188fea..d644bb5f 100644 --- a/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs +++ b/WorkFlow/Application/WorkFlow.Application/WorkFlowApplication.cs @@ -420,14 +420,17 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetUndefinedRollCalls(long workshopId) { - var workshop = _workshopRepository.Get(workshopId); - - if (workshop == null || workshop.IsStaticCheckout) - return []; + var now = DateTime.Now; DateTime.Now.Date.AddMonthsFa(-2, out var twoMonthsAgo); + //استثنا برای کارگاه پیتزا امیر برای برای نمایش ندادن کارپوشه قبل از 1 آبان 1404 + if(workshopId == 367 && twoMonthsAgo< new DateTime(2025,10,23)) + { + twoMonthsAgo = new DateTime(2025,10,23); + } + var lastCheckouts = _checkoutACL.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, twoMonthsAgo, now); List rollCalls = _rollCallACL.GetUndefinedRollCalls(workshopId, twoMonthsAgo, now.AddDays(-1).Date); var activeEmployees = _rollCallACL.GetActiveWorkshopRollCallEmployees(workshopId, twoMonthsAgo, now); @@ -451,14 +454,17 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetRollCallWorkFlowsCutByBgService(long workshopId) { - var workshop = _workshopRepository.Get(workshopId); - - if (workshop == null || workshop.IsStaticCheckout) - return []; + var now = DateTime.Now; DateTime.Now.Date.AddMonthsFa(-2, out var twoMonthsAgo); + //استثنا برای کارگاه پیتزا امیر برای برای نمایش ندادن کارپوشه قبل از 1 آبان 1404 + if(workshopId == 367 && twoMonthsAgo< new DateTime(2025,10,23)) + { + twoMonthsAgo = new DateTime(2025,10,23); + } + var lastCheckouts = _checkoutACL.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, twoMonthsAgo, now); var rollCalls = _rollCallACL.GetRollCallWorkFlowsCutByBgService(workshopId, twoMonthsAgo, now.AddDays(-1).Date); var activeEmployees = _rollCallACL.GetActiveWorkshopRollCallEmployees(workshopId, twoMonthsAgo, now); @@ -656,14 +662,17 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetAbsentRollCallWorkFlows(long workshopId) { - var workshop = _workshopRepository.Get(workshopId); - - if (workshop == null || workshop.IsStaticCheckout) - return []; + var now = DateTime.Now; + DateTime.Now.Date.AddMonthsFa(-2, out var twoMonthsAgo); + //استثنا برای کارگاه پیتزا امیر برای برای نمایش ندادن کارپوشه قبل از 1 آبان 1404 + if(workshopId == 367 && twoMonthsAgo< new DateTime(2025,10,23)) + { + twoMonthsAgo = new DateTime(2025,10,23); + } var lastCheckouts = _checkoutACL.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, twoMonthsAgo, now); @@ -723,14 +732,16 @@ public class WorkFlowApplication : IWorkFlowApplication /// public async Task> GetEmployeesWithoutLunchBreak(long workshopId) { - var workshop = _workshopRepository.Get(workshopId); - - if (workshop == null || workshop.IsStaticCheckout) - return []; + var now = DateTime.Now.Date; now.AddMonthsFa(-2, out var twoMonthsAgo); + //استثنا برای کارگاه پیتزا امیر برای برای نمایش ندادن کارپوشه قبل از 1 آبان 1404 + if(workshopId == 367 && twoMonthsAgo< new DateTime(2025,10,23)) + { + twoMonthsAgo = new DateTime(2025,10,23); + } var lastCheckouts = _checkoutACL.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, twoMonthsAgo, now); var notSlicedRollCalls = _rollCallACL.GetNotSlicedRollCallsByWorkshopId(workshopId, twoMonthsAgo, now.AddDays(-1).Date); var employeesWithoutBreakTime = _customizedWorkshopSettingsACL.GetEmployeesWithoutBreakTime(workshopId);