feat: add SetContractSendFlag method and related request for contract send tracking
This commit is contained in:
@@ -54,7 +54,7 @@ public class InstitutionContractSendFlag
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// علامتگذاری قرارداد به عنوان ارسالشده
|
/// علامتگذاری قرارداد به عنوان ارسالشده
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void MarkAsSent(string reason = null)
|
public void MarkAsSent()
|
||||||
{
|
{
|
||||||
IsSent = true;
|
IsSent = true;
|
||||||
SentDate = DateTime.Now;
|
SentDate = DateTime.Now;
|
||||||
|
|||||||
@@ -305,6 +305,14 @@ public interface IInstitutionContractApplication
|
|||||||
Task<InstitutionContractDiscountResponse> SetDiscountForCreation(InstitutionContractSetDiscountForCreationRequest request);
|
Task<InstitutionContractDiscountResponse> SetDiscountForCreation(InstitutionContractSetDiscountForCreationRequest request);
|
||||||
Task<InstitutionContractDiscountResponse> ResetDiscountForCreation(InstitutionContractResetDiscountForExtensionRequest request);
|
Task<InstitutionContractDiscountResponse> ResetDiscountForCreation(InstitutionContractResetDiscountForExtensionRequest request);
|
||||||
Task<OperationResult> CreationComplete(InstitutionContractExtensionCompleteRequest request);
|
Task<OperationResult> CreationComplete(InstitutionContractExtensionCompleteRequest request);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// تعیین فلگ ارسال قرارداد در MongoDB
|
||||||
|
/// اگر فلگ وجود نداشتند ایجاد میکند
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request">درخواست تعیین فلگ</param>
|
||||||
|
/// <returns>نتیجه عملیات</returns>
|
||||||
|
Task<OperationResult> SetContractSendFlag(SetInstitutionContractSendFlagRequest request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CreationSetContractingPartyResponse
|
public class CreationSetContractingPartyResponse
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// درخواست برای تعیین فلگ ارسال قرارداد
|
||||||
|
/// </summary>
|
||||||
|
public class SetInstitutionContractSendFlagRequest
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// شناسه قرارداد
|
||||||
|
/// </summary>
|
||||||
|
public long InstitutionContractId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// آیا قرارداد ارسال شده است
|
||||||
|
/// </summary>
|
||||||
|
public bool IsSent { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -19,6 +19,7 @@ using Company.Domain.PaymentTransactionAgg;
|
|||||||
using Company.Domain.RepresentativeAgg;
|
using Company.Domain.RepresentativeAgg;
|
||||||
using Company.Domain.RollCallServiceAgg;
|
using Company.Domain.RollCallServiceAgg;
|
||||||
using Company.Domain.WorkshopAgg;
|
using Company.Domain.WorkshopAgg;
|
||||||
|
using Company.Domain.InstitutionContractSendFlagAgg;
|
||||||
using CompanyManagment.App.Contracts.FinancialInvoice;
|
using CompanyManagment.App.Contracts.FinancialInvoice;
|
||||||
using CompanyManagment.App.Contracts.FinancialStatment;
|
using CompanyManagment.App.Contracts.FinancialStatment;
|
||||||
using CompanyManagment.App.Contracts.InstitutionContract;
|
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
@@ -51,6 +52,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
|||||||
private readonly IPaymentTransactionRepository _paymentTransactionRepository;
|
private readonly IPaymentTransactionRepository _paymentTransactionRepository;
|
||||||
private readonly IRollCallServiceRepository _rollCallServiceRepository;
|
private readonly IRollCallServiceRepository _rollCallServiceRepository;
|
||||||
private readonly ISepehrPaymentGatewayService _sepehrPaymentGatewayService;
|
private readonly ISepehrPaymentGatewayService _sepehrPaymentGatewayService;
|
||||||
|
private readonly IInstitutionContractSendFlagRepository _institutionContractSendFlagRepository;
|
||||||
|
|
||||||
|
|
||||||
public InstitutionContractApplication(IInstitutionContractRepository institutionContractRepository,
|
public InstitutionContractApplication(IInstitutionContractRepository institutionContractRepository,
|
||||||
@@ -62,7 +64,8 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
|||||||
IAccountApplication accountApplication, ISmsService smsService,
|
IAccountApplication accountApplication, ISmsService smsService,
|
||||||
IFinancialInvoiceRepository financialInvoiceRepository, IHttpClientFactory httpClientFactory,
|
IFinancialInvoiceRepository financialInvoiceRepository, IHttpClientFactory httpClientFactory,
|
||||||
IPaymentTransactionRepository paymentTransactionRepository, IRollCallServiceRepository rollCallServiceRepository,
|
IPaymentTransactionRepository paymentTransactionRepository, IRollCallServiceRepository rollCallServiceRepository,
|
||||||
ISepehrPaymentGatewayService sepehrPaymentGatewayService,ILogger<SepehrPaymentGateway> sepehrGatewayLogger)
|
ISepehrPaymentGatewayService sepehrPaymentGatewayService,ILogger<SepehrPaymentGateway> sepehrGatewayLogger,
|
||||||
|
IInstitutionContractSendFlagRepository institutionContractSendFlagRepository)
|
||||||
{
|
{
|
||||||
_institutionContractRepository = institutionContractRepository;
|
_institutionContractRepository = institutionContractRepository;
|
||||||
_contractingPartyRepository = contractingPartyRepository;
|
_contractingPartyRepository = contractingPartyRepository;
|
||||||
@@ -80,6 +83,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
|||||||
_rollCallServiceRepository = rollCallServiceRepository;
|
_rollCallServiceRepository = rollCallServiceRepository;
|
||||||
_sepehrPaymentGatewayService = sepehrPaymentGatewayService;
|
_sepehrPaymentGatewayService = sepehrPaymentGatewayService;
|
||||||
_paymentGateway = new SepehrPaymentGateway(httpClientFactory,sepehrGatewayLogger);
|
_paymentGateway = new SepehrPaymentGateway(httpClientFactory,sepehrGatewayLogger);
|
||||||
|
_institutionContractSendFlagRepository = institutionContractSendFlagRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OperationResult Create(CreateInstitutionContract command)
|
public OperationResult Create(CreateInstitutionContract command)
|
||||||
@@ -1820,7 +1824,60 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
|||||||
installments.Add(lastInstallment);
|
installments.Add(lastInstallment);
|
||||||
return installments;
|
return installments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// تعیین فلگ ارسال قرارداد
|
||||||
|
/// اگر فلگ وجود نداشتند ایجاد میکند
|
||||||
|
/// </summary>
|
||||||
|
public async Task<OperationResult> SetContractSendFlag(SetInstitutionContractSendFlagRequest request)
|
||||||
|
{
|
||||||
|
var operationResult = new OperationResult();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// بازیابی قرارداد از SQL
|
||||||
|
var contract = _institutionContractRepository.Get(request.InstitutionContractId);
|
||||||
|
if (contract == null)
|
||||||
|
return operationResult.Failed("قرارداد مورد نظر یافت نشد");
|
||||||
|
|
||||||
|
// بررسی اینکه آیا فلگ در MongoDB وجود دارد
|
||||||
|
var existingFlag = await _institutionContractSendFlagRepository
|
||||||
|
.GetByContractId(request.InstitutionContractId);
|
||||||
|
|
||||||
|
if (existingFlag != null)
|
||||||
|
{
|
||||||
|
// اگر فلگ وجود داشتند، آن را اپدیت کنیم
|
||||||
|
if (request.IsSent)
|
||||||
|
{
|
||||||
|
existingFlag.MarkAsSent();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
existingFlag.MarkAsNotSent();
|
||||||
|
}
|
||||||
|
existingFlag.UpdateLastModified();
|
||||||
|
await _institutionContractSendFlagRepository.Update(existingFlag);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// اگر فلگ وجود ندارد، آن را ایجاد کنیم
|
||||||
|
var newFlag = new InstitutionContractSendFlag(
|
||||||
|
request.InstitutionContractId,
|
||||||
|
request.IsSent
|
||||||
|
);
|
||||||
|
|
||||||
|
await _institutionContractSendFlagRepository.Create(newFlag);
|
||||||
|
}
|
||||||
|
|
||||||
|
return operationResult.Succcedded();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return operationResult.Failed($"خطا در تعیین فلگ ارسال: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region CustomViewModels
|
#region CustomViewModels
|
||||||
|
|||||||
Reference in New Issue
Block a user