refactor: rename InstitutionContractStatus to InstitutionContractListStatus and update related properties
This commit is contained in:
@@ -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<InstitutionContractContactInfo> ContactInfoList { get; set; }
|
||||
|
||||
public InstitutionContract()
|
||||
@@ -148,4 +151,17 @@ public class InstitutionContract : EntityBase
|
||||
{
|
||||
this.Signature = "0";
|
||||
}
|
||||
}
|
||||
|
||||
public enum InstitutionContractStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// ناتمام - قرارداد هنوز تکمیل نشده و نیاز به انجام کارهای بیشتر دارد
|
||||
/// </summary>
|
||||
Incomplete = 0,
|
||||
|
||||
/// <summary>
|
||||
/// تکمیل شده - قرارداد به طور کامل انجام شده و نهایی شده است
|
||||
/// </summary>
|
||||
Completed = 1
|
||||
}
|
||||
@@ -77,7 +77,7 @@ public class GetInstitutionContractListItemsViewModel
|
||||
/// <summary>
|
||||
/// وضعیت قرارداد
|
||||
/// </summary>
|
||||
public InstitutionContractStatus Status { get; set; }
|
||||
public InstitutionContractListStatus ListStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیا منقضی شده است
|
||||
|
||||
@@ -95,6 +95,11 @@ public interface IInstitutionContractApplication
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> ExtensionَAsync(CreateInstitutionContractRequest command);
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد قرارداد جدید بر اساس منطق ثبتنام
|
||||
/// </summary>
|
||||
Task<OperationResult> 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
|
||||
|
||||
@@ -42,7 +42,7 @@ public class InstitutionContractListSearchModel :PaginationRequest
|
||||
/// <summary>
|
||||
/// تب
|
||||
/// </summary>
|
||||
public InstitutionContractStatus? Status { get; set; }
|
||||
public InstitutionContractListStatus? Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// فعال / غیرفعال
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public enum InstitutionContractStatus
|
||||
public enum InstitutionContractListStatus
|
||||
{
|
||||
Active,
|
||||
Deactive,
|
||||
@@ -17,7 +17,6 @@ public class CreateWorkshopTemp
|
||||
/// </summary>
|
||||
public long ContractingPartyTempId { get; set; }
|
||||
|
||||
|
||||
#region ServiceSelection
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -119,12 +119,7 @@ public interface ITemporaryClientRegistrationApplication
|
||||
/// <returns></returns>
|
||||
Task<List<RegistrationWorkflowMainList>> RegistrationWorkflowMainList();
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد قرارداد مالی برای طرف حساب
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> CreateInstitutionContractTemp(CreateInstitutionContractTempRequest command);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ارسال لینک تایید قوانین و مقررات به طرف حساب
|
||||
@@ -134,16 +129,3 @@ public interface ITemporaryClientRegistrationApplication
|
||||
Task<OperationResult> 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<WorkshopTempViewModel> 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; }
|
||||
}
|
||||
|
||||
@@ -1248,6 +1248,11 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
return opration.Succcedded(createContract.id);
|
||||
}
|
||||
|
||||
public Task<OperationResult> CreateAsync(ExtenstionInstitutionContractRequest command)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
#region CustomViewModels
|
||||
|
||||
@@ -912,32 +912,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
return await _institutionContractTempRepository.GetAllCompletedRegistration();
|
||||
}
|
||||
|
||||
public async Task<OperationResult> 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<OperationResult> SendAgreementLink(long contractingPartyTempId)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
|
||||
@@ -1113,24 +1113,24 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
|
||||
{
|
||||
switch (searchModel.Status)
|
||||
{
|
||||
case InstitutionContractStatus.DeactiveWithDebt:
|
||||
case InstitutionContractListStatus.DeactiveWithDebt:
|
||||
joinedQuery = joinedQuery.Where(x => 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<long, InstitutionCon
|
||||
.Where(l => 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<long, InstitutionCon
|
||||
{
|
||||
switch (searchModel.Status)
|
||||
{
|
||||
case InstitutionContractStatus.DeactiveWithDebt:
|
||||
case InstitutionContractListStatus.DeactiveWithDebt:
|
||||
joinedQuery = joinedQuery.Where(x => 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<long, InstitutionCon
|
||||
.SelectMany(x => x.FinancialTransactionList)
|
||||
.SumAsync(x => x.Deptor - x.Creditor);
|
||||
var counts = new List<InstitutionContractStatusCount>();
|
||||
foreach (var name in typeof(InstitutionContractStatus).GetEnumNames())
|
||||
foreach (var name in typeof(InstitutionContractListStatus).GetEnumNames())
|
||||
{
|
||||
var @enum = Enum.Parse<InstitutionContractStatus>(name);
|
||||
var @enum = Enum.Parse<InstitutionContractListStatus>(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<long, InstitutionCon
|
||||
return res;
|
||||
}
|
||||
|
||||
private (InstitutionContractStatus status, bool isExpiered) SetContractStatus(InstitutionContract contract,
|
||||
private (InstitutionContractListStatus status, bool isExpiered) SetContractStatus(InstitutionContract contract,
|
||||
PersonalContractingParty contractingParty,
|
||||
FinancialStatment financialStatment)
|
||||
{
|
||||
@@ -1393,23 +1393,23 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
|
||||
var nowFa = now.ToFarsi();
|
||||
var endFa = nowFa.FindeEndOfMonth();
|
||||
var endThisMontGr = endFa.ToGeorgianDateTime();
|
||||
InstitutionContractStatus status = InstitutionContractStatus.Active;
|
||||
InstitutionContractListStatus listStatus = InstitutionContractListStatus.Active;
|
||||
bool isExpier = false;
|
||||
if (contract.ContractEndGr < now)
|
||||
{
|
||||
status = InstitutionContractStatus.Deactive;
|
||||
listStatus = InstitutionContractListStatus.Deactive;
|
||||
isExpier = true;
|
||||
}
|
||||
|
||||
if (contract.ContractEndGr >= 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<long, InstitutionCon
|
||||
|
||||
if (contract.IsActiveString == "blue")
|
||||
{
|
||||
status = InstitutionContractStatus.DeactiveWithDebt;
|
||||
listStatus = InstitutionContractListStatus.DeactiveWithDebt;
|
||||
isExpier = true;
|
||||
}
|
||||
|
||||
@@ -1428,15 +1428,15 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
|
||||
|
||||
if (workshops.Count == 0)
|
||||
{
|
||||
status = InstitutionContractStatus.Free;
|
||||
listStatus = InstitutionContractListStatus.Free;
|
||||
}
|
||||
|
||||
if (contractingParty.IsBlock == "true")
|
||||
{
|
||||
status = InstitutionContractStatus.Block;
|
||||
listStatus = InstitutionContractListStatus.Block;
|
||||
}
|
||||
|
||||
return (status, isExpier);
|
||||
return (listStatus, isExpier);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -588,7 +588,6 @@ public class institutionContractController : AdminBaseController
|
||||
{
|
||||
WorkshopName = command.WorkshopName,
|
||||
CountPerson = command.CountPerson,
|
||||
ContractingPartyTempId = command.ContractingPartyTempId,
|
||||
ContractAndCheckout = command.ContractAndCheckout,
|
||||
Insurance = command.Insurance,
|
||||
RollCall = command.RollCall,
|
||||
@@ -604,7 +603,7 @@ public class institutionContractController : AdminBaseController
|
||||
public async Task<ActionResult<ReviewAndPaymentViewModel>> 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
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<OperationResult>> Create([FromBody] CreateInstitutionContractTempRequest command)
|
||||
public async Task<ActionResult<OperationResult>> Create()
|
||||
{
|
||||
return await _temporaryClientRegistration.CreateInstitutionContractTemp(command);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -649,9 +648,7 @@ public class institutionContractController : AdminBaseController
|
||||
}
|
||||
}
|
||||
|
||||
public record InstitutionPlanCalculatorRequest(
|
||||
long ContractingPartyTempId,
|
||||
List<WorkshopTempViewModel> workshopList,
|
||||
public record InstitutionPlanCalculatorRequest(List<WorkshopTempViewModel> workshopList,
|
||||
string PeriodModel = "12",
|
||||
string PaymentModel = "OneTime",
|
||||
string ContractStartType = "currentMonth");
|
||||
|
||||
Reference in New Issue
Block a user