]> wagnertech.de Git - mfinanz.git/blobdiff - SL/AP.pm
Probleme bei der Behandlung von Buchungen mit Steuerkorrektur behoben
[mfinanz.git] / SL / AP.pm
index d490739f72953f038314b7efb0298fc1a1f6ac53..3d7b8408134cb5e4ac6b69fc0bdabdc2969dcf98 100644 (file)
--- a/SL/AP.pm
+++ b/SL/AP.pm
@@ -100,24 +100,28 @@ sub post_transaction {
     $form->{AP_amounts}{"amount_$i"}{taxkey} = $form->{"taxkey_$i"};
 
     $sth->finish;
-    if (!$form->{"korrektur_$i"}) {
-      if ($form->{taxincluded} *= 1) {
+    if ($form->{taxincluded} *= 1) {
+      if (!$form->{"korrektur_$i"}) {
         $tax =
           $form->{"amount_$i"} -
           ($form->{"amount_$i"} / ($form->{"taxrate_$i"} + 1));
-        $amount = $form->{"amount_$i"} - $tax;
-        $form->{"amount_$i"} = $form->round_amount($amount, 2);
-        $diff += $amount - $form->{"amount_$i"};
-        $form->{"tax_$i"} = $form->round_amount($tax, 2);
-        $form->{netamount} += $form->{"amount_$i"};
       } else {
+        $tax = $form->{"tax_$i"};
+      }
+      $amount = $form->{"amount_$i"} - $tax;
+      $form->{"amount_$i"} = $form->round_amount($amount, 2);
+      $diff += $amount - $form->{"amount_$i"};
+      $form->{"tax_$i"} = $form->round_amount($tax, 2);
+      $form->{netamount} += $form->{"amount_$i"};
+    } else {
+      if (!$form->{"korrektur_$i"}) {
         $form->{"tax_$i"} = $form->{"amount_$i"} * $form->{"taxrate_$i"};
-        $form->{"tax_$i"} =
-          $form->round_amount($form->{"tax_$i"} * $form->{exchangerate}, 2);
-        $form->{netamount} += $form->{"amount_$i"};
       }
+      $form->{"tax_$i"} =
+        $form->round_amount($form->{"tax_$i"} * $form->{exchangerate}, 2);
+      $form->{netamount} += $form->{"amount_$i"};
     }
-    $form->{total_tax} += $form->{"tax_$i"} * -1;
+    $form->{total_tax} += $form->{"tax_$i"};
   }
 
   # adjust paidaccounts if there is no date in the last row