Sortierung in Berichten über Ausgangsrechnungen/Debitorenbuchungen auch auf- und...
[kivitendo-erp.git] / SL / AR.pm
index cd40636..d9a42ce 100644 (file)
--- a/SL/AR.pm
+++ b/SL/AR.pm
@@ -411,15 +411,17 @@ sub ar_transactions {
     qq|SELECT a.id, a.invnumber, a.ordnumber, a.transdate, | .
     qq|  a.duedate, a.netamount, a.amount, a.paid, | .
     qq|  a.invoice, a.datepaid, a.terms, a.notes, a.shipvia, | .
-    qq|  a.shippingpoint, a.storno, a.globalproject_id, | .
+    qq|  a.shippingpoint, a.storno, a.storno_id, a.globalproject_id, | .
     qq|  a.marge_total, a.marge_percent, | .
     qq|  a.transaction_description, | .
     qq|  pr.projectnumber AS globalprojectnumber, | .
     qq|  c.name, | .
-    qq|  e.name AS employee | .
+    qq|  e.name AS employee, | .
+    qq|  e2.name AS salesman | .
     qq|FROM ar a | .
     qq|JOIN customer c ON (a.customer_id = c.id) | .
     qq|LEFT JOIN employee e ON (a.employee_id = e.id) | .
+    qq|LEFT JOIN employee e2 ON (a.salesman_id = e2.id) | .
     qq|LEFT JOIN project pr ON (a.globalproject_id = pr.id)|;
 
   my $where = "1 = 1";
@@ -466,15 +468,16 @@ sub ar_transactions {
 
   my @a = (transdate, invnumber, name);
   push @a, "employee" if $form->{l_employee};
-  my $sortorder = join(', ', @a);
+  my $sortdir   = $form->{sortdir} ? 'ASC' : 'DESC';
+  my $sortorder = join(', ', map { "$_ $sortdir" } @a);
 
   if (grep({ $_ eq $form->{sort} }
            qw(id transdate duedate invnumber ordnumber name
               datepaid employee shippingpoint shipvia))) {
-    $sortorder = $form->{sort};
+    $sortorder = $form->{sort} . " $sortdir";
   }
 
-  $query .= " WHERE $where ORDER by $sortorder";
+  $query .= " WHERE $where ORDER BY $sortorder";
 
   my $sth = $dbh->prepare($query);
   $sth->execute(@values) ||
@@ -635,7 +638,7 @@ sub storno {
   $storno_row->{invnumber}  = 'Storno-' . $storno_row->{invnumber};
   $storno_row->{amount}    *= -1;
   $storno_row->{netamount} *= -1;
-  $storno_row->{paid}       = $storno_amount->{amount};
+  $storno_row->{paid}       = $storno_row->{amount};
 
   delete @$storno_row{qw(itime mtime)};