Bei der Umwandlung von Angeboten/Anfragen in Auftraege wurden verschiedene Felder...
[kivitendo-erp.git] / bin / mozilla / gl.pl
index 0c7f735..6d4cb66 100644 (file)
@@ -160,6 +160,13 @@ sub edit {
     if ($tax && ($ref->{accno} eq $taxaccno)) {
       $form->{"tax_$j"}      = abs($ref->{amount});
       $form->{"taxchart_$j"} = $ref->{taxkey} . "--" . $ref->{taxrate};
+      if ($form->{taxincluded}) {
+        if ($ref->{amount} < 0) {
+          $form->{"debit_$j"} += $form->{"tax_$j"};
+        } else {
+          $form->{"credit_$j"} += $form->{"tax_$j"};
+        }
+      }
     } else {
       $form->{"accno_$i"} = "$ref->{accno}--$ref->{accnotaxkey}";
       for (qw(fx_transaction source memo)) { $form->{"${_}_$i"} = $ref->{$_} }
@@ -170,6 +177,7 @@ sub edit {
         $form->{totalcredit} += $ref->{amount};
         $form->{"credit_$i"} = $ref->{amount};
       }
+      $form->{"taxchart_$i"} = "0--";
       $i++;
     }
     if ($ref->{taxaccno} && !$tax) {
@@ -297,12 +305,8 @@ sub search {
     . $locale->text('All') . qq|
                  <input name="category" class=radio type=radio value=A>&nbsp;|
     . $locale->text('Asset') . qq|
-                 <input name="category" class=radio type=radio value=C>&nbsp;|
-    . $locale->text('Contra') . qq|
                  <input name="category" class=radio type=radio value=L>&nbsp;|
     . $locale->text('Liability') . qq|
-                 <input name="category" class=radio type=radio value=Q>&nbsp;|
-    . $locale->text('Equity') . qq|
                  <input name="category" class=radio type=radio value=I>&nbsp;|
     . $locale->text('Revenue') . qq|
                  <input name="category" class=radio type=radio value=E>&nbsp;|
@@ -391,7 +395,7 @@ sub generate_report {
 
   $form->{title} = $locale->text('General Ledger');
 
-  $ml = ($form->{ml} =~ /(A|E)/) ? -1 : 1;
+  $ml = ($form->{ml} =~ /(A|E|Q)/) ? -1 : 1;
 
   unless ($form->{category} eq 'X') {
     $form->{title} .= " : " . $locale->text($acctype{ $form->{category} });
@@ -616,18 +620,18 @@ sub generate_report {
         </tr>
 |;
   }
-
+   $form->{balance} *= $ml;
   foreach $ref (@{ $form->{GL} }) {
-
+    $form->{balance} *= $ml;
     # if item ne sort print subtotal
     if ($form->{l_subtotal} eq 'Y') {
       if ($sameitem ne $ref->{ $form->{sort} }) {
         &gl_subtotal;
       }
     }
-    foreach $key (sort keys(%{ $ref->{amount} })) {
-      $form->{balance} += $ref->{amount}{$key};
-    }
+    #foreach $key (sort keys(%{ $ref->{amount} })) {
+    #  $form->{balance} += $ref->{amount}{$key};
+    #}
 
     $debit = "";
     foreach $key (sort keys(%{ $ref->{debit} })) {
@@ -639,6 +643,7 @@ sub generate_report {
         $debit .=
           "<br>" . $form->format_amount(\%myconfig, $ref->{debit}{$key}, 2, 0);
       }
+      $form->{balance} = abs($form->{balance}) - abs($ref->{debit}{$key});
     }
 
     $credit = "";
@@ -651,6 +656,7 @@ sub generate_report {
         $credit .= "<br>"
           . $form->format_amount(\%myconfig, $ref->{credit}{$key}, 2, 0);
       }
+      $form->{balance} = abs($form->{balance}) - abs( $ref->{credit}{$key});
     }
 
     $debittax = "";
@@ -664,6 +670,7 @@ sub generate_report {
         $debittax .= "<br>"
           . $form->format_amount(\%myconfig, $ref->{debit_tax}{$key}, 2, 0);
       }
+      $form->{balance} = abs($form->{balance}) - abs($ref->{debit_tax}{$key});
     }
 
     $credittax = "";
@@ -677,6 +684,7 @@ sub generate_report {
         $credittax .= "<br>"
           . $form->format_amount(\%myconfig, $ref->{credit_tax}{$key}, 2, 0);
       }
+      $form->{balance} = abs($form->{balance}) - abs($ref->{credit_tax}{$key});
     }
 
     $debitaccno  = "";
@@ -685,14 +693,14 @@ sub generate_report {
     foreach $key (sort keys(%{ $ref->{debit_accno} })) {
       if ($key == 0) {
         $debitaccno =
-          "<a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{debit_accno}{$key}</a>";
+          "<a href=$href&accno=$ref->{debit_accno}{$key}&callback=$callback>$ref->{debit_accno}{$key}</a>";
       } else {
         $debitaccno .=
-          "<br><a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{debit_accno}{$key}</a>";
-      }
-      if ($ref->{debit_taxkey}{$key} eq $debittaxkey) {
-        $ref->{debit_tax_accno}{$key} = $taxaccno;
+          "<br><a href=$href&accno=$ref->{debit_accno}{$key}&callback=$callback>$ref->{debit_accno}{$key}</a>";
       }
+#       if ($ref->{debit_taxkey}{$key} eq $debittaxkey) {
+#         $ref->{debit_tax_accno}{$key} = $taxaccno;
+#       }
       $taxaccno    = $ref->{debit_tax_accno}{$key};
       $debittaxkey = $ref->{debit_taxkey}{$key};
     }
@@ -703,14 +711,14 @@ sub generate_report {
     foreach $key (sort keys(%{ $ref->{credit_accno} })) {
       if ($key == 0) {
         $creditaccno =
-          "<a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{credit_accno}{$key}</a>";
+          "<a href=$href&accno=$ref->{credit_accno}{$key}&callback=$callback>$ref->{credit_accno}{$key}</a>";
       } else {
         $creditaccno .=
-          "<br><a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{credit_accno}{$key}</a>";
-      }
-      if ($ref->{credit_taxkey}{$key} eq $credittaxkey) {
-        $ref->{credit_tax_accno}{$key} = $taxaccno;
+          "<br><a href=$href&accno=$ref->{credit_accno}{$key}&callback=$callback>$ref->{credit_accno}{$key}</a>";
       }
+#       if ($ref->{credit_taxkey}{$key} eq $credittaxkey) {
+#         $ref->{credit_tax_accno}{$key} = $taxaccno;
+#       }
       $taxaccno     = $ref->{credit_tax_accno}{$key};
       $credittaxkey = $ref->{credit_taxkey}{$key};
     }
@@ -719,10 +727,10 @@ sub generate_report {
     foreach $key (sort keys(%{ $ref->{debit_tax_accno} })) {
       if ($key == 0) {
         $debittaxaccno =
-          "<a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{debit_tax_accno}{$key}</a>";
+          "<a href=$href&accno=$ref->{debit_tax_accno}{$key}&callback=$callback>$ref->{debit_tax_accno}{$key}</a>";
       } else {
         $debittaxaccno .=
-          "<br><a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{debit_tax_accno}{$key}</a>";
+          "<br><a href=$href&accno=$ref->{debit_tax_accno}{$key}&callback=$callback>$ref->{debit_tax_accno}{$key}</a>";
       }
     }
 
@@ -730,10 +738,10 @@ sub generate_report {
     foreach $key (sort keys(%{ $ref->{credit_tax_accno} })) {
       if ($key == 0) {
         $credittaxaccno =
-          "<a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{credit_tax_accno}{$key}</a>";
+          "<a href=$href&accno=$ref->{credit_tax_accno}{$key}&callback=$callback>$ref->{credit_tax_accno}{$key}</a>";
       } else {
         $credittaxaccno .=
-          "<br><a href=$href&accno=$ref->{accno}&callback=$callback>$ref->{credit_tax_accno}{$key}</a>";
+          "<br><a href=$href&accno=$ref->{credit_tax_accno}{$key}&callback=$callback>$ref->{credit_tax_accno}{$key}</a>";
       }
     }
 
@@ -769,7 +777,7 @@ sub generate_report {
       "<td><a href=$href&gifi_accno=$ref->{gifi_accno}&callback=$callback>$ref->{gifi_accno}</a>&nbsp;</td>";
     $column_data{balance} =
         "<td align=right>"
-      . $form->format_amount(\%myconfig, $form->{balance} * $ml, 2, 0)
+      . $form->format_amount(\%myconfig, $form->{balance}, 2, 0)
       . "</td>";
 
     $i++;
@@ -1033,24 +1041,24 @@ sub display_rows {
   for $i (1 .. $form->{rowcount}) {
 
     $source = qq|
-    <td><input name="source_$i" value="$form->{"source_$i"}" tabindex=|
+    <td><input name="source_$i" value="$form->{"source_$i"}" size="16" tabindex=|
       . ($i + 11 + (($i - 1) * 8)) . qq|></td>|;
     $memo = qq|
-    <td><input name="memo_$i" value="$form->{"memo_$i"}" tabindex=|
+    <td><input name="memo_$i" value="$form->{"memo_$i"}" size="16" tabindex=|
       . ($i + 12 + (($i - 1) * 8)) . qq|></td>|;
 
     if ($init) {
       $accno = qq|
-      <td><select name="accno_$i" onChange="setTaxkey(this, $i)" style="width:300px" tabindex=|
+      <td><select name="accno_$i" onChange="setTaxkey(this, $i)" style="width:200px" tabindex=|
         . ($i + 5 + (($i - 1) * 8)) . qq|>$form->{chartinit}</select></td>|;
       $tax =
-          qq|<td><select id="taxchart_$i" name="taxchart_$i" tabindex=|
+          qq|<td><select id="taxchart_$i" name="taxchart_$i" style="width:200px" 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))
@@ -1064,10 +1072,14 @@ sub display_rows {
     } else {
       if ($form->{"debit_$i"} != 0) {
         $form->{totaldebit} += $form->{"debit_$i"};
-        $form->{totaldebit} += $form->{"tax_$i"};
+        if (!$form->{taxincluded}) {
+          $form->{totaldebit} += $form->{"tax_$i"};
+        }
       } else {
         $form->{totalcredit} += $form->{"credit_$i"};
-        $form->{totalcredit} += $form->{"tax_$i"};
+        if (!$form->{taxincluded}) {
+          $form->{totalcredit} += $form->{"tax_$i"};
+        }
       }
 
       for (qw(debit credit tax)) {
@@ -1084,7 +1096,7 @@ sub display_rows {
         $accno =~
           s/value=\"$chart_selected\"/value=\"$chart_selected\" selected/;
         $accno =
-          qq|<td><select name="accno_$i" onChange="setTaxkey(this, $i)" style="width:300px" tabindex=|
+          qq|<td><select name="accno_$i" onChange="setTaxkey(this, $i)" style="width:200px" tabindex=|
           . ($i + 5 + (($i - 1) * 8))
           . qq|>$accno</select></td>|;
         $tax          = $taxchart;
@@ -1095,14 +1107,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" : "";
@@ -1116,7 +1128,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 {
 
@@ -1126,10 +1138,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))
@@ -1154,26 +1166,25 @@ sub display_rows {
     print qq|<tr valign=top>
     $accno
     $fx_transaction
-    <td><input name="debit_$i" size=10 value="$form->{"debit_$i"}" accesskey=$i tabindex=|
+    <td><input name="debit_$i" size=8 value="$form->{"debit_$i"}" accesskey=$i tabindex=|
       . ($i + 6 + (($i - 1) * 8)) . qq| $debitreadonly></td>
-    <td><input name="credit_$i" size=10 value="$form->{"credit_$i"}" tabindex=|
+    <td><input name="credit_$i" size=8 value="$form->{"credit_$i"}" tabindex=|
       . ($i + 7 + (($i - 1) * 8)) . qq| $creditreadonly></td>
-    <td><input name="tax_$i" size=8 value="$form->{"tax_$i"}" tabindex=|
+    <td><input name="tax_$i" size=6 value="$form->{"tax_$i"}" tabindex=|
       . ($i + 8 + (($i - 1) * 8)) . qq|></td>
     $korrektur
     $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();
 
 }
@@ -1248,7 +1259,7 @@ sub form_header {
 
     # with JavaScript Calendar
     $button1 = qq|
-       <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate} tabindex="2" $readonly>
+       <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" tabindex="2" $readonly>
        <input type=button name=transdate id="trigger1" value=|
       . $locale->text('button') . qq|></td>  
        |;
@@ -1261,7 +1272,7 @@ sub form_header {
 
     # without JavaScript Calendar
     $button1 =
-      qq|<td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate} tabindex="2" $readonly></td>|;
+      qq|<td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value="$form->{transdate}" tabindex="2" $readonly></td>|;
   }
 
   $form->header;
@@ -1531,6 +1542,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}) {
 
@@ -1592,12 +1616,23 @@ sub post {
           }
           if ($form->{taxincluded}) {
             $form->{"tax_$i"} = $amount / ($rate + 1) * $rate;
+            if ($debitcredit) {
+              $form->{"debit_$i"} = $form->{"debit_$i"} - $form->{"tax_$i"};
+            } else {
+              $form->{"credit_$i"} = $form->{"credit_$i"} - $form->{"tax_$i"};
+            }
           } else {
             $form->{"tax_$i"} = $amount * $rate;
           }
         } else {
           $form->{"tax_$i"} = 0;
         }
+      } elsif ($form->{taxincluded}) {
+        if ($debitcredit) {
+          $form->{"debit_$i"} = $form->{"debit_$i"} - $form->{"tax_$i"};
+        } else {
+          $form->{"credit_$i"} = $form->{"credit_$i"} - $form->{"tax_$i"};
+        }
       }
 
       for (@flds) { $a[$j]->{$_} = $form->{"${_}_$i"} }
@@ -1625,8 +1660,12 @@ sub post {
         ));
     }
     if ($form->{taxincluded}) {
-      $debit    += $dr;
-      $credit   += $cr;
+      if ($dr) {
+        $debit += $dr + $tax;
+      }
+      if ($cr) {
+        $credit += $cr + $tax;
+      }
       $taxtotal += $tax;
     } else {
       if ($dr) {