-    # if you search for invoice '11' ar_transactions will also match invoices
-    # 112, 211, ... due to the LIKE
-
-    # so there is now an extra loop that tries to match the invoice number
-    # exactly among all returned results, and then passes the customer_id instead of the name
-    # because the name may not be unique
-
-    my $found_exact_invnumber_match = 0;
-    foreach my $i ( @{ $form->{AR} } ) {
-      next unless $i->{invnumber} eq $form->{invnumber};
-      # found exactly matching invnumber
-      $form->{$form->{vc}} = $i->{name};
-      $form->{customer_id} = $i->{customer_id};
-      $found_exact_invnumber_match = 1;
-    };
-
-    unless ( $found_exact_invnumber_match ) {
-      # use first returned entry, may not be the correct one if invnumber doesn't match uniquely
-      $form->{$form->{vc}} = $form->{AR}[0]{name};
-      $form->{customer_id} = $form->{AR}[0]{customer_id};
-    };
-  } else {
-    # s.o. nur für zahlungsausgang
-    AP->ap_transactions(\%myconfig, \%$form);
-    $form->{$form->{vc}} = $form->{AP}[0]{name};
+    # Here we just take the first returned value even if the custumernumber
+    # may not be unique
+    $form->{customer} = $form->{AR}[0]{name};
+    $form->{customer_id} = $form->{AR}[0]{customer_id};
+  }
+
+  # search by invoicenumber,
+  if ($form->{invnumber}) {
+    $form->{open} ='Y'; # only open invoices
+    if ($form->{ARAP} eq 'AR'){
+      # ar_transactions automatically searches by $form->{customer_id} or else
+      # $form->{customer} if available, and these variables will always be set
+      # so we have to empty these values first
+      $form->{customer_id} = '';
+      $form->{customer} = '';
+      AR->ar_transactions(\%myconfig, \%$form);
+
+      # if you search for invoice '11' ar_transactions will also match invoices
+      # 112, 211, ... due to the LIKE
+
+      # so there is now an extra loop that tries to match the invoice number
+      # exactly among all returned results, and then passes the customer_id instead of the name
+      # because the name may not be unique
+
+      my $found_exact_invnumber_match = 0;
+      foreach my $i ( @{ $form->{AR} } ) {
+        next unless $i->{invnumber} eq $form->{invnumber};
+        # found exactly matching invnumber
+        $form->{$form->{vc}} = $i->{name};
+        $form->{customer_id} = $i->{customer_id};
+        #$form->{"old${form->{vc}"} = $i->{customer_id};
+        $found_exact_invnumber_match = 1;
+      };
+
+      unless ( $found_exact_invnumber_match ) {
+        # use first returned entry, may not be the correct one if invnumber doesn't
+        # match uniquely
+        $form->{$form->{vc}} = $form->{AR}[0]{name};
+        $form->{customer_id} = $form->{AR}[0]{customer_id};
+      };
+    } else {
+      # s.o. nur für zahlungsausgang
+      AP->ap_transactions(\%myconfig, \%$form);
+      $form->{$form->{vc}} = $form->{AP}[0]{name};