use SL::Locale::String;
 
 use Rose::Object::MakeMethods::Generic (
-  scalar                  => [ qw(report number_columns year current_year objects data subtotals_per_quarter salesman_id) ],
-  'scalar --get_set_init' => [ qw(employees types) ],
+  scalar                  => [ qw(report number_columns year current_year objects subtotals_per_quarter salesman_id) ],
+  'scalar --get_set_init' => [ qw(employees types data) ],
 );
 
 __PACKAGE__->run_before(sub { $::auth->assert('report'); });
     std_column_visibility => 1,
     controller_class      => 'FinancialOverview',
     output_format         => 'HTML',
-    raw_top_info_text     => $self->render('financial_overview/report_top', { output => 0 }, YEARS_TO_LIST => [ reverse(2000..$self->current_year) ]),
+    raw_top_info_text     => $self->render('financial_overview/report_top', { output => 0 }, YEARS_TO_LIST => [ reverse(($self->current_year - 10)..($self->current_year + 5)) ]),
     title                 => t8('Financial overview for #1', $self->year),
     allow_pdf_export      => 1,
     allow_csv_export      => 1,
     purchase_orders        => SL::DB::Manager::Order->get_all(          where => [ and => [ @f_date, @f_salesman, SL::DB::Manager::Order->type_filter('purchase_order')    ]]),
     sales_invoices         => SL::DB::Manager::Invoice->get_all(        where => [ and => [ @f_date, @f_salesman, ]]),
     purchase_invoices      => SL::DB::Manager::PurchaseInvoice->get_all(where => [ and =>  \@f_date ]),
-    periodic_invoices_cfg  => SL::DB::Manager::PeriodicInvoicesConfig->get_all(where => [ active => 1 ]),
+    periodic_invoices_cfg  => SL::DB::Manager::PeriodicInvoicesConfig->get_all(where => [ active => 1, $self->salesman_id ? ('order.salesman_id' => $self->salesman_id) : () ], with_objects => [ qw(order) ]),
   });
 
   $self->objects->{sales_orders} = [ grep { !$_->periodic_invoices_config || !$_->periodic_invoices_config->active } @{ $self->objects->{sales_orders} } ];
 sub calculate_one_periodic_invoice {
   my ($self, %params) = @_;
 
-  my @dates           = $params{config}->calculate_invoice_dates(start_date => $params{start_date}, end_date => $params{end_date});
-  my $first_date      = $dates[0];
+  return if $params{config}->start_date > $params{end_date};
 
-  return if !$first_date;
-
-  my $net  = $params{config}->order->netamount * scalar(@dates);
-  my $sord = $self->data->{sales_orders};
+  my $first_date = $params{config}->start_date->clone->set_year($self->year);
+  my $net        = $params{config}->order->netamount * (12 / $params{config}->get_period_length);
+  my $sord       = $self->data->{sales_orders};
 
   $sord->{months  }->[ $first_date->month   - 1 ] += $net;
   $sord->{quarters}->[ $first_date->quarter - 1 ] += $net;