X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FBackgroundJob%2FConvertTimeRecordings.pm;h=45ded55e83da02c432df22973feae9e5c03368b9;hb=7718459cd0be728a57d7ca75dd8077316df7d730;hp=ff8c79b6137d97d8f381b3175ae91b5fb0eacad7;hpb=662df9d7fdc9c953d324a975a5bf554e6534c42e;p=kivitendo-erp.git diff --git a/SL/BackgroundJob/ConvertTimeRecordings.pm b/SL/BackgroundJob/ConvertTimeRecordings.pm index ff8c79b61..45ded55e8 100644 --- a/SL/BackgroundJob/ConvertTimeRecordings.pm +++ b/SL/BackgroundJob/ConvertTimeRecordings.pm @@ -13,7 +13,7 @@ use SL::Locale::String qw(t8); use DateTime; use List::Util qw(any); - +use Try::Tiny; sub create_job { $_[0]->create_standard_job('7 3 1 * *'); # every first day of month at 03:07 } @@ -109,13 +109,24 @@ sub initialize_params { # convert date from string to object - my $from_date; - my $to_date; - $from_date = DateTime->from_kivitendo($self->params->{from_date}); - $to_date = DateTime->from_kivitendo($self->params->{to_date}); - # DateTime->from_kivitendo returns undef if the string cannot be parsed. Therefore test the result. - die 'Cannot convert date from string "' . $self->params->{from_date} . '"' if !$from_date; - die 'Cannot convert date to string "' . $self->params->{to_date} . '"' if !$to_date; + my ($from_date, $to_date); + try { + if ($self->params->{from_date}) { + $from_date = DateTime->from_kivitendo($self->params->{from_date}); + # no undef and no other type. + die unless ref $from_date eq 'DateTime'; + } + if ($self->params->{to_date}) { + $to_date = DateTime->from_kivitendo($self->params->{to_date}); + # no undef and no other type. + die unless ref $to_date eq 'DateTime'; + } + } catch { + die t8("Cannot convert date.") ."\n" . + t8("Input from string: #1", $self->params->{from_date}) . "\n" . + t8("Input to string: #1", $self->params->{to_date}) . "\n" . + t8("Details: #1", $_); + }; $to_date->add(days => 1); # to get all from the to_date, because of the time part (15.12.2020 23.59 > 15.12.2020)