@using BTCPayServer.Services.Invoices @using BTCPayServer.Client.Models @using BTCPayServer.Client @model BTCPayServer.Models.PaymentRequestViewModels.ViewPaymentRequestViewModel @inject BTCPayServer.Services.BTCPayServerEnvironment Env @inject BTCPayServer.Security.ContentSecurityPolicies Csp @{ ViewData["Title"] = Model.Title; ViewData["StoreBranding"] = Model.StoreBranding; Csp.UnsafeEval(); Layout = null; string StatusClass(InvoiceState state) { var status = state.Status; switch (status) { case InvoiceStatus.Expired: switch (state.ExceptionStatus) { case InvoiceExceptionStatus.PaidLate: case InvoiceExceptionStatus.PaidPartial: case InvoiceExceptionStatus.PaidOver: return "unusual"; default: return "expired"; } default: return status.ToString().ToLowerInvariant(); } } ViewData.SetBlazorAllowed(false); }
Invoice from @if (!string.IsNullOrEmpty(Model.StoreWebsite)) { @Model.StoreName } else { @Model.StoreName }

@if (Model.AmountDue > 0) { @Model.AmountDueFormatted } else { @Model.AmountCollectedFormatted }

{{srvModel.status}} (archived) @if (Model.Status.ToLowerInvariant() != "pending") { }

@if (Model.IsPending && Model.ExpiryDate.HasValue) { Due @Model.ExpiryDate.Value.ToBrowserDate(ViewsRazor.DateDisplayFormat.Relative) } else { No due date }

@{ var prcnt = Model.Amount == 0? 100: Model.AmountCollected / Model.Amount * 100; }
Amount paid
@Model.AmountCollectedFormatted
Total requested
@Model.AmountFormatted
@if (!string.IsNullOrEmpty(Model.Description) && Model.Description != "
") {

Memo

@Safe.Raw(Model.Description)
}

Payment History