Beim Einlagern die letzte gewählte Einheit merken
[kivitendo-erp.git] / SL / Controller / Inventory.pm
index ba208c4..f894e06 100644 (file)
@@ -28,6 +28,7 @@ __PACKAGE__->run_before('load_unit_from_form',   only => [ qw(stock_in part_chan
 __PACKAGE__->run_before('load_wh_from_form',     only => [ qw(stock_in warehouse_changed stock) ]);
 __PACKAGE__->run_before('load_bin_from_form',    only => [ qw(stock_in stock) ]);
 __PACKAGE__->run_before('set_target_from_part',  only => [ qw(part_changed) ]);
+__PACKAGE__->run_before('mini_stock',            only => [ qw(stock_in mini_stock) ]);
 __PACKAGE__->run_before('sanitize_target',       only => [ qw(stock_in warehouse_changed part_changed) ]);
 __PACKAGE__->run_before('set_layout');
 
@@ -70,6 +71,7 @@ sub action_stock {
     part_id      => $self->part->id,
     bin_id       => $self->bin->id,
     warehouse_id => $self->warehouse->id,
+    unit_id      => $self->unit->id,
   );
 }
 
@@ -104,22 +106,11 @@ sub action_warehouse_changed {
 sub action_mini_stock {
   my ($self) = @_;
 
-  my $stock        = $self->part->get_simple_stock;
-  my $stock_by_bin = { map { $_->{bin_id} => $_ } @$stock };
-  my $stock_empty  = ! grep { $_->{sum} * 1 } @$stock;
-
   $self->js
-    ->html('#stock', $self->render('inventory/_stock', { output => 0 }, stock => $stock_by_bin, stock_empty => $stock_empty ))
+    ->html('#stock', $self->render('inventory/_stock', { output => 0 }))
     ->render($self);
 }
 
-sub action_last_journal {
-  my ($self) = @_;
-
-#  my $jounal = $self->journal;
-
-}
-
 #================================================================
 
 sub _check_auth {
@@ -215,7 +206,8 @@ sub mini_journal {
   my $query = 'SELECT trans_id, max(itime) FROM inventory GROUP BY trans_id ORDER BY max(itime) DESC LIMIT 10';
   my @ids = selectall_array_query($::form, $::form->get_standard_dbh, $query);
 
-  my $objs = SL::DB::Manager::Inventory->get_all(query => [ trans_id => \@ids ]);
+  my $objs;
+  $objs = SL::DB::Manager::Inventory->get_all(query => [ trans_id => \@ids ]) if @ids;
 
   # at most 2 of them belong to a transaction and the qty determins in or out.
   # sort them for display
@@ -230,6 +222,14 @@ sub mini_journal {
   return \@sorted;
 }
 
+sub mini_stock {
+  my ($self) = @_;
+
+  my $stock             = $self->part->get_simple_stock;
+  $self->{stock_by_bin} = { map { $_->{bin_id} => $_ } @$stock };
+  $self->{stock_empty}  = ! grep { $_->{sum} * 1 } @$stock;
+}
+
 sub show_no_warehouse_error {
   my ($self) = @_;