|  | package SL::Controller::Warehouse;
 | 
  
    |  | 
 | 
  
    |  | use strict;
 | 
  
    |  | 
 | 
  
    |  | use parent qw(SL::Controller::Base);
 | 
  
    |  | 
 | 
  
    |  | use SL::DB::Bin;
 | 
  
    |  | use SL::DB::Warehouse;
 | 
  
    |  | use SL::Presenter::Tag qw(select_tag);
 | 
  
    |  | 
 | 
  
    |  | __PACKAGE__->run_before('check_auth');
 | 
  
    |  | __PACKAGE__->run_before(sub { $::auth->assert('developer') },
 | 
  
    |  |                         only => [ qw(test_page test_result) ]);
 | 
  
    |  | 
 | 
  
    |  | #
 | 
  
    |  | # actions
 | 
  
    |  | #
 | 
  
    |  | 
 | 
  
    |  | sub action_test_page {
 | 
  
    |  |   my $pre_filled_wh  = SL::DB::Manager::Warehouse->get_all()->[-1];
 | 
  
    |  |   my $pre_filled_bin = SL::DB::Manager::Bin->get_all()->[-1];
 | 
  
    |  |   $_[0]->render('warehouse/test_page',
 | 
  
    |  |                 pre_filled_wh  => $pre_filled_wh,
 | 
  
    |  |                 pre_filled_bin => $pre_filled_bin);
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | sub action_test_result {
 | 
  
    |  |   my @results;
 | 
  
    |  | 
 | 
  
    |  |   foreach (1..4) {
 | 
  
    |  |     my $wh = 'wh' . $_;
 | 
  
    |  |     push @results, $wh . ' : ' . SL::DB::Manager::Bin->find_by_or_create(id => $::form->{$wh . '_bin'}||0)->full_description;
 | 
  
    |  |   }
 | 
  
    |  | 
 | 
  
    |  |   $::form->show_generic_information(join("<br>", @results), 'Results');
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | sub action_reorder {
 | 
  
    |  |   my ($self) = @_;
 | 
  
    |  | 
 | 
  
    |  |   SL::DB::Warehouse->reorder_list(@{ $::form->{warehouse_id} || [] });
 | 
  
    |  | 
 | 
  
    |  |   $self->render(\'', { type => 'json' }); # make emacs happy again ')
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | sub action_wh_bin_select_update_bins {
 | 
  
    |  |   my ($self) = @_;
 | 
  
    |  | 
 | 
  
    |  |   my $wh_id      = $::form->{wh_id};
 | 
  
    |  |   my $bin_id     = $::form->{bin_id};
 | 
  
    |  |   my $bin_dom_id = $::form->{bin_dom_id} || 'bin';
 | 
  
    |  | 
 | 
  
    |  |   my $bins = $wh_id ? SL::DB::Warehouse->new(id => $wh_id)->load->bins_sorted_naturally
 | 
  
    |  |            : [{id => '', description => ''}];
 | 
  
    |  | 
 | 
  
    |  |   $self->js->run('kivi.Warehouse.wh_bin_select_update_bins',
 | 
  
    |  |                  $bin_dom_id,
 | 
  
    |  |                  [map { {key => $_->{id}, value => $_->{description}} } @$bins],
 | 
  
    |  |                  $bin_id)
 | 
  
    |  |            ->render;
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | 
 | 
  
    |  | #
 | 
  
    |  | # filters
 | 
  
    |  | #
 | 
  
    |  | 
 | 
  
    |  | sub check_auth {
 | 
  
    |  |   $::auth->assert('config');
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | 1;
 | 
  
    |  | 
 | 
  
    |  | 
 | 
  
    |  | __END__
 | 
  
    |  | 
 | 
  
    |  | =pod
 | 
  
    |  | 
 | 
  
    |  | =encoding utf8
 | 
  
    |  | 
 | 
  
    |  | =head1 NAME
 | 
  
    |  | 
 | 
  
    |  | SL::Controller::Warehouse - Controller module for warehouse and bin objects
 | 
  
    |  | 
 | 
  
    |  | =head1 FUNCTIONS
 | 
  
    |  | 
 | 
  
    |  | =over 4
 | 
  
    |  | 
 | 
  
    |  | =item C<action_test_page>
 | 
  
    |  | 
 | 
  
    |  | Renders the test page.
 | 
  
    |  | 
 | 
  
    |  | =item C<action_wh_bin_select_update_bins>
 | 
  
    |  | 
 | 
  
    |  | This action is used by the C<SL::Presenter::Warehouse::wh_bin_select>
 | 
  
    |  | to update the bin selection after the warehouse selection was changed.
 | 
  
    |  | See also L<SL::Presenter::Warehouse::wh_bin_select> and
 | 
  
    |  | L<js/kivi.Warehouse.js>).
 | 
  
    |  | 
 | 
  
    |  | =back
 | 
  
    |  | 
 | 
  
    |  | =head1 BUGS
 | 
  
    |  | 
 | 
  
    |  | Nothing here yet.
 | 
  
    |  | 
 | 
  
    |  | =head1 AUTHOR
 | 
  
    |  | 
 | 
  
    |  | Bernd Bleßmann E<lt>bernd@kivitendo-premium.deE<gt>
 | 
  
    |  | 
 | 
  
    |  | =cut
 |