Bei der Liste der Einkaufsrechnungen den Typ anzeigen: "R" für Einkaufsrechnungen...
[kivitendo-erp.git] / SL / IR.pm
index 2a74e06..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);
   }
 
@@ -995,7 +994,7 @@ sub get_vendor {
   $form->{vendor_id} *= 1;
 
   # get vendor
-  my $query = qq|SELECT v.name AS vendor, v.creditlimit, v.terms,
+  my $query = qq|SELECT v.name AS vendor, v.creditlimit, v.terms, v.notes AS intnotes,
                  v.email, v.cc, v.bcc, v.language_id, v.payment_id,
                 v.street, v.zipcode, v.city, v.country, v.taxzone_id,
                  $duedate + COALESCE(pt.terms_netto, 0) AS duedate,
@@ -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}) {