Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision ec3a4636

Von Sven Schöling vor fast 11 Jahren hinzugefügt

  • ID ec3a4636c1d58339915614120cd82759150d7641
  • Vorgänger cf826cc8
  • Nachfolger 0f491583

Erste Version GetModels rewrite

known bugs:
disable pagination funktioniert nicht
compiletime optimizations werden noch nicht benutzt
doku fehlt

Unterschiede anzeigen:

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