diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs index 6f387207..1817b352 100644 --- a/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs @@ -132,4 +132,5 @@ public interface IPersonalContractingPartyApp #endregion + Task GetRepresentativeIdByNationalCode(string nationalCode); } \ No newline at end of file diff --git a/CompanyManagment.Application/PersonalContractingPartyApplication.cs b/CompanyManagment.Application/PersonalContractingPartyApplication.cs index 41db6b15..1c771ae8 100644 --- a/CompanyManagment.Application/PersonalContractingPartyApplication.cs +++ b/CompanyManagment.Application/PersonalContractingPartyApplication.cs @@ -722,5 +722,11 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp return await _personalContractingPartyRepository.GetLegalDetails(id); } + public async Task GetRepresentativeIdByNationalCode(string nationalCode) + { + var entity = await _personalContractingPartyRepository.GetByNationalCode(nationalCode); + return entity?.RepresentativeId??0; + } + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs index d96c3a24..e0228d02 100644 --- a/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs +++ b/CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs @@ -5269,58 +5269,57 @@ public class InstitutionContractRepository : RepositoryBase workshopDetails=[]; + if (contractingParty != null) { - throw new BadRequestException("طرف قرارداد یافت نشد"); + var employerWorkshopIds = _context.Employers + .Where(x => x.ContractingPartyId == contractingParty.id) + .Include(x => x.WorkshopEmployers) + .SelectMany(x => x.WorkshopEmployers).Select(x => x.WorkshopId).Distinct().ToList(); + + var workshopsNotInInstitution = employerWorkshopIds.ToList(); + + var workshops = await _context.Workshops + .Where(x => employerWorkshopIds.Contains(x.id)) + .ToListAsync(); + + var notIncludeWorskhopsLeftWork = await _context.LeftWorkList + .Where(x => workshopsNotInInstitution.Contains(x.WorkshopId) && x.StartWorkDate <= DateTime.Now && + x.LeftWorkDate >= DateTime.Now) + .GroupBy(x => x.WorkshopId).ToListAsync(); + workshopDetails = workshopsNotInInstitution.Select(x => + { + var workshop = workshops.FirstOrDefault(w => w.id == x); + var leftWorks = notIncludeWorskhopsLeftWork.FirstOrDefault(l => l.Key == x); + return new WorkshopTempViewModel() + { + WorkshopName = workshop?.WorkshopName ?? "فاقد کارگاه", + WorkshopServicesAmount = 0, + WorkshopServicesAmountStr = "0", + WorkshopId = x, + Id = 0, + ContractAndCheckout = false, + ContractAndCheckoutInPerson = false, + CustomizeCheckout = false, + CountPerson = leftWorks?.Count() ?? 0, + Insurance = false, + InsuranceInPerson = false, + RollCall = false, + RollCallInPerson = false, + }; + }).ToList(); + } - - var employerWorkshopIds = _context.Employers - .Where(x => x.ContractingPartyId == contractingParty.id) - .Include(x => x.WorkshopEmployers) - .SelectMany(x => x.WorkshopEmployers).Select(x => x.WorkshopId).Distinct().ToList(); - + creationTemp.SetContractingPartyContactInfo(request.Address, request.City, request.Province, request.ContactInfos,request.RepresentativeId); + await _institutionContractCreationTemp.ReplaceOneAsync( x => x.Id == creationTemp.Id, creationTemp ); - - - var workshopsNotInInstitution = employerWorkshopIds.ToList(); - - var workshops = await _context.Workshops - .Where(x => employerWorkshopIds.Contains(x.id)) - .ToListAsync(); - - var notIncludeWorskhopsLeftWork = await _context.LeftWorkList - .Where(x => workshopsNotInInstitution.Contains(x.WorkshopId) && x.StartWorkDate <= DateTime.Now && - x.LeftWorkDate >= DateTime.Now) - .GroupBy(x => x.WorkshopId).ToListAsync(); - - var workshopDetails = workshopsNotInInstitution.Select(x => - { - var workshop = workshops.FirstOrDefault(w => w.id == x); - var leftWorks = notIncludeWorskhopsLeftWork.FirstOrDefault(l => l.Key == x); - return new WorkshopTempViewModel() - { - WorkshopName = workshop?.WorkshopName ?? "فاقد کارگاه", - WorkshopServicesAmount = 0, - WorkshopServicesAmountStr = "0", - WorkshopId = x, - Id = 0, - ContractAndCheckout = false, - ContractAndCheckoutInPerson = false, - CustomizeCheckout = false, - CountPerson = leftWorks?.Count() ?? 0, - Insurance = false, - InsuranceInPerson = false, - RollCall = false, - RollCallInPerson = false, - }; - }).ToList(); - - + + var res = new InstitutionContractCreationWorkshopsResponse() { TotalAmount = workshopDetails.Sum(x => x.WorkshopServicesAmount).ToMoney(), diff --git a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs index d54893a1..bf4f7977 100644 --- a/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs +++ b/ServiceHost/Areas/Admin/Controllers/institutionContractController.cs @@ -40,16 +40,15 @@ public class institutionContractController : AdminBaseController private readonly ITemporaryClientRegistrationApplication _clientRegistrationApplication; private readonly IPaymentGateway _paymentGateway; - private static readonly ConcurrentDictionary _locks + private static readonly ConcurrentDictionary _locks = new ConcurrentDictionary(); - public institutionContractController(IInstitutionContractApplication institutionContractApplication, IPersonalContractingPartyApp contractingPartyApplication, IContactInfoApplication contactInfoApplication, IAccountApplication accountApplication, IEmployerApplication employerApplication, IWorkshopApplication workshopApplication, ITemporaryClientRegistrationApplication temporaryClientRegistration, - ITemporaryClientRegistrationApplication clientRegistrationApplication,IHttpClientFactory httpClientFactory) + ITemporaryClientRegistrationApplication clientRegistrationApplication, IHttpClientFactory httpClientFactory) { _institutionContractApplication = institutionContractApplication; _contractingPartyApplication = contractingPartyApplication; @@ -72,12 +71,13 @@ public class institutionContractController : AdminBaseController { return await _institutionContractApplication.GetList(searchModel); } - + [HttpGet("select-list")] - public async Task>> GetContractingPartySelectList(string search,string selected) + public async Task>> GetContractingPartySelectList( + string search, string selected) { var result = await _institutionContractApplication - .GetInstitutionContractSelectList(search,selected); + .GetInstitutionContractSelectList(search, selected); return result; } @@ -225,9 +225,8 @@ public class institutionContractController : AdminBaseController { _institutionContractApplication.RemoveContract(id); return new OperationResult().Succcedded(); - } - + [HttpPost("deActive/{id}")] public ActionResult DeActive(long id, string balance) { @@ -358,7 +357,8 @@ public class institutionContractController : AdminBaseController } [HttpPost("workshop-service-calculator")] - public ActionResult WorkshopServiceCalculator([FromBody]CreateWorkshopTemp command) + public ActionResult WorkshopServiceCalculator( + [FromBody] CreateWorkshopTemp command) { var workshopTemp = new WorkshopTempViewModel { @@ -373,7 +373,7 @@ public class institutionContractController : AdminBaseController }; var response = _temporaryClientRegistration.GetInstitutionPlanForWorkshop(workshopTemp); - + var result = new WorkshopServiceCalculatorResponse { TotalAmount = response.OnlineAndInPersonSumAmountStr @@ -385,7 +385,8 @@ public class institutionContractController : AdminBaseController public async Task> InstitutionPlanCalculator( [FromBody] InstitutionPlanCalculatorRequest request) { - var res = await _temporaryClientRegistration.GetTotalPaymentAndWorkshopList(request.TotalAmountMonth,duration: request.Duration,request.HasInPersonContract); + var res = await _temporaryClientRegistration.GetTotalPaymentAndWorkshopList(request.TotalAmountMonth, + duration: request.Duration, request.HasInPersonContract); var result = new InstitutionPlanCalculatorResponse() { TotalAmountWithTax = res.OneTimeTotalPaymentStr, @@ -403,7 +404,6 @@ public class institutionContractController : AdminBaseController Obligation = res.OneTimeTotalPaymentStr, PaymentForOneMonth = res.SumOfWorkshopsPayment, DiscountedAmountForOneMonth = res.DiscountedAmountForOneMonth - }; return result; } @@ -414,13 +414,13 @@ public class institutionContractController : AdminBaseController /// /// [HttpPost] - public async Task> Create([FromBody]CreateInstitutionContractRequest command) + public async Task> Create([FromBody] CreateInstitutionContractRequest command) { - var res =await _institutionContractApplication.CreateAsync(command); - - if(!res.IsSuccedded) + var res = await _institutionContractApplication.CreateAsync(command); + + if (!res.IsSuccedded) throw new BadRequestException(res.Message); - + return res; } @@ -448,22 +448,26 @@ public class institutionContractController : AdminBaseController if (operationResult.IsSuccedded) transaction.Complete(); - + return operationResult; } + [HttpPost("create/set-discount")] - public ActionResult SetDiscountForInstitutionContract([FromBody]InstitutionContractSetDiscountRequest request) + public ActionResult SetDiscountForInstitutionContract( + [FromBody] InstitutionContractSetDiscountRequest request) { var res = _institutionContractApplication.CalculateDiscount(request); return res; } [HttpPost("create/reset-discount")] - public ActionResult ResetDiscountForCreate([FromBody]InstitutionContractResetDiscountForCreateRequest request) + public ActionResult ResetDiscountForCreate( + [FromBody] InstitutionContractResetDiscountForCreateRequest request) { var res = _institutionContractApplication.ResetDiscountCreate(request); return res; } + /// /// /// @@ -484,15 +488,15 @@ public class institutionContractController : AdminBaseController var paymentRedirectUrl = Url.Action("ProcessPayment", "institutionContract", null, Request.Scheme); var callback = Url.Action("Verify", "General", null, Request.Scheme); var res = await _institutionContractApplication.VerifyOtpAndMakeGateway(command.Id, command.Code, callback); - + if (!res.IsSuccedded) return new OperationResult().Failed(res.Message); - + var payUrl = _paymentGateway.GetStartPayUrl(res.Data); - + // URL کامل برای redirect شامل paymentUrl به عنوان query parameter var redirectUrl = $"{paymentRedirectUrl}?paymentUrl={Uri.EscapeDataString(payUrl)}"; - + return new OperationResult().Succcedded(redirectUrl); } @@ -504,13 +508,12 @@ public class institutionContractController : AdminBaseController { return BadRequest("Payment URL is required"); } - + // redirect به درگاه پرداخت return Redirect(paymentUrl); } - - - + + [HttpPost("/api/institutionContract/Verification/{id:guid}/send-otp")] [AllowAnonymous] public async Task>> SendVerifyOtp(Guid id) @@ -529,52 +532,71 @@ public class institutionContractController : AdminBaseController } #region Create + [HttpPost("creation/inquiry/")] - public async Task> CreationInquiry(InstitutionContractCreationInquiryRequest request) + public async Task> CreationInquiry( + InstitutionContractCreationInquiryRequest request) { - var res= await _institutionContractApplication.CreationInquiry(request); + var res = await _institutionContractApplication.CreationInquiry(request); return res; } - - [HttpPost("creation/workshops")] - public async Task> CreationWorkshops([FromBody] InstitutionContractCreationWorkshopsRequest request) + + [HttpGet("creation/get-representative")] + public async Task> GetRepresentatives( + string nationalCode) { - var res =await _institutionContractApplication.GetCreationWorkshops(request); + var res = await _contractingPartyApplication.GetRepresentativeIdByNationalCode(nationalCode); + return new InstitutionContractCreationGetRepresentativeIdResponse() + { + RepresentativeId = res + }; + } + + [HttpPost("creation/workshops")] + public async Task> CreationWorkshops( + [FromBody] InstitutionContractCreationWorkshopsRequest request) + { + var res = await _institutionContractApplication.GetCreationWorkshops(request); return res; } [HttpPost("creation/institution-plan")] - public async Task> CreationInstitutionPlan([FromBody]InstitutionContractCreationPlanRequest request) + public async Task> CreationInstitutionPlan( + [FromBody] InstitutionContractCreationPlanRequest request) { - var res =await _institutionContractApplication.GetCreationInstitutionPlan(request); + var res = await _institutionContractApplication.GetCreationInstitutionPlan(request); return res; } - + [HttpPost("creation/payment-method")] - public async Task> GetCreationPaymentMethod([FromBody]InstitutionContractCreationPaymentRequest request) + public async Task> GetCreationPaymentMethod( + [FromBody] InstitutionContractCreationPaymentRequest request) { - var res =await _institutionContractApplication.GetCreationPaymentMethod(request); + var res = await _institutionContractApplication.GetCreationPaymentMethod(request); return res; } - + [HttpPost("creation/set-discount")] - public async Task> SetDiscountForCreation([FromBody]InstitutionContractSetDiscountForCreationRequest request) + public async Task> SetDiscountForCreation( + [FromBody] InstitutionContractSetDiscountForCreationRequest request) { - var res =await _institutionContractApplication.SetDiscountForCreation(request); + var res = await _institutionContractApplication.SetDiscountForCreation(request); return res; } [HttpPost("creation/reset-discount")] - public async Task> ResetDiscountForCreation([FromBody]InstitutionContractResetDiscountForExtensionRequest request) + public async Task> ResetDiscountForCreation( + [FromBody] InstitutionContractResetDiscountForExtensionRequest request) { - var res =await _institutionContractApplication.ResetDiscountForCreation(request); + var res = await _institutionContractApplication.ResetDiscountForCreation(request); return res; } - + [HttpPost("creation/complete")] - public async Task> CreationComplete([FromBody]InstitutionContractExtensionCompleteRequest request) + public async Task> CreationComplete( + [FromBody] InstitutionContractExtensionCompleteRequest request) { - var res =await _institutionContractApplication.CreationComplete(request); + var res = await _institutionContractApplication.CreationComplete(request); return res; } @@ -583,93 +605,104 @@ public class institutionContractController : AdminBaseController [HttpGet("extenstion/inquiry/{previousContractId}")] public async Task> ExtensionInquiry(long previousContractId) { - var res= await _institutionContractApplication.GetExtensionInquiry(previousContractId); + var res = await _institutionContractApplication.GetExtensionInquiry(previousContractId); return res; } [HttpPost("extenstion/workshops")] - public async Task> ExtensionWorkshops([FromBody] InstitutionContractExtensionWorkshopsRequest request) + public async Task> ExtensionWorkshops( + [FromBody] InstitutionContractExtensionWorkshopsRequest request) { - var res =await _institutionContractApplication.GetExtensionWorkshops(request); + var res = await _institutionContractApplication.GetExtensionWorkshops(request); return res; } [HttpPost("extenstion/institution-plan")] - public async Task> ExtensionInstitutionPlan([FromBody]InstitutionContractExtensionPlanRequest request) + public async Task> ExtensionInstitutionPlan( + [FromBody] InstitutionContractExtensionPlanRequest request) { - var res =await _institutionContractApplication.GetExtensionInstitutionPlan(request); + var res = await _institutionContractApplication.GetExtensionInstitutionPlan(request); return res; } - + [HttpPost("extenstion/payment-method")] - public async Task> GetExtensionPaymentMethod([FromBody]InstitutionContractExtensionPaymentRequest request) + public async Task> GetExtensionPaymentMethod( + [FromBody] InstitutionContractExtensionPaymentRequest request) { - var res =await _institutionContractApplication.GetExtensionPaymentMethod(request); + var res = await _institutionContractApplication.GetExtensionPaymentMethod(request); return res; } - + [HttpPost("extension/set-discount")] - public async Task> SetDiscountForExtension([FromBody]InstitutionContractSetDiscountForExtensionRequest request) + public async Task> SetDiscountForExtension( + [FromBody] InstitutionContractSetDiscountForExtensionRequest request) { - var res =await _institutionContractApplication.SetDiscountForExtension(request); + var res = await _institutionContractApplication.SetDiscountForExtension(request); return res; } [HttpPost("extension/reset-discount")] - public async Task> ResetDiscountForExtension([FromBody]InstitutionContractResetDiscountForExtensionRequest request) + public async Task> ResetDiscountForExtension( + [FromBody] InstitutionContractResetDiscountForExtensionRequest request) { - var res =await _institutionContractApplication.ResetDiscountForExtension(request); + var res = await _institutionContractApplication.ResetDiscountForExtension(request); return res; } - + [HttpPost("extenstion/complete")] - public async Task> ExtensionComplete([FromBody]InstitutionContractExtensionCompleteRequest request) + public async Task> ExtensionComplete( + [FromBody] InstitutionContractExtensionCompleteRequest request) { - var res =await _institutionContractApplication.ExtensionComplete(request); + var res = await _institutionContractApplication.ExtensionComplete(request); return res; } - + [HttpGet("amendment/workshops/{institutionContractId}")] - public async Task> GetAmendmentWorkshops(long institutionContractId) + public async Task> GetAmendmentWorkshops( + long institutionContractId) { - var res =await _institutionContractApplication.GetAmendmentWorkshops(institutionContractId); + var res = await _institutionContractApplication.GetAmendmentWorkshops(institutionContractId); return res; } - + [HttpPost("resend-verify-link/{institutionContractId}")] public async Task ResendVerifyLink(long institutionContractId) { var res = await _institutionContractApplication.ResendVerifyLink(institutionContractId); return res; } - + [HttpPost("amendment/insert-temp-workshops")] - public async Task> InsertAmendmentTempWorkshops([FromBody]InstitutionContractAmendmentTempWorkshopViewModel request) + public async Task> InsertAmendmentTempWorkshops( + [FromBody] InstitutionContractAmendmentTempWorkshopViewModel request) { - var res =await _institutionContractApplication.InsertAmendmentTempWorkshops(request); + var res = await _institutionContractApplication.InsertAmendmentTempWorkshops(request); return res; } + [HttpDelete("amendment/remove-temp-workshops/{workshopTempId:guid}")] public async Task RemoveAmendmentWorkshops(Guid workshopTempId) - { + { await _institutionContractApplication.RemoveAmendmentWorkshops(workshopTempId); return Ok(); } + [HttpPost("amendment/payment-details")] - public async Task> GetAmendmentPaymentDetails([FromBody]InsitutionContractAmendmentPaymentRequest request) + public async Task> GetAmendmentPaymentDetails( + [FromBody] InsitutionContractAmendmentPaymentRequest request) { - var res =await _institutionContractApplication.GetAmendmentPaymentDetails(request); + var res = await _institutionContractApplication.GetAmendmentPaymentDetails(request); return res; } - - + + [HttpGet("edit-old/{id}")] - public ActionResult GetEditOldDetails(long id) + public ActionResult GetEditOldDetails(long id) { var representativList = new List(); var contractingPartyList = new List(); var res = _institutionContractApplication.GetDetails(id); - + var representative = new RepresentativeViewModel { Id = res.RepresentativeId, @@ -734,13 +767,14 @@ public class institutionContractController : AdminBaseController res.ContractAmountOAlone = res.ContractAmountString; res.ValueAddedTaxStr = "0"; } + return res; } [HttpPost("edit-old")] public ActionResult EditOld([FromBody] EditInstitutionContract command) { - var op = new OperationResult(); + var op = new OperationResult(); var phoneNumber = command.ContactInformationList.FirstOrDefault(x => x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه"); var conractingParty = _contractingPartyApplication.GetDetails(command.ContractingPartyId); @@ -754,57 +788,58 @@ public class institutionContractController : AdminBaseController //if (string.IsNullOrWhiteSpace(command.HasValueAddedTax)) // command.HasValueAddedTax = "false"; var result = _institutionContractApplication.Edit(command); - var contractingPartyId = _institutionContractApplication.GetDetails(result.SendId); - var counter = command.ContactInformationList.Count; - var getOldContarct = _institutionContractApplication.NewSearch(new InstitutionContractSearchModel() - { ContractingPartyId = contractingPartyId.ContractingPartyId, IsActiveString = "both" }).Where(x=>x.IsActiveString == "false" || x.IsActiveString == "blue").ToList(); - if (result.IsSuccedded && counter > 0) - { - - if (getOldContarct.Count > 0) - { - foreach (var item in getOldContarct) - { - _contactInfoApplication.RemoveContactInfo(item.Id); - foreach (var phone in command.ContactInformationList) - { - if (phone.PhoneNumber != null) - { - var contactinfo = new CreateContactInfo - { - InstitutionContractId = item.Id, - PhoneType = phone.PhoneType, - Position = phone.Position, - PhoneNumber = phone.PhoneNumber, - FnameLname = phone.FnameLname, - SendSms = phone.SendSmsString == "true" ? true : false - }; - _contactInfoApplication.Create(contactinfo); - } + var contractingPartyId = _institutionContractApplication.GetDetails(result.SendId); + var counter = command.ContactInformationList.Count; + var getOldContarct = _institutionContractApplication.NewSearch(new InstitutionContractSearchModel() + { ContractingPartyId = contractingPartyId.ContractingPartyId, IsActiveString = "both" }) + .Where(x => x.IsActiveString == "false" || x.IsActiveString == "blue").ToList(); + if (result.IsSuccedded && counter > 0) + { + if (getOldContarct.Count > 0) + { + foreach (var item in getOldContarct) + { + _contactInfoApplication.RemoveContactInfo(item.Id); + foreach (var phone in command.ContactInformationList) + { + if (phone.PhoneNumber != null) + { + var contactinfo = new CreateContactInfo + { + InstitutionContractId = item.Id, + PhoneType = phone.PhoneType, + Position = phone.Position, + PhoneNumber = phone.PhoneNumber, + FnameLname = phone.FnameLname, + SendSms = phone.SendSmsString == "true" ? true : false + }; + _contactInfoApplication.Create(contactinfo); + } - Thread.Sleep(500); - } - } - } - _contactInfoApplication.RemoveContactInfo(command.Id); - foreach (var item in command.ContactInformationList) - { - if (item.PhoneNumber != null) - { - var contactinfo = new CreateContactInfo - { - InstitutionContractId = result.SendId, - PhoneType = item.PhoneType, - Position = item.Position, - PhoneNumber = item.PhoneNumber, - FnameLname = item.FnameLname, - SendSms = item.SendSmsString == "true" ? true : false - }; - _contactInfoApplication.Create(contactinfo); - } + Thread.Sleep(500); + } + } + } - Thread.Sleep(500); - } + _contactInfoApplication.RemoveContactInfo(command.Id); + foreach (var item in command.ContactInformationList) + { + if (item.PhoneNumber != null) + { + var contactinfo = new CreateContactInfo + { + InstitutionContractId = result.SendId, + PhoneType = item.PhoneType, + Position = item.Position, + PhoneNumber = item.PhoneNumber, + FnameLname = item.FnameLname, + SendSms = item.SendSmsString == "true" ? true : false + }; + _contactInfoApplication.Create(contactinfo); + } + + Thread.Sleep(500); + } //ساخت اکانت کلاینت @@ -814,7 +849,6 @@ public class institutionContractController : AdminBaseController var checkExistAccount = _accountApplication.CheckExistClientAccount(userPass); if (!checkExistAccount) { - var createAcc = new RegisterAccount { Fullname = conractingParty.LName, @@ -825,69 +859,72 @@ public class institutionContractController : AdminBaseController }; var res = _accountApplication.RegisterClient(createAcc); if (res.IsSuccedded) - _institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId, res.SendId); + _institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId, + res.SendId); } } - //Thread.Sleep(500); - //for (int i = 0; i <= counter - 1; i++) - //{ - // if (command.ContactInformationList[i].PhoneNumber != null) - // { + //Thread.Sleep(500); + //for (int i = 0; i <= counter - 1; i++) + //{ + // if (command.ContactInformationList[i].PhoneNumber != null) + // { - // var contactinfo = new CreateContactInfo() - // { - // InstitutionContractId = result.SendId, - // PhoneType = command.ContactInformationList[i].PhoneType, - // Position = command.ContactInformationList[i].Position, - // PhoneNumber = command.ContactInformationList[i].PhoneNumber, - // FnameLname = command.ContactInformationList[i].FnameLname, - // SendSms = command.ContactInformationList[i].SendSmsString == "true" ? true : false - // }; - // _contactInfoApplication.Create(contactinfo); + // var contactinfo = new CreateContactInfo() + // { + // InstitutionContractId = result.SendId, + // PhoneType = command.ContactInformationList[i].PhoneType, + // Position = command.ContactInformationList[i].Position, + // PhoneNumber = command.ContactInformationList[i].PhoneNumber, + // FnameLname = command.ContactInformationList[i].FnameLname, + // SendSms = command.ContactInformationList[i].SendSmsString == "true" ? true : false + // }; + // _contactInfoApplication.Create(contactinfo); - // } - // Thread.Sleep(500); - //} + // } + // Thread.Sleep(500); + //} - return result; + return result; } + [HttpGet("print/{id}")] public async Task> PrintOne(long id) { - var res =await _institutionContractApplication.PrintOneAsync(id); + var res = await _institutionContractApplication.PrintOneAsync(id); return res; } [HttpPost("mannual-verify/{id}")] public async Task> VerifyInstitutionContractManually(long id) { - var res= await _institutionContractApplication.VerifyInstitutionContractManually(id); + var res = await _institutionContractApplication.VerifyInstitutionContractManually(id); return res; } [HttpGet("excel-download")] public async Task ExcelDownload() { - var searchModel = new InstitutionContractListSearchModel(); - - var dataVm=new List(); - + + var dataVm = new List(); + foreach (var name in typeof(InstitutionContractListStatus).GetEnumNames()) { var @enum = Enum.Parse(name); searchModel.Status = @enum; searchModel.PageSize = 99999; - var data =( await(_institutionContractApplication.GetList(searchModel))).List; - dataVm.Add(new InstitutionContractExcelViewModel(){Tab = @enum, GetInstitutionContractListItemsViewModels = data}); + var data = (await (_institutionContractApplication.GetList(searchModel))).List; + dataVm.Add(new InstitutionContractExcelViewModel() + { Tab = @enum, GetInstitutionContractListItemsViewModels = data }); } searchModel.Status = null; - - var nullData = ( await(_institutionContractApplication.GetList(searchModel))).List; - dataVm.Add(new InstitutionContractExcelViewModel(){Tab = null, GetInstitutionContractListItemsViewModels = nullData}); - + + var nullData = (await (_institutionContractApplication.GetList(searchModel))).List; + dataVm.Add(new InstitutionContractExcelViewModel() + { Tab = null, GetInstitutionContractListItemsViewModels = nullData }); + var bytes = InstitutionContractExcelGenerator.GenerateExcel(dataVm); return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", @@ -895,6 +932,10 @@ public class institutionContractController : AdminBaseController } } +public class InstitutionContractCreationGetRepresentativeIdResponse +{ + public long RepresentativeId { get; set; } +} public class VerifyOtpRequest { @@ -933,10 +974,11 @@ public class WorkshopServiceCalculatorResponse public string TotalAmount { get; set; } } -public record InstitutionPlanCalculatorRequest(double TotalAmountMonth,bool HasInPersonContract, +public record InstitutionPlanCalculatorRequest( + double TotalAmountMonth, + bool HasInPersonContract, InstitutionContractDuration Duration = InstitutionContractDuration.TwelveMonths); - public class VerifyCodeRequest { public long ContractingPartyId { get; set; }