X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/1ad7929fcdc527edd6ede82fa5afac798683074d..c07fe122071abb897f5c40a38f86c3f651570a1d:/SL/BackgroundJob/CreatePeriodicInvoices.pm diff --git a/SL/BackgroundJob/CreatePeriodicInvoices.pm b/SL/BackgroundJob/CreatePeriodicInvoices.pm index ccb0b27f0..91e8efff9 100644 --- a/SL/BackgroundJob/CreatePeriodicInvoices.pm +++ b/SL/BackgroundJob/CreatePeriodicInvoices.pm @@ -89,16 +89,18 @@ sub _generate_time_period_variables { previous_month => [ $period_start_date->clone->truncate(to => 'month')->subtract(months => 1), sub { $_[0]->month } ], next_month => [ $period_start_date->clone->truncate(to => 'month')->add( months => 1), sub { $_[0]->month } ], + current_month_long => [ $period_start_date->clone->truncate(to => 'month'), sub { $month_names[ $_[0]->month ] } ], + previous_month_long => [ $period_start_date->clone->truncate(to => 'month')->subtract(months => 1), sub { $month_names[ $_[0]->month ] } ], + next_month_long => [ $period_start_date->clone->truncate(to => 'month')->add( months => 1), sub { $month_names[ $_[0]->month ] } ], + current_year => [ $period_start_date->clone->truncate(to => 'year'), sub { $_[0]->year } ], previous_year => [ $period_start_date->clone->truncate(to => 'year')->subtract(years => 1), sub { $_[0]->year } ], next_year => [ $period_start_date->clone->truncate(to => 'year')->add( years => 1), sub { $_[0]->year } ], period_start_date => [ $period_start_date->clone->truncate(to => 'month'), sub { $::locale->format_date(\%::myconfig, $_[0]) } ], - period_end_date => [ $period_end_date ->clone->truncate(to => 'month'), sub { $::locale->format_date(\%::myconfig, $_[0]) } ], + period_end_date => [ $period_end_date, sub { $::locale->format_date(\%::myconfig, $_[0]) } ], }; - map { $vars->{"${_}_month_long"} = $month_names[ $vars->{"${_}_month"} ] } qw(current previous next); - return $vars; } @@ -188,27 +190,8 @@ sub _create_periodic_invoice { } sub _calculate_dates { - my $config = shift; - - my $cur_date = $config->first_billing_date || $config->start_date; - my $start_date = $config->get_previous_invoice_date || DateTime->new(year => 1970, month => 1, day => 1); - my $end_date = $config->end_date || DateTime->new(year => 2100, month => 1, day => 1); - my $tomorrow = DateTime->today_local->add(days => 1); - my $period_len = $config->get_period_length; - - $end_date = $tomorrow if $end_date > $tomorrow; - - my @dates; - - while (1) { - last if $cur_date >= $end_date; - - push @dates, $cur_date->clone if $cur_date > $start_date; - - $cur_date->add(months => $period_len); - } - - return @dates; + my ($config) = @_; + return $config->calculate_invoice_dates(end_date => DateTime->today_local); } sub _send_email { @@ -232,7 +215,7 @@ sub _send_email { return unless $template; my $email_template = $config{periodic_invoices}->{email_template}; - my $filename = $email_template || ( (SL::DB::Default->get->templates || "templates/webpages") . "/periodic_invoices_email.txt" ); + my $filename = $email_template || ( (SL::DB::Default->get->templates || "templates/webpages") . "/oe/periodic_invoices_email.txt" ); my %params = ( POSTED_INVOICES => $posted_invoices, PRINTED_INVOICES => $printed_invoices );