From a533850f24b00db1dffcd09882293528f2119886 Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 4 Dec 2025 10:36:59 +0330 Subject: [PATCH] Enhance contract removal logic and handle financial statement updates --- .../InstitutionContractApplication.cs | 1 + .../InstitutionContractRepository.cs | 44 +++++++++++++++++-- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index ffbcb7d9..41fcf9a2 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -888,6 +888,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication public void RemoveContract(long id) { _institutionContractRepository.RemoveContract(id); + } diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index 65259abb..bcb8bf5a 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -638,9 +638,19 @@ public class InstitutionContractRepository : RepositoryBase x.id == id); - var contactInfo = _context.InstitutionContractContactInfos.Where(x => x.InstitutionContractId == id) + var institutionContarct = _context.InstitutionContractSet + .FirstOrDefault(x => x.id == id); + + var prevInstitutionContracts = _context.InstitutionContractSet + .Where(x => x.ContractingPartyId == institutionContarct.ContractingPartyId) + .OrderByDescending(x => x.ContractEndGr).Skip(1).FirstOrDefault(); + + var transaction = _context.Database.BeginTransaction(); + + var contactInfo = _context.InstitutionContractContactInfos + .Where(x => x.InstitutionContractId == id) .ToList(); + if (contactInfo.Count > 0) { foreach (var item in contactInfo) @@ -656,6 +666,31 @@ public class InstitutionContractRepository : RepositoryBase x.FinancialTransactionList) + .FirstOrDefault(x=>x.ContractingPartyId == institutionContarct.ContractingPartyId); + if (financialStatement != null) + { + + var sumDebtor = financialStatement.FinancialTransactionList + .Sum(x => x.Deptor); + var sumCreditor = financialStatement.FinancialTransactionList + .Sum(x => x.Creditor); + var balance = sumDebtor - sumCreditor; + if (balance>0 && prevInstitutionContracts.ContractEndGr