From bc192d9552505bbdbcbf4dbbe1a4db251cf55daa Mon Sep 17 00:00:00 2001 From: mahan Date: Sat, 1 Nov 2025 11:50:56 +0330 Subject: [PATCH] feat: add properties to exclude future contracts and filter old contracts in institution contract model --- ...etInstitutionContractListItemsViewModel.cs | 11 ++++++++++ .../InstitutionContractRepository.cs | 21 +++++++++---------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs index 123dc18a..9200e85f 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs @@ -88,9 +88,20 @@ public class GetInstitutionContractListItemsViewModel public List Workshops { get; set; } + /// + /// قرارداد ها با خدمات حضوری قرارداد + /// public bool IsInPersonContract { get; set; } + /// + /// قرارداد های قدیمی + /// public bool IsOldContract { get; set; } + + /// + /// قرارداد هایی که برای آینده تنظیم شده اند + /// + public bool IsFutureContract { get; set; } } public class InstitutionContractListWorkshop diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index 535a43d8..883e288a 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -1135,21 +1135,21 @@ public class InstitutionContractRepository : RepositoryBase dateTo) + if (dateStart > dateEnd) { throw new BadRequestException("تاریخ شروع نمیتواند بزرگ تر از تاریخ پایان باشد"); } joinedQuery = joinedQuery.Where(x => - x.contract.ContractStartGr <= dateTo && x.contract.ContractEndGr <= dateFrom); + x.contract.ContractStartGr <= dateEnd && x.contract.ContractEndGr >= dateStart); } if (searchModel.HasSignature != null) @@ -1422,23 +1422,22 @@ public class InstitutionContractRepository : RepositoryBase dateTo) + if (dateStart > dateEnd) { throw new BadRequestException("تاریخ شروع نمیتواند بزرگ تر از تاریخ پایان باشد"); } joinedQuery = joinedQuery.Where(x => - x.contract.ContractStartGr <= dateTo && x.contract.ContractEndGr <= dateFrom); + x.contract.ContractStartGr <= dateEnd && x.contract.ContractEndGr >= dateStart); } - if (searchModel.HasSignature != null) { var hasSignature = searchModel.HasSignature == true ? "1" : "0"; @@ -1512,10 +1511,10 @@ public class InstitutionContractRepository : RepositoryBase x.contract.ContractAmount); + var totalAmount = await joinedQuery.Where(x=>x.contract.ContractStartGr<=DateTime.Today).SumAsync(x => x.contract.ContractAmount); var totalDebt = await _context.FinancialStatments.Include(x => x.FinancialTransactionList) - .Where(x => joinedQuery.Select(i => i.contract.ContractingPartyId).Contains(x.ContractingPartyId)) + .Where(x => joinedQuery.Where(i=>i.contract.ContractStartGr<=DateTime.Today).Select(i => i.contract.ContractingPartyId).Contains(x.ContractingPartyId)) .SelectMany(x => x.FinancialTransactionList) .SumAsync(x => x.Deptor - x.Creditor); var counts = new List();