Revision a6291ceb
Von Jan Büren vor mehr als 3 Jahren hinzugefügt
SL/BackgroundJob/ConvertTimeRecordings.pm | ||
---|---|---|
8 | 8 |
use SL::DB::TimeRecording; |
9 | 9 |
|
10 | 10 |
use SL::Locale::String qw(t8); |
11 |
|
|
11 | 12 |
use DateTime; |
13 |
use Try::Tiny; |
|
12 | 14 |
|
13 | 15 |
sub create_job { |
14 | 16 |
$_[0]->create_standard_job('7 3 1 * *'); # every first day of month at 03:07 |
... | ... | |
31 | 33 |
# from/to date from data. Defaults to begining and end of last month. |
32 | 34 |
my $from_date; |
33 | 35 |
my $to_date; |
34 |
$from_date = DateTime->from_kivitendo($data->{from_date}) if $data->{from_date}; |
|
35 |
$to_date = DateTime->from_kivitendo($data->{to_date}) if $data->{to_date}; |
|
36 |
# handle errors with a catch handler |
|
37 |
try { |
|
38 |
$from_date = DateTime->from_kivitendo($data->{from_date}) if $data->{from_date}; |
|
39 |
$to_date = DateTime->from_kivitendo($data->{to_date}) if $data->{to_date}; |
|
40 |
} catch { |
|
41 |
die "Cannot convert date from string $data->{from_date} $data->{to_date}\n Details :\n $_"; # not $@ |
|
42 |
}; |
|
36 | 43 |
$from_date ||= DateTime->new( day => 1, month => DateTime->today_local->month, year => DateTime->today_local->year)->subtract(months => 1); |
37 | 44 |
$to_date ||= DateTime->last_day_of_month(month => DateTime->today_local->month, year => DateTime->today_local->year)->subtract(months => 1); |
38 | 45 |
|
Auch abrufbar als: Unified diff
CTR: Benutzereingabe in data mit Try::Tiny auffangen
Sinnvolle Fehlermeldung in einem Satz zurückgeben und
danach den kompletten Trace.