2024-04-19 19:58:32 +02:00
<table class="table table-condensed table-hover table-responsive">
2022-01-29 14:15:34 +01:00
<thead>
<tr>
{% if showCategory or showBudget %}
<td colspan="7" class="no-margin-pagination"> {{ groups .links ( 'pagination.bootstrap-4' ) | raw }} </td>
{% else %}
<td colspan="6" class="no-margin-pagination"> {{ groups .links ( 'pagination.bootstrap-4' ) | raw }} </td>
{% endif %}
<td colspan="1" class="hidden-xs">
<!-- Single button -->
<div class="btn-group btn-group-xs action-menu pull-right" style="display: none;">
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
{{ 'actions' | _ }} <span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="#" class="mass-edit"><span class="fa fa-fw fa-pencil"></span>
<span class="txt"> {{ 'mass_edit' | _ }} </span></a></li>
<li><a href="#" class="bulk-edit"><span class="fa fa-fw fa-pencil-square-o"></span>
<span class="txt"> {{ 'bulk_edit' | _ }} </span></a></li>
<li><a href="#" class="mass-delete"><span class="fa fa-fw fa-trash"></span>
<span class="txt"> {{ 'mass_delete' | _ }} </span></a></li>
</ul>
</div>
</td>
<td colspan="1" class="hidden-xs">
<div class="pull-right">
<input id="list_ALL" value="1" name="select-all" type="checkbox" class="select-all form-check-inline"/>
</div>
</td>
</tr>
<tr>
<th class="hidden-xs"> </th>
<th> {{ trans ( 'list.description' ) }} </th>
<th> {{ trans ( 'list.amount' ) }} </th>
2024-11-08 21:13:41 +01:00
<th> {{ trans ( 'list.date' ) }} </th>
2022-01-29 14:15:34 +01:00
<th> {{ trans ( 'list.source_account' ) }} </th>
<th> {{ trans ( 'list.destination_account' ) }} </th>
{% if showCategory %}
<th class="hidden-xs"> {{ trans ( 'list.category' ) }} </th>
{% endif %}
{% if showBudget %}
<th class="hidden-xs"> {{ trans ( 'list.budget' ) }} </th>
{% endif %}
<th class="hidden-xs"> </th><!-- actions -->
<th class="hidden-xs"> </th><!-- checkbox -->
</tr>
</thead>
<tbody>
{% for group in groups %}
{% if group .count > 1 %}
2024-04-19 19:58:32 +02:00
<tr style="border-top:1px #aaa solid;">
2022-01-29 14:15:34 +01:00
<td colspan="2" style="border-top:1px #aaa solid;">
<small><strong>
2023-09-05 19:34:46 +02:00
<a href=" {{ route ( 'transactions.show' , [ group .id ] ) }} "
2022-01-29 14:15:34 +01:00
title=" {{ group .title }} "> {{ group .title }} </a>
</strong></small>
</td>
2022-10-24 19:42:06 +02:00
<td colspan="1" style="text-align:right;border-top:1px #aaa solid;">
2022-01-29 14:15:34 +01:00
{% for sum in group .sums %}
{% if group .transaction_type == 'Deposit' %}
2024-12-26 05:21:28 +01:00
{{ formatAmountBySymbol ( sum .amount * - 1 , sum .currency_symbol , sum .currency_decimal_places ) }} (TODO NATIVE group 1) {% if loop .index != group .sums | length %} , {% endif %}
2024-12-23 14:35:27 +01:00
2022-01-29 14:15:34 +01:00
{% elseif group .transaction_type == 'Transfer' %}
2023-03-25 11:33:42 +01:00
<span class="text-info money-transfer">
2024-12-26 05:21:28 +01:00
{{ formatAmountBySymbol ( sum .amount * - 1 , sum .currency_symbol , sum .currency_decimal_places , false ) }} (TODO group 2 ) {% if loop .index != group .sums | length %} , {% endif %}
2022-01-29 14:15:34 +01:00
</span>
{% else %}
2024-12-26 05:21:28 +01:00
{{ formatAmountBySymbol ( sum .amount , sum .currency_symbol , sum .currency_decimal_places ) }} (TODO NATIVE group 3) {% if loop .index != group .sums | length %} , {% endif %}
2022-01-29 14:15:34 +01:00
{% endif %}
{% endfor %}
</td>
<!-- column to span accounts + extra fields -->
{% if showCategory or showBudget %}
<td style="border-top:1px #aaa solid;" colspan="3"> </td>
{% else %}
<td style="border-top:1px #aaa solid;" colspan="2"> </td>
{% endif %}
2022-10-24 19:42:06 +02:00
<td style="border-top:1px #aaa solid;" colspan="2" class="hidden-xs">
2022-01-29 14:15:34 +01:00
<div class="btn-group btn-group-xs pull-right">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
{{ 'actions' | _ }} <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
2023-09-05 19:34:46 +02:00
<li><a href=" {{ route ( 'transactions.edit' , [ group .id ] ) }} "><span
2023-08-24 05:47:28 +02:00
class="fa fa-fw fa-pencil"></span> {{ 'edit' | _ }} </a></li>
2023-09-05 19:34:46 +02:00
<li><a href=" {{ route ( 'transactions.delete' , [ group .id ] ) }} "><span
2023-08-24 05:47:28 +02:00
class="fa fa-fw fa-trash"></span> {{ 'delete' | _ }} </a></li>
2022-01-29 14:15:34 +01:00
<li><a href="#" data-id=" {{ group .id }} " class="clone-transaction"><span
2023-08-24 05:47:28 +02:00
class="fa fa-copy fa-fw"></span> {{ 'clone' | _ }} </a></li>
2023-10-21 07:38:08 +02:00
<li><a href="#" data-id=" {{ group .id }} " class="clone-transaction-and-edit"><span
class="fa fa-copy fa-fw"></span> {{ 'clone_and_edit' | _ }} </a></li>
2022-01-29 14:15:34 +01:00
</ul>
</div>
</td>
<td style="border-top:1px #aaa solid;" class="hidden-xs"> </td>
</tr>
{% endif %}
{% for index , transaction in group .transactions %}
2022-10-24 19:53:19 +02:00
{% set style = "" %}
2022-01-29 14:15:34 +01:00
{% if group .transactions | length == loop .index and group .count > 1 %}
2022-10-24 19:53:19 +02:00
{% set style = "border-bottom:1px #aaa solid;" %}
2022-01-29 14:15:34 +01:00
{% endif %}
2023-08-24 05:47:28 +02:00
<tr data-date=" {{ transaction .date .format ( 'Y-m-d' ) }} " data-count=" {{ group .count }} "
data-id=" {{ group .id }} ">
2022-10-24 19:58:12 +02:00
<td style=" {{ style | raw }} " class="hidden-xs">
2022-01-29 14:15:34 +01:00
{% if transaction .transaction_type_type == 'Withdrawal' %}
2024-04-19 19:58:32 +02:00
<span class="fa fa-long-arrow-left fa-fw"
2023-08-24 05:47:28 +02:00
title=" {{ trans ( 'firefly.Withdrawal' ) }} "></span>
2022-01-29 14:15:34 +01:00
{% endif %}
{% if transaction .transaction_type_type == 'Deposit' %}
2024-04-19 19:58:32 +02:00
<span class="fa fa-long-arrow-right fa-fw"
2023-08-24 05:47:28 +02:00
title=" {{ trans ( 'firefly.Deposit' ) }} "></span>
2022-01-29 14:15:34 +01:00
{% endif %}
{% if transaction .transaction_type_type == 'Transfer' %}
2024-04-19 19:58:32 +02:00
<span class="fa fa-exchange fa-fw" title=" {{ trans ( 'firefly.Transfer' ) }} "></span>
2022-01-29 14:15:34 +01:00
{% endif %}
{% if transaction .transaction_type_type == 'Reconciliation' %}
2024-04-19 19:58:32 +02:00
<span class="fa-fw fa fa-calculator"
2023-08-24 05:47:28 +02:00
title=" {{ trans ( 'firefly.reconciliation_transaction' ) }} "></span>
2022-01-29 14:15:34 +01:00
{% endif %}
{% if transaction .transaction_type_type == 'Opening balance' %}
2024-04-19 19:58:32 +02:00
<span class="fa-fw fa fa-star-o"
2023-08-24 05:47:28 +02:00
title=" {{ trans ( 'firefly.Opening balance' ) }} "></span>
2022-01-29 14:15:34 +01:00
{% endif %}
{% if transaction .transaction_type_type == 'Liability credit' %}
2024-04-19 19:58:32 +02:00
<span class="fa-fw fa fa-star-o"
2023-08-24 05:47:28 +02:00
title=" {{ trans ( 'firefly.Liability credit' ) }} "></span>
2022-01-29 14:15:34 +01:00
{% endif %}
</td>
<td style=" {{ style | raw }} ">
{% if transaction .reconciled %}
<span class="fa fa-check"></span>
{% endif %}
{% if transaction .attachments | length > 0 %}
<span class="fa fa-paperclip"></span>
{% endif %}
{% if group .count == 1 %}
2023-09-05 19:34:46 +02:00
<a href=" {{ route ( 'transactions.show' , [ group .id ] ) }} " title=" {{ transaction .description }} ">
2022-01-29 14:15:34 +01:00
{% endif %}
{{ transaction .description }}
{% if group .count == 1 %}
</a>
{% endif %}
</td>
2022-10-24 19:58:49 +02:00
<td style=" {{ style | raw }} ;text-align:right">
2022-01-29 14:15:34 +01:00
{# deposit #}
{% if transaction .transaction_type_type == 'Deposit' %}
{{ formatAmountBySymbol ( transaction .amount * - 1 , transaction .currency_symbol , transaction .currency_decimal_places ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount * - 1 , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount * - 1 , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2023-08-24 05:47:28 +02:00
{# transfer #}
2022-01-29 14:15:34 +01:00
{% elseif transaction .transaction_type_type == 'Transfer' %}
2023-03-25 11:33:42 +01:00
<span class="text-info money-transfer">
2022-01-29 14:15:34 +01:00
{{ formatAmountBySymbol ( transaction .amount * - 1 , transaction .currency_symbol , transaction .currency_decimal_places , false ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount * - 1 , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places , false ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount * - 1 , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
</span>
2023-08-24 05:47:28 +02:00
{# opening balance #}
2022-01-29 14:15:34 +01:00
{% elseif transaction .transaction_type_type == 'Opening balance' %}
{% if transaction .source_account_type == 'Initial balance account' %}
{{ formatAmountBySymbol ( transaction .amount * - 1 , transaction .currency_symbol , transaction .currency_decimal_places ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount * - 1 , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount * - 1 , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
{% else %}
{{ formatAmountBySymbol ( transaction .amount , transaction .currency_symbol , transaction .currency_decimal_places ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
{% endif %}
2023-08-24 05:47:28 +02:00
{# reconciliation #}
2022-01-29 14:15:34 +01:00
{% elseif transaction .transaction_type_type == 'Reconciliation' %}
{% if transaction .source_account_type == 'Reconciliation account' %}
{{ formatAmountBySymbol ( transaction .amount * - 1 , transaction .currency_symbol , transaction .currency_decimal_places ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount * - 1 , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount * - 1 , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
{% else %}
{{ formatAmountBySymbol ( transaction .amount , transaction .currency_symbol , transaction .currency_decimal_places ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
{% endif %}
2023-08-24 05:47:28 +02:00
{# liability credit #}
2022-01-29 14:15:34 +01:00
{% elseif transaction .transaction_type_type == 'Liability credit' %}
{% if transaction .source_account_type == 'Liability credit' %}
{{ formatAmountBySymbol ( transaction .amount , transaction .currency_symbol , transaction .currency_decimal_places ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
{% else %}
{{ formatAmountBySymbol ( transaction .amount * - 1 , transaction .currency_symbol , transaction .currency_decimal_places ) }}
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount * - 1 , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount * - 1 , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
{% endif %}
{# THE REST #}
{% else %}
2022-03-27 16:03:50 +02:00
{{ formatAmountBySymbol ( transaction .amount , transaction .currency_symbol , transaction .currency_decimal_places ) }}
2022-01-29 14:15:34 +01:00
{% if null != transaction .foreign_amount %}
( {{ formatAmountBySymbol ( transaction .foreign_amount , transaction .foreign_currency_symbol , transaction .foreign_currency_decimal_places ) }} )
{% endif %}
2024-12-26 05:21:28 +01:00
{% if convertToNative and 0 != transaction .native_amount %}
( {{ formatAmountBySymbol ( transaction .native_amount , defaultCurrency .symbol , defaultCurrency .decimal_places ) }} )
{% endif %}
2022-01-29 14:15:34 +01:00
{% endif %}
</td>
2024-11-08 21:13:41 +01:00
<td style=" {{ style | raw }} ">
2022-03-27 20:33:25 +02:00
{{ transaction .date .isoFormat ( monthAndDayFormat ) }}
2022-01-29 14:15:34 +01:00
</td>
<td style=" {{ style | raw }} ">
{% if 'Cash account' == transaction .source_account_type %}
<span class="text-success">( {{ 'cash' | _ }} )</span>
{% else %}
2023-09-05 19:34:46 +02:00
<a href=" {{ route ( 'accounts.show' , [ transaction .source_account_id | default ( 1 ) ] ) }} "
2022-01-29 14:15:34 +01:00
title=" {{ transaction .source_account_iban | default ( transaction .source_account_name ) }} "> {{ transaction .source_account_name }} </a>
{% endif %}
</td>
<td style=" {{ style | raw }} ">
{% if 'Cash account' == transaction .destination_account_type %}
<span class="text-success">( {{ 'cash' | _ }} )</span>
{% else %}
2023-09-05 19:34:46 +02:00
<a href=" {{ route ( 'accounts.show' , [ transaction .destination_account_id | default ( 1 ) ] ) }} "
2022-01-29 14:15:34 +01:00
title=" {{ transaction .destination_account_iban | default ( transaction .destination_account_name ) }} "> {{ transaction .destination_account_name }} </a>
{% endif %}
</td>
{% if showCategory %}
<td style=" {{ style | raw }} " class="hidden-xs">
{% if transaction .category_id %}
2023-09-05 19:34:46 +02:00
<a href=" {{ route ( 'categories.show' , [ transaction .category_id ] ) }} "
2022-01-29 14:15:34 +01:00
title=" {{ transaction .category_name }} "> {{ transaction .category_name }} </a>
{% endif %}
</td>
{% endif %}
{% if showBudget %}
<td style=" {{ style | raw }} " class="hidden-xs">
{% if transaction .budget_id %}
2023-09-05 19:34:46 +02:00
<a href=" {{ route ( 'budgets.show' , [ transaction .budget_id ] ) }} "
2022-01-29 14:15:34 +01:00
title=" {{ transaction .budget_name }} "> {{ transaction .budget_name }} </a>
{% endif %}
</td>
{% endif %}
{% if group .count == 1 %}
<td style=" {{ style | raw }} ;" class="hidden-xs">
<div class="btn-group btn-group-xs pull-right">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
{{ 'actions' | _ }} <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
2023-09-05 19:34:46 +02:00
<li><a href=" {{ route ( 'transactions.edit' , [ group .id ] ) }} "><span
2023-08-24 05:47:28 +02:00
class="fa fa-fw fa-pencil"></span> {{ 'edit' | _ }} </a></li>
2023-09-05 19:34:46 +02:00
<li><a href=" {{ route ( 'transactions.delete' , [ group .id ] ) }} "><span
2023-08-24 05:47:28 +02:00
class="fa fa-fw fa-trash"></span> {{ 'delete' | _ }} </a></li>
2022-01-29 14:15:34 +01:00
<li><a href="#" data-id=" {{ group .id }} " class="clone-transaction"><span
2023-08-24 05:47:28 +02:00
class="fa fa-copy fa-fw"></span> {{ 'clone' | _ }} </a></li>
2023-10-21 07:38:08 +02:00
<li><a href="#" data-id=" {{ group .id }} " class="clone-transaction-and-edit"><span
class="fa fa-copy fa-fw"></span> {{ 'clone_and_edit' | _ }} </a></li>
2022-01-29 14:15:34 +01:00
<li>
2023-09-05 19:34:46 +02:00
<a href=" {{ route ( 'rules.create-from-journal' , [ transaction .transaction_journal_id ] ) }} "><span
2023-08-24 05:47:28 +02:00
class="fa fa-fw fa-random"></span> {{ 'create_rule_from_transaction' | _ }}
2022-01-29 14:15:34 +01:00
</a></li>
</ul>
</div>
</td>
{% endif %}
{% if group .count != 1 %}
<td style=" {{ style | raw }} ;" class="hidden-xs">
</td>
{% endif %}
<td style=" {{ style | raw }} " class="hidden-xs">
<div class="pull-right">
<input id="list_ {{ transaction .transaction_journal_id }} "
value=" {{ transaction .transaction_journal_id }} "
name="journals[ {{ transaction .transaction_journal_id }} ]"
type="checkbox" class="mass-select form-check-inline"
data-value=" {{ transaction .transaction_journal_id }} "/>
</div>
</td>
</tr>
{% endfor %}
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="8">
<div class="pull-right">
<!-- Single button -->
<div class="btn-group action-menu btn-group-xs pull-right" style="display:none;">
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
{{ 'actions' | _ }} <span class="caret"></span>
</button>
<ul class="dropdown-menu btn-group-xs dropdown-menu-right">
<li><a href="#" class="mass-edit"><span class="fa fa-fw fa-pencil"></span>
<span> {{ 'mass_edit' | _ }} </span></a></li>
<li><a href="#" class="bulk-edit"><span class="fa fa-fw fa-pencil-square-o"></span>
<span> {{ 'bulk_edit' | _ }} </span></a></li>
<li><a href="#" class="mass-delete"><span class="fa fa-fw fa-trash"></span>
<span> {{ 'mass_delete' | _ }} </span></a></li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
{% if showCategory or showBudget %}
<td colspan="9" class="no-margin-pagination"> {{ groups .links ( 'pagination.bootstrap-4' ) | raw }} </td>
{% else %}
<td colspan="8" class="no-margin-pagination"> {{ groups .links ( 'pagination.bootstrap-4' ) | raw }} </td>
{% endif %}
</tr>
</tfoot>
</table>
<script type="text/javascript" nonce=" {{ J S _NONCE }} ">
2023-09-05 19:34:46 +02:00
var cloneGroupUrl = ' {{ route ( 'transactions.clone' ) }} ';
2023-10-21 07:38:08 +02:00
var cloneAndEditUrl = ' {{ route ( 'transactions.clone' ) }} ?redirect=edit';
2022-01-29 14:15:34 +01:00
</script>