From 20e3d454cfa75a90304c1183426fd8bdfef25bae Mon Sep 17 00:00:00 2001 From: mahan Date: Sat, 20 Dec 2025 13:35:52 +0330 Subject: [PATCH] feat: add ContractAmountWithTax calculation and update related references --- .../InstitutionContractAgg/InstitutionContract.cs | 5 +++++ .../Mapping/InstitutionContractMapping.cs | 3 +++ .../Repository/InstitutionContractRepository.cs | 8 +++----- .../Conventions/ParameterBindingConvention.cs | 12 ++---------- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs index 9643a509..34b0a598 100644 --- a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs +++ b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs @@ -98,6 +98,9 @@ public class InstitutionContract : EntityBase // مبلغ قرارداد public double ContractAmount { get; private set; } + public double ContractAmountWithTax => !IsOldContract && IsInstallment ? ContractAmount + (ContractAmount * 0.10) + : ContractAmount; + //خسارت روزانه public double DailyCompenseation { get; private set; } @@ -159,6 +162,8 @@ public class InstitutionContract : EntityBase public List Amendments { get; private set; } + public bool IsOldContract => LawId!= 0; + public InstitutionContract() { ContactInfoList = []; diff --git a/CompanyManagment.EFCore/Mapping/InstitutionContractMapping.cs b/CompanyManagment.EFCore/Mapping/InstitutionContractMapping.cs index e6152167..ca709949 100644 --- a/CompanyManagment.EFCore/Mapping/InstitutionContractMapping.cs +++ b/CompanyManagment.EFCore/Mapping/InstitutionContractMapping.cs @@ -45,5 +45,8 @@ public class InstitutionContractMapping : IEntityTypeConfiguration x.Amendments).WithOne(x => x.InstitutionContract) .HasForeignKey(x => x.InstitutionContractId); + + + builder.Ignore(x => x.ContractAmountWithTax); } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index 947c35dd..1b7ec3f6 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -1375,7 +1375,7 @@ public class InstitutionContractRepository : RepositoryBase l.StartWorkDate <= DateTime.Now && l.LeftWorkDate >= DateTime.Now); return new GetInstitutionContractListItemsViewModel() { - ContractAmount = x.contract.ContractAmount, + ContractAmount = x.contract.ContractAmountWithTax, Balance = statement?.FinancialTransactionList.Sum(ft => ft.Deptor - ft.Creditor) ?? 0, WorkshopsCount = workshops.Count(), ContractStartFa = x.contract.ContractStartGr.ToFarsi(), @@ -1395,9 +1395,7 @@ public class InstitutionContractRepository : RepositoryBase y.Services.ContractInPerson) ?? true, - IsOldContract = x.contract.WorkshopGroup?.CurrentWorkshops == null - || x.contract.WorkshopGroup.CurrentWorkshops.Count == 0 - || x.contract.WorkshopGroup.CurrentWorkshops.Any(y => y.Price == 0) + IsOldContract = x.contract.IsOldContract }; }).ToList() }; @@ -3216,7 +3214,7 @@ public class InstitutionContractRepository : RepositoryBase