Enhance contract removal logic and handle financial statement updates
This commit is contained in:
@@ -888,6 +888,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
public void RemoveContract(long id)
|
||||
{
|
||||
_institutionContractRepository.RemoveContract(id);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -638,9 +638,19 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
|
||||
public void RemoveContract(long id)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
var institutionContarct = _context.InstitutionContractSet.FirstOrDefault(x => 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<long, InstitutionCon
|
||||
|
||||
_context.SaveChanges();
|
||||
}
|
||||
|
||||
if (prevInstitutionContracts != null)
|
||||
{
|
||||
var now = DateTime.Now;
|
||||
var financialStatement =
|
||||
_context.FinancialStatments
|
||||
.Include(x => 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<now)
|
||||
{
|
||||
prevInstitutionContracts.DeActiveBlue();
|
||||
_context.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
transaction.Commit();
|
||||
}
|
||||
|
||||
public void CreateContractingPartyAccount(long contractingPartyid, long accountId)
|
||||
@@ -1999,7 +2034,7 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
|
||||
{
|
||||
legalPartyRequest = new CreateInstitutionContractLegalPartyRequest()
|
||||
{
|
||||
NationalCode = contractingParty.Nationalcode=="*"?string.Empty:contractingParty.Nationalcode,
|
||||
NationalCode = contractingParty.Nationalcode == "*" ? string.Empty : contractingParty.Nationalcode,
|
||||
BirthDateFa = contractingParty.DateOfBirth.ToFarsi(),
|
||||
PhoneNumber = contractingParty.Phone,
|
||||
FatherName = contractingParty.FatherName,
|
||||
@@ -2098,7 +2133,8 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
|
||||
legalCommand.PhoneNumber);
|
||||
}
|
||||
|
||||
legalPersonalContractingParty?.EditLegalPartyFromInstitution(legalCommand.Position, legalCommand.CompanyName,
|
||||
legalPersonalContractingParty?.EditLegalPartyFromInstitution(legalCommand.Position,
|
||||
legalCommand.CompanyName,
|
||||
legalCommand.RegisterId, legalCommand.NationalId);
|
||||
break;
|
||||
case LegalType.Real:
|
||||
|
||||
Reference in New Issue
Block a user