]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Form.pm
Variablen zwischenspeichern und wiederherstellen, sofern sie existieren, auch wenn...
[mfinanz.git] / SL / Form.pm
index 637bbe286b056776f45d1b14819e4e4ce8eb5eae..2d4d5e432ef5f55524123f82b95cc0be594c54f2 100644 (file)
@@ -1984,13 +1984,17 @@ sub get_employee_data {
 sub get_duedate {
   $main::lxdebug->enter_sub();
 
 sub get_duedate {
   $main::lxdebug->enter_sub();
 
-  my ($self, $myconfig) = @_;
+  my ($self, $myconfig, $reference_date) = @_;
 
 
-  my $dbh = $self->get_standard_dbh($myconfig);
-  my $query = qq|SELECT current_date + terms_netto FROM payment_terms WHERE id = ?|;
-  ($self->{duedate}) = selectrow_query($self, $dbh, $query, $self->{payment_id});
+  my $reference_date = $reference_date ? conv_dateq($reference_date) . '::DATE' : 'current_date';
+
+  my $dbh            = $self->get_standard_dbh($myconfig);
+  my $query          = qq|SELECT ${reference_date} + terms_netto FROM payment_terms WHERE id = ?|;
+  my ($duedate)      = selectrow_query($self, $dbh, $query, $self->{payment_id});
 
   $main::lxdebug->leave_sub();
 
   $main::lxdebug->leave_sub();
+
+  return $duedate;
 }
 
 sub _get_contacts {
 }
 
 sub _get_contacts {
@@ -3379,7 +3383,7 @@ sub backup_vars {
   my $self = shift;
   my @vars = @_;
 
   my $self = shift;
   my @vars = @_;
 
-  map { $self->{_VAR_BACKUP}->{$_} = $self->{$_} if $self->{$_} } @vars;
+  map { $self->{_VAR_BACKUP}->{$_} = $self->{$_} if exists $self->{$_} } @vars;
 
   $main::lxdebug->leave_sub();
 }
 
   $main::lxdebug->leave_sub();
 }
@@ -3390,7 +3394,7 @@ sub restore_vars {
   my $self = shift;
   my @vars = @_;
 
   my $self = shift;
   my @vars = @_;
 
-  map { $self->{$_} = $self->{_VAR_BACKUP}->{$_} if $self->{_VAR_BACKUP}->{$_} } @vars;
+  map { $self->{$_} = $self->{_VAR_BACKUP}->{$_} if exists $self->{_VAR_BACKUP}->{$_} } @vars;
 
   $main::lxdebug->leave_sub();
 }
 
   $main::lxdebug->leave_sub();
 }