Probleme bei der Behandlung von Buchungen mit Steuerkorrektur behoben
authorPhilip Reetz <p.reetz@linet-services.de>
Thu, 16 Mar 2006 09:41:37 +0000 (09:41 +0000)
committerPhilip Reetz <p.reetz@linet-services.de>
Thu, 16 Mar 2006 09:41:37 +0000 (09:41 +0000)
SL/AP.pm
SL/AR.pm

index d490739..3d7b840 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
index 42f8c1c..fe687ee 100644 (file)
--- a/SL/AR.pm
+++ b/SL/AR.pm
@@ -103,23 +103,28 @@ sub post_transaction {
     $form->{AR_amounts}{"amount_$i"}{taxkey} = $form->{"taxkey_$i"};
 
     $sth->finish;
-    if (!$form->{"korrektur_$i"}) {
-      if ($form->{taxincluded} *= 1) {
-        $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"};
+    if ($form->{taxincluded} *= 1) {
+      if (!$form->{"korrektur_$i"}) {
+      $tax =
+        $form->{"amount_$i"} -
+        ($form->{"amount_$i"} / ($form->{"taxrate_$i"} + 1));
       } 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"};
   }