@using Bit.Admin.Enums;
@inject Bit.Admin.Services.IAccessControlService AccessControlService
@model BillingInformationModel

@{
    var canManageTransactions = Model.Entity == "User" ? AccessControlService.UserHasPermission(Permission.User_BillingInformation_CreateEditTransaction)
                                                       : AccessControlService.UserHasPermission(Permission.Org_BillingInformation_CreateEditTransaction);

    var canDownloadInvoice = Model.Entity == "User" ? AccessControlService.UserHasPermission(Permission.User_BillingInformation_DownloadInvoice)
                                                       : AccessControlService.UserHasPermission(Permission.Org_BillingInformation_DownloadInvoice);
}

<dl class="row">
    <dt id="billing-account-credit-balance" class="col-sm-4 col-lg-3">Account @(Model.BillingInfo.Balance <= 0 ? "Credit" : "Balance")</dt>
    <dd id="billing-account-credit-balance-value" class="col-sm-8 col-lg-9">@Math.Abs(Model.BillingInfo.Balance).ToString("C")</dd>

    <dt class="col-sm-4 col-lg-3">Invoices</dt>
    <dd class="col-sm-8 col-lg-9">
        @if(Model.BillingHistoryInfo.Invoices?.Any() ?? false)
        {
            <table class="table">
                <tbody>
                @{ var invoiceIndex = 0; }
                @foreach (var invoice in Model.BillingHistoryInfo.Invoices)
                {
                    <tr>
                        <td id="invoice-@(invoiceIndex)-date">@invoice.Date</td>
                        <td><a id="invoice-@(invoiceIndex)-url" target="_blank" rel="noreferrer" href="@invoice.Url" title="View Invoice">@invoice.Number</a>
                        </td>
                        <td id="invoice-@(invoiceIndex)-amount">@invoice.Amount.ToString("C")</td>
                        <td id="invoice-@(invoiceIndex)-paid">@(invoice.Paid ? "Paid" : "Unpaid")</td>
                        @if (canDownloadInvoice)
                        {
                            <td>
                                <a id="invoice-@(invoiceIndex)-pdf-url" target="_blank" rel="noreferrer" href="@invoice.PdfUrl" title="Download Invoice">
                                    <i class="fa fa-file-pdf-o"></i>
                                </a>
                            </td>
                        }
                    </tr>
                    invoiceIndex++;
                }
                </tbody>
            </table>
        }
        else
        {
            @: No invoices.
        }
    </dd>

    <dt class="col-sm-4 col-lg-3">Transactions</dt>
    <dd class="col-sm-8 col-lg-9">
        @if(Model.BillingHistoryInfo.Transactions?.Any() ?? false)
        {
            <table class="table">
                <tbody>
                @{ var transactionIndex = 0; }
                @foreach (var transaction in Model.BillingHistoryInfo.Transactions)
                {
                    <tr>
                        <td id="transaction-@(transactionIndex)-created-date">@transaction.CreatedDate</td>
                        <td id="transaction-@(transactionIndex)-type">@transaction.Type.ToString()</td>
                        <td id="transaction-@(transactionIndex)-payment-method">@transaction.PaymentMethodType.ToString()</td>
                        <td id="transaction-@(transactionIndex)-details">@transaction.Details</td>
                        <td id="transaction-@(transactionIndex)-amount">@transaction.Amount.ToString("C")</td>
                        @if (canManageTransactions)
                        {
                            <td>
                                <a id="transaction-@(transactionIndex)-edit-link" title="Edit Transaction" asp-controller="Tools" asp-action="EditTransaction"
                                   asp-route-id="@transaction.Id"><i class="fa fa-edit"></i></a>
                            </td>
                        }
                    </tr>
                    transactionIndex++;
                }
                </tbody>
            </table>
        }
        else
        {
            <p>No transactions.</p>
        }
        @if (canManageTransactions)
        {
            <a id="transaction-create-transaction-link" asp-action="CreateTransaction" asp-controller="Tools" asp-route-organizationId="@Model.OrganizationId"
            asp-route-userId="@Model.UserId" class="btn btn-sm btn-outline-primary">
                <i class="fa fa-plus"></i> New Transaction
            </a>
        }
    </dd>
</dl>
