]> wagnertech.de Git - mfinanz.git/blobdiff - SL/BackgroundJob/CreatePeriodicInvoices.pm
Wiederkehrende Rechnungen: Variablen für lange Monatsnamen gefixt
[mfinanz.git] / SL / BackgroundJob / CreatePeriodicInvoices.pm
index ccb0b27f0440c6a9e71448dbae244349f9af33f6..3b19811df25165123edc46a1cb52e6194b6e2f65 100644 (file)
@@ -89,6 +89,10 @@ 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 } ],
@@ -97,8 +101,6 @@ sub _generate_time_period_variables {
     period_end_date     => [ $period_end_date  ->clone->truncate(to => 'month'), 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 );