add temporary institution contract creation functionality
This commit is contained in:
@@ -3,7 +3,9 @@ using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.Application.Enums;
|
||||
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||
using CompanyManagment.App.Contracts.InstitutionPlan;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.TemporaryClientRegistration;
|
||||
|
||||
@@ -116,4 +118,25 @@ public interface ITemporaryClientRegistrationApplication
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<List<RegistrationWorkflowMainList>> RegistrationWorkflowMainList();
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد قرارداد مالی برای طرف حساب
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> CreateInstitutionContractTemp(CreateInstitutionContractTempRequest command);
|
||||
}
|
||||
|
||||
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; }
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ using _0_Framework.Application.UID;
|
||||
using Company.Domain.ContarctingPartyAgg;
|
||||
using Company.Domain.InstitutionPlanAgg;
|
||||
using Company.Domain.TemporaryClientRegistrationAgg;
|
||||
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||
using CompanyManagment.App.Contracts.InstitutionPlan;
|
||||
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
|
||||
using IPE.SmsIrClient.Models.Results;
|
||||
@@ -28,7 +29,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
private readonly IInstitutionContractTempRepository _institutionContractTempRepository;
|
||||
private readonly ISmsService _smsService;
|
||||
|
||||
public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IUidService uidService, IWorkshopTempRepository workshopTempRepository, IPlanPercentageRepository planPercentageRepository, IWorkshopServicesTempRepository workshopServicesTempRepository, IInstitutionContractTempRepository institutionContractTempRepository, ISmsService smsService)
|
||||
public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository,
|
||||
IPersonalContractingPartyRepository personalContractingPartyRepository, IUidService uidService,
|
||||
IWorkshopTempRepository workshopTempRepository, IPlanPercentageRepository planPercentageRepository,
|
||||
IWorkshopServicesTempRepository workshopServicesTempRepository,
|
||||
IInstitutionContractTempRepository institutionContractTempRepository, ISmsService smsService)
|
||||
{
|
||||
_contractingPartyTempRepository = contractingPartyTempRepository;
|
||||
_personalContractingPartyRepository = personalContractingPartyRepository;
|
||||
@@ -47,7 +52,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
/// <param name="dateOfBirth"></param>
|
||||
/// <param name="mobile"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<OperationResult<ContractingPartyTempViewModel>> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile)
|
||||
public async Task<OperationResult<ContractingPartyTempViewModel>> CreateContractingPartyTemp(string nationalCode,
|
||||
string dateOfBirth, string mobile)
|
||||
{
|
||||
var op = new OperationResult<ContractingPartyTempViewModel>();
|
||||
|
||||
@@ -67,12 +73,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
if (!mobile.IsMobileValid())
|
||||
return op.Failed("شماره همراه نا معتبر است");
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
var getExistContractingParty = await _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth);
|
||||
var getExistContractingParty =
|
||||
await _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth);
|
||||
|
||||
//اگر طرف حساب قبلا در دیتابیس وجود داشت
|
||||
if (getExistContractingParty)
|
||||
@@ -96,7 +101,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
if (institutionContractTemp != null)
|
||||
{
|
||||
|
||||
if (institutionContractTemp.RegistrationStatus == "Completed")
|
||||
return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید");
|
||||
}
|
||||
@@ -106,8 +110,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
if (getExistTemp.Phone != mobile)
|
||||
return op.Failed("شما قبلا با شماره همراه دیگری ثبت نام نموده اید");
|
||||
return op.Succcedded(getExistTemp);
|
||||
|
||||
}
|
||||
|
||||
//چک کردن مطابقت شماره همراه و کد ملی
|
||||
var isMachMobilAndNationalCode = await _uidService.IsMachPhoneWithNationalCode(nationalCode, mobile);
|
||||
if (isMachMobilAndNationalCode == null)
|
||||
@@ -124,8 +128,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
return op.Failed($"{apiRespons.ResponseContext.Status.Message}");
|
||||
|
||||
var idNumber = apiRespons.IdentificationInformation.ShenasnamehNumber == "0"
|
||||
? apiRespons.IdentificationInformation.NationalId
|
||||
: apiRespons.IdentificationInformation.ShenasnamehNumber;
|
||||
? apiRespons.IdentificationInformation.NationalId
|
||||
: apiRespons.IdentificationInformation.ShenasnamehNumber;
|
||||
|
||||
//ایجاد طرف حساب موقت
|
||||
var createTemp = new ContractingPartyTemp(apiRespons.BasicInformation.FirstName,
|
||||
@@ -148,9 +152,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
return op.Succcedded(result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -161,7 +162,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
/// <param name="city"></param>
|
||||
/// <param name="address"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
public async Task<OperationResult> UpdateAddress(long id, string state, string city, string address)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
@@ -191,7 +191,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<OperationResult> CreateOrUpdateWorkshopTemp(List<WorkshopTempViewModel> command, long contractingPartyTempId)
|
||||
public async Task<OperationResult> CreateOrUpdateWorkshopTemp(List<WorkshopTempViewModel> command,
|
||||
long contractingPartyTempId)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
var updateWorkshopList = command.Where(x => x.Id > 0).ToList();
|
||||
@@ -202,6 +203,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
var oldWorkshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId);
|
||||
|
||||
#region Update
|
||||
|
||||
if (updateWorkshopList.Count > 0)
|
||||
{
|
||||
var updateListIds = updateWorkshopList.Select(x => x.Id).ToList();
|
||||
@@ -213,7 +215,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
foreach (var workshop in updateWorkshopList)
|
||||
{
|
||||
|
||||
if (string.IsNullOrWhiteSpace(workshop.WorkshopName))
|
||||
return op.Failed("نام مجموعه نمی تواند خالی باشد");
|
||||
if (workshop.CountPerson == 0)
|
||||
@@ -235,7 +236,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
if (plan.OnlineAndInPersonSumAmountDouble > 0)
|
||||
{
|
||||
//ویرایش مشخصات کارگاه
|
||||
existWorkshops.Edit(workshop.WorkshopName, workshop.CountPerson, plan.OnlineAndInPersonSumAmountDouble);
|
||||
existWorkshops.Edit(workshop.WorkshopName, workshop.CountPerson,
|
||||
plan.OnlineAndInPersonSumAmountDouble);
|
||||
await _workshopTempRepository.SaveChangesAsync();
|
||||
|
||||
//حذف سرویس های قبلی
|
||||
@@ -248,7 +250,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
//سرویس خدمات حضوری قرارداد
|
||||
if (workshop.ContractAndCheckoutInPerson)
|
||||
await _workshopServicesTempRepository.CreateAsync(
|
||||
new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, workshop.Id));
|
||||
new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson,
|
||||
workshop.Id));
|
||||
|
||||
//سرویس بیمه
|
||||
if (workshop.Insurance)
|
||||
@@ -270,12 +273,10 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
await _workshopServicesTempRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Create
|
||||
@@ -284,7 +285,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
{
|
||||
foreach (var workshop in createNewWorkshopList)
|
||||
{
|
||||
|
||||
if (string.IsNullOrWhiteSpace(workshop.WorkshopName))
|
||||
return op.Failed("نام مجموعه نمی تواند خالی باشد");
|
||||
if (workshop.CountPerson == 0)
|
||||
@@ -302,23 +302,22 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop);
|
||||
if (plan.OnlineAndInPersonSumAmountDouble > 0)
|
||||
{
|
||||
|
||||
|
||||
var createNewWorkshopTemp = new WorkshopTemp(workshop.WorkshopName, workshop.CountPerson,
|
||||
workshop.ContractingPartyTempId, plan.OnlineAndInPersonSumAmountDouble);
|
||||
await _workshopTempRepository.CreateAsync(createNewWorkshopTemp);
|
||||
await _workshopTempRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
|
||||
//سرویس قرداد
|
||||
if (workshop.ContractAndCheckout)
|
||||
await _workshopServicesTempRepository.CreateAsync(
|
||||
new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, createNewWorkshopTemp.id));
|
||||
new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson,
|
||||
createNewWorkshopTemp.id));
|
||||
//سرویس خدمات حضوری قرارداد
|
||||
if (workshop.ContractAndCheckoutInPerson)
|
||||
await _workshopServicesTempRepository.CreateAsync(
|
||||
new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, createNewWorkshopTemp.id));
|
||||
new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson,
|
||||
createNewWorkshopTemp.id));
|
||||
|
||||
//سرویس بیمه
|
||||
if (workshop.Insurance)
|
||||
@@ -327,7 +326,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
//سرویس خدمات حضوری بیمه
|
||||
if (workshop.InsuranceInPerson)
|
||||
await _workshopServicesTempRepository.CreateAsync(
|
||||
new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, createNewWorkshopTemp.id));
|
||||
new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson,
|
||||
createNewWorkshopTemp.id));
|
||||
|
||||
//سرویس حضورغیاب
|
||||
if (workshop.RollCall)
|
||||
@@ -336,11 +336,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
//سرویس فیش غیر رسمی
|
||||
if (workshop.CustomizeCheckout)
|
||||
await _workshopServicesTempRepository.CreateAsync(
|
||||
new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, createNewWorkshopTemp.id));
|
||||
new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson,
|
||||
createNewWorkshopTemp.id));
|
||||
|
||||
await _workshopServicesTempRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -367,9 +367,9 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
/// </summary>
|
||||
/// <param name="contractingPartyTempId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth")
|
||||
public async Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId,
|
||||
string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth")
|
||||
{
|
||||
|
||||
//دریافت کارگاه ها
|
||||
var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId);
|
||||
|
||||
@@ -412,6 +412,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
result.ValueAddedTaxDouble = tenPercent;
|
||||
result.ValueAddedTaxSt = tenPercent.ToMoney();
|
||||
//پرداخت یکجا
|
||||
|
||||
#region OneTimePaymentResult
|
||||
|
||||
double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent;
|
||||
@@ -428,6 +429,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
#endregion
|
||||
|
||||
//پرداخت ماهیانه
|
||||
|
||||
#region MonthlyPaymentResult
|
||||
|
||||
//مبلغ بدون مالیات
|
||||
@@ -451,7 +453,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
startDate = result.ContractStartNextMonthFa;
|
||||
|
||||
|
||||
|
||||
var findeEnd = Tools.FindEndOfContract(startDate, periodModel);
|
||||
var contractEndDate = findeEnd.endDateGr;
|
||||
result.ContractEndGr = contractEndDate;
|
||||
@@ -459,13 +460,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
if (periodModel == "1")
|
||||
{
|
||||
|
||||
installmentList.Add(new MonthlyInstallment()
|
||||
{
|
||||
InstallmentAmountStr = result.MonthlyTotalPaymentStr,
|
||||
InstallmentCounter = "سررسید پرداخت اول",
|
||||
InstalmentDate = (DateTime.Now).ToFarsi()
|
||||
|
||||
});
|
||||
result.MonthlyInstallments = installmentList;
|
||||
}
|
||||
@@ -479,7 +478,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
if (i == 1)
|
||||
{
|
||||
startDate = (DateTime.Now).ToFarsi();
|
||||
|
||||
}
|
||||
else if (i > 1)
|
||||
{
|
||||
@@ -508,10 +506,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
_ => "سررسید پرداخت دوازدهم",
|
||||
},
|
||||
InstalmentDate = startDate
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -520,10 +516,10 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
result.ContractingPartTempId = contractingPartyTempId;
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
public async Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId, List<WorkshopTempViewModel> workshops, string periodModel = "12",
|
||||
public async Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId,
|
||||
List<WorkshopTempViewModel> workshops, string periodModel = "12",
|
||||
string paymentModel = "OneTime", string contractStartType = "currentMonth")
|
||||
{
|
||||
//دریافت کارگاه ها
|
||||
@@ -567,6 +563,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
result.ValueAddedTaxDouble = tenPercent;
|
||||
result.ValueAddedTaxSt = tenPercent.ToMoney();
|
||||
//پرداخت یکجا
|
||||
|
||||
#region OneTimePaymentResult
|
||||
|
||||
double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent;
|
||||
@@ -583,6 +580,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
#endregion
|
||||
|
||||
//پرداخت ماهیانه
|
||||
|
||||
#region MonthlyPaymentResult
|
||||
|
||||
//مبلغ بدون مالیات
|
||||
@@ -606,7 +604,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
startDate = result.ContractStartNextMonthFa;
|
||||
|
||||
|
||||
|
||||
var findeEnd = Tools.FindEndOfContract(startDate, periodModel);
|
||||
var contractEndDate = findeEnd.endDateGr;
|
||||
result.ContractEndGr = contractEndDate;
|
||||
@@ -614,13 +611,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
if (periodModel == "1")
|
||||
{
|
||||
|
||||
installmentList.Add(new MonthlyInstallment()
|
||||
{
|
||||
InstallmentAmountStr = result.MonthlyTotalPaymentStr,
|
||||
InstallmentCounter = "سررسید پرداخت اول",
|
||||
InstalmentDate = (DateTime.Now).ToFarsi()
|
||||
|
||||
});
|
||||
result.MonthlyInstallments = installmentList;
|
||||
}
|
||||
@@ -634,7 +629,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
if (i == 1)
|
||||
{
|
||||
startDate = (DateTime.Now).ToFarsi();
|
||||
|
||||
}
|
||||
else if (i > 1)
|
||||
{
|
||||
@@ -663,10 +657,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
_ => "سررسید پرداخت دوازدهم",
|
||||
},
|
||||
InstalmentDate = startDate
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -682,13 +674,12 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
/// </summary>
|
||||
/// <param name="contractingPartyTempId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<OperationResult> CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart)
|
||||
public async Task<OperationResult> CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId,
|
||||
string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart)
|
||||
{
|
||||
|
||||
var op = new OperationResult();
|
||||
|
||||
|
||||
|
||||
var institutionContractTemp = await
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
var contractStartDate = contractStart;
|
||||
@@ -699,7 +690,9 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
{
|
||||
var periodModelInt = Convert.ToInt32(periodModel);
|
||||
|
||||
var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
|
||||
var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment,
|
||||
contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null,
|
||||
null);
|
||||
_institutionContractTempRepository.Create(create);
|
||||
_institutionContractTempRepository.SaveChanges();
|
||||
|
||||
@@ -714,7 +707,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
if (institutionContractTemp.VerifyCodeEndTime != null)
|
||||
{
|
||||
var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value);
|
||||
if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))
|
||||
if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) &&
|
||||
spaning < new TimeSpan(0, 1, 0))
|
||||
return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید");
|
||||
}
|
||||
|
||||
@@ -726,17 +720,16 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
var contractstart = DateTime.Now;
|
||||
var contractEnd = DateTime.Now.AddMonths(periodModelInt);
|
||||
var update = _institutionContractTempRepository.Get(institutionContractTemp.Id);
|
||||
update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
|
||||
update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate,
|
||||
contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
|
||||
_institutionContractTempRepository.SaveChanges();
|
||||
|
||||
|
||||
//temporary
|
||||
var res = await PayOffCompleted(contractingPartyTempId);
|
||||
if (!res.IsSuccedded)
|
||||
return op.Failed(res.Message);
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -748,27 +741,25 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
/// <returns></returns>
|
||||
public async Task<OperationResult> ReceivedCodeFromServer(long contractingPartyTempId)
|
||||
{
|
||||
|
||||
var op = new OperationResult();
|
||||
|
||||
|
||||
var institutionContractTemp = await
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
if (institutionContractTemp == null)
|
||||
return op.Failed("خطا");
|
||||
|
||||
var update = _institutionContractTempRepository.Get(institutionContractTemp.Id);
|
||||
|
||||
|
||||
|
||||
|
||||
if (institutionContractTemp.RegistrationStatus == "BeforeSendVerifyCode")
|
||||
{
|
||||
//ساخت کد شش رقمی
|
||||
Random generator = new Random();
|
||||
String code = generator.Next(1, 1000000).ToString("D6");
|
||||
//ارسال اس ام اس
|
||||
var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId);
|
||||
var getContractingPaty =
|
||||
_contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId);
|
||||
var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code);
|
||||
|
||||
if (!sendResult.IsSuccedded)
|
||||
@@ -784,14 +775,11 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
_institutionContractTempRepository.SaveChanges();
|
||||
return op.Succcedded(1, "کد برای شما پیامک شد");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent")
|
||||
|
||||
{
|
||||
|
||||
if (DateTime.Now < institutionContractTemp.VerifyCodeEndTime.Value)
|
||||
return op.Failed("کد دریافت شده را وارد کنید");
|
||||
var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value);
|
||||
@@ -804,14 +792,14 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
Random generator = new Random();
|
||||
String code = generator.Next(1, 1000000).ToString("D6");
|
||||
//ارسال اس ام اس
|
||||
var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId);
|
||||
var getContractingPaty =
|
||||
_contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId);
|
||||
var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code);
|
||||
|
||||
if (!sendResult.IsSuccedded)
|
||||
return op.Failed($"{sendResult.Message}");
|
||||
|
||||
|
||||
|
||||
//ذخیره کد در دیتا بیس
|
||||
//ذخیره تاریخ ارسال و مهلت پایان
|
||||
//ذخیره آیدی پیامک
|
||||
@@ -819,15 +807,12 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
if (update != null)
|
||||
{
|
||||
update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2));
|
||||
update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now,
|
||||
DateTime.Now.AddMinutes(2));
|
||||
_institutionContractTempRepository.SaveChanges();
|
||||
return op.Succcedded(1, "کد برای شما پیامک شد");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//if (institutionContractTemp.RegistrationStatus == "ReceivedCodeFromClient")
|
||||
@@ -858,19 +843,17 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
if (institutionContractTemp.VerifyCodeEndTime < DateTime.Now)
|
||||
return op.Failed("کد شما منقضی شده است");
|
||||
|
||||
if (institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now)
|
||||
if (institutionContractTemp.SendVerifyCodeTime < DateTime.Now &&
|
||||
institutionContractTemp.VerifyCodeEndTime >= DateTime.Now)
|
||||
{
|
||||
if (institutionContractTemp.VerifyCode == verifyCode)
|
||||
{
|
||||
|
||||
|
||||
return op.Succcedded();
|
||||
}
|
||||
else
|
||||
{
|
||||
return op.Failed("کد وارد شده صحیح نیست");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -890,7 +873,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
var temp = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId);
|
||||
if (_personalContractingPartyRepository.Exists(x =>
|
||||
x.Nationalcode == temp.NationalCode))
|
||||
x.Nationalcode == temp.NationalCode))
|
||||
return op.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
||||
|
||||
var lastArchiveCode = _personalContractingPartyRepository.GetLastArchiveCode();
|
||||
@@ -902,7 +885,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
_personalContractingPartyRepository.Create(personalContractingParty);
|
||||
_personalContractingPartyRepository.SaveChanges();
|
||||
|
||||
personalContractingParty.RegisterComplete(temp.FatherName, temp.IdNumberSeri, temp.IdNumberSerial, temp.DateOfBirth, temp.Gender);
|
||||
personalContractingParty.RegisterComplete(temp.FatherName, temp.IdNumberSeri, temp.IdNumberSerial,
|
||||
temp.DateOfBirth, temp.Gender);
|
||||
_personalContractingPartyRepository.SaveChanges();
|
||||
var institutionContractTemp = await
|
||||
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
|
||||
@@ -917,8 +901,31 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
||||
|
||||
public async Task<List<RegistrationWorkflowMainList>> RegistrationWorkflowMainList()
|
||||
{
|
||||
|
||||
return await _institutionContractTempRepository.GetAllCompletedRegistration();
|
||||
}
|
||||
|
||||
public async Task<OperationResult> CreateInstitutionContractTemp(CreateInstitutionContractTempRequest command)
|
||||
{
|
||||
var contractingPartyId = command.ContractingPartyTempId;
|
||||
|
||||
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;
|
||||
|
||||
return new OperationResult().Succcedded();
|
||||
}
|
||||
}
|
||||
@@ -67,71 +67,7 @@ public class institutionContractController : AdminBaseController
|
||||
return await _institutionContractApplication.GetListStats(searchModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<OperationResult>> Create([FromBody] CreateInstitutionContractRequest command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
var counter = command.ContactInfos.Count;
|
||||
//if (string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
// command.HasValueAddedTax = "false";
|
||||
var phone = command.ContactInfos.FirstOrDefault(x =>
|
||||
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه");
|
||||
var conractingParty = _contractingPartyApplication.GetDetails(command.ContractingPartyId);
|
||||
if (conractingParty.IsLegal == "حقیقی" && string.IsNullOrWhiteSpace(conractingParty.Nationalcode))
|
||||
return new JsonResult(op.Failed("کد ملی طرف حساب وجود ندارد"));
|
||||
if (conractingParty.IsLegal == "حقوقی" && string.IsNullOrWhiteSpace(conractingParty.NationalId))
|
||||
return new JsonResult(op.Failed("شناسه ملی طرف حساب وجود ندارد"));
|
||||
var result = await _institutionContractApplication.CreateAsync(command);
|
||||
|
||||
if (result.IsSuccedded && counter > 0)
|
||||
{
|
||||
for (var i = 0; i <= counter - 1; i++)
|
||||
{
|
||||
if (command.ContactInfos[i].PhoneNumber != null)
|
||||
{
|
||||
var contactinfo = new CreateContactInfo
|
||||
{
|
||||
InstitutionContractId = result.SendId,
|
||||
PhoneType = command.ContactInfos[i].PhoneType,
|
||||
Position = command.ContactInfos[i].Position,
|
||||
PhoneNumber = command.ContactInfos[i].PhoneNumber,
|
||||
FnameLname = command.ContactInfos[i].FnameLname,
|
||||
SendSms = command.ContactInfos[i].SendSmsString == "true" ? true : false
|
||||
};
|
||||
_contactInfoApplication.Create(contactinfo);
|
||||
}
|
||||
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
|
||||
|
||||
if (phone != null)
|
||||
{
|
||||
var userPass = conractingParty.IsLegal == "حقیقی"
|
||||
? conractingParty.Nationalcode
|
||||
: conractingParty.NationalId;
|
||||
var createAcc = new RegisterAccount
|
||||
{
|
||||
Fullname = conractingParty.LName,
|
||||
Username = userPass,
|
||||
Password = userPass,
|
||||
Mobile = phone.PhoneNumber,
|
||||
NationalCode = userPass
|
||||
};
|
||||
var res = _accountApplication.RegisterClient(createAcc);
|
||||
if (res.IsSuccedded)
|
||||
_institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId,
|
||||
res.SendId);
|
||||
}
|
||||
}
|
||||
|
||||
return new JsonResult(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ویرایش
|
||||
@@ -671,18 +607,29 @@ public class institutionContractController : AdminBaseController
|
||||
request.workshopList, request.PeriodModel, request.PaymentModel, request.ContractStartType);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<OperationResult>> Create([FromBody] CreateInstitutionContractTempRequest command)
|
||||
{
|
||||
return await _temporaryClientRegistration.CreateInstitutionContractTemp(command);
|
||||
}
|
||||
|
||||
public record InstitutionPlanCalculatorRequest(
|
||||
long ContractingPartyTempId,
|
||||
List<WorkshopTempViewModel> workshopList,
|
||||
string PeriodModel = "12",
|
||||
string PaymentModel = "OneTime",
|
||||
string ContractStartType = "currentMonth");
|
||||
public class CreateInquiryRequest
|
||||
{
|
||||
public string NationalCode { get; set; }
|
||||
public string DateOfBirth { get; set; }
|
||||
public string Mobile { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
public class CreateInquiryRequest
|
||||
{
|
||||
public string NationalCode { get; set; }
|
||||
public string DateOfBirth { get; set; }
|
||||
public string Mobile { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user