@using BTCPayServer.Plugins.PointOfSale.Models @using BTCPayServer.Services @using Microsoft.AspNetCore.Mvc.TagHelpers @using Newtonsoft.Json.Linq @using BTCPayServer.Client @inject DisplayFormatter DisplayFormatter @model BTCPayServer.Plugins.PointOfSale.Models.ViewPointOfSaleViewModel @functions { private string GetItemPriceFormatted(ViewPointOfSaleViewModel.Item item) { if (item.PriceType == ViewPointOfSaleViewModel.ItemPriceType.Topup) return "any amount"; if (item.Price == 0) return "free"; var formatted = DisplayFormatter.Currency(item.Price ?? 0, Model.CurrencyCode, DisplayFormatter.CurrencyFormat.Symbol); return item.PriceType == ViewPointOfSaleViewModel.ItemPriceType.Minimum ? $"{formatted} minimum" : formatted; } }
{{currencyCode}}
{{ formatCurrency(total, false) }}
{{ calculation }}
{{discountPercent || 0}}% discount
Amount
Products
@if (Model.ShowSearch) {
} @if (Model.ShowCategories) {
}
@for (var index = 0; index < Model.Items.Length; index++) { var item = Model.Items[index]; var formatted = GetItemPriceFormatted(item); var inStock = item.Inventory is null or > 0; var displayed = item.PriceType == ViewPointOfSaleViewModel.ItemPriceType.Fixed && inStock ? "true" : "false"; var categories = new JArray(item.Categories ?? new object[] { });
@if (!string.IsNullOrWhiteSpace(item.Image)) {
@item.Title
}
@Safe.Raw(item.Title)
@if (item.PriceType == ViewPointOfSaleViewModel.ItemPriceType.Topup || item.Price == 0) { @Safe.Raw(char.ToUpper(formatted[0]) + formatted[1..]) } else { @Safe.Raw(formatted) } @if (item.Inventory.HasValue) { @(item.Inventory > 0 ? $"{item.Inventory} left" : "Sold out") }
{{ getQuantity(`@Safe.Raw(item.Id)`) }}
}