From 85e2481680e0d0a6899724a6eb407b8ee94323ea Mon Sep 17 00:00:00 2001 From: mahan Date: Tue, 21 Oct 2025 13:50:42 +0330 Subject: [PATCH] feat: enhance financial statement retrieval with contracting party validation and creation --- .../Repository/FinancialStatmentRepository.cs | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs b/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs index 6e5d0617..278bc861 100644 --- a/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs +++ b/CompanyManagment.EFCore/Repository/FinancialStatmentRepository.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using AccountManagement.Application.Contracts.SubAccount; +using ZstdSharp.Unsafe; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace CompanyManagment.EFCore.Repository; @@ -266,14 +267,26 @@ public class FinancialStatmentRepository : RepositoryBase GetDetailsByContractingParty(long contractingPartyId,FinancialStatementSearchModel searchModel) { + var contractingParty = await _context.PersonalContractingParties + .FirstOrDefaultAsync(x=>x.id == contractingPartyId); + + if (contractingParty == null) + throw new NotFoundException("طرف حساب یافت نشد"); + var financialStatement = await _context.FinancialStatments .Include(x=>x.FinancialTransactionList) .FirstOrDefaultAsync(x=>x.ContractingPartyId == contractingPartyId); - + if (financialStatement == null) { - throw new NotFoundException("وضعیت مالی مورد نظر یافت نشد"); + financialStatement = new FinancialStatment(contractingPartyId,contractingParty.FName+" "+contractingParty.LName); + + await _context.AddAsync(financialStatement); + await _context.SaveChangesAsync(); } + + + bool searched = false; #region Search @@ -383,7 +396,8 @@ public class FinancialStatmentRepository : RepositoryBase x.Creditor), TotalDebt = financialStatement.FinancialTransactionList.Sum(x => x.Deptor), ContractingPartyName = financialStatement.ContractingPartyName, - List = list.OrderByDescending(x=>x.DateTimeGr).ToList(), + List = list, }; return res; }