| | | 1 | | @using OzonDomains.Models |
| | | 2 | | @using System.Text.Json |
| | | 3 | | @{ |
| | 0 | 4 | | var provider = (string)ViewBag.Provider; |
| | 0 | 5 | | var tab = (string)ViewBag.Tab; |
| | 0 | 6 | | var items = (IReadOnlyList<ArmtekCartItem>)ViewBag.CartItems; |
| | 0 | 7 | | var orders = (IReadOnlyList<ArmtekOrder>)ViewBag.Orders; |
| | 0 | 8 | | var title = provider == "ArmtekBy" ? "Армтек BY" : "Армтек RU"; |
| | 0 | 9 | | ViewData["Title"] = $"Корзина {title}"; |
| | 0 | 10 | | Layout = "~/Views/Shared/_Layout.cshtml"; |
| | | 11 | | |
| | | 12 | | string GetTestResult(ArmtekCartItem item) |
| | | 13 | | { |
| | 0 | 14 | | if (string.IsNullOrWhiteSpace(item.TestResultJson)) return string.Empty; |
| | | 15 | | try |
| | | 16 | | { |
| | 0 | 17 | | using var response = JsonDocument.Parse(item.TestResultJson); |
| | 0 | 18 | | var apiItem = response.RootElement.GetProperty("Items").EnumerateArray().FirstOrDefault(x => |
| | 0 | 19 | | string.Equals(x.GetProperty("Pin").GetString(), item.Pin, StringComparison.OrdinalIgnoreCase) && |
| | 0 | 20 | | string.Equals(x.GetProperty("Brand").GetString(), item.Brand, StringComparison.OrdinalIgnoreCase)); |
| | 0 | 21 | | if (apiItem.ValueKind == JsonValueKind.Undefined || !apiItem.TryGetProperty("Result", out var allocations)) |
| | 0 | 22 | | var values = allocations.EnumerateArray().Select(x => |
| | 0 | 23 | | { |
| | 0 | 24 | | var vbeln = x.TryGetProperty("Vbeln", out var vbelnValue) ? vbelnValue.GetString() : "—"; |
| | 0 | 25 | | var quantity = x.TryGetProperty("Quantity", out var quantityValue) ? quantityValue.GetString() : "—"; |
| | 0 | 26 | | var price = x.TryGetProperty("Price", out var priceValue) ? priceValue.GetString() : "—"; |
| | 0 | 27 | | var currency = x.TryGetProperty("Currency", out var currencyValue) ? currencyValue.GetString() : string. |
| | 0 | 28 | | return string.Join(" ", vbeln + ":", quantity, "×", price, currency); |
| | 0 | 29 | | }); |
| | 0 | 30 | | return string.Join("; ", values); |
| | | 31 | | } |
| | 0 | 32 | | catch (JsonException) { return "Ответ проверки сохранён"; } |
| | 0 | 33 | | } |
| | | 34 | | } |
| | | 35 | | <link rel="stylesheet" href="~/css/Studio2/SupplierCart/supplier-cart-index.css" asp-append-version="true" /> |
| | | 36 | | <div class="container py-3 sc-page"> |
| | 0 | 37 | | <section class="sc-hero"><h1><img class="sc-provider-logo" src="~/images/armtek-logo.svg" alt=""/> @title</h1><div c |
| | | 38 | | <div class="sc-quick-links"><a asp-controller="SupplierCart" asp-action="Index"><i class="fas fa-cart-shopping"> |
| | 0 | 39 | | @if (TempData["ArmtekCartResult"] is string result) { <div class="alert alert-info">@result</div> } |
| | 0 | 40 | | <ul class="nav nav-pills sc-avd-tabs mb-3"><li class="nav-item"><a class="nav-link @(tab == "cart" ? "active" : "")" |
| | 0 | 41 | | @if (tab == "cart") |
| | | 42 | | { |
| | 0 | 43 | | <div class="sc-card"><div class="sc-basket-actions"><div><strong>Оформление Armtek</strong><span>Сначала безопас |
| | 0 | 44 | | @if (items.Count == 0) { <div class="sc-empty py-4">Корзина пуста.</div> } else { <div class="sc-table-wrap"><ta |
| | | 45 | | } |
| | | 46 | | else |
| | 0 | 47 | | { <div class="sc-card"><div class="sc-table-wrap"><table class="table table-hover align-middle sc-table"><thead><tr> |
| | | 48 | | </div> |
| | 0 | 49 | | <div class="modal fade" id="armtekCheckoutModal" tabindex="-1" aria-labelledby="armtekCheckoutTitle" aria-hidden="true"> |