From 2a315ff7aed42f701548951435832cc0135816cf Mon Sep 17 00:00:00 2001 From: MahanCh Date: Mon, 18 Aug 2025 10:40:17 +0330 Subject: [PATCH] refactor: rename InstitutionContractStatus to InstitutionContractListStatus and update related properties --- .../InstitutionContract.cs | 16 ++++++ ...etInstitutionContractListItemsViewModel.cs | 2 +- .../IInstitutionContractApplication.cs | 7 ++- .../InstitutionContractListSearchModel.cs | 2 +- ...us.cs => InstitutionContractListStatus.cs} | 2 +- .../CreateWorkshopTemp.cs | 1 - ...ITemporaryClientRegistrationApplication.cs | 20 +------- .../InstitutionContractApplication.cs | 5 ++ .../TemporaryClientRegistrationApplication.cs | 26 ---------- .../InstitutionContractRepository.cs | 50 +++++++++---------- .../institutionContractController.cs | 11 ++-- 11 files changed, 60 insertions(+), 82 deletions(-) rename CompanyManagment.App.Contracts/InstitutionContract/{InstitutionContractStatus.cs => InstitutionContractListStatus.cs} (80%) diff --git a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs index 95a30277..896935f0 100644 --- a/Company.Domain/InstitutionContractAgg/InstitutionContract.cs +++ b/Company.Domain/InstitutionContractAgg/InstitutionContract.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using _0_Framework.Domain; using Company.Domain.InstitutionContractContactInfoAgg; +using CompanyManagment.App.Contracts.InstitutionContract; namespace Company.Domain.InstitutionContractAgg; @@ -83,6 +84,8 @@ public class InstitutionContract : EntityBase public string HasValueAddedTax { get; set; } public double ValueAddedTax { get; set; } + public InstitutionContractStatus I { get; private set; } + public List ContactInfoList { get; set; } public InstitutionContract() @@ -148,4 +151,17 @@ public class InstitutionContract : EntityBase { this.Signature = "0"; } +} + +public enum InstitutionContractStatus +{ + /// + /// ناتمام - قرارداد هنوز تکمیل نشده و نیاز به انجام کارهای بیشتر دارد + /// + Incomplete = 0, + + /// + /// تکمیل شده - قرارداد به طور کامل انجام شده و نهایی شده است + /// + Completed = 1 } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs index be7e0f5f..d143d969 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/GetInstitutionContractListItemsViewModel.cs @@ -77,7 +77,7 @@ public class GetInstitutionContractListItemsViewModel /// /// وضعیت قرارداد /// - public InstitutionContractStatus Status { get; set; } + public InstitutionContractListStatus ListStatus { get; set; } /// /// آیا منقضی شده است diff --git a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs index 6638dec5..aa43c862 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs @@ -95,6 +95,11 @@ public interface IInstitutionContractApplication /// Task ExtensionَAsync(CreateInstitutionContractRequest command); + /// + /// ایجاد قرارداد جدید بر اساس منطق ثبتنام + /// + Task CreateAsync(ExtenstionInstitutionContractRequest command); + #endregion } @@ -124,7 +129,7 @@ public class GetInstitutionContractListStatsViewModel public class InstitutionContractStatusCount { - public InstitutionContractStatus Status { get; set; } + public InstitutionContractListStatus ListStatus { get; set; } public int Count { get; set; } } public class ExtenstionInstitutionContractRequest:EditInstitutionContractRequest diff --git a/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractListSearchModel.cs b/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractListSearchModel.cs index 18cc2af0..c033b124 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractListSearchModel.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractListSearchModel.cs @@ -42,7 +42,7 @@ public class InstitutionContractListSearchModel :PaginationRequest /// /// تب /// - public InstitutionContractStatus? Status { get; set; } + public InstitutionContractListStatus? Status { get; set; } /// /// فعال / غیرفعال diff --git a/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractStatus.cs b/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractListStatus.cs similarity index 80% rename from CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractStatus.cs rename to CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractListStatus.cs index 103f4dd3..7e304730 100644 --- a/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractStatus.cs +++ b/CompanyManagment.App.Contracts/InstitutionContract/InstitutionContractListStatus.cs @@ -1,6 +1,6 @@ namespace CompanyManagment.App.Contracts.InstitutionContract; -public enum InstitutionContractStatus +public enum InstitutionContractListStatus { Active, Deactive, diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/CreateWorkshopTemp.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/CreateWorkshopTemp.cs index 7b141903..e8cbf9f2 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/CreateWorkshopTemp.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/CreateWorkshopTemp.cs @@ -17,7 +17,6 @@ public class CreateWorkshopTemp /// public long ContractingPartyTempId { get; set; } - #region ServiceSelection /// diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs index ad69cf62..8fae394c 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs @@ -119,12 +119,7 @@ public interface ITemporaryClientRegistrationApplication /// Task> RegistrationWorkflowMainList(); - /// - /// ایجاد قرارداد مالی برای طرف حساب - /// - /// - /// - Task CreateInstitutionContractTemp(CreateInstitutionContractTempRequest command); + /// /// ارسال لینک تایید قوانین و مقررات به طرف حساب @@ -134,16 +129,3 @@ public interface ITemporaryClientRegistrationApplication Task SendAgreementLink(long contractingPartyTempId); } -public class CreateInstitutionContractTempRequest -{ - public long ContractingPartyTempId { get; set; } - public string State { get; set; } - public string City { get; set; } - public string Address { get; set; } - public List Workshops { get; set; } - public string PeriodModel { get; set; } - public string PaymentModel { get; set; } - public double TotalPayment { get; set; } - public double ValueAddedTax { get; set; } - public string ContractStartFa { get; set; } -} diff --git a/CompanyManagment.Application/InstitutionContractApplication.cs b/CompanyManagment.Application/InstitutionContractApplication.cs index 402e626f..54b62a9a 100644 --- a/CompanyManagment.Application/InstitutionContractApplication.cs +++ b/CompanyManagment.Application/InstitutionContractApplication.cs @@ -1248,6 +1248,11 @@ public class InstitutionContractApplication : IInstitutionContractApplication return opration.Succcedded(createContract.id); } + + public Task CreateAsync(ExtenstionInstitutionContractRequest command) + { + throw new NotImplementedException(); + } } #region CustomViewModels diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index cc1c88ca..38f8ce81 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -912,32 +912,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati return await _institutionContractTempRepository.GetAllCompletedRegistration(); } - public async Task CreateInstitutionContractTemp(CreateInstitutionContractTempRequest command) - { - var contractingPartyId = command.ContractingPartyTempId; - await using var transaction = await _contractingPartyTempRepository.BeginTransactionAsync(); - var updateAddressRes = await UpdateAddress(contractingPartyId, command.State, command.City, command.Address); - if (!updateAddressRes.IsSuccedded) - return updateAddressRes; - - var createWorkshopRes = await CreateOrUpdateWorkshopTemp(command.Workshops, contractingPartyId); - if (!createWorkshopRes.IsSuccedded) - return createWorkshopRes; - - var createInstitution = await CreateOrUpdateInstitutionContractTemp(contractingPartyId, command.PeriodModel, - command.PaymentModel, - command.TotalPayment, command.ValueAddedTax, command.ContractStartFa.ToGeorgianDateTime()); - if (!createInstitution.IsSuccedded) - return createInstitution; - - var payOffRes = await PayOffCompleted(contractingPartyId); - if (!payOffRes.IsSuccedded) - return payOffRes; - - await transaction.CommitAsync(); - return new OperationResult().Succcedded(); - } - public async Task SendAgreementLink(long contractingPartyTempId) { var op = new OperationResult(); diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index 2a89c94a..de4e5095 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -1113,24 +1113,24 @@ public class InstitutionContractRepository : RepositoryBase x.contract.IsActiveString == "blue"); break; - case InstitutionContractStatus.PendingForRenewal: + case InstitutionContractListStatus.PendingForRenewal: joinedQuery = joinedQuery.Where(x => x.contract.ContractEndGr >= now && x.contract.ContractEndGr <= endThisMontGr); break; - case InstitutionContractStatus.Block: + case InstitutionContractListStatus.Block: joinedQuery = joinedQuery.Where(x => x.contractingParty.IsBlock == "true"); break; - case InstitutionContractStatus.Free: + case InstitutionContractListStatus.Free: joinedQuery = joinedQuery.Where(x => x.contract.ContractAmount == 0); break; - case InstitutionContractStatus.WithoutWorkshop: + case InstitutionContractListStatus.WithoutWorkshop: joinedQuery = joinedQuery.Where(x => !x.contractingParty.Employers .SelectMany(e => e.WorkshopEmployers.Select(we => we.Workshop)).Any()); break; - case InstitutionContractStatus.Active: + case InstitutionContractListStatus.Active: joinedQuery = joinedQuery.Where(x => x.contract.IsActiveString != "blue" && // Not DeactiveWithDebt !(x.contract.ContractEndGr >= now && @@ -1205,7 +1205,7 @@ public class InstitutionContractRepository : RepositoryBase workshops.Select(w => w.id).Contains(l.id)) .Count(l => l.StartWorkDate <= DateTime.Now && l.LeftWorkDate >= DateTime.Now), EmployerNames = employers.Select(e => e.FullName).ToList(), - Status = status.status, + ListStatus = status.status, IsExpired = status.isExpiered }; }).ToList() @@ -1325,24 +1325,24 @@ public class InstitutionContractRepository : RepositoryBase x.contract.IsActiveString == "blue"); break; - case InstitutionContractStatus.PendingForRenewal: + case InstitutionContractListStatus.PendingForRenewal: joinedQuery = joinedQuery.Where(x => x.contract.ContractEndGr >= now && x.contract.ContractEndGr <= endThisMontGr); break; - case InstitutionContractStatus.Block: + case InstitutionContractListStatus.Block: joinedQuery = joinedQuery.Where(x => x.contractingParty.IsBlock == "true"); break; - case InstitutionContractStatus.Free: + case InstitutionContractListStatus.Free: joinedQuery = joinedQuery.Where(x => x.contract.ContractAmount == 0); break; - case InstitutionContractStatus.WithoutWorkshop: + case InstitutionContractListStatus.WithoutWorkshop: joinedQuery = joinedQuery.Where(x => !x.contractingParty.Employers .SelectMany(e => e.WorkshopEmployers.Select(we => we.Workshop)).Any()); break; - case InstitutionContractStatus.Active: + case InstitutionContractListStatus.Active: joinedQuery = joinedQuery.Where(x => x.contract.IsActiveString != "blue" && // Not DeactiveWithDebt !(x.contract.ContractEndGr >= now && @@ -1368,12 +1368,12 @@ public class InstitutionContractRepository : RepositoryBase x.FinancialTransactionList) .SumAsync(x => x.Deptor - x.Creditor); var counts = new List(); - foreach (var name in typeof(InstitutionContractStatus).GetEnumNames()) + foreach (var name in typeof(InstitutionContractListStatus).GetEnumNames()) { - var @enum = Enum.Parse(name); + var @enum = Enum.Parse(name); searchModel.Status = @enum; var count = (await GetList(searchModel)).TotalCount; - counts.Add(new (){Status = @enum, Count = count }); + counts.Add(new (){ListStatus = @enum, Count = count }); } var res = new GetInstitutionContractListStatsViewModel() @@ -1385,7 +1385,7 @@ public class InstitutionContractRepository : RepositoryBase= now && contract.ContractEndGr <= endThisMontGr) { - status = InstitutionContractStatus.PendingForRenewal; + listStatus = InstitutionContractListStatus.PendingForRenewal; isExpier = true; } if (contract.ContractAmount == 0) { - status = InstitutionContractStatus.Free; + listStatus = InstitutionContractListStatus.Free; if ((contract.ContractEndGr >= now && contract.ContractEndGr <= endThisMontGr) || (contract.ContractEndGr < now)) { @@ -1419,7 +1419,7 @@ public class InstitutionContractRepository : RepositoryBase> InstitutionPlanCalculator( [FromBody] InstitutionPlanCalculatorRequest request) { - var res = await _temporaryClientRegistration.GetTotalPaymentAndWorkshopList(request.ContractingPartyTempId, + var res = await _temporaryClientRegistration.GetTotalPaymentAndWorkshopList(0, request.workshopList, request.PeriodModel, request.PaymentModel, request.ContractStartType); return res; } @@ -615,9 +614,9 @@ public class institutionContractController : AdminBaseController /// /// [HttpPost] - public async Task> Create([FromBody] CreateInstitutionContractTempRequest command) + public async Task> Create() { - return await _temporaryClientRegistration.CreateInstitutionContractTemp(command); + throw new NotImplementedException(); } /// @@ -649,9 +648,7 @@ public class institutionContractController : AdminBaseController } } -public record InstitutionPlanCalculatorRequest( - long ContractingPartyTempId, - List workshopList, +public record InstitutionPlanCalculatorRequest(List workshopList, string PeriodModel = "12", string PaymentModel = "OneTime", string ContractStartType = "currentMonth");