use POSIX qw(strftime);
 use List::Util qw(sum first max);
+use List::UtilsBy qw(sort_by);
 
 use SL::AR;
 use SL::FU;
       gldate           => $form->{"gldate_$i"},
     };
 
-  # default account for current assets (i.e. 1801 - SKR04) if no account is selected
-  $form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
+    # default account for current assets (i.e. 1801 - SKR04) if no account is selected
+    $form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
 
     $payment->{selectAR_paid} =
       NTI($cgi->popup_menu('-name' => "AR_paid_$i",
     push @payments, $payment;
   }
 
+  my @empty = grep { $_->{paid} eq '' } @payments;
+  @payments = (
+    (sort_by { DateTime->from_kivitendo($_->{datepaid}) } grep { $_->{paid} ne '' } @payments),
+    @empty,
+  );
+
   $form->{totalpaid} = sum map { $_->{paid} } @payments;
 
   $form->header;
     ARselected           => $ARselected,
     title_str            => $title,
     follow_up_trans_info => $follow_up_trans_info,
+    today                => DateTime->today,
   });
 
   $main::lxdebug->leave_sub();
   @columns =
     qw(transdate id type invnumber ordnumber cusordnumber name netamount tax amount paid
        datepaid due duedate transaction_description notes salesman employee shippingpoint shipvia
-       marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms charts customertype);
+       marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms charts customertype direct_debit);
 
   my $ct_cvar_configs                 = CVar->get_configs('module' => 'CT');
   my @ct_includeable_custom_variables = grep { $_->{includeable} } @{ $ct_cvar_configs };
     'payment_terms'           => { 'text' => $locale->text('Payment Terms'), },
     'charts'                  => { 'text' => $locale->text('Buchungskonto'), },
     'customertype'            => { 'text' => $locale->text('Customer type'), },
+    'direct_debit'            => { 'text' => $locale->text('direct debit'), },
     %column_defs_cvars,
   );
 
-  foreach my $name (qw(id transdate duedate invnumber ordnumber cusordnumber name datepaid employee shippingpoint shipvia transaction_description)) {
+  foreach my $name (qw(id transdate duedate invnumber ordnumber cusordnumber name datepaid employee shippingpoint shipvia transaction_description direct_debit)) {
     my $sortdir                 = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
     $column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
   }
       $ar->{invoice}    ? $locale->text("Invoice (one letter abbreviation)") :
                           $locale->text("AR Transaction (abbreviation)");
 
+    $ar->{direct_debit} = $ar->{direct_debit} ? $::locale->text('yes') : $::locale->text('no');
+
     my $row = { };
 
     foreach my $column (@columns) {