Revision ec3a4636
Von Sven Schöling vor fast 11 Jahren hinzugefügt
SL/Controller/DeliveryPlan.pm | ||
---|---|---|
6 | 6 |
use Clone qw(clone); |
7 | 7 |
use SL::DB::OrderItem; |
8 | 8 |
use SL::Controller::Helper::GetModels; |
9 |
use SL::Controller::Helper::Paginated; |
|
10 |
use SL::Controller::Helper::Sorted; |
|
11 |
use SL::Controller::Helper::Filtered; |
|
12 | 9 |
use SL::Controller::Helper::ReportGenerator; |
13 | 10 |
use SL::Locale::String; |
14 | 11 |
|
15 | 12 |
use Rose::Object::MakeMethods::Generic ( |
16 | 13 |
scalar => [ qw(db_args flat_filter) ], |
14 |
'scalar --get_set_init' => [ qw(models) ], |
|
17 | 15 |
); |
18 | 16 |
|
19 | 17 |
__PACKAGE__->run_before(sub { $::auth->assert('sales_order_edit'); }); |
20 | 18 |
|
21 |
__PACKAGE__->make_filtered( |
|
22 |
MODEL => 'OrderItem', |
|
23 |
LAUNDER_TO => 'filter' |
|
24 |
); |
|
25 |
__PACKAGE__->make_paginated( |
|
26 |
MODEL => 'OrderItem', |
|
27 |
ONLY => [ qw(list) ], |
|
28 |
); |
|
29 |
|
|
30 |
__PACKAGE__->make_sorted( |
|
31 |
MODEL => 'OrderItem', |
|
32 |
ONLY => [ qw(list) ], |
|
33 |
|
|
34 |
DEFAULT_BY => 'reqdate', |
|
35 |
DEFAULT_DIR => 1, |
|
36 |
|
|
19 |
#__PACKAGE__->make_filtered( |
|
20 |
# MODEL => 'OrderItem', |
|
21 |
# LAUNDER_TO => 'filter' |
|
22 |
#); |
|
23 |
#__PACKAGE__->make_paginated( |
|
24 |
# MODEL => 'OrderItem', |
|
25 |
# ONLY => [ qw(list) ], |
|
26 |
#); |
|
27 |
# |
|
28 |
#__PACKAGE__->make_sorted( |
|
29 |
# MODEL => 'OrderItem', |
|
30 |
# ONLY => [ qw(list) ], |
|
31 |
# |
|
32 |
# DEFAULT_BY => 'reqdate', |
|
33 |
# DEFAULT_DIR => 1, |
|
34 |
# |
|
35 |
# reqdate => t8('Reqdate'), |
|
36 |
# description => t8('Description'), |
|
37 |
# partnumber => t8('Part Number'), |
|
38 |
# qty => t8('Qty'), |
|
39 |
# shipped_qty => t8('shipped'), |
|
40 |
# not_shipped_qty => t8('not shipped'), |
|
41 |
# ordnumber => t8('Order'), |
|
42 |
# customer => t8('Customer'), |
|
43 |
#); |
|
44 |
|
|
45 |
my %sort_columns = ( |
|
37 | 46 |
reqdate => t8('Reqdate'), |
38 | 47 |
description => t8('Description'), |
39 | 48 |
partnumber => t8('Part Number'), |
... | ... | |
121 | 130 |
|
122 | 131 |
$self->make_filter_summary; |
123 | 132 |
|
124 |
my $orderitems = $self->get_models(query => $delivery_plan_query, with_objects => [ 'order', 'order.customer', 'part' ]);
|
|
133 |
my $orderitems = $self->models->get;
|
|
125 | 134 |
|
126 | 135 |
$self->prepare_report; |
127 | 136 |
$self->report_generator_list_objects(report => $self->{report}, objects => $orderitems); |
... | ... | |
149 | 158 |
not_shipped_qty => { sub => sub { $::form->format_amount(\%::myconfig, $_[0]->qty - $_[0]->shipped_qty, 2) . ' ' . $_[0]->unit } }, |
150 | 159 |
ordnumber => { sub => sub { $_[0]->order->ordnumber }, |
151 | 160 |
obj_link => sub { $self->link_to($_[0]->order) } }, |
152 |
customer => { sub => sub { $_[0]->order->customer->name }, |
|
161 |
customer => { sub => sub { return ''; $_[0]->order->customer->name },
|
|
153 | 162 |
obj_link => sub { $self->link_to($_[0]->order->customer) } }, |
154 | 163 |
); |
155 | 164 |
|
156 |
map { $column_defs{$_}->{text} = $::locale->text( $self->get_sort_spec->{$_}->{title} ) } keys %column_defs;
|
|
165 |
$column_defs{$_}->{text} = $sort_columns{$_} for keys %column_defs;
|
|
157 | 166 |
|
158 | 167 |
$report->set_options( |
159 | 168 |
std_column_visibility => 1, |
... | ... | |
161 | 170 |
output_format => 'HTML', |
162 | 171 |
top_info_text => $::locale->text('Delivery Plan for currently outstanding sales orders'), |
163 | 172 |
raw_top_info_text => $self->render('delivery_plan/report_top', { output => 0 }), |
164 |
raw_bottom_info_text => $self->render('delivery_plan/report_bottom', { output => 0 }), |
|
173 |
raw_bottom_info_text => $self->render('delivery_plan/report_bottom', { output => 0 }, models => $self->models),
|
|
165 | 174 |
title => $::locale->text('Delivery Plan'), |
166 | 175 |
allow_pdf_export => 1, |
167 | 176 |
allow_csv_export => 1, |
... | ... | |
170 | 179 |
$report->set_column_order(@columns); |
171 | 180 |
$report->set_export_options(qw(list filter)); |
172 | 181 |
$report->set_options_from_form; |
173 |
$self->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable); |
|
182 |
$self->models->sorted->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable);
|
|
174 | 183 |
|
175 |
$self->disable_pagination if $report->{options}{output_format} =~ /^(pdf|csv)$/i; |
|
184 |
$self->models->paginated->disable_pagination if $report->{options}{output_format} =~ /^(pdf|csv)$/i;
|
|
176 | 185 |
} |
177 | 186 |
|
178 | 187 |
sub make_filter_summary { |
... | ... | |
209 | 218 |
$self->{filter_summary} = join ', ', @filter_strings; |
210 | 219 |
} |
211 | 220 |
|
221 |
sub init_models { |
|
222 |
my ($self) = @_; |
|
223 |
|
|
224 |
SL::Controller::Helper::GetModels->new( |
|
225 |
controller => $self, |
|
226 |
model => 'OrderItem', # defaults to controller |
|
227 |
filtered => { |
|
228 |
launder_to => 'filter', |
|
229 |
}, |
|
230 |
sorted => { |
|
231 |
_default => { |
|
232 |
by => 'reqdate', |
|
233 |
dir => 1, |
|
234 |
}, |
|
235 |
%sort_columns, |
|
236 |
}, |
|
237 |
query => $delivery_plan_query, |
|
238 |
with_objects => [ 'order', 'order.customer', 'part' ], |
|
239 |
); |
|
240 |
} |
|
241 |
|
|
212 | 242 |
sub link_to { |
213 | 243 |
my ($self, $object, %params) = @_; |
214 | 244 |
|
Auch abrufbar als: Unified diff
Erste Version GetModels rewrite
known bugs:
disable pagination funktioniert nicht
compiletime optimizations werden noch nicht benutzt
doku fehlt