Währung auf Kundenwährung setzten, wenn nicht angegeben.
[kivitendo-erp.git] / SL / Controller / Inventory.pm
index f894e06..3f406ee 100644 (file)
@@ -49,7 +49,7 @@ sub action_stock {
     parts         => $self->part,
     dst_bin       => $self->bin,
     dst_wh        => $self->warehouse,
-    qty           => $::form->format_amount(\%::myconfig, $::form->{qty}),
+    qty           => $::form->parse_amount(\%::myconfig, $::form->{qty}),
     unit          => $self->unit,
     transfer_type => 'stock',
     chargenumber  => $::form->{chargenumber},
@@ -58,6 +58,7 @@ sub action_stock {
   });
 
   if ($::form->{write_default_bin}) {
+    $self->part->load;   # onhand is calculated in between. don't mess that up
     $self->part->bin($self->bin);
     $self->part->warehouse($self->warehouse);
     $self->part->save;
@@ -122,7 +123,7 @@ sub _check_warehouses {
 }
 
 sub init_warehouses {
-  SL::DB::Manager::Warehouse->get_all;
+  SL::DB::Manager::Warehouse->get_all(query => [ or => [ invalid => 0, invalid => undef ]]);
 }
 
 sub init_units {
@@ -149,8 +150,8 @@ sub set_target_from_part {
 sub sanitize_target {
   my ($self) = @_;
 
-  $self->warehouse(SL::DB::Manager::Warehouse->get_first) if !$self->warehouse || !$self->warehouse->id;
-  $self->bin      ($self->warehouse->bins->[0])           if !$self->bin       || !$self->bin->id;
+  $self->warehouse($self->warehouses->[0])       if !$self->warehouse || !$self->warehouse->id;
+  $self->bin      ($self->warehouse->bins->[0])  if !$self->bin       || !$self->bin->id;
 }
 
 sub load_part_from_form {
@@ -230,7 +231,7 @@ sub mini_stock {
   $self->{stock_empty}  = ! grep { $_->{sum} * 1 } @$stock;
 }
 
-sub show_no_warehouse_error {
+sub show_no_warehouses_error {
   my ($self) = @_;
 
   my $msg = t8('No warehouse has been created yet or the quantity of the bins is not configured yet.') . ' ';