Finanzcontrollingbericht: ungültige und inaktive Projekte herausfiltern
[kivitendo-erp.git] / SL / Controller / DeliveryPlan.pm
index 7d394be..ee4a292 100644 (file)
@@ -16,32 +16,6 @@ use Rose::Object::MakeMethods::Generic (
 
 __PACKAGE__->run_before(sub { $::auth->assert('sales_order_edit'); });
 
-#__PACKAGE__->make_filtered(
-#  MODEL             => 'OrderItem',
-#  LAUNDER_TO        => 'filter'
-#);
-#__PACKAGE__->make_paginated(
-#  MODEL         => 'OrderItem',
-#  ONLY          => [ qw(list) ],
-#);
-#
-#__PACKAGE__->make_sorted(
-#  MODEL             => 'OrderItem',
-#  ONLY              => [ qw(list) ],
-#
-#  DEFAULT_BY        => 'reqdate',
-#  DEFAULT_DIR       => 1,
-#
-#  reqdate           => t8('Reqdate'),
-#  description       => t8('Description'),
-#  partnumber        => t8('Part Number'),
-#  qty               => t8('Qty'),
-#  shipped_qty       => t8('shipped'),
-#  not_shipped_qty   => t8('not shipped'),
-#  ordnumber         => t8('Order'),
-#  customer          => t8('Customer'),
-#);
-
 my %sort_columns = (
   reqdate           => t8('Reqdate'),
   description       => t8('Description'),
@@ -129,10 +103,10 @@ sub action_list {
   my ($self) = @_;
 
   $self->make_filter_summary;
+  $self->prepare_report;
 
   my $orderitems = $self->models->get;
 
-  $self->prepare_report;
   $self->report_generator_list_objects(report => $self->{report}, objects => $orderitems);
 }
 
@@ -158,7 +132,7 @@ sub prepare_report {
     not_shipped_qty   => {      sub => sub { $::form->format_amount(\%::myconfig, $_[0]->qty - $_[0]->shipped_qty, 2) . ' ' . $_[0]->unit } },
     ordnumber         => {      sub => sub { $_[0]->order->ordnumber                                                         },
                            obj_link => sub { $self->link_to($_[0]->order)                                                    } },
-    customer          => {      sub => sub { return ''; $_[0]->order->customer->name                                                    },
+    customer          => {      sub => sub { $_[0]->order->customer->name                                                    },
                            obj_link => sub { $self->link_to($_[0]->order->customer)                                          } },
   );
 
@@ -169,8 +143,6 @@ sub prepare_report {
     controller_class      => 'DeliveryPlan',
     output_format         => 'HTML',
     top_info_text         => $::locale->text('Delivery Plan for currently outstanding sales orders'),
-    raw_top_info_text     => $self->render('delivery_plan/report_top',    { output => 0 }),
-    raw_bottom_info_text  => $self->render('delivery_plan/report_bottom', { output => 0 }, models => $self->models),
     title                 => $::locale->text('Delivery Plan'),
     allow_pdf_export      => 1,
     allow_csv_export      => 1,
@@ -179,9 +151,13 @@ sub prepare_report {
   $report->set_column_order(@columns);
   $report->set_export_options(qw(list filter));
   $report->set_options_from_form;
-  $self->models->sorted->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable);
-
-  $self->models->paginated->disable_pagination if $report->{options}{output_format} =~ /^(pdf|csv)$/i;
+  $self->models->disable_plugin('paginated') if $report->{options}{output_format} =~ /^(pdf|csv)$/i;
+  $self->models->finalize; # for filter laundering
+  $self->models->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable);
+  $report->set_options(
+    raw_top_info_text     => $self->render('delivery_plan/report_top',    { output => 0 }),
+    raw_bottom_info_text  => $self->render('delivery_plan/report_bottom', { output => 0 }, models => $self->models),
+  );
 }
 
 sub make_filter_summary {
@@ -222,19 +198,16 @@ sub init_models {
   my ($self) = @_;
 
   SL::Controller::Helper::GetModels->new(
-    controller => $self,
-    model  => 'OrderItem', # defaults to controller
-    filtered => {
-      launder_to => 'filter',
-    },
-    sorted => {
-      _default => {
-        by        => 'reqdate',
-        dir       => 1,
+    controller   => $self,
+    model        => 'OrderItem',
+    sorted       => {
+      _default     => {
+        by           => 'reqdate',
+        dir          => 1,
       },
       %sort_columns,
     },
-    query => $delivery_plan_query,
+    query        => $delivery_plan_query,
     with_objects => [ 'order', 'order.customer', 'part' ],
   );
 }