subs für den customer und employee select angepasst; sowie get_lists
[kivitendo-erp.git] / SL / IR.pm
index e99a108..3982b26 100644 (file)
--- a/SL/IR.pm
+++ b/SL/IR.pm
@@ -224,9 +224,8 @@ sub post_invoice {
 
         $dbh->do($query) || $form->dberror($query);
 
-        $form->update_balance($dbh, "parts", "onhand",
-                              qq|id = $form->{"id_$i"}|,
-                              $baseqty)
+        $form->update_balance($dbh, "parts", "onhand", qq|id = ?|,
+                              $baseqty, $form->{"id_$i"})
           unless $form->{shipped};
 
         # check if we sold the item already and
@@ -647,14 +646,14 @@ sub post_invoice {
   $dbh->do($query) || $form->dberror($query);
 
   if ($form->{storno}) {
-    $query = qq| update ap set paid=paid+amount where id=$form->{storno_id}|;
+    $query = qq| UPDATE ap SET paid = paid+amount WHERE id = $form->{storno_id}|;
     $dbh->do($query) || $form->dberror($query);
-    $query = qq| update ap set storno='$form->{storno}' where id=$form->{storno_id}|;
+    $query = qq| UPDATE ap SET storno = '$form->{storno}' WHERE id = $form->{storno_id}|;
     $dbh->do($query) || $form->dberror($query);
-    $query = qq§ update ap set intnotes='Rechnung storniert am $form->{invdate} ' || intnotes where id=$form->{storno_id}§;
+    $query = qq§ UPDATE ap SET intnotes = 'Rechnung storniert am $form->{invdate} ' || intnotes WHERE id = $form->{storno_id}§;
     $dbh->do($query) || $form->dberror($query);
 
-    $query = qq| update ap set paid=amount where id=$form->{id}|;
+    $query = qq| UPDATE ap SET paid = amount WHERE id = $form->{id}|;
     $dbh->do($query) || $form->dberror($query);
   }
 
@@ -1009,17 +1008,20 @@ sub get_vendor {
 
   $form->{creditremaining} = $form->{creditlimit};
   $query = qq|SELECT SUM(a.amount - a.paid) FROM ap a WHERE a.vendor_id = ?|;
-  ($form->{creditremaining}) -= selectfirst_array_query($form, $dbh, $query, $form->{vendor_id});
+  my ($unpaid_invoices) = selectfirst_array_query($form, $dbh, $query, $form->{vendor_id});
+  $form->{creditremaining} -= $unpaid_invoices;
 
   $query = qq|SELECT o.amount,
                 (SELECT e.sell FROM exchangerate e 
-                 WHERE e.curr = o.curr AND e.transdate = o.transdate)
+                 WHERE e.curr = o.curr AND e.transdate = o.transdate) AS exch
              FROM oe o WHERE o.vendor_id = ?  
                 AND o.quotation = '0' AND o.closed = '0'|;
-  while (my ($amount, $exch) = selectfirst_array_query($form, $dbh, $query, $form->{vendor_id})) {
+  my $sth = prepare_execute_query($form, $dbh, $query, $form->{vendor_id});
+  while (my ($amount, $exch) = $sth->fetchrow_array()) {
     $exch = 1 unless $exch;
     $form->{creditremaining} -= $amount * $exch;
   }
+  $sth->finish();
 
   # get shipto if we do not convert an order or invoice
   if (!$form->{shipto}) {