Fälligkeitsdatum auf Rechnungsdatum setzen, falls nichts weiter konfiguriert (#2440)
authorJan Büren <jan@kivitendo-premium.de>
Tue, 21 Jan 2014 15:26:16 +0000 (16:26 +0100)
committerJan Büren <jan@kivitendo-premium.de>
Tue, 21 Jan 2014 15:26:16 +0000 (16:26 +0100)
Ist in io.pl auch schon so vorgesehen:
    print $form->ajax_response_header() . ($duedate || $invdate);
Allerdings schmeißt die get_duedate-Funktion in Form.pm einen Fehler, weil keine
der benötigten Parameter übergeben werden. S.a. Debug von $self:
                 'script' => 'is.pl',
                 'titlebar' => 'kivitendo Version 3.0.0',
                 'version' => '3.0.0',
                 'action' => 'set_duedate',
                 'payment_id' => '',
                 'invdate' => '14.01.2014',
                 'login' => 'jan_skr04'
               }, 'Form' );

Von daher die Erweiterung, ob invdate existiert und enstprechend ein undef als Rückgabewert
closes #2440

SL/Form.pm

index a11b7ad..eb3565d 100644 (file)
@@ -1955,8 +1955,8 @@ sub get_duedate {
   my $terms   = $self->{payment_id}  ? SL::DB::PaymentTerm->new(id => $self->{payment_id}) ->load
               : $self->{customer_id} ? SL::DB::Customer   ->new(id => $self->{customer_id})->load->payment
               : $self->{vendor_id}   ? SL::DB::Vendor     ->new(id => $self->{vendor_id})  ->load->payment
-              :                        croak("Missing field in \$::form: payment_id, customer_id or vendor_id");
-
+              : $self->{invdate}     ? undef # no payment terms, therefore invdate == duedate
+              :                        croak("Missing field in \$::form: payment_id, customer_id, vendor_id or invdate");
   my $duedate = $terms ? $terms->calc_date(reference_date => $reference_date)->to_kivitendo : undef;
 
   $main::lxdebug->leave_sub();