my $bank_accounts = SL::DB::Manager::BankAccount->get_all_sorted( query => [ obsolete => 0 ] );
+ $self->setup_search_action_bar;
$self->render('bank_transactions/search',
BANK_ACCOUNTS => $bank_accounts);
}
$self->make_filter_summary;
$self->prepare_report;
+ $self->setup_list_all_action_bar;
$self->report_generator_list_objects(report => $self->{report}, objects => $self->models->get);
}
if ( $payment_sent
&& any { ( $_->is_sales && ($_->amount > 0))
- || (!$_->is_sales && ($_->amount < 0))
+ || (!$_->is_sales && ($_->amount < 0) && ($_->invoice_type eq 'purchase_invoice'))
} @{ $data{invoices} }) {
return {
%data,
source => $source,
memo => $memo,
transdate => $bank_transaction->transdate->to_kivitendo);
- } elsif ( $invoice->is_sales && $invoice->invoice_type eq 'credit_note' ) {
+ } elsif (( $invoice->is_sales && $invoice->invoice_type eq 'credit_note' ) ||
+ (!$invoice->is_sales && $invoice->invoice_type eq 'ap_transaction' )) {
# no check for overpayment/multiple payments
$invoice->pay_invoice(chart_id => $bank_transaction->local_bank_account->chart_id,
trans_id => $invoice->id,
);
}
+sub setup_search_action_bar {
+ my ($self, %params) = @_;
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add(
+ action => [
+ t8('Filter'),
+ submit => [ '#search_form', { action => 'BankTransaction/list' } ],
+ accesskey => 'enter',
+ ],
+ );
+ }
+}
+
+sub setup_list_all_action_bar {
+ my ($self, %params) = @_;
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add(
+ action => [
+ t8('Filter'),
+ submit => [ '#filter_form', { action => 'BankTransaction/list_all' } ],
+ accesskey => 'enter',
+ ],
+ );
+ }
+}
+
1;
__END__