Ein Script, das momentan nur überprüft, ob alle benötigten Perl-Module installiert...
[kivitendo-erp.git] / SL / AP.pm
index 3d7b840..b0e0440 100644 (file)
--- a/SL/AP.pm
+++ b/SL/AP.pm
@@ -88,13 +88,15 @@ sub post_transaction {
   $form->{taxincluded} = 0 if ($form->{amount} == 0);
 
   for $i (1 .. $form->{rowcount}) {
-    ($form->{"taxkey_$i"}, $NULL) = split /--/, $form->{"taxchart_$i"};
+   ($form->{"tax_id_$i"}, $NULL) = split /--/, $form->{"taxchart_$i"};
 
-    $query =
-      qq| SELECT c.accno, t.rate FROM chart c, tax t where c.id=t.chart_id AND t.taxkey=$form->{"taxkey_$i"}|;
+    $query = qq|SELECT c.accno, t.taxkey, t.rate
+            FROM tax t LEFT JOIN chart c on (c.id=t.chart_id)
+            WHERE t.id=$form->{"tax_id_$i"}
+            ORDER BY c.accno|;
     $sth = $dbh->prepare($query);
     $sth->execute || $form->dberror($query);
-    ($form->{AP_amounts}{"tax_$i"}, $form->{"taxrate_$i"}) =
+    ($form->{AP_amounts}{"tax_$i"}, $form->{"taxkey_$i"}, $form->{"taxrate_$i"}) =
       $sth->fetchrow_array;
     $form->{AP_amounts}{"tax_$i"}{taxkey}    = $form->{"taxkey_$i"};
     $form->{AP_amounts}{"amount_$i"}{taxkey} = $form->{"taxkey_$i"};
@@ -116,12 +118,14 @@ sub post_transaction {
     } else {
       if (!$form->{"korrektur_$i"}) {
         $form->{"tax_$i"} = $form->{"amount_$i"} * $form->{"taxrate_$i"};
+      } else {
+        $tax = $form->{"tax_$i"};
       }
       $form->{"tax_$i"} =
         $form->round_amount($form->{"tax_$i"} * $form->{exchangerate}, 2);
       $form->{netamount} += $form->{"amount_$i"};
     }
-    $form->{total_tax} += $form->{"tax_$i"};
+    $form->{total_tax} += $form->{"tax_$i"} * -1;
   }
 
   # adjust paidaccounts if there is no date in the last row