Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 057f502a

Von Jan Büren vor mehr als 1 Jahr hinzugefügt

  • ID 057f502ad057b8302faa51bbb657b7fe717271d0
  • Vorgänger c23a8150
  • Nachfolger 14c8aedb

Lieferplan, auch nach Erzeugnisbestandteilen filtern

Unterschiede anzeigen:

SL/Controller/DeliveryPlan.pm
$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);
$self->{assembly_item_number} = $::form->{assembly_item_number} ? $::form->{assembly_item_number} : undef;
$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) = @_;
my $vc = $self->vc;
my ($business, $employee, $department);
my ($business, $employee, $department, $assembly_item_number);
my $filter = $::form->{filter} || {};
my @filter_strings;
......
$business = SL::DB::Business->new(id => $filter->{order}{customer}{"business_id"})->load->description if $filter->{order}{customer}{"business_id"};
$employee = SL::DB::Employee->new(id => $filter->{order}{employee_id})->load->name if $filter->{order}{employee_id};
$department = SL::DB::Department->new(id => $filter->{order}{department_id})->load->description if $filter->{order}{department_id};
$assembly_item_number = $::form->{assembly_item_number};
my @filters = (
[ $filter->{order}{"ordnumber:substr::ilike"}, $::locale->text('Number') ],
......
[ $business, $::locale->text('Customer type') ],
[ $department, $::locale->text('Department') ],
[ $employee, $::locale->text('Employee') ],
[ $assembly_item_number, $::locale->text('Assembly Item Number') ],
);
my %flags = (
......
my $query = $self->delivery_plan_query_linked_items;
if ($::form->{assembly_item_number}) {
my $assembly_parts = SL::DB::Manager::Part->get_all(where => [ partnumber => { ilike => '%' . $::form->{assembly_item_number} . '%' } ]);
my @assemblies;
foreach my $assembly_part (@{ $assembly_parts }) {
push @assemblies, SL::DB::Manager::Assembly->get_all(where => [parts_id =>$assembly_part->id]);
}
if (scalar @assemblies > 0) {
my %assembly_ids;
foreach my $list (@assemblies) {
foreach my $assembly (@{ $list }) {
$assembly_ids{$assembly->id} = 1;
}
}
my @assembly_ids_array = (keys %assembly_ids);
$::form->{filter}{part}{id} = { or => [ @assembly_ids_array ] };
}
}
SL::Controller::Helper::GetModels->new(
controller => $self,
model => 'OrderItem',

Auch abrufbar als: Unified diff