From a02522592070a2f8ef835e4137b59a91fad7ac8d Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Mon, 29 Jul 2024 17:50:46 +0330 Subject: [PATCH] walt --- Back/Controllers/OrdersController.cs | 50 +++++++++++++++++-- Back/Program.cs | 1 + Back/Services/ServOrders.cs | 4 +- Back/Services/ServWalt.cs | 19 +++++++ TaxPayerFull/CUSComponent/OrderItemRead.razor | 19 +++++-- 5 files changed, 86 insertions(+), 7 deletions(-) create mode 100644 Back/Services/ServWalt.cs diff --git a/Back/Controllers/OrdersController.cs b/Back/Controllers/OrdersController.cs index 94fdbee..cfb75ff 100644 --- a/Back/Controllers/OrdersController.cs +++ b/Back/Controllers/OrdersController.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Shared.DTOs; using Shared.DTOs.Serch; +using Shared.Enums; namespace Back.Controllers { @@ -19,14 +20,16 @@ namespace Back.Controllers private readonly ServPromotion _servPromotion; private readonly ServPricing _servPricing; private readonly servUser _servUser; - - public OrdersController(ServOrders servOrders, ServPromotion servPromotion, ServPricing servPricing, servUser servUser) + private readonly servCompany _servCompany; + private readonly ServWalt _servWalt; + public OrdersController(ServOrders servOrders, ServPromotion servPromotion, ServPricing servPricing, servUser servUser, servCompany servCompany, ServWalt servWalt) { _servOrders = servOrders; _servPricing = servPricing; _servPromotion = servPromotion; _servUser = servUser; - + _servCompany = servCompany; + _servWalt = servWalt; } [HttpGet("GetAllPromotion")] [AllowAnonymous] @@ -146,5 +149,46 @@ namespace Back.Controllers else return BadRequest(new List { "خطا در ثبت سفارش" }); } + [HttpGet("SubmitOrderBywallet/{OrderID}")] + public async Task> SubmitOrder(int OrderID) + { + var claim = HttpContext.User.Claims.First(c => c.Type == "UserID"); + var UserID = claim.Value; + var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID)); + var Company = user.RolUsers.First().Company; + int CompanyID = Company.ID; + var order =await _servOrders.GetOrder(OrderID, CompanyID); + + if (order.Status==StatusOrder.Create) + { + if (Company.Credit >= order.TPrice) + { + Company.Credit -= order.TPrice; + var comUpdate=await _servCompany.AddORUpdateCompany(Company); + if (comUpdate!=null) + { + if (await _servWalt.AddDocument(new CreditDocuments + { + CompanyID = CompanyID, + Date = DateTime.Now.ConvertMiladiToShamsi(), + Title = $"بابت سفارش {order.ID}", + type = CreditDocumentType.Decrease, + Value = order.TPrice + })) + return Ok(); + else + return BadRequest(new List { "خطا در بروزرسانی سند سفارش" }); + } + else + return BadRequest(new List { "خطا در بروزرسانی شرکت" }); + + } + else + return BadRequest(new List { "اعتبار کیف پول کافی نمی باشد" }); + } + else + return BadRequest(new List { "سفارش در این حالت امکان پرداخت ندارد" }); + + } } } diff --git a/Back/Program.cs b/Back/Program.cs index c86c145..79c2d39 100644 --- a/Back/Program.cs +++ b/Back/Program.cs @@ -80,6 +80,7 @@ builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddScoped(c => new mpNuget.RestClient("09119660045", "C54S2")); string origins = "OriginTaxPayer"; diff --git a/Back/Services/ServOrders.cs b/Back/Services/ServOrders.cs index 88791d9..8fcf576 100644 --- a/Back/Services/ServOrders.cs +++ b/Back/Services/ServOrders.cs @@ -63,7 +63,9 @@ namespace Back.Services } public async Task GetOrder(int OrderID, int CompanyID) { - return await _repoOrder.Get(w => w.ID == OrderID && w.CompanyID == CompanyID) .FirstOrDefaultAsync(); + return await _repoOrder.Get(w => w.ID == OrderID && w.CompanyID == CompanyID) + .Include(inc=>inc.OrderItems) + .FirstOrDefaultAsync(); } public async Task UpdateOrder(Order order) { diff --git a/Back/Services/ServWalt.cs b/Back/Services/ServWalt.cs new file mode 100644 index 0000000..ea749d9 --- /dev/null +++ b/Back/Services/ServWalt.cs @@ -0,0 +1,19 @@ +using Back.Data.Contracts; +using Back.Data.Models; + +namespace Back.Services +{ + public class ServWalt + { + private readonly IAsyncRepository _repoCreditDocuments; + + public ServWalt(IAsyncRepository repoCreditDocuments) + { + _repoCreditDocuments = repoCreditDocuments; + } + public async Task AddDocument(CreditDocuments document) + { + return await _repoCreditDocuments.AddBoolResultAsync(document); + } + } +} diff --git a/TaxPayerFull/CUSComponent/OrderItemRead.razor b/TaxPayerFull/CUSComponent/OrderItemRead.razor index ec7a9c5..e88bde8 100644 --- a/TaxPayerFull/CUSComponent/OrderItemRead.razor +++ b/TaxPayerFull/CUSComponent/OrderItemRead.razor @@ -175,9 +175,22 @@ } private async Task OnClickPay() { - // result.Status = ComponentStatus.success; - // result.Action = ComponentAction.add; - // await OnMultipleOfThree.InvokeAsync(result); + PreloadService.Show(SpinnerColor.Dark); + var rsp = await hc.Get($"Orders/SubmitOrderBywallet/{order.ID}"); + PreloadService.Hide(); + if (rsp.IsSuccessStatusCode) + { + result = new ActionInResultComponent(); + result.Status = ComponentStatus.success; + result.Action = ComponentAction.add; + await OnMultipleOfThree.InvokeAsync(result); + } + else + { + var request = await rsp.Content.ReadFromJsonAsync>(); + ShowDangerAlert(request[0]); + } + }