Berichte über Zahlungsein- und -ausgänge auf- und absteigend sortierbar gemacht.
[kivitendo-erp.git] / SL / DO.pm
index 798d19f..2ad076a 100644 (file)
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -142,12 +142,13 @@ sub transactions {
     "transaction_description" => "dord.transaction_description"
   );
 
-  my $sortoder = "dord.id";
+  my $sortdir   = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
+  my $sortorder = "dord.id";
   if ($form->{sort} && grep($form->{sort}, keys(%allowed_sort_columns))) {
     $sortorder = $allowed_sort_columns{$form->{sort}};
   }
 
-  $query .= qq| ORDER by | . $sortorder;
+  $query .= qq| ORDER by | . $sortorder . " $sortdir";
 
   $form->{DO} = selectall_hashref_query($form, $dbh, $query, @values);
 
@@ -344,12 +345,14 @@ sub save {
   $form->save_status($dbh);
 
   # Link this delivery order to the quotations it was created from.
-  my @oe_ids = grep { $_ } map { $_ * 1 } split m/\s+/, $form->{oe_ids};
-  delete $form->{oe_ids};
-  if (scalar @oe_ids) {
-    my @links = map { { 'from_table' => 'oe', 'from_id' => $_, 'to_table' => 'delivery_orders', 'to_id' => $form->{id} } } @oe_ids;
-    RecordLinks->create_links('dbh' => $dbh, 'links' => \@links);
-  }
+  RecordLinks->create_links('dbh'        => $dbh,
+                            'mode'       => 'ids',
+                            'from_table' => 'oe',
+                            'from_ids'   => $form->{convert_from_oe_ids},
+                            'to_table'   => 'delivery_orders',
+                            'to_id'      => $form->{id},
+    );
+  delete $form->{convert_from_oe_ids};
 
   $self->mark_orders_if_delivered('do_id' => $form->{id},
                                   'type'  => $form->{type} eq 'sales_delivery_order' ? 'sales' : 'purchase',