Sobald ein alter Zahlungseingang in einem abgeschlossen Zeitraum fällt und man
[kivitendo-erp.git] / bin / mozilla / is.pl
index 2cdf21e..9ec9bec 100644 (file)
@@ -333,7 +333,7 @@ sub form_header {
   my %labels = map { $_ => $_ } @{ $form->{ALL_CURRENCIES} };
   $form->{currency}            = $form->{defaultcurrency} unless $form->{currency};
   $TMPL_VAR{show_exchangerate} = $form->{currency} ne $form->{defaultcurrency};
-  $TMPL_VAR{currencies}        = NTI($cgi->popup_menu('-name' => 'currency', '-default' => $form->{"currency"},
+  $TMPL_VAR{currencies}        = NTI($::cgi->popup_menu('-name' => 'currency', '-default' => $form->{"currency"},
                                                       '-values' => \@values, '-labels' => \%labels)) if scalar @values;
   push @custom_hiddens, "forex";
   push @custom_hiddens, "exchangerate" if $form->{forex};
@@ -607,8 +607,6 @@ sub post_payment {
 
       $form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
 
-      $form->error($locale->text('Cannot post payment for a closed period!'))
-        if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
 
       if ($form->{currency} ne $form->{defaultcurrency}) {
         $form->{"exchangerate_$i"} = $form->{exchangerate}
@@ -618,6 +616,18 @@ sub post_payment {
       }
     }
   }
+  # Abgeschlossene Zeiträume nur für den letzten (aktuellen) Zahlungseingang prüfen
+  # Details s.a. Bug 1502
+  # Das Problem ist jetzt, dass man Zahlungseingänge nachträglich ändern kann
+  # Wobei dies für Installationen die sowieso nicht mit Bücherkontrolle arbeiten keinen
+  # keinen Unterschied macht.
+  # Optimal wäre, wenn gegen einen Zeitstempel des Zahlungsfelds geprüft würde ...
+  # Das Problem hierbei ist, dass in IS.pm post_invoice IMMER alle Zahlungseingänge aus $form
+  # erneut gespeichert werden. Prinzipiell wäre es besser NUR die Änderungen des Rechnungs-
+  # belegs (neue Zahlung aber nichts anderes) zu speichern ...
+  # Vielleicht könnte man ähnlich wie bei Rechnung löschen verfahren 
+  $form->error($locale->text('Cannot post payment for a closed period!'))
+    if ($form->date_closed($form->{"datepaid_$form->{paidaccounts}"}, \%myconfig));
 
   ($form->{AR})      = split /--/, $form->{AR};
   ($form->{AR_paid}) = split /--/, $form->{AR_paid};
@@ -721,10 +731,9 @@ sub post {
     $form->{addition} = $form->{print_and_post} ? "PRINTED AND POSTED" :
                         $form->{storno}         ? "STORNO"             :
                                                   "POSTED";
-    $form->save_history($form->dbconnect(\%myconfig));
+    $form->save_history;
   }
 
-  # macnetix: after invoice->Post, redirect to edit.
   if (!$form->{no_redirect_after_post}) {
     $form->{action} = 'edit';
     $form->{script} = 'is.pl';
@@ -943,7 +952,7 @@ sub yes {
     if(!exists $form->{addition}) {
     $form->{snumbers} = qq|invnumber_| . $form->{invnumber};
       $form->{addition} = "DELETED";
-      $form->save_history($form->dbconnect(\%myconfig));
+      $form->save_history;
     }
     # /saving the history
     $form->redirect($locale->text('Invoice deleted!'));