Speichern von Konten ein wenig debugged
[kivitendo-erp.git] / bin / mozilla / ar.pl
index eaa0f22..47a395d 100644 (file)
@@ -111,12 +111,15 @@ sub create_links {
   $duedate = $form->{duedate};
 
   $taxincluded = $form->{taxincluded};
   $duedate = $form->{duedate};
 
   $taxincluded = $form->{taxincluded};
-
+  my $id = $form->{id};
   IS->get_customer(\%myconfig, \%$form);
   IS->get_customer(\%myconfig, \%$form);
+  $form->{taxincluded} = $taxincluded;
+  $form->{id} = $id;
 
   $form->{duedate}     = $duedate if $duedate;
   $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}";
 
   $form->{duedate}     = $duedate if $duedate;
   $form->{oldcustomer} = "$form->{customer}--$form->{customer_id}";
-  $form->{rowcount} = 1;
+  $form->{rowcount}    = 1;
+
   # currencies
   @curr = split /:/, $form->{currencies};
   chomp $curr[0];
   # currencies
   @curr = split /:/, $form->{currencies};
   chomp $curr[0];
@@ -156,7 +159,7 @@ sub create_links {
 
   map {
     $tax .=
 
   map {
     $tax .=
-      qq|<option value=\"$_->{taxkey}--$_->{rate}\">$_->{taxdescription}  |
+      qq|<option value=\"$_->{id}--$_->{rate}\">$_->{taxdescription}  |
       . ($_->{rate} * 100) . qq| %|
   } @{ $form->{TAX} };
   $form->{taxchart}       = $tax;
       . ($_->{rate} * 100) . qq| %|
   } @{ $form->{TAX} };
   $form->{taxchart}       = $tax;
@@ -173,7 +176,7 @@ sub create_links {
           "<option value=\"$ref->{accno}\">$ref->{accno}--$ref->{description}</option>\n";
       } else {
         $form->{"select$key"} .=
           "<option value=\"$ref->{accno}\">$ref->{accno}--$ref->{description}</option>\n";
       } else {
         $form->{"select$key"} .=
-          "<option value=\"$ref->{accno}--$ref->{taxkey}\">$ref->{accno}--$ref->{description}</option>\n";
+          "<option value=\"$ref->{accno}--$ref->{tax_id}\">$ref->{accno}--$ref->{description}</option>\n";
       }
     }
 
       }
     }
 
@@ -182,7 +185,7 @@ sub create_links {
     # if there is a value we have an old entry
     my $j = 0;
     my $k = 0;
     # if there is a value we have an old entry
     my $j = 0;
     my $k = 0;
-    print(STDERR Dumper($form->{acc_trans}));
+
     for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
       if ($key eq "AR_paid") {
         $j++;
     for $i (1 .. scalar @{ $form->{acc_trans}{$key} }) {
       if ($key eq "AR_paid") {
         $j++;
@@ -205,7 +208,7 @@ sub create_links {
         $akey = $key;
         $akey =~ s/AR_//;
 
         $akey = $key;
         $akey =~ s/AR_//;
 
-        if ($key eq "AR_tax") {
+        if ($key eq "AR_tax" || $key eq "AP_tax") {
           $form->{"${key}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} =
             "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
           $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} =
           $form->{"${key}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} =
             "$form->{acc_trans}{$key}->[$i-1]->{accno}--$form->{acc_trans}{$key}->[$i-1]->{description}";
           $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"} =
@@ -223,11 +226,10 @@ sub create_links {
               $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"};
             $withholdingrate +=
               $form->{"$form->{acc_trans}{$key}->[$i-1]->{accno}_rate"};
               $form->{"${akey}_$form->{acc_trans}{$key}->[$i-1]->{accno}"};
             $withholdingrate +=
               $form->{"$form->{acc_trans}{$key}->[$i-1]->{accno}_rate"};
-          }          
-          print(STDERR $form->{acc_trans}{$key}->[$i - 1]->{amount}, " ACC_TRANS\n");
-          print(STDERR "$key KEY, $k Zeile\n");
+          }
           $index = $form->{acc_trans}{$key}->[$i - 1]->{index};
           $form->{"tax_$index"} = $form->{acc_trans}{$key}->[$i - 1]->{amount};
           $index = $form->{acc_trans}{$key}->[$i - 1]->{index};
           $form->{"tax_$index"} = $form->{acc_trans}{$key}->[$i - 1]->{amount};
+          $totaltax += $form->{"tax_$index"};
 
         } else {
           $k++;
 
         } else {
           $k++;
@@ -256,7 +258,7 @@ sub create_links {
           if ($akey eq 'amount') {
             $form->{"taxchart_$k"} = $form->{taxchart};
             $form->{"taxchart_$k"} =~
           if ($akey eq 'amount') {
             $form->{"taxchart_$k"} = $form->{taxchart};
             $form->{"taxchart_$k"} =~
-              /<option value=\"($form->{acc_trans}{$key}->[$i-1]->{taxkey}--[^\"]*)/;
+              /<option value=\"($form->{acc_trans}{$key}->[$i-1]->{id}--[^\"]*)/;
             $form->{"taxchart_$k"} = $1;
           }
         }
             $form->{"taxchart_$k"} = $1;
           }
         }
@@ -275,33 +277,15 @@ sub create_links {
         ($totaltax + $totalwithholding) * $form->{"amount_$i"} / $totalamount;
       $tax = $form->round_amount($taxamount, 2);
       $diff                += ($taxamount - $tax);
         ($totaltax + $totalwithholding) * $form->{"amount_$i"} / $totalamount;
       $tax = $form->round_amount($taxamount, 2);
       $diff                += ($taxamount - $tax);
-      $form->{"amount_$i"} += $tax;
+      $form->{"amount_$i"} += $form->{"tax_$i"};
     }
     $form->{amount_1} += $form->round_amount($diff, 2);
   }
 
     }
     $form->{amount_1} += $form->round_amount($diff, 2);
   }
 
-  # check if calculated is equal to stored
-  if ($form->{taxincluded} && $form->{taxrate} && $withholdingrate) {
-    if ($form->{"taxrate"} > 0) {
-      $taxamount =
-        $form->round_amount(
-            ($form->{amount_1} - ($form->{amount_1} / ($form->{taxrate} + 1))),
-            2);
-    } else {
-      $taxamount =
-        $form->round_amount(
-            ($totalamount + $totaltax + $totalwithholding) * $withholdingrate /
-              (1 - $withholdingrate),
-            2
-        ) * $form->{"taxrate"} / $withholdingrate;
-    }
-  } else {
-    $taxamount = $totalamount * $form->{"taxrate"};
-  }
   $taxamount = $form->round_amount($taxamount, 2);
   $form->{tax} = $taxamount;
 
   $taxamount = $form->round_amount($taxamount, 2);
   $form->{tax} = $taxamount;
 
-  $form->{invtotal} = $totalamount + $totaltax + $totalwithholding;
+  $form->{invtotal} = $totalamount + $totaltax;
 
   $form->{locked} =
     ($form->datetonum($form->{transdate}, \%myconfig) <=
 
   $form->{locked} =
     ($form->datetonum($form->{transdate}, \%myconfig) <=
@@ -324,7 +308,7 @@ sub form_header {
   <!--
   function setTaxkey(accno, row) {
     var taxkey = accno.options[accno.selectedIndex].value;
   <!--
   function setTaxkey(accno, row) {
     var taxkey = accno.options[accno.selectedIndex].value;
-    var reg = /--([0-9])*/;
+    var reg = /--([0-9]*)/;
     var found = reg.exec(taxkey);
     var index = found[1];
     index = parseInt(index);
     var found = reg.exec(taxkey);
     var index = found[1];
     index = parseInt(index);
@@ -353,8 +337,9 @@ sub form_header {
       s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
   }
   $selectAR_amount_unquoted = $form->{selectAR_amount};
       s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
   }
   $selectAR_amount_unquoted = $form->{selectAR_amount};
-  $taxchart = $form->{taxchart};
-  map { $form->{$_} =~ s/\"/&quot;/g } qw(AR_amount selectAR_amount AR taxchart);
+  $taxchart                 = $form->{taxchart};
+  map { $form->{$_} =~ s/\"/&quot;/g }
+    qw(AR_amount selectAR_amount AR taxchart);
 
   # format amounts
   $form->{exchangerate} =
 
   # format amounts
   $form->{exchangerate} =
@@ -438,14 +423,12 @@ sub form_header {
     $button1 = qq|
        <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
        <td><input type=button name=transdate id="trigger1" value=|
     $button1 = qq|
        <td><input name=transdate id=transdate size=11 title="$myconfig{dateformat}" value=$form->{transdate}></td>
        <td><input type=button name=transdate id="trigger1" value=|
-      . $locale->text('button')
-      . qq|></td>
+      . $locale->text('button') . qq|></td>
        |;
     $button2 = qq|
        <td><input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value=$form->{duedate}></td>
        <td><input type=button name=duedate id="trigger2" value=|
        |;
     $button2 = qq|
        <td><input name=duedate id=duedate size=11 title="$myconfig{dateformat}" value=$form->{duedate}></td>
        <td><input type=button name=duedate id="trigger2" value=|
-      . $locale->text('button')
-      . qq|></td></td>
+      . $locale->text('button') . qq|></td></td>
      |;
 
     #write Trigger
      |;
 
     #write Trigger
@@ -571,30 +554,31 @@ $jsscript
        </tr>
 |;
 
        </tr>
 |;
 
-
   $amount  = $locale->text('Amount');
   $project = $locale->text('Project');
 
   for $i (1 .. $form->{rowcount}) {
 
     # format amounts
   $amount  = $locale->text('Amount');
   $project = $locale->text('Project');
 
   for $i (1 .. $form->{rowcount}) {
 
     # format amounts
-    $form->{"amount_$i"} = $form->format_amount(\%myconfig, $form->{"amount_$i"}, 2);
+    $form->{"amount_$i"} =
+      $form->format_amount(\%myconfig, $form->{"amount_$i"}, 2);
     $form->{"tax_$i"} = $form->format_amount(\%myconfig, $form->{"tax_$i"}, 2);
     $selectAR_amount = $selectAR_amount_unquoted;
     $form->{"tax_$i"} = $form->format_amount(\%myconfig, $form->{"tax_$i"}, 2);
     $selectAR_amount = $selectAR_amount_unquoted;
-    $selectAR_amount =~ s/option value=\"$form->{"AR_amount_$i"}\"/option value=\"$form->{"AR_amount_$i"}\" selected/;
+    $selectAR_amount =~
+      s/option value=\"$form->{"AR_amount_$i"}\"/option value=\"$form->{"AR_amount_$i"}\" selected/;
     $tax          = $taxchart;
     $tax_selected = $form->{"taxchart_$i"};
     $tax =~ s/value=\"$tax_selected\"/value=\"$tax_selected\" selected/;
     $tax =
     $tax          = $taxchart;
     $tax_selected = $form->{"taxchart_$i"};
     $tax =~ s/value=\"$tax_selected\"/value=\"$tax_selected\" selected/;
     $tax =
-            qq|<td><select id="taxchart_$i" name="taxchart_$i">$tax</select></td>|;
+      qq|<td><select id="taxchart_$i" name="taxchart_$i" style="width:200px">$tax</select></td>|;
+    $korrektur_checked = ($form->{"korrektur_$i"} ? 'checked' : '');
 
     print qq|
        <tr>
 
     print qq|
        <tr>
-          <td width=50%><select name="AR_amount_$i">$selectAR_amount</select></td>
-          <td><input name="amount_$i" onChange="setTaxkey(this, $i)" size=10 value=$form->{"amount_$i"}></td>
+          <td width=50%><select name="AR_amount_$i" onChange="setTaxkey(this, $i)" style="width:100%">$selectAR_amount</select></td>
+          <td><input name="amount_$i" size=10 value=$form->{"amount_$i"}></td>
           <td><input name="tax_$i" size=10 value=$form->{"tax_$i"}></td>
           <td><input name="tax_$i" size=10 value=$form->{"tax_$i"}></td>
-          <td><input type="checkbox" name="korrektur_$i" value="1"></td>
+          <td><input type="checkbox" name="korrektur_$i" value="1" $korrektur_checked></td>
           $tax
          <td><input name="projectnumber_$i" size=20 value="$form->{"projectnumber_$i"}">
              <input type=hidden name="project_id_$i" value=$form->{"project_id_$i"}>
           $tax
          <td><input name="projectnumber_$i" size=20 value="$form->{"projectnumber_$i"}">
              <input type=hidden name="project_id_$i" value=$form->{"project_id_$i"}>
@@ -605,9 +589,6 @@ $jsscript
     $project = "";
   }
 
     $project = "";
   }
 
-
-
-
   $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2);
 
   print qq|
   $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2);
 
   print qq|
@@ -648,8 +629,7 @@ $jsscript
       <table width=100%>
        <tr class=listheading>
          <th colspan=6 class=listheading>|
       <table width=100%>
        <tr class=listheading>
          <th colspan=6 class=listheading>|
-    . $locale->text('Incoming Payments')
-    . qq|</th>
+    . $locale->text('Incoming Payments') . qq|</th>
        </tr>
 |;
 
        </tr>
 |;
 
@@ -685,8 +665,10 @@ $jsscript
       s/option value=\"$form->{"AR_paid_$i"}\">/option value=\"$form->{"AR_paid_$i"}\" selected>/;
 
     # format amounts
       s/option value=\"$form->{"AR_paid_$i"}\">/option value=\"$form->{"AR_paid_$i"}\" selected>/;
 
     # format amounts
-    $form->{"paid_$i"} =
-      $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+    if ($form->{"paid_$i"}) {
+      $form->{"paid_$i"} =
+        $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+    }
     $form->{"exchangerate_$i"} =
       $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
 
     $form->{"exchangerate_$i"} =
       $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
 
@@ -757,30 +739,30 @@ sub form_footer {
   $transdate = $form->datetonum($form->{transdate}, \%myconfig);
   $closedto  = $form->datetonum($form->{closedto},  \%myconfig);
 
   $transdate = $form->datetonum($form->{transdate}, \%myconfig);
   $closedto  = $form->datetonum($form->{closedto},  \%myconfig);
 
-  if ($form->{id} && $form->{radier}) {
-
-    print qq|<input class=submit type=submit name=action value="|
-      . $locale->text('Update') . qq|">
-|;
-
-    if (!$form->{revtrans}) {
-      if (!$form->{locked}) {
+  if ($form->{id}) {
+    if ($form->{radier}) {
+      print qq|<input class=submit type=submit name=action value="|
+        . $locale->text('Update') . qq|">
+  |;
+  
+      if (!$form->{revtrans}) {
+        if (!$form->{locked}) {
+          print qq|
+          <input class=submit type=submit name=action value="|
+            . $locale->text('Post') . qq|">
+          <input class=submit type=submit name=action value="|
+            . $locale->text('Delete') . qq|">
+  |;
+        }
+      }
+  
+      if ($transdate > $closedto) {
         print qq|
         print qq|
-       <input class=submit type=submit name=action value="|
-          . $locale->text('Post') . qq|">
-       <input class=submit type=submit name=action value="|
-          . $locale->text('Delete') . qq|">
-|;
+  <input class=submit type=submit name=action value="|
+          . $locale->text('Post as new') . qq|">
+  |;
       }
     }
       }
     }
-
-    if ($transdate > $closedto) {
-      print qq|
-<input class=submit type=submit name=action value="|
-        . $locale->text('Post as new') . qq|">
-|;
-    }
-
   } else {
     if ($transdate > $closedto) {
       print qq|<input class=submit type=submit name=action value="|
   } else {
     if ($transdate > $closedto) {
       print qq|<input class=submit type=submit name=action value="|
@@ -816,9 +798,9 @@ sub update {
 
   $form->{invtotal} = 0;
 
 
   $form->{invtotal} = 0;
 
-#   $form->{selectAR_amount} = $form->{AR_amount};
-#   $form->{selectAR_amount} =~
-#     s/value=\"$form->{AR_amountselected}\"/value=\"$form->{AR_amountselected}\" selected/;
+  #   $form->{selectAR_amount} = $form->{AR_amount};
+  #   $form->{selectAR_amount} =~
+  #     s/value=\"$form->{AR_amountselected}\"/value=\"$form->{AR_amountselected}\" selected/;
 
   $form->{selectAR} = $form->{AR};
 
 
   $form->{selectAR} = $form->{AR};
 
@@ -843,8 +825,7 @@ sub update {
   for $i (1 .. $form->{rowcount}) {
     $form->{"amount_$i"} =
       $form->parse_amount(\%myconfig, $form->{"amount_$i"});
   for $i (1 .. $form->{rowcount}) {
     $form->{"amount_$i"} =
       $form->parse_amount(\%myconfig, $form->{"amount_$i"});
-    $form->{"tax_$i"} =
-      $form->parse_amount(\%myconfig, $form->{"tax_$i"});
+    $form->{"tax_$i"} = $form->parse_amount(\%myconfig, $form->{"tax_$i"});
     if ($form->{"amount_$i"}) {
       push @a, {};
       $j = $#a;
     if ($form->{"amount_$i"}) {
       push @a, {};
       $j = $#a;
@@ -887,7 +868,6 @@ sub update {
 
   &check_project;
 
 
   &check_project;
 
-
   $form->{invtotal} =
     ($form->{taxincluded}) ? $form->{invtotal} : $form->{invtotal} + $totaltax;
 
   $form->{invtotal} =
     ($form->{taxincluded}) ? $form->{invtotal} : $form->{invtotal} + $totaltax;
 
@@ -1083,14 +1063,12 @@ sub search {
     $button1 = qq|
        <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}">
        <input type=button name=transdatefrom id="trigger1" value=|
     $button1 = qq|
        <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}">
        <input type=button name=transdatefrom id="trigger1" value=|
-      . $locale->text('button')
-      . qq|></td>
+      . $locale->text('button') . qq|></td>
       |;
     $button2 = qq|
        <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}">
        <input type=button name=transdateto name=transdateto id="trigger2" value=|
       |;
     $button2 = qq|
        <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}">
        <input type=button name=transdateto name=transdateto id="trigger2" value=|
-      . $locale->text('button')
-      . qq|></td>
+      . $locale->text('button') . qq|></td>
      |;
 
     #write Trigger
      |;
 
     #write Trigger
@@ -1309,10 +1287,9 @@ sub ar_transactions {
     $option   .= $locale->text('Closed');
   }
 
     $option   .= $locale->text('Closed');
   }
 
-  @columns =
-    $form->sort_columns(
+  @columns = $form->sort_columns(
     qw(transdate id invnumber ordnumber name netamount tax amount paid datepaid due duedate notes employee shippingpoint shipvia)
     qw(transdate id invnumber ordnumber name netamount tax amount paid datepaid due duedate notes employee shippingpoint shipvia)
-    );
+  );
 
   foreach $item (@columns) {
     if ($form->{"l_$item"} eq "Y") {
 
   foreach $item (@columns) {
     if ($form->{"l_$item"} eq "Y") {