sub get_payment_select_options_for_bank_transaction {
   my ($self, $bt_id, %params) = @_;
 
-  my $bt = SL::DB::Manager::BankTransaction->find_by( id => $bt_id );
-  croak ("Need bt_id to get a valid bank transaction") unless $bt;
+  # no skonto date  -> no select option
+  return { payment_type => 'without_skonto', display => t8('without skonto') , selected => 1 } unless $self->skonto_date;
 
-  # user may overpay invoices and if not, this case should better be handled elsewhere
-  #my $open_amount = $self->open_amount;
-  #croak ("Need an open invoice") unless $open_amount;
+  my $bt = SL::DB::BankTransaction->new(id => $bt_id)->load;
 
   my @options;
 
-    if ($self->skonto_date && $self->within_skonto_period($bt->transdate)) {
-      push(@options, { payment_type => 'without_skonto', display => t8('without skonto') });
-      push(@options, { payment_type => 'with_skonto_pt', display => t8('with skonto acc. to pt'), selected => 1 });
-    } else {
-      push(@options, { payment_type => 'without_skonto', display => t8('without skonto') , selected => 1 });
-      push(@options, { payment_type => 'with_skonto_pt', display => t8('with skonto acc. to pt')});
-    }
+  if ($self->skonto_date && $self->within_skonto_period($bt->transdate)) {
+    push(@options, { payment_type => 'without_skonto', display => t8('without skonto') });
+    push(@options, { payment_type => 'with_skonto_pt', display => t8('with skonto acc. to pt'), selected => 1 });
+  } else {
+    push(@options, { payment_type => 'without_skonto', display => t8('without skonto') , selected => 1 });
+    push(@options, { payment_type => 'with_skonto_pt', display => t8('with skonto acc. to pt')});
   }
-
   return @options;
 }
 
 Make suggestion for a skonto payment type by returning an HTML blob of the options
 of a HTML drop-down select with the most likely option preselected.
 
-This is a helper function for BankTransaction/ajax_payment_suggestion.
+This is a helper function for BankTransaction/ajax_payment_suggestion and
+template/webpages/bank_transactions/invoices.html
 
 We are working with an existing payment, so difference_as_skonto never makes sense.
 
+If skonto is not possible (skonto_date does not exists) simply return
+the single 'no skonto' option as a visual hint.
+
 If skonto is possible (skonto_date exists), add two possibilities:
 without_skonto and with_skonto_pt if payment date is within skonto_date,
 preselect with_skonto_pt, otherwise preselect without skonto.