Bug #204 behoben: Storno geht jetzt auch bei Splitbuchungen
authorPhilip Reetz <p.reetz@linet-services.de>
Wed, 9 Nov 2005 15:52:09 +0000 (15:52 +0000)
committerPhilip Reetz <p.reetz@linet-services.de>
Wed, 9 Nov 2005 15:52:09 +0000 (15:52 +0000)
SL/GL.pm
bin/mozilla/gl.pl

index dc9ecdd..aacd602 100644 (file)
--- a/SL/GL.pm
+++ b/SL/GL.pm
@@ -548,7 +548,7 @@ sub transaction {
     }
 
     # get tax description
-    $query = qq| SELECT * FROM tax t|;
+    $query = qq| SELECT * FROM tax t order by t.taxkey|;
     $sth   = $dbh->prepare($query);
     $sth->execute || $form->dberror($query);
     $form->{TAX} = ();
index 734e9c4..c66fdf9 100644 (file)
@@ -177,6 +177,7 @@ sub edit {
         $form->{totalcredit} += $ref->{amount};
         $form->{"credit_$i"} = $ref->{amount};
       }
+      $form->{"taxchart_$i"} = "0--";
       $i++;
     }
     if ($ref->{taxaccno} && !$tax) {
@@ -1058,10 +1059,10 @@ sub display_rows {
           qq|<td><select id="taxchart_$i" name="taxchart_$i" tabindex=|
         . ($i + 10 + (($i - 1) * 8))
         . qq|>$form->{taxchart}</select></td>|;
-      if ($form->{selectprojectnumber}) {
-        $project = qq|
-    <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
-      }
+      if ($form->{selectprojectnumber}) {
+        $project = qq|
+    <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
+      }
       $korrektur =
         qq|<td><input type="checkbox" name="korrektur_$i" value="1" tabindex=|
         . ($i + 9 + (($i - 1) * 8))
@@ -1110,14 +1111,14 @@ sub display_rows {
           . ($i + 10 + (($i - 1) * 8))
           . qq|>$tax</select></td>|;
 
-        if ($form->{selectprojectnumber}) {
-          $form->{"projectnumber_$i"} = ""
-            if $form->{selectprojectnumber} !~ /$form->{"projectnumber_$i"}/;
-
-          $project = $form->{"projectnumber_$i"};
-          $project =~ s/--.*//;
-          $project = qq|<td>$project</td>|;
-        }
+        if ($form->{selectprojectnumber}) {
+          $form->{"projectnumber_$i"} = ""
+            if $form->{selectprojectnumber} !~ /$form->{"projectnumber_$i"}/;
+# 
+          $project = $form->{"projectnumber_$i"};
+          $project =~ s/--.*//;
+          $project = qq|<td>$project</td>|;
+        }
 
         if ($form->{transfer}) {
           $checked = ($form->{"fx_transaction_$i"}) ? "1" : "";
@@ -1131,7 +1132,7 @@ sub display_rows {
           qq|<td><input type="checkbox" name="korrektur_$i" value="1" $checked tabindex=|
           . ($i + 9 + (($i - 1) * 8))
           . qq|></td>|;
-        $form->hide_form("accno_$i", "projectnumber_$i");
+        $form->hide_form("accno_$i");
 
       } else {
 
@@ -1141,10 +1142,10 @@ sub display_rows {
         $tax = qq|
       <td><select id="taxchart_$i" name="taxchart_$i" tabindex=|
           . ($i + 10 + (($i - 1) * 8)) . qq|>$taxchart</select></td>|;
-        if ($form->{selectprojectnumber}) {
-          $project = qq|
-      <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
-        }
+        if ($form->{selectprojectnumber}) {
+          $project = qq|
+      <td><select name="projectnumber_$i">$form->{selectprojectnumber}</select></td>|;
+        }
         $korrektur =
           qq|<td><input type="checkbox" name="korrektur_$i" value="1" tabindex=|
           . ($i + 9 + (($i - 1) * 8))
@@ -1179,16 +1180,15 @@ sub display_rows {
     $tax
     $source
     $memo
-    $project
   </tr>
 
   |;
   }
 
   $form->hide_form(qw(rowcount selectaccno));
-  print qq|
-<input type=hidden name=selectprojectnumber value="|
-    . $form->escape($form->{selectprojectnumber}, 1) . qq|">|;
+  print qq|
+<input type=hidden name=selectprojectnumber value="|
+    . $form->escape($form->{selectprojectnumber}, 1) . qq|">|;
   $lxdebug->leave_sub();
 
 }
@@ -1546,6 +1546,19 @@ sub post {
 
   my @flds =
     qw(accno debit credit projectnumber fx_transaction source memo tax taxchart);
+  if ($form->{storno}) {
+    for my $i (1 .. $form->{rowcount}) {
+      unless (($form->{"debit_$i"} eq "") && ($form->{"credit_$i"} eq "")) {
+        if ($form->{"debit_$i"} ne "") {
+          $form->{"credit_$i"} = $form->{"debit_$i"};
+          $form->{"debit_$i"} = "";
+        } elsif ($form->{"credit_$i"} ne "") {
+          $form->{"debit_$i"} = $form->{"credit_$i"};
+          $form->{"credit_$i"} = "";
+        }
+      }
+    }
+  }
 
   for my $i (1 .. $form->{rowcount}) {