mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 14:40:36 +01:00
234 lines
9.2 KiB
Text
234 lines
9.2 KiB
Text
@model InvoiceDetailsModel
|
|
@{
|
|
ViewData["Title"] = "Invoice " + Model.Id;
|
|
}
|
|
@section HeaderContent{
|
|
<META NAME="robots" CONTENT="noindex,nofollow">
|
|
}
|
|
<style type="text/css">
|
|
.firstCol {
|
|
width: 140px;
|
|
}
|
|
</style>
|
|
<section class="invoice-details">
|
|
<div class="container">
|
|
@if (TempData.HasStatusMessage())
|
|
{
|
|
<div class="row">
|
|
<div class="col-lg-12 text-center">
|
|
<partial name="_StatusMessage" />
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<div class="row">
|
|
<div class="col-lg-12 section-heading">
|
|
<div class="row">
|
|
<h2 class="col-xs-12 col-lg-9">@ViewData["Title"]</h2>
|
|
<div class="col-xs-12 col-lg-3 ">
|
|
<div class="d-inline-flex">
|
|
@if (Model.CanRefund)
|
|
{
|
|
<a id="refundlink" class=" btn btn-success" asp-action="Refund" asp-route-invoiceId="@this.Context.GetRouteValue("invoiceId")">Issue refund <span class="fa fa-undo"></span></a>
|
|
}
|
|
else
|
|
{
|
|
<button href="#" class="btn btn-secondary" data-toggle="tooltip" title="You can only issue refunds on invoices with confirmed payments" disabled>Issue refund <span class="fa fa-undo"></span></button>
|
|
}
|
|
<form class="p-0 ml-1" asp-action="ToggleArchive" asp-route-invoiceId="@Model.Id" method="post">
|
|
|
|
<button type="submit" class="btn @(Model.Archived ? "btn-warning" : "btn btn-danger")" id="btn-archive-toggle">
|
|
@if (Model.Archived)
|
|
{
|
|
<span data-toggle="tooltip" title="Unarchive this invoice">Archived <i class=" ml-1 fa fa-close"></i></span>
|
|
}
|
|
else
|
|
{
|
|
<span data-toggle="tooltip" title="Archive this invoice so that it does not appear in the invoice list by default">Archive <i class=" ml-1 fa fa-archive"></i></span>
|
|
}
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr class="primary">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h3>Information</h3>
|
|
<table class="table table-sm table-responsive-md removetopborder">
|
|
<tr>
|
|
<th>Store</th>
|
|
<td><a href="@Model.StoreLink">@Model.StoreName</a></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Id</th>
|
|
<td>@Model.Id</td>
|
|
</tr>
|
|
<tr>
|
|
<th>State</th>
|
|
<td>@Model.State</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Created date</th>
|
|
<td>@Model.CreatedDate.ToBrowserDate()</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Expiration date</th>
|
|
<td>@Model.ExpirationDate.ToBrowserDate()</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Monitoring date</th>
|
|
<td>@Model.MonitoringDate.ToBrowserDate()</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Transaction speed</th>
|
|
<td>@Model.TransactionSpeed</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Refund email</th>
|
|
<td><a href="mailto:@Model.RefundEmail">@Model.RefundEmail</a></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Order Id</th>
|
|
<td>@Model.TypedMetadata.OrderId</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Total fiat due</th>
|
|
<td>@Model.Fiat</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Notification Url</th>
|
|
<td>@Model.NotificationUrl</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Redirect Url</th>
|
|
<td><a href="@Model.RedirectUrl">@Model.RedirectUrl</a></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h3>Buyer information</h3>
|
|
<table class="table table-sm table-responsive-md removetopborder">
|
|
<tr>
|
|
<th>Name</th>
|
|
<td>@Model.TypedMetadata.BuyerName</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Email</th>
|
|
<td><a href="mailto:@Model.TypedMetadata.BuyerEmail">@Model.TypedMetadata.BuyerEmail</a></td>
|
|
</tr>
|
|
<tr>
|
|
<th>Phone</th>
|
|
<td>@Model.TypedMetadata.BuyerPhone</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Address 1</th>
|
|
<td>@Model.TypedMetadata.BuyerAddress1</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Address 2</th>
|
|
<td>@Model.TypedMetadata.BuyerAddress2</td>
|
|
</tr>
|
|
<tr>
|
|
<th>City</th>
|
|
<td>@Model.TypedMetadata.BuyerCity</td>
|
|
</tr>
|
|
<tr>
|
|
<th>State</th>
|
|
<td>@Model.TypedMetadata.BuyerState</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Country</th>
|
|
<td>@Model.TypedMetadata.BuyerCountry</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Zip</th>
|
|
<td>@Model.TypedMetadata.BuyerZip</td>
|
|
</tr>
|
|
</table>
|
|
@if (Model.PosData.Count == 0)
|
|
{
|
|
<h3>Product information</h3>
|
|
<table class="table table-sm table-responsive-md removetopborder">
|
|
<tr>
|
|
<th>Item code</th>
|
|
<td>@Model.TypedMetadata.ItemCode</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Item Description</th>
|
|
<td>@Model.TypedMetadata.ItemDesc</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Price</th>
|
|
<td>@Model.Fiat</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Tax included</th>
|
|
<td>@Model.TaxIncluded</td>
|
|
</tr>
|
|
</table>
|
|
}
|
|
</div>
|
|
</div>
|
|
|
|
@if (Model.PosData.Count != 0)
|
|
{
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h3>Product information</h3>
|
|
<table class="table table-sm table-responsive-md removetopborder">
|
|
<tr>
|
|
<th>Item code</th>
|
|
<td>@Model.TypedMetadata.ItemCode</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Item Description</th>
|
|
<td>@Model.TypedMetadata.ItemDesc</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Price</th>
|
|
<td>@Model.Fiat</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Tax included</th>
|
|
<td>@Model.TaxIncluded</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h3>Point of Sale Data</h3>
|
|
<partial name="PosData" model="@Model.PosData" />
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<partial name="ListInvoicesPaymentsPartial" model="(Model, false)" />
|
|
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h3>Events</h3>
|
|
<table class="table table-sm table-responsive-md">
|
|
<thead class="thead-inverse">
|
|
<tr>
|
|
<th>Date</th>
|
|
<th>Message</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var evt in Model.Events)
|
|
{
|
|
<tr>
|
|
<td>@evt.Timestamp.ToBrowserDate()</td>
|
|
<td>@evt.Message</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|