__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'),
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);
}
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) } },
);
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,
$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 {
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' ],
);
}