Revision 6496e465
Von Jan Büren vor etwa 2 Jahren hinzugefügt
SL/BackgroundJob/SetClosedTo.pm | ||
---|---|---|
1 |
package SL::BackgroundJob::SetClosedTo; |
|
2 |
|
|
3 |
use strict; |
|
4 |
|
|
5 |
use parent qw(SL::BackgroundJob::Base); |
|
6 |
|
|
7 |
use SL::Helper::DateTime; |
|
8 |
|
|
9 |
sub create_job { |
|
10 |
$_[0]->create_standard_job('1 0 10 * *'); # always the 10th of the month |
|
11 |
} |
|
12 |
|
|
13 |
|
|
14 |
sub run { |
|
15 |
my ($self, $db_obj) = @_; |
|
16 |
my $data = $db_obj->data_as_hash; |
|
17 |
|
|
18 |
my $subtract_month = $data->{subtract_month} || 1; |
|
19 |
my $subtract_days = $data->{subtract_days} || 10; |
|
20 |
|
|
21 |
die "No integer number for days or month" unless ($subtract_month =~ m/^\d+\z/ |
|
22 |
&& $subtract_days =~ m/^\d+\z/); |
|
23 |
|
|
24 |
# new closedto |
|
25 |
my $new_closedto = DateTime->new(month => 10, day => 10, year => 2022); |
|
26 |
$new_closedto->subtract(months => $subtract_month, days => $subtract_days); |
|
27 |
|
|
28 |
my $defaults = SL::DB::Default->get; |
|
29 |
|
|
30 |
# dont accidently open the books |
|
31 |
return 1 if ($defaults->closedto && $defaults->closedto >= $new_closedto); |
|
32 |
|
|
33 |
$defaults->closedto($new_closedto); |
|
34 |
$defaults->save || die "Cannot save closedto!"; |
|
35 |
|
|
36 |
return 1; |
|
37 |
} |
|
38 |
|
|
39 |
1; |
|
40 |
|
|
41 |
__END__ |
|
42 |
|
|
43 |
=encoding utf8 |
|
44 |
|
|
45 |
=head1 NAME |
|
46 |
|
|
47 |
SL::BackgroundJob::SetClosedTo - Background job for |
|
48 |
periodically setting closedto (books closed until). |
|
49 |
Defaults to the end of the second last month. |
|
50 |
|
|
51 |
=cut |
doc/changelog | ||
---|---|---|
16 | 16 |
geschlossen werden. |
17 | 17 |
- Metadaten für DATEV-CSV-Export exakter nach den Wünschen des DATEV-Prüfprogramms |
18 | 18 |
gesetzt (SKR ergänzt und weniger Spalten) |
19 |
|
|
19 |
- Hintergrund-Job der automatisch periodisch die Bücher schließt, falls dies manuell |
|
20 |
vergessen wird. Als Intervall sind Monate und Tage rückwirkend auswählbar: |
|
21 |
'subtract_month: n', 'subtract_days: n'. Die Einstellung im Job muss wie immer json |
|
22 |
kodiert passieren. Falls keine Parameter gesetzt sind, werden die Bücher am 10. des |
|
23 |
Monats rückwirkend am letzten Tag des Vorvormonats geschlossen. |
|
20 | 24 |
|
21 | 25 |
2022-09-19 - Release 3.7.0 |
22 | 26 |
|
Auch abrufbar als: Unified diff
Hintergrund-Job zum Bücher schließen