+sub _gl_transaction_list {
+ my ($list, %params) = @_;
+
+ return record_list(
+ $list,
+ title => $::locale->text('GL Transactions'),
+ type => 'gl_transaction',
+ columns => [
+ [ $::locale->text('Transdate'), 'transdate' ],
+ [ $::locale->text('Reference'), 'reference' ],
+ [ $::locale->text('Description'), sub { $_[0]->presenter->gl_transaction(display => 'table-cell') } ],
+ ],
+ %params,
+ );
+}
+
+sub _bank_transactions {
+ my ($list, %params) = @_;
+
+ return record_list(
+ $list,
+ title => $::locale->text('Bank transactions'),
+ type => 'bank_transactions',
+ columns => [
+ [ $::locale->text('Transdate'), 'transdate' ],
+ [ $::locale->text('Local Bank Code'), sub { $_[0]->local_bank_account->presenter->bank_code } ],
+ [ $::locale->text('Local account number'), sub { $_[0]->local_bank_account->presenter->account_number } ],
+ [ $::locale->text('Remote Bank Code'), 'remote_bank_code' ],
+ [ $::locale->text('Remote account number'),'remote_account_number' ],
+ [ $::locale->text('Valutadate'), 'valutadate' ],
+ [ $::locale->text('Amount'), 'amount' ],
+ [ $::locale->text('Currency'), sub { $_[0]->currency->name } ],
+ [ $::locale->text('Remote name'), 'remote_name' ],
+ [ $::locale->text('Purpose'), 'purpose' ],
+ ],
+ %params,
+ );
+}
+
+sub _sepa_export_list {
+ my ($list, %params) = @_;
+
+ my ($source, $destination) = $params{type} eq 'sepa_transfer' ? qw(our vc) : qw(vc our);
+ $params{title} = $params{type} eq 'sepa_transfer' ? $::locale->text('Bank transfers via SEPA') : $::locale->text('Bank collections via SEPA');
+ $params{with_columns} = [ grep { $_ ne 'record_link_direction' } @{ $params{with_columns} || [] } ];
+
+ delete $params{edit_record_links};
+
+ return record_list(
+ $list,
+ columns => [
+ [ $::locale->text('Export Number'), 'sepa_export', ],
+ [ $::locale->text('Execution date'), 'execution_date' ],
+ [ $::locale->text('Export date'), sub { $_[0]->sepa_export->itime->to_kivitendo } ],
+ [ $::locale->text('Source BIC'), "${source}_bic" ],
+ [ $::locale->text('Source IBAN'), "${source}_iban" ],
+ [ $::locale->text('Destination BIC'), "${destination}_bic" ],
+ [ $::locale->text('Destination IBAN'), "${destination}_iban" ],
+ [ $::locale->text('Amount'), 'amount' ],
+ ],
+ %params,
+ );
+}
+
+sub _sepa_transfer_list {
+ my ($list, %params) = @_;
+ _sepa_export_list($list, %params, type => 'sepa_transfer');
+}
+
+sub _sepa_collection_list {
+ my ($list, %params) = @_;
+ _sepa_export_list($list, %params, type => 'sepa_collection');
+}
+
+sub _letter_list {
+ my ($list, %params) = @_;
+
+ return record_list(
+ $list,
+ title => $::locale->text('Letters'),
+ type => 'letter',
+ columns => [
+ [ $::locale->text('Date'), 'date' ],
+ [ $::locale->text('Letternumber'), sub { $_[0]->presenter->letter(display => 'table-cell') } ],
+ [ $::locale->text('Customer'), 'customer' ],
+ [ $::locale->text('Reference'), 'reference' ],
+ [ $::locale->text('Subject'), 'subject' ],
+ ],
+ %params,
+ );
+}
+
+sub _email_journal_list {
+ my ($list, %params) = @_;
+
+ return record_list(
+ $list,
+ title => $::locale->text('Email'),
+ type => 'email_journal',
+ columns => [
+ [ $::locale->text('Sent on'), sub { $_[0]->sent_on->to_kivitendo(precision => 'seconds') } ],
+ [ $::locale->text('Subject'), sub { $_[0]->presenter->email_journal(display => 'table-cell') } ],
+ [ $::locale->text('Status'), 'status' ],
+ [ $::locale->text('From'), 'from' ],
+ [ $::locale->text('To'), 'recipients' ],
+ ],
+ %params,
+ );
+}
+sub _dunning_list {
+ my ($list, %params) = @_;
+
+ return record_list(
+ $list,
+ title => $::locale->text('Dunnings'),
+ type => 'dunning',
+ columns => [
+ [ $::locale->text('Dunning Level'), sub { $_[0]->presenter->dunning(display => 'table-cell') } ],
+ [ $::locale->text('Dunning Date'), 'transdate' ],
+ [ $::locale->text('Dunning Duedate'), 'duedate' ],
+ [ $::locale->text('Total Fees'), 'fee' ],
+ [ $::locale->text('Interest'), 'interest' ],
+ ],
+ %params,
+ );
+}
+