Steuersatz/taxzone aus Masken nicht überschreiben.
[kivitendo-erp.git] / bin / mozilla / ap.pl
index d90b062..bcd858a 100644 (file)
@@ -684,18 +684,26 @@ $jsscript
     # format amounts
     if ($form->{"paid_$i"}) {
       $form->{"paid_$i"} =
-      $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
+        $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
     }
-    $form->{"exchangerate_$i"} =
-      $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
     if ($form->{"exchangerate_$i"} == 0) {
       $form->{"exchangerate_$i"} = "";
+    } else {
+      $form->{"exchangerate_$i"} =
+        $form->format_amount(\%myconfig, $form->{"exchangerate_$i"});
     }
 
+    print qq|<input type=hidden name="acc_trans_id_$i" value=$form->{"acc_trans_id_$i"}>\n|;
     print qq|<input type=hidden name="gldate_$i" value=$form->{"gldate_$i"}>\n|;
-    my $changeable = (($form->{"gldate_$i"} eq '') || $form->current_date(\%myconfig) eq $form->{"gldate_$i"});
-    $form->{"payment_readonly_$i"} = ($changeable)? 0 : 1;
-    print qq|<input type=hidden name="payment_readonly_$i" value=$form->{"payment_readonly_$i"}>\n|;
+    my $changeable = 1;
+    if ($::lx_office_conf{features}->{payments_changeable} == 0) {
+      # never
+      $changeable = ($form->{"acc_trans_id_$i"})? 0 : 1;
+    }
+    if ($::lx_office_conf{features}->{payments_changeable} == 2) {
+      # on the same day
+      $changeable = (($form->{"gldate_$i"} eq '') || $form->current_date(\%myconfig) eq $form->{"gldate_$i"});
+    }
 
     $exchangerate = qq|&nbsp;|;
     if ($form->{defaultcurrency} && ($form->{currency} ne $form->{defaultcurrency})) {
@@ -707,7 +715,7 @@ $jsscript
           $exchangerate =
             qq|<input name="exchangerate_$i" size=10 value=$form->{"exchangerate_$i"}>|;
         } else {
-          $exchangerate = qq|$form->{"exchangerate_$i"}|.
+          $exchangerate =
             qq|<input type=hidden name="exchangerate_$i" value=$form->{"exchangerate_$i"}>$form->{"exchangerate_$i"}|;
         }
       }
@@ -773,12 +781,12 @@ $jsscript
         qq|<input type=hidden name="paid_project_id_$i" value=$form->{"paid_project_id_$i"}>|;
     }
 
-    $column_data{"paid_$i"} = $paid;
-    $column_data{"AP_paid_$i"} = $AP_paid;
-    $column_data{"exchangerate_$i"} = qq|<td align=center>$exchangerate</td>|;
-    $column_data{"datepaid_$i"}  = $datepaid;
-    $column_data{"source_$i"} = $source;
-    $column_data{"memo_$i"} = $memo;
+    $column_data{"paid_$i"}            = $paid;
+    $column_data{"AP_paid_$i"}         = $AP_paid;
+    $column_data{"exchangerate_$i"}    = qq|<td align=center>$exchangerate</td>|;
+    $column_data{"datepaid_$i"}        = $datepaid;
+    $column_data{"source_$i"}          = $source;
+    $column_data{"memo_$i"}            = $memo;
     $column_data{"paid_project_id_$i"} = $paid_project_id;
 
     map { print qq|$column_data{"${_}_$i"}\n| } @column_index;
@@ -1182,7 +1190,7 @@ sub use_as_template {
 
   $main::auth->assert('general_ledger');
 
-  map { delete $form->{$_} } qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 gldate_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno);
+  map { delete $form->{$_} } qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 gldate_1 acc_trans_id_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno);
   $form->{paidaccounts} = 1;
   $form->{rowcount}--;
   $form->{invdate} = $form->current_date(\%myconfig);