diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs
index ed65a43b..dbe8ea51 100644
--- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs
+++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs
@@ -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
///
///
Task> RegistrationWorkflowMainList();
+
+ ///
+ /// ایجاد قرارداد مالی برای طرف حساب
+ ///
+ ///
+ ///
+ Task 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 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/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs
index c4159660..66ab5258 100644
--- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs
+++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs
@@ -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
///
///
///
- public async Task> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile)
+ public async Task> CreateContractingPartyTemp(string nationalCode,
+ string dateOfBirth, string mobile)
{
var op = new OperationResult();
@@ -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);
}
-
-
-
}
///
@@ -161,7 +162,6 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
///
///
///
-
public async Task UpdateAddress(long id, string state, string city, string address)
{
var op = new OperationResult();
@@ -191,7 +191,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
///
///
///
- public async Task CreateOrUpdateWorkshopTemp(List command, long contractingPartyTempId)
+ public async Task CreateOrUpdateWorkshopTemp(List 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
///
///
///
- public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth")
+ public async Task 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 GetTotalPaymentAndWorkshopList(long contractingPartyTempId, List workshops, string periodModel = "12",
+ public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId,
+ List 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
///
///
///
- public async Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart)
+ public async Task 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
///
public async Task 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> RegistrationWorkflowMainList()
{
-
return await _institutionContractTempRepository.GetAllCompletedRegistration();
}
+ public async Task 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();
+ }
}
\ No newline at end of file
diff --git a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs
index af8c62ea..042b22d3 100644
--- a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs
+++ b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs
@@ -67,71 +67,7 @@ public class institutionContractController : AdminBaseController
return await _institutionContractApplication.GetListStats(searchModel);
}
- ///
- /// ایجاد
- ///
- ///
- ///
- [HttpPost]
- public async Task> 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);
- }
///
/// ویرایش
@@ -671,18 +607,29 @@ public class institutionContractController : AdminBaseController
request.workshopList, request.PeriodModel, request.PaymentModel, request.ContractStartType);
return res;
}
-
+
+ ///
+ /// ایجاد
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> Create([FromBody] CreateInstitutionContractTempRequest command)
+ {
+ return await _temporaryClientRegistration.CreateInstitutionContractTemp(command);
+ }
+
public record InstitutionPlanCalculatorRequest(
long ContractingPartyTempId,
List 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; }
-}
\ No newline at end of file