X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/5bc87ade7044239fa9e893b9d7cbd476dc627eea..53593baa211863fbf66540cf1bcc36c8fb37257f:/SL/DB/PaymentTerm.pm diff --git a/SL/DB/PaymentTerm.pm b/SL/DB/PaymentTerm.pm index 5d84d6881..2f62bd9ac 100644 --- a/SL/DB/PaymentTerm.pm +++ b/SL/DB/PaymentTerm.pm @@ -35,7 +35,7 @@ sub calc_date { } my $terms = ($params{terms} // 'net') eq 'discount' ? 'terms_skonto' : 'terms_netto'; - my $date = $reference_date->add(days => $self->$terms); + my $date = $reference_date->clone->add(days => $self->$terms); my $dow = $date->day_of_week; $date = $date->add(days => 8 - $dow) if $dow > 5; @@ -57,8 +57,15 @@ SL::DB::PaymentTerm - Rose model for the payment_terms table =head1 SYNOPSIS my $terms = SL::DB::PaymentTerm->new(id => $::form->{payment_id})->load; - my $due_date_net = $erms->calc_date(terms => 'net'); # uses terms_netto - my $due_date_discount = $erms->calc_date(terms => 'discount'); # uses terms_skonto + my $due_date_net = $terms->calc_date(terms => 'net'); # uses terms_netto + my $due_date_discount = $terms->calc_date(terms => 'discount'); # uses terms_skonto + + # Calculate due date taking the existing invoice date and the due + # date entered by the user into account: + my $due_date = $terms->calc_date( + reference_date => $::form->{invdate}, + due_date => $::form->{duedate}, + ); =head1 FUNCTIONS @@ -71,7 +78,7 @@ adding one of C<$self>'s terms fields if automatic calculation is on; otherwise returns the currently-set due date (which must be provided) or the reference date, whichever is later. -Note that for automatich calculation the resulting date will be the +Note that for automatic calculation the resulting date will be the following Monday if the result falls on a weekend. C<%params> can contain the following parameters: