Implementiert Ticket 1897 Zukunftsbuchungen vermeiden
authorJan Büren <jan@kivitendo-premium.de>
Mon, 10 Jun 2013 12:58:15 +0000 (14:58 +0200)
committerJan Büren <jan@kivitendo-premium.de>
Mon, 10 Jun 2013 12:58:15 +0000 (14:58 +0200)
Die Prüfungen für den Zeitraum in allen Belegmasken umgesetzt.
Zusammen mit Commit f552f878c85828a408d7f32afbbc1e714270b85f wird
das Ticket 1897 geschlossen

SL/AM.pm
bin/mozilla/ap.pl
bin/mozilla/ar.pl
bin/mozilla/gl.pl
bin/mozilla/ir.pl
bin/mozilla/is.pl

index 4934d86..5a9f236 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -1313,11 +1313,11 @@ sub closedto {
 
   my $dbh = $form->dbconnect($myconfig);
 
-  my $query = qq|SELECT closedto, revtrans FROM defaults|;
+  my $query = qq|SELECT closedto, max_future_booking_interval, revtrans FROM defaults|;
   my $sth   = $dbh->prepare($query);
   $sth->execute || $form->dberror($query);
 
-  ($form->{closedto}, $form->{revtrans}) = $sth->fetchrow_array;
+  ($form->{closedto}, $form->{max_future_booking_interval}, $form->{revtrans}) = $sth->fetchrow_array;
 
   $sth->finish;
 
@@ -1339,8 +1339,8 @@ sub closebooks {
     $query = qq|UPDATE defaults SET closedto = NULL, revtrans = '1'|;
 
   } elsif ($form->{closedto}) {
-    $query = qq|UPDATE defaults SET closedto = ?, revtrans = '0'|;
-    @values = (conv_date($form->{closedto}));
+    $query = qq|UPDATE defaults SET closedto = ?, max_future_booking_interval = ?, revtrans = '0'|;
+    @values = (conv_date($form->{closedto}), conv_date($form->{max_future_booking_interval}));
 
   } else {
     $query = qq|UPDATE defaults SET closedto = NULL, revtrans = '0'|;
index 923e140..e566ea6 100644 (file)
@@ -621,6 +621,9 @@ sub post {
 
   my $closedto  = $form->datetonum($form->{closedto},  \%myconfig);
   my $transdate = $form->datetonum($form->{transdate}, \%myconfig);
+
+  $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
+    if ($form->date_max_future($form->{"transdate"}, \%myconfig));
   $form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig));
 
   my $zero_amount_posting = 1;
index f5ea6c4..e1b10f6 100644 (file)
@@ -669,6 +669,9 @@ sub post {
 
   my $closedto  = $form->datetonum($form->{closedto},  \%myconfig);
   my $transdate = $form->datetonum($form->{transdate}, \%myconfig);
+
+  $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
+    if ($form->date_max_future($transdate, \%myconfig));
   $form->error($locale->text('Cannot post transaction for a closed period!')) if ($form->date_closed($form->{"transdate"}, \%myconfig));
 
   $form->error($locale->text('Zero amount posting!'))
index 4c97bd0..c508ff1 100644 (file)
@@ -1115,6 +1115,9 @@ sub post_transaction {
   $form->{taxincluded} = 0 if !$taxtotal;
 
   # this is just for the wise guys
+
+  $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
+    if ($form->date_max_future($form->{"transdate"}, \%myconfig));
   $form->error($locale->text('Cannot post transaction for a closed period!'))
     if ($form->date_closed($form->{"transdate"}, \%myconfig));
   if ($form->round_amount($debit, 2) != $form->round_amount($credit, 2)) {
index 4209fdf..b226bb0 100644 (file)
@@ -722,6 +722,8 @@ sub post {
   my $invdate      = $form->datetonum($form->{invdate},  \%myconfig);
   my $max_datepaid = _max_datepaid();
 
+  $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
+    if ($form->date_max_future($invdate, \%myconfig));
   $form->error($locale->text('Cannot post invoice for a closed period!')) if $max_datepaid && $form->date_closed($max_datepaid, \%myconfig);
 
   $form->isblank("exchangerate", $locale->text('Exchangerate missing!'))
index cbddde6..220c993 100644 (file)
@@ -716,6 +716,8 @@ sub post {
   my $closedto = $form->datetonum($form->{closedto}, \%myconfig);
   my $invdate  = $form->datetonum($form->{invdate},  \%myconfig);
 
+  $form->error($locale->text('Cannot post transaction above the maximum future booking date!'))
+    if ($form->date_max_future($invdate, \%myconfig));
   $form->error($locale->text('Cannot post invoice for a closed period!'))
     if ($invdate <= $closedto);