Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 4e155b5c

Von Moritz Bunkus vor etwa 8 Jahren hinzugefügt

  • ID 4e155b5c699331434f1aa51db578afe9b6756c04
  • Vorgänger 47df98d0
  • Nachfolger 37c03103

ActionBar: Verwendung bei SEPA-Einzügen/-Überweisungen

Unterschiede anzeigen:

bin/mozilla/sepa.pl
use List::Util qw(sum first);
use POSIX qw(strftime);
use Data::Dumper;
use SL::DB::BankAccount;
use SL::DB::SepaExport;
use SL::Chart;
use SL::CT;
use SL::Form;
use SL::GenericTranslations;
use SL::Locale::String qw(t8);
use SL::ReportGenerator;
use SL::SEPA;
use SL::SEPA::XML;
......
$invoice->{reference_prefix_vc} = ' ' . $prefix_vc_number unless $prefix_vc_number =~ m/^ /;
}
setup_sepa_add_transfer_action_bar();
$form->header();
print $form->parse_html_template('sepa/bank_transfer_add',
{ 'INVOICES' => $invoices,
......
# all the information from retrieve_open_invoices is then ADDED to what was passed via @{ $form->{bank_transfers} }
# parse amount from the entry in the form, but take skonto_amount from PT again
# the map inserts the values of invoice_map directly into the array of hashes
my %selected_ids = map { ($_ => 1) } @{ $form->{ids} || [] };
my %invoices_map = map { $_->{id} => $_ } @{ $invoices };
my @bank_transfers =
map +{ %{ $invoices_map{ $_->{$arap_id} } }, %{ $_ } },
grep { $_->{selected} && (0 < $_->{amount}) && $invoices_map{ $_->{$arap_id} } }
grep { ($_->{selected} || $selected_ids{$_->{$arap_id}}) && (0 < $_->{amount}) && $invoices_map{ $_->{$arap_id} } }
map { $_->{amount} = $form->parse_amount($myconfig, $_->{amount}); $_ }
@{ $form->{bank_transfers} || [] };
......
'id' => \@vc_ids);
my @vc_bank_info = sort { lc $a->{name} cmp lc $b->{name} } values %{ $vc_bank_info };
setup_sepa_create_transfer_action_bar(is_vendor => $vc eq 'vendor');
$form->header();
print $form->parse_html_template('sepa/bank_transfer_create',
{ 'BANK_TRANSFERS' => \@bank_transfers,
......
$form->{title} = $vc eq 'customer' ? $::locale->text('List of bank collections') : $locale->text('List of bank transfers');
setup_sepa_search_transfer_action_bar();
$form->header();
print $form->parse_html_template('sepa/bank_transfer_search', { vc => $vc });
......
$row->{$_}->{data} = $::form->format_amount(\%::myconfig, $row->{$_}->{data}, 2) for qw(sum_amounts);
if (!$export->{closed}) {
$row->{selected}->{raw_data} =
$cgi->hidden(-name => "exports[+].id", -value => $export->{id})
. $cgi->checkbox(-name => "exports[].selected", -value => 1, -label => '');
$row->{selected}->{raw_data} = $cgi->checkbox(-name => "ids[]", -value => $export->{id}, -label => '');
}
$report->add_data($row);
}
setup_sepa_list_transfers_action_bar(show_buttons => $open_available, is_vendor => $vc eq 'vendor');
$report->generate_with_headers();
$main::lxdebug->leave_sub();
......
if (!$form->{mode} || ($form->{mode} eq 'single')) {
push @ids, $form->{id};
} else {
@ids = map $_->{id}, grep { $_->{selected} } @{ $form->{exports} || [] };
@ids = @{ $form->{ids} || [] };
if (!@ids) {
$form->show_generic_error($locale->text('You have not selected any export.'));
......
$form->error($locale->text('That export does not exist.'));
}
my $show_post_payments_button = any { !$_->{export_closed} && !$_->{executed} } @{ $export->{items} };
my $has_executed = any { $_->{executed} } @{ $export->{items} };
setup_sepa_edit_transfer_action_bar(
show_post_payments_button => $show_post_payments_button,
has_executed => $has_executed,
);
$form->{title} = $locale->text('View SEPA export');
$form->header();
print $form->parse_html_template('sepa/bank_transfer_edit',
{ 'ids' => \@ids,
'export' => $export,
'current_date' => $form->current_date(\%main::myconfig),
'show_post_payments_button' => any { !$_->{export_closed} && !$_->{executed} } @{ $export->{items} },
{ ids => \@ids,
export => $export,
current_date => $form->current_date(\%main::myconfig),
show_post_payments_button => $show_post_payments_button,
});
$main::lxdebug->leave_sub();
......
my $locale = $main::locale;
my $vc = $form->{vc} eq 'customer' ? 'customer' : 'vendor';
my @items = grep { $_->{selected} } @{ $form->{items} || [] };
my %selected = map { ($_ => 1) } @{ $form->{ids} || [] };
my @items = grep { $selected{$_->{id}} } @{ $form->{items} || [] };
if (!@items) {
$form->show_generic_error($locale->text('You have not selected any item.'));
......
my $locale = $main::locale;
my $vc = $form->{vc} eq 'customer' ? 'customer' : 'vendor';
my @ids = @{ $form->{items} || [] };
my @export_ids = uniq map { $_->{export_id} } @ids;
my @ids = @{ $form->{ids} || [] };
my @export_ids = uniq map { $_->{sepa_export_id} } @{ $form->{items} || [] };
$form->show_generic_error($locale->text('Multi mode not supported.')) if 1 != scalar @export_ids;
......
my @items = ();
foreach my $id (@ids) {
my $item = first { $_->{id} == $id->{id} } @{ $export->{items} };
my $item = first { $_->{id} == $id } @{ $export->{items} };
push @items, $item if $item;
}
......
my @ids;
if ($form->{mode} && ($form->{mode} eq 'multi')) {
@ids = map $_->{id}, grep { $_->{selected} } @{ $form->{exports} || [] };
@ids = @{ $form->{ids} || [] };
} else {
@ids = ($form->{id});
......
$main::lxdebug->leave_sub();
}
sub bank_transfer_mark_as_closed_step1 {
$main::lxdebug->enter_sub();
my $form = $main::form;
my $locale = $main::locale;
my $vc = $form->{vc} eq 'customer' ? 'customer' : 'vendor';
my @export_ids = map { $_->{id} } grep { $_->{selected} } @{ $form->{exports} || [] };
if (!@export_ids) {
$form->show_generic_error($locale->text('You have not selected any export.'));
}
my @open_export_ids = ();
foreach my $id (@export_ids) {
my $export = SL::SEPA->retrieve_export('id' => $id, vc => $vc);
push @open_export_ids, $id if (!$export->{closed});
}
if (!@open_export_ids) {
$form->show_generic_error($locale->text('All of the exports you have selected were already closed.'));
}
$form->{title} = $locale->text('Close SEPA exports');
$form->header();
print $form->parse_html_template('sepa/bank_transfer_mark_as_closed_step1', { 'OPEN_EXPORT_IDS' => \@open_export_ids, vc => $vc });
$main::lxdebug->leave_sub();
}
sub bank_transfer_mark_as_closed_step2 {
sub bank_transfer_mark_as_closed {
$main::lxdebug->enter_sub();
my $form = $main::form;
my $locale = $main::locale;
map { SL::SEPA->close_export('id' => $_); } @{ $form->{open_export_ids} || [] };
map { SL::SEPA->close_export('id' => $_); } @{ $form->{ids} || [] };
$form->{title} = $locale->text('Close SEPA exports');
$form->header();
......
$form->error($main::locale->text('No action defined.'));
}
sub setup_sepa_add_transfer_action_bar {
my (%params) = @_;
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
action => [
t8('Step 2'),
submit => [ '#form', { action => "bank_transfer_create" } ],
accesskey => 'enter',
checks => [ [ 'kivi.check_if_entries_selected', '[name="ids[]"]' ] ],
],
);
}
}
sub setup_sepa_create_transfer_action_bar {
my (%params) = @_;
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
action => [
t8('Create'),
submit => [ '#form', { action => "bank_transfer_create" } ],
accesskey => 'enter',
tooltip => $params{is_vendor} ? t8('Create bank transfer') : t8('Create bank collection'),
],
action => [
t8('Back'),
call => [ 'kivi.history_back' ],
],
);
}
}
sub setup_sepa_search_transfer_action_bar {
my (%params) = @_;
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
action => [
t8('Search'),
submit => [ '#form', { action => 'bank_transfer_list' } ],
accesskey => 'enter',
],
);
}
}
sub setup_sepa_list_transfers_action_bar {
my (%params) = @_;
return unless $params{show_buttons};
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
combobox => [
action => [ t8('Actions') ],
action => [
t8('SEPA XML download'),
submit => [ '#form', { action => 'bank_transfer_download_sepa_xml' } ],
checks => [ [ 'kivi.check_if_entries_selected', '[name="ids[]"]' ] ],
],
action => [
t8('Post payments'),
submit => [ '#form', { action => 'bank_transfer_edit' } ],
checks => [ [ 'kivi.check_if_entries_selected', '[name="ids[]"]' ] ],
],
action => [
t8('Mark as closed'),
submit => [ '#form', { action => 'bank_transfer_mark_as_closed' } ],
checks => [ [ 'kivi.check_if_entries_selected', '[name="ids[]"]' ] ],
confirm => [ $params{is_vendor} ? t8('Do you really want to close the selected SEPA exports? No payment will be recorded for bank transfers that haven\'t been marked as executed yet.')
: t8('Do you really want to close the selected SEPA exports? No payment will be recorded for bank collections that haven\'t been marked as executed yet.') ],
],
], # end of combobox "Actions"
);
}
}
sub setup_sepa_edit_transfer_action_bar {
my (%params) = @_;
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
action => [
t8('Post'),
submit => [ '#form', { action => 'bank_transfer_post_payments' } ],
accesskey => 'enter',
tooltip => t8('Post payments for selected invoices'),
checks => [ [ 'kivi.check_if_entries_selected', '[name="ids[]"]' ] ],
only_if => $params{show_post_payments_button},
],
action => [
t8('Payment list'),
submit => [ '#form', { action => 'bank_transfer_payment_list_as_pdf' } ],
accesskey => 'enter',
tooltip => t8('Download list of payments as PDF'),
checks => [ [ 'kivi.check_if_entries_selected', '[name="ids[]"]' ] ],
not_if => $params{show_post_payments_button},
],
);
}
}
1;
locale/de/all
'Accrual' => 'Soll-Versteuerung',
'Accrual accounting' => 'Soll-Versteuerung',
'Action' => 'Aktion',
'Actions' => 'Aktionen',
'Activate kivitendo module' => 'Modul aktivieren',
'Active' => 'Aktiv',
'Active?' => 'Aktiviert?',
......
'All general ledger entries' => 'Alle Hauptbucheinträge',
'All groups' => 'Alle Gruppen',
'All modules' => 'Alle Module',
'All of the exports you have selected were already closed.' => 'Alle von Ihnen ausgewählten Exporte sind bereits abgeschlossen.',
'All partsgroups' => 'Alle Warengruppen',
'All price sources' => 'Alle Preisquellen',
'All reports' => 'Alle Berichte (Konten&uuml;bersicht, Summen- u. Saldenliste, Erfolgsrechnung, GuV, BWA, Bilanz, Projektbuchungen)',
......
'Do you really want to cancel this general ledger transaction?' => 'Wollen Sie diese Dialogbuchung wirklich stornieren?',
'Do you really want to cancel this invoice?' => 'Wollen Sie diese Rechnung wirklich stornieren?',
'Do you really want to cancel?' => 'Wollen Sie wirklich abbrechen?',
'Do you really want to close the following SEPA exports? No payment will be recorded for bank collections that haven\'t been marked as executed yet.' => 'Wollen Sie wirklich die folgenden SEPA-Exporte abschließen? Für Überweisungen, die noch nicht gebucht wurden, werden dann keine Zahlungen verbucht.',
'Do you really want to close the following SEPA exports? No payment will be recorded for bank transfers that haven\'t been marked as executed yet.' => 'Wollen Sie wirklich die folgenden SEPA-Exporte abschließen? Für Überweisungen, die noch nicht gebucht wurden, werden dann keine Zahlungen verbucht.',
'Do you really want to close the selected SEPA exports? No payment will be recorded for bank collections that haven\'t been marked as executed yet.' => 'Wollen Sie wirklich die ausgewählten SEPA-Exporte abschließen? Für Überweisungen, die noch nicht gebucht wurden, werden dann keine Zahlungen verbucht.',
'Do you really want to close the selected SEPA exports? No payment will be recorded for bank transfers that haven\'t been marked as executed yet.' => 'Wollen Sie wirklich die ausgewählten SEPA-Exporte abschließen? Für Überweisungen, die noch nicht gebucht wurden, werden dann keine Zahlungen verbucht.',
'Do you really want to delete AP transaction #1?' => 'Wollen Sie wirklich die Kreditorenbuchung #1 löschen?',
'Do you really want to delete AR transaction #1?' => 'Wollen Sie wirklich die Debitorenbuchung #1 löschen?',
'Do you really want to delete GL transaction #1?' => 'Wollen Sie wirklich die Dialogbuchung #1 löschen?',
......
'Download PDF' => 'PDF herunterladen',
'Download PDF, do not print' => 'Nicht drucken, sondern PDF herunterladen',
'Download SEPA XML export file' => 'SEPA-XML-Exportdatei herunterladen',
'Download list of payments as PDF' => 'Zahlungsliste als PDF herunterladen',
'Download picture' => 'Bild herunterladen',
'Download sample file' => 'Beispieldatei herunterladen',
'Draft deleted' => 'Entwurf gelöscht',
......
'Payment Terms' => 'Zahlungsbedingungen',
'Payment Terms missing in row ' => 'Zahlungsfrist fehlt in Zeile ',
'Payment date missing!' => 'Tag der Zahlung fehlt!',
'Payment list as PDF' => 'Zahlungsliste als PDF',
'Payment list' => 'Zahlungsliste',
'Payment posted!' => 'Zahlung gebucht!',
'Payment terms' => 'Zahlungsbedingungen',
'Payment terms (database ID)' => 'Zahlungsbedingungen (Datenbank-ID)',
......
'Post' => 'Buchen',
'Post Payment' => 'Zahlung buchen',
'Post payments' => 'Zahlungen buchen',
'Post payments for selected invoices' => 'Zahlungen für ausgewählten Rechnungen buchen',
'Posting Configuration' => 'Buchungskonfiguration',
'Postscript' => 'Postscript',
'Posustva_coa' => 'USTVA Kennz.',
......
'SEPA XML download' => 'SEPA-XML-Download',
'SEPA creditor ID' => 'SEPA-Kreditoren-Identifikation',
'SEPA exports' => 'SEPA-Exporte',
'SEPA exports:' => 'SEPA-Exporte:',
'SEPA message ID' => 'SEPA-Nachrichten-ID',
'SEPA message IDs' => 'SEPA-Nachrichten-IDs',
'SEPA strings' => 'SEPA-Überweisungen',
templates/webpages/sepa/bank_transfer_add.html
<p><div class="listtop">[% title %]</div></p>
<form action="sepa.pl" method="post">
<form action="sepa.pl" method="post" id="form">
<p>
[%- IF is_vendor %]
[% 'Please select the source bank account for the transfers:' | $T8 %]
......
<tr class="listrow[% IF !invoice.vc_bank_info_ok && invoice.checked %]_error[% END %]">
<td align="center">
[%- IF invoice.vc_bank_info_ok %]
<input type="checkbox" name="bank_transfers[].selected" value="1"[% IF invoice.checked %] checked[% END %]>
[% L.checkbox_tag("ids[]", value=invoice.id, checked=checked) %]
[%- END %]
</td>
<td>
......
</p>
[%- END %]
<p>
<input type="submit" class="submit" name="action_bank_transfer_create" value="[% 'Step 2' | $T8 %]">
</p>
<input type="hidden" name="action" value="dispatcher">
<input type="hidden" name="vc" value="[%- HTML.escape(vc) %]">
</form>
<script type="text/javascript">
<!--
$(function() {
$("#select_all").checkall('INPUT[name="bank_transfers[].selected"]');
$("#select_all").checkall('INPUT[name="ids[]"]');
});
-->
templates/webpages/sepa/bank_transfer_create.html
<p><div class="listtop">[% title %]</div></p>
<form action="sepa.pl" method="post">
<form action="sepa.pl" method="post" id="form">
<p>1.
[%- IF is_vendor %]
[% 'Please select the source bank account for the transfers:' | $T8 %]
......
[% 'Sum open amount' | $T8 %]: [% LxERP.format_amount(total_trans, -2) %]
</p>
<p>
[%- IF is_vendor %]
<input type="submit" class="submit" name="action_bank_transfer_create" value="[% 'Create bank transfer' | $T8 %]">
[%- ELSE %]
<input type="submit" class="submit" name="action_bank_transfer_create" value="[% 'Create bank collection' | $T8 %]">
[%- END %]
</p>
<input type="hidden" name="action" value="dispatcher">
<input type="hidden" name="vc" value="[%- HTML.escape(vc) %]">
<input type="hidden" name="confirmation" value="1">
</form>
<script type="text/javascript">
// function toggle(id) {
// $('#skonto_' + id).change(function() {
// if($('#skonto_' + id).prop("checked")) {
// $('#' + id).val( $('#amount_less_skonto_' + id).val() );
// } else {
// $('#' + id).val( $('#invoice_open_amount_' + id).val() );
// }
// });
// };
$( ".type_target" ).change(function() {
type_id = $(this).attr('id');
var id = type_id.match(/\d*$/);
templates/webpages/sepa/bank_transfer_edit.html
[%- END %]
<h1>[% title %]: [% HTML.escape(export.ids.join(', ')) %]</h1>
<form action="sepa.pl" method="post">
<input type="hidden" name="action" value="dispatcher">
<form action="sepa.pl" method="post" id="form">
<p>
<table>
<tr>
[%- IF show_post_payments_button %]
<th class="listheading" align="center"><input type="checkbox" id="select_all"></th>
[%- END %]
<th class="listheading" align="center"><input type="checkbox" id="select_all"></th>
<th class="listheading">[% 'Invoice' | $T8 %]</th>
<th class="listheading">[%- IF is_vendor %][% 'Vendor' | $T8 %][%- ELSE %][%- LxERP.t8('Customer') %][%- END %]</th>
[%- IF is_vendor %]
......
<th class="listheading" align="right">[% 'Execution date' | $T8 %]</th>
</tr>
<tr>
<th class="listheading" colspan="[% IF show_post_payments_button %]3[% ELSE %]2[% END %]">&nbsp;</th>
<th class="listheading" colspan="3">&nbsp;</th>
<th class="listheading">[% 'IBAN' | $T8 %]</th>
<th class="listheading">[% 'BIC' | $T8 %]</th>
<th class="listheading">[% 'IBAN' | $T8 %]</th>
......
[% L.date_tag('set_all_execution_date', '', onchange='set_all_execution_date_fields(this);') %]
</th>
[%- ELSE %]
<th class="listheading" colspan="4">&nbsp;</th>
<th class="listheading" colspan="[% IF vc == 'customer' %]7[% ELSE %]6[% END %]">&nbsp;</th>
[%- END %]
</tr>
[%- FOREACH item = export.items %]
<tr class="listrow[% loop.count % 2 %]">
[%- IF show_post_payments_button %]
<input type="hidden" name="items[+].id" value="[% HTML.escape(item.id) %]">
<input type="hidden" name="items[].sepa_export_id" value="[% HTML.escape(item.sepa_export_id) %]">
<td align="center">
[%- UNLESS item.executed %]
<input type="checkbox" name="items[].selected" value="1">
[%- END %]
</td>
[%- END %]
<tr class="listrow">
<td align="center">
[%- IF (show_post_payments_button && !item.executed) || (!show_post_payments_button && item.executed) %]
[% L.hidden_tag("items[+].id", item.id) %]
[% L.hidden_tag("items[].sepa_export_id", item.sepa_export_id) %]
[% L.checkbox_tag("ids[]", value=item.id) %]
[%- END %]
</td>
<td>
<a href="[% IF item.invoice %][% iris %][% ELSE %][% arap %][% END %].pl?action=edit&type=invoice&id=[% IF is_vendor %][% HTML.url(item.ap_id) %][% ELSE %][% HTML.url(item.ar_id) %][% END %]">[% HTML.escape(item.invnumber) %]</a>
</td>
......
</table>
</p>
<p><hr></p>
[%- IF show_post_payments_button %]
<p>
<input type="submit" class="submit" name="action_bank_transfer_post_payments" value="[% 'Post payments' | $T8 %]">
</p>
<script type="text/javascript">
<!--
function set_all_execution_date_fields(input) {
......
}
$(function() {
$("#select_all").checkall('INPUT[name="items[].selected"]');
$("#select_all").checkall('INPUT[name="ids[]"]');
});
-->
</script>
[%- ELSE %]
[%- SET has_executed = 0;
FOREACH item = export.items;
IF item.executed;
SET has_executed = 1;
END ;
END ;
IF has_executed %]
<p>
<input type="submit" class="submit" name="action_bank_transfer_payment_list_as_pdf" value="[% 'Payment list as PDF' | $T8 %]">
</p>
[%- FOREACH item = export.items %]
[%- IF item.executed %]
<input type="hidden" name="items[+].id" value="[% HTML.escape(item.id) %]">
<input type="hidden" name="items[].export_id" value="[% HTML.escape(item.export_id) %]">
[%- END %]
[%- END %]
[%- END %]
[% END %]
<input type="hidden" name="vc" value="[% HTML.escape(vc) %]">
</form>
templates/webpages/sepa/bank_transfer_list_bottom.html
[% USE HTML %]
[%- IF show_buttons %]
<input type="hidden" name="action" value="dispatcher">
<input type="hidden" name="mode" value="multi">
<input type="hidden" name="vc" value="[%- HTML.escape(vc) %]">
<p>
<input type="submit" class="submit" name="action_bank_transfer_download_sepa_xml" value="[% 'SEPA XML download' | $T8 %]">
<input type="submit" class="submit" name="action_bank_transfer_edit" value="[% 'Post payments' | $T8 %]">
<input type="submit" class="submit" name="action_bank_transfer_mark_as_closed_step1" value="[% 'Mark as closed' | $T8 %]">
</p>
<script type="text/javascript">
<!--
$(function() {
$("#select_all").checkall('INPUT[name="exports[].selected"]');
$("#select_all").checkall('INPUT[name="ids[]"]');
});
-->
</script>
templates/webpages/sepa/bank_transfer_list_top.html
<form action="sepa.pl" method="post">
<form action="sepa.pl" method="post" id="form">
templates/webpages/sepa/bank_transfer_mark_as_closed_step1.html
[%- USE T8 %]
[% USE HTML %]
<h1>[% title %]</h1>
<form action="sepa.pl" method="post">
<p>
[%- IF vc == 'vendor' %]
[%- 'Do you really want to close the following SEPA exports? No payment will be recorded for bank transfers that haven\'t been marked as executed yet.' | $T8 %]
[%- ELSE %]
[%- 'Do you really want to close the following SEPA exports? No payment will be recorded for bank collections that haven\'t been marked as executed yet.' | $T8 %]
[%- END %]
</p>
<p>
[% 'SEPA exports:' | $T8 %]
[%- FOREACH id = OPEN_EXPORT_IDS %]
[%- UNLESS loop.first %], [%- END %]
<input type="hidden" name="open_export_ids[]" value="[% HTML.escape(id) %]">
<a href="sepa.pl?action=bank_transfer_edit&id=[% HTML.url(id) %]&vc=[% HTML.url(vc) %]">[% HTML.escape(id) %]</a>
[%- END %]
</p>
<p>
<input type="submit" class="submit" name="action_bank_transfer_mark_as_closed_step2" value="[% 'Mark as closed' | $T8 %]">
<input type="button" class="submit" value="[% 'Back' | $T8 %]" onclick="history.back()">
</p>
<input type="hidden" name="action" value="dispatcher">
<input type="hidden" name="vc" value="[%- HTML.escape(vc) %]">
</form>
templates/webpages/sepa/bank_transfer_search.html
[%- USE L %]
<h1>[% title %]</h1>
<form action="sepa.pl" method="post">
<form action="sepa.pl" method="post" id="form">
<p>
<table>
<tr>
......
</table>
</p>
<p>
<input type="hidden" name="action" value="dispatcher">
<input type="hidden" name="vc" value="[%- HTML.escape(vc) %]">
<input type="submit" class="submit" name="action_bank_transfer_list" value="[% 'Continue' | $T8 %]">
</p>
</form>

Auch abrufbar als: Unified diff