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);
}
$count += scalar( @{$invoice_ids} );
}
}
+ foreach (@{ $self->problems }) {
+ $count-- if $_->{result} eq 'error';
+ }
return $count;
}
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
+
+ # 1. $invoice->open_amount is arap.amount - ararp.paid (always positive!)
+ # 2. $bank_transaction->amount is negative for outgoing transactions and positive for
+ # incoming transactions.
+ # 1. and 2. => we have to turn the sign for invoice_amount in bank_transactions
+ # for verifying expected data, check t/bank/bank_transactions.t
+ $bank_transaction->invoice_amount($invoice->open_amount * -1);
+
$invoice->pay_invoice(chart_id => $bank_transaction->local_bank_account->chart_id,
trans_id => $invoice->id,
amount => $invoice->open_amount,
);
}
+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__