{% extends 'base.html.twig' %}
{% import "macros/widgets.html.twig" as widgets %}
{% import "macros/search.html.twig" as search %}
{% import "macros/datatables.html.twig" as tables %}
{% import "invoice/actions.html.twig" as actions %}
{% import "invoice/macros.html.twig" as macros %}

{% set columns = {
    'date': {'class': 'alwaysVisible text-nowrap'},
    'user': {'class': 'hidden-xs hidden-sm text-nowrap hidden', 'orderBy': false},
    'customer': {'class': 'hidden-xs hidden-sm', 'orderBy': false},
    'comment': {'class': 'hidden-xs hidden-sm', 'title': 'label.description'|trans},
} %}
{% for field in metaColumns %}
    {% set columns = columns|merge({
        ('mf_' ~ field.name): {'title': field.label|trans, 'class': 'hidden-xs hidden-sm mf_' ~ field.name, 'orderBy': false}
    }) %}
{% endfor %}
{% set columns = columns|merge({
    'invoice_number': {'class': 'hidden-xs hidden-sm w-min', 'title': 'invoice.number'|trans, 'orderBy': false},
    'due_date': {'class': 'hidden-xs w-min', 'title': 'invoice.due_days'|trans, 'orderBy': false},
    'payment_date': {'class': 'hidden-xs hidden w-min', 'title': 'invoice.payment_date'|trans, 'orderBy': false},
    'status': {'class': 'alwaysVisible w-min', 'orderBy': false},
    'subtotal': {'class': 'hidden-xs text-right w-min hidden', 'title': 'invoice.subtotal'|trans, 'orderBy': false},
    'tax': {'class': 'hidden-xs text-right w-min hidden', 'title': 'invoice.tax'|trans},
    'total_rate': {'class': 'hidden-xs text-right w-min'},
    'actions': {'class': 'actions alwaysVisible', 'orderBy': false},
}) %}

{% set tableName = 'invoices' %}

{% block page_title %}{{ 'invoices'|trans }}{% endblock %}
{% block page_actions %}{{ actions.invoice_listing('index', query) }}{% endblock %}
{% block page_search %}{{ search.searchModal(toolbarForm) }}{% endblock %}

{% block main_before %}
    {{ tables.data_table_column_modal(tableName, columns) }}
{% endblock %}

{% block main %}

    {% if entries is empty %}
        {{ widgets.nothing_found() }}
    {% else %}
        {{ tables.datatable_header(tableName, columns, query, {}) }}
        {% for entry in entries %}
            <tr class="modal-ajax-form open-edit{% if entry.canceled %} warning text-muted{% endif %}" data-href="{{ path('admin_invoice_edit', {'id': entry.id}) }}">
                <td class="{{ tables.data_table_column_class(tableName, columns, 'date') }}">{{ entry.createdAt|date_short }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'user') }}">{{ widgets.user_avatar(entry.user) }} {{ widgets.username(entry.user) }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'customer') }}">{{ widgets.label_customer(entry.customer) }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'comment') }}">{{ entry.comment }}</td>
                {% for field in metaColumns %}
                    <td class="{{ tables.data_table_column_class(tableName, columns, 'mf_' ~ field.name) }}">
                        {{ tables.datatable_meta_column(entry, field) }}
                    </td>
                {% endfor %}
                <td class="{{ tables.data_table_column_class(tableName, columns, 'invoice_number') }}">{{ widgets.label(entry.invoiceNumber, 'default') }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'due_date') }}">{{ macros.invoice_due_date(entry) }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'payment_date') }}">
                    {% if entry.paymentDate and entry.paid %}
                        {{ widgets.label(entry.paymentDate|date_short, 'primary') }}
                    {% endif %}
                </td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'status') }}">{{ macros.invoice_status(entry) }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'subtotal') }}">{{ entry.subtotal|money(entry.currency) }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'tax') }}">{{ entry.tax|money(entry.currency) }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'total_rate') }}">{{ entry.total|money(entry.currency) }}</td>
                <td class="{{ tables.data_table_column_class(tableName, columns, 'actions') }}">{{ actions.invoice(entry, 'index') }}</td>
            </tr>
        {% endfor %}
        {{ tables.data_table_footer(entries, 'admin_invoice_list') }}
    {% endif %}

{% endblock %}

{% block javascripts %}
    {{ parent() }}
    {% if download is not null %}
    <script type="text/javascript">
        document.addEventListener('kimai.initialized', function() {
            location.href = '{{ path('admin_invoice_download', {'id': download.id}) }}';
        });
    </script>
    {% endif %}
    <script type="text/javascript">
        document.addEventListener('kimai.initialized', function() {
            KimaiReloadPageWidget.create('kimai.invoiceUpdate');
        });
    </script>
{% endblock %}
