From 84416fe1f5c2b8d27654576f9b6de0d11ed42c50 Mon Sep 17 00:00:00 2001 From: mahan Date: Mon, 29 Dec 2025 13:29:32 +0330 Subject: [PATCH 1/5] feat: add validation for in-person contract approval and suppress documentation warnings --- .../InstitutionContractWorkshopGroup.cs | 2 ++ .../CompanyManagment.App.Contracts.csproj | 1 + .../InstitutionContractApplication.cs | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopGroup.cs b/Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopGroup.cs index fcf86fb0..83e9ef00 100644 --- a/Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopGroup.cs +++ b/Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopGroup.cs @@ -23,6 +23,8 @@ public class InstitutionContractWorkshopGroup : EntityBase !InitialWorkshops.Cast() .SequenceEqual(CurrentWorkshops.Cast()); + public bool IsInPersonContract => InitialWorkshops.Any(x => x.Services.ContractInPerson); + public InstitutionContractWorkshopGroup(long institutionContractId, List initialDetails) { diff --git a/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj b/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj index 460093f3..8704ce17 100644 --- a/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj +++ b/CompanyManagment.App.Contracts/CompanyManagment.App.Contracts.csproj @@ -3,6 +3,7 @@ net10.0 true + $(NoWarn);1591 diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index 756b26fa..82373502 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -1634,6 +1634,11 @@ public class InstitutionContractApplication : IInstitutionContractApplication if (institutionContract.VerificationStatus == InstitutionContractVerificationStatus.Verified) return op.Failed("قرارداد مالی قبلا تایید شده است"); + if (!institutionContract.WorkshopGroup.IsInPersonContract) + { + return op.Failed("قرارداد مالی غیر حضوری نمی تواند به صورت دستی تایید شود"); + } + var transaction = await _institutionContractRepository.BeginTransactionAsync(); await SetPendingWorkflow(institutionContractId,InstitutionContractSigningType.Physical); From 18a4334d8a895b343b7914e2f92d5ae4c9c30acd Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 29 Dec 2025 14:36:03 +0330 Subject: [PATCH 2/5] change WarningMessage on InsuranceList Edit --- CompanyManagment.EFCore/Repository/InsuranceListRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs b/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs index 3f2eb9ac..88c92f26 100644 --- a/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs +++ b/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs @@ -177,7 +177,7 @@ public class InsuranceListRepository : RepositoryBase, IIns { checkout.SetUpdateNeeded(); if (!_context.CheckoutWarningMessages.Any(x => - x.CheckoutId == checkout.id && x.TypeOfCheckoutWarning != + x.CheckoutId == checkout.id && x.TypeOfCheckoutWarning == TypeOfCheckoutWarning.InsuranceEmployeeShare)) { var createWarrning = From a33d7c019c02fe24c74e28e0e8aa49b57fe9b8e7 Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 29 Dec 2025 15:08:53 +0330 Subject: [PATCH 3/5] launchsettnig --- ServiceHost/Properties/launchSettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ServiceHost/Properties/launchSettings.json b/ServiceHost/Properties/launchSettings.json index 69be5550..788962e4 100644 --- a/ServiceHost/Properties/launchSettings.json +++ b/ServiceHost/Properties/launchSettings.json @@ -11,7 +11,7 @@ }, "ServiceHost": { "commandName": "Project", - "launchBrowser": false, + "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" From adf297455f513a123cd3e3719f33395fe54ee320 Mon Sep 17 00:00:00 2001 From: mahan Date: Mon, 29 Dec 2025 17:20:07 +0330 Subject: [PATCH 4/5] feat: enhance Excel export for institution contracts by removing row number and adding dynamic physical contract status --- .../InstitutionContractExcelGenerator.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/CompanyManagement.Infrastructure.Excel/InstitutionContract/InstitutionContractExcelGenerator.cs b/CompanyManagement.Infrastructure.Excel/InstitutionContract/InstitutionContractExcelGenerator.cs index 24f5ce8a..5a0b4874 100644 --- a/CompanyManagement.Infrastructure.Excel/InstitutionContract/InstitutionContractExcelGenerator.cs +++ b/CompanyManagement.Infrastructure.Excel/InstitutionContract/InstitutionContractExcelGenerator.cs @@ -38,7 +38,6 @@ public class ExcelColumnConfig // فعلاً تمام ستون‌ها فعال هستند VisibleColumns = new List { - ExcelColumnType.RowNumber, ExcelColumnType.PhysicalContract, ExcelColumnType.ContractNo, ExcelColumnType.Representative, @@ -286,11 +285,20 @@ public class InstitutionContractExcelGenerator switch (columnType) { - case ExcelColumnType.RowNumber: - // TODO: مقدار ردیف رو از user input دریافت کن - break; case ExcelColumnType.PhysicalContract: - // TODO: مقدار قرارداد فیزیکی رو دریافت کن + var physicalText = contract.IsOldContract + ? (contract.HasSigniture ? "موجود" : "ناموجود") + : (contract.IsInPersonContract ? "الکترونیکی حضوری" : "الکترونیکی غیر حضوری"); + + cell.Value = physicalText; + cell.Style.Font.Bold = true; + cell.Style.Font.Color.SetColor(physicalText switch + { + "موجود" => Color.Green, + "ناموجود" => Color.Red, + "الکترونیکی حضوری" => Color.Purple, + _ => Color.Blue + }); break; case ExcelColumnType.ContractNo: cell.Value = contract.ContractNo; From 4f66270cb075aae77c8d6f52300e8781ef778dea Mon Sep 17 00:00:00 2001 From: mahan Date: Mon, 29 Dec 2025 19:14:35 +0330 Subject: [PATCH 5/5] feat: add OneMonthPrice to institution verification details and update contract pricing logic --- .../GetInstitutionVerificationDetailsViewModel.cs | 1 + ...GetInstitutionVerificationDetailsWorkshopsViewModel.cs | 1 - .../Repository/InstitutionContractRepository.cs | 8 +++++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsViewModel.cs b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsViewModel.cs index 0e3cc092..4d28eebc 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsViewModel.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsViewModel.cs @@ -13,6 +13,7 @@ public class GetInstitutionVerificationDetailsViewModel public string ContractStart { get; set; } public string ContractEnd { get; set; } public List Workshops { get; set; } + public string OneMonthPrice { get; set; } public string TotalPrice { get; set; } public string TaxPrice { get; set; } public string PaymentPrice { get; set; } diff --git a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsWorkshopsViewModel.cs b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsWorkshopsViewModel.cs index cd1ef514..09a0d2dc 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsWorkshopsViewModel.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionVerificationDetailsWorkshopsViewModel.cs @@ -5,5 +5,4 @@ public class GetInstitutionVerificationDetailsWorkshopsViewModel public string Name { get; set; } public int PersonnelCount { get; set; } public WorkshopServicesViewModel Services { get; set; } - public string Price { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index f15189ca..0ce06461 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -1866,6 +1866,9 @@ public class InstitutionContractRepository : RepositoryBase x.InstallmentDateGr).First().Amount.ToMoney(): + query.contract.ContractAmount.ToMoney(), TotalPrice = (query.contract.TotalAmount - query.contract.ValueAddedTax).ToMoney(), PaymentPrice = query.contract.TotalAmount.ToMoney(), IsInstallment = query.contract.IsInstallment, @@ -1899,8 +1902,8 @@ public class InstitutionContractRepository : RepositoryBase