338 lines
12 KiB
C#
338 lines
12 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Diagnostics;
|
||
using System.Drawing;
|
||
using System.Linq;
|
||
using System.Threading.Tasks;
|
||
using _0_Framework.Application;
|
||
using _0_Framework.Application.Sms;
|
||
using CompanyManagment.App.Contracts.Checkout;
|
||
using CompanyManagment.App.Contracts.Law;
|
||
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
|
||
using CompanyManagment.App.Contracts.Workshop;
|
||
using CompanyManagment.App.Contracts.WorkshopPlan;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
|
||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||
|
||
/// <summary>
|
||
/// رابط اپلیکیشن قراردادهای مؤسسه
|
||
/// مدیریت عملیات مربوط به قراردادهای مالی مؤسسات
|
||
/// </summary>
|
||
public interface IInstitutionContractApplication
|
||
{
|
||
/// <summary>
|
||
/// ایجاد قرارداد جدید
|
||
/// </summary>
|
||
/// <param name="command">اطلاعات قرارداد جدید</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult Create(CreateInstitutionContract command);
|
||
|
||
/// <summary>
|
||
/// تمدید قرارداد موجود
|
||
/// </summary>
|
||
/// <param name="command">اطلاعات قرارداد برای تمدید</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult Extension(CreateInstitutionContract command);
|
||
|
||
/// <summary>
|
||
/// ویرایش قرارداد موجود
|
||
/// </summary>
|
||
/// <param name="command">اطلاعات جدید قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult Edit(EditInstitutionContract command);
|
||
|
||
/// <summary>
|
||
/// دریافت جزئیات قرارداد برای ویرایش
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>اطلاعات قرارداد</returns>
|
||
EditInstitutionContract GetDetails(long id);
|
||
|
||
/// <summary>
|
||
/// جستجو در قراردادها
|
||
/// </summary>
|
||
/// <param name="searchModel">مدل جستجو</param>
|
||
/// <returns>لیست قراردادها</returns>
|
||
List<InstitutionContractViewModel> Search(InstitutionContractSearchModel searchModel);
|
||
|
||
/// <summary>
|
||
/// جستجوی جدید در قراردادها
|
||
/// </summary>
|
||
/// <param name="searchModel">مدل جستجو</param>
|
||
/// <returns>لیست قراردادها</returns>
|
||
List<InstitutionContractViewModel> NewSearch(InstitutionContractSearchModel searchModel);
|
||
|
||
/// <summary>
|
||
/// دریافت اطلاعات قرارداد های مالی فعال
|
||
///دارای کارگاه
|
||
/// جهت ست کردن سرویس ها از طریق اکسل
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
List<InstitutionContractViewModel> GetInstitutionContractToSetServicesExcelImport();
|
||
|
||
/// <summary>
|
||
/// چاپ مجموعه قراردادها
|
||
/// </summary>
|
||
/// <param name="id">لیست شناسه قراردادها</param>
|
||
/// <returns>لیست قراردادها برای چاپ</returns>
|
||
List<InstitutionContractViewModel> PrintAll(List<long> id);
|
||
|
||
|
||
[Obsolete("استفاده نشود، از متد غیرهمزمان استفاده شود")]
|
||
/// <summary>
|
||
/// چاپ یک قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>اطلاعات قرارداد برای چاپ</returns>
|
||
InstitutionContractViewModel PrintOne(long id);
|
||
|
||
/// <summary>
|
||
/// فعال کردن قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult Active(long id);
|
||
|
||
/// <summary>
|
||
/// غیرفعال کردن قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult DeActive(long id);
|
||
|
||
/// <summary>
|
||
/// غیرفعال کردن قرارداد (حالت آبی)
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult DeActiveBlue(long id);
|
||
|
||
/// <summary>
|
||
/// غیرفعال کردن تمام اتصالات قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult DeActiveAllConnections(long id);
|
||
|
||
/// <summary>
|
||
/// فعال کردن مجدد تمام اتصالات قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult ReActiveAllConnections(long id);
|
||
|
||
/// <summary>
|
||
/// فعال کردن مجدد تمام قراردادها بعد از ایجاد قرارداد جدید
|
||
/// </summary>
|
||
/// <param name="contractingPartyId">شناسه طرف قرارداد</param>
|
||
void ReActiveAllAfterCreateNew(long contractingPartyId);
|
||
|
||
/// <summary>
|
||
/// حذف قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
void RemoveContract(long id);
|
||
|
||
/// <summary>
|
||
/// امضای قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult Sign(long id);
|
||
|
||
/// <summary>
|
||
/// لغو امضای قرارداد
|
||
/// </summary>
|
||
/// <param name="id">شناسه قرارداد</param>
|
||
/// <returns>نتیجه عملیات</returns>
|
||
OperationResult UnSign(long id);
|
||
|
||
/// <summary>
|
||
/// ایجاد حساب کاربری برای طرف قرارداد
|
||
/// </summary>
|
||
/// <param name="contractingPartyid">شناسه طرف قرارداد</param>
|
||
/// <param name="accountId">شناسه حساب کاربری</param>
|
||
void CreateContractingPartyAccount(long contractingPartyid, long accountId);
|
||
|
||
/// <summary>
|
||
/// محاسبه مبلغ قرارداد بر اساس تعداد افراد
|
||
/// </summary>
|
||
/// <param name="countPerson">تعداد افراد</param>
|
||
/// <returns>مبلغ قرارداد</returns>
|
||
double GetcontractAmount(int countPerson);
|
||
|
||
#region Api
|
||
|
||
/// <summary>
|
||
/// لیست قرارداد های مالی
|
||
/// </summary>
|
||
/// <param name="searchModel"></param>
|
||
/// <returns></returns>
|
||
Task<PagedResult<GetInstitutionContractListItemsViewModel>> GetList
|
||
(InstitutionContractListSearchModel searchModel);
|
||
|
||
/// <summary>
|
||
/// وضعیت لیست کلی
|
||
/// </summary>
|
||
/// <param name="searchModel"></param>
|
||
/// <returns></returns>
|
||
Task<GetInstitutionContractListStatsViewModel> GetListStats(InstitutionContractListSearchModel searchModel);
|
||
|
||
/// <summary>
|
||
/// ایجاد
|
||
/// </summary>
|
||
/// <param name="command"></param>
|
||
/// <returns></returns>
|
||
Task<OperationResult> CreateAsync(CreateInstitutionContractRequest command);
|
||
|
||
/// <summary>
|
||
/// ویرایش
|
||
/// </summary>
|
||
/// <param name="command"></param>
|
||
/// <returns></returns>
|
||
Task<OperationResult> EditAsync(EditInstitutionContractRequest command);
|
||
|
||
|
||
/// <summary>
|
||
/// دریافت لیست طرف حساب هایی که ثبت نام آنها تکمیل شده
|
||
/// جهت نمایش در کارپوشه
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
Task<List<RegistrationWorkflowMainListViewModel>> RegistrationWorkflowMainList();
|
||
/// <summary>
|
||
/// دریافت آیتم های کارپوشه ثبت نام
|
||
/// </summary>
|
||
/// <param name="institutionContractId"></param>
|
||
/// <returns></returns>
|
||
Task<List<RegistrationWorkflowItemsViewModel>> RegistrationWorkflowItems(long institutionContractId);
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
Task<GetInstitutionVerificationDetailsViewModel> GetVerificationDetails(Guid id);
|
||
Task<OperationResult<OtpResultViewModel>> SendVerifyOtp(Guid id);
|
||
Task<OperationResult<string>> VerifyOtpAndMakeGateway(Guid publicId, string code, string callbackUrl);
|
||
Task<InstitutionContractWorkshopDetailViewModel> GetWorkshopInitialDetails(long workshopDetailsId);
|
||
|
||
#region Extension
|
||
|
||
Task<InstitutionContractExtensionInquiryResult> GetExtensionInquiry(long previousContractId);
|
||
|
||
Task<InstitutionContractExtensionWorkshopsResponse> GetExtensionWorkshops(
|
||
InstitutionContractExtensionWorkshopsRequest request);
|
||
|
||
Task<InstitutionContractExtensionPlanResponse> GetExtensionInstitutionPlan(
|
||
InstitutionContractExtensionPlanRequest request);
|
||
|
||
Task<InstitutionContractExtensionPaymentResponse> GetExtensionPaymentMethod(
|
||
InstitutionContractExtensionPaymentRequest request);
|
||
|
||
Task<OperationResult> ExtensionComplete(InstitutionContractExtensionCompleteRequest request);
|
||
Task<List<InstitutionContractSelectListViewModel>> GetInstitutionContractSelectList(string search,string selected);
|
||
|
||
#endregion
|
||
|
||
#region Upgrade (Amendment)
|
||
|
||
Task<InstitutionContractAmendmentWorkshopsResponse> GetAmendmentWorkshops(long institutionContractId);
|
||
Task<InsertAmendmentTempWorkshopResponse> InsertAmendmentTempWorkshops(InstitutionContractAmendmentTempWorkshopViewModel request);
|
||
Task RemoveAmendmentWorkshops(Guid workshopTempId);
|
||
Task<InsitutionContractAmendmentPaymentResponse> GetAmendmentPaymentDetails(InsitutionContractAmendmentPaymentRequest request);
|
||
|
||
#endregion
|
||
|
||
Task<OperationResult> ResendVerifyLink(long institutionContractId);
|
||
|
||
/// <summary>
|
||
/// دیتای پرینت قرارداد مالی
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
Task<InstitutionContractPrintViewModel> PrintOneAsync(long id);
|
||
|
||
Task<OperationResult> SetPendingWorkflow(long entityId);
|
||
Task<long> GetIdByInstallmentId(long installmentId);
|
||
|
||
}
|
||
|
||
public class InstitutionContractPrintViewModel
|
||
{
|
||
public InstitutionContratVerificationParty FirstParty { get; set; }
|
||
public InstitutionContratVerificationParty SecondParty { get; set; }
|
||
public string ContractNo { get; set; }
|
||
public string CreationDate { get; set; }
|
||
public string ContractStart { get; set; }
|
||
public string ContractEnd { get; set; }
|
||
public List<GetInstitutionVerificationDetailsWorkshopsViewModel> Workshops { get; set; }
|
||
public string TotalPrice { get; set; }
|
||
public string TaxPrice { get; set; }
|
||
public string PaymentPrice { get; set; }
|
||
public string VerifyCode { get; set; }
|
||
public string VerifyDate { get; set; }
|
||
public string VerifyTime { get; set; }
|
||
public string VerifierFullName { get; set; }
|
||
public string VerifierPhoneNumber { get; set; }
|
||
public LawViewModel LawViewModel { get; set; }
|
||
public string Obligation { get; set; }
|
||
}
|
||
|
||
public class InsertAmendmentTempWorkshopResponse
|
||
{
|
||
public Guid WorkshopTempId { get; set; }
|
||
public string Amount { get; set; }
|
||
}
|
||
|
||
public class InstitutionContractAmendmentWorkshopsResponse
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public List<InstitutionContractAmendmentTempWorkshopViewModel> Workshops { get; set; }
|
||
|
||
public Guid TempId { get; set; }
|
||
|
||
}
|
||
|
||
public class InstitutionContractSelectListViewModel : SelectListViewModel;
|
||
|
||
public class InstitutionContractExtensionInquiryResponse
|
||
{
|
||
public long Id { get; set; }
|
||
public string FName { get; set; }
|
||
public string LName { get; set; }
|
||
public string DateOfBirthFa { get; set; }
|
||
public string FatherName { get; set; }
|
||
public string IdNumberSerial { get; set; }
|
||
public string IdNumber { get; set; }
|
||
public string Address { get; set; }
|
||
public string Phone { get; set; }
|
||
public string City { get; set; }
|
||
public string State { get; set; }
|
||
public long RepresentativeId { get; set; }
|
||
public string NationalCode { get; set; }
|
||
}
|
||
|
||
|
||
|
||
public class InstitutionContractExtensionPaymentMonthly:InstitutionContractExtensionPaymentOneTime
|
||
{
|
||
public List<MonthlyInstallment> Installments { get; set; }
|
||
}
|
||
|
||
public class InstitutionContractExtensionPaymentOneTime
|
||
{
|
||
/// <summary>
|
||
/// مجموع مبالغ
|
||
/// </summary>
|
||
public string TotalAmount { get; set; }
|
||
/// <summary>
|
||
/// ارزش افزوده
|
||
/// </summary>
|
||
public string Tax { get; set; }
|
||
/// <summary>
|
||
/// مبلغ قابل پرداخت
|
||
/// </summary>
|
||
public string PaymentAmount { get; set; }
|
||
} |