]> wagnertech.de Git - kivitendo-erp.git/commitdiff
IS::get_customer: ersten Kunden zurückliefern, wenn keine Id vorgegeben ist.
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Sun, 20 Aug 2017 11:19:54 +0000 (13:19 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Sun, 20 Aug 2017 14:37:28 +0000 (16:37 +0200)
Durch Umstellung auf den Customer/Vendor-Picker der Belegmasken konnte der
Picker unter bestimmten Umständen initial leer sein. Dadurch wurden dann bei
einem Wechsel von leer auf einen Kunden nicht alle Form-Variablen richtig
gefüllt (z.B. taxzone_id) und z.B. ein Lieferschein konnte nicht gespeichert
werden.

Das jetzige Verhalten gleicht dann dem von IR::get_vendor.

SL/IS.pm

index bbf53e31ac3b203a5aaf3149b7e70c00bb6b38ad..1df0eb2f9f5a320a4cc6dc243565ec65572a19a0 100644 (file)
--- a/SL/IS.pm
+++ b/SL/IS.pm
@@ -2130,6 +2130,11 @@ sub get_customer {
   my $payment_id;
 
   # get customer
   my $payment_id;
 
   # get customer
+  my $where = '';
+  if ($cid) {
+    $where .= 'AND c.id = ?';
+    push @values, $cid;
+  }
   $query =
     qq|SELECT
          c.id AS customer_id, c.name AS customer, c.discount as customer_discount, c.creditlimit,
   $query =
     qq|SELECT
          c.id AS customer_id, c.name AS customer, c.discount as customer_discount, c.creditlimit,
@@ -2141,8 +2146,7 @@ sub get_customer {
        FROM customer c
        LEFT JOIN business b ON (b.id = c.business_id)
        LEFT JOIN currencies cu ON (c.currency_id=cu.id)
        FROM customer c
        LEFT JOIN business b ON (b.id = c.business_id)
        LEFT JOIN currencies cu ON (c.currency_id=cu.id)
-       WHERE c.id = ?|;
-  push @values, $cid;
+       WHERE 1 = 1 $where|;
   $ref = selectfirst_hashref_query($form, $dbh, $query, @values);
 
   delete $ref->{salesman_id} if !$ref->{salesman_id};
   $ref = selectfirst_hashref_query($form, $dbh, $query, @values);
 
   delete $ref->{salesman_id} if !$ref->{salesman_id};