__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');
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},
});
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;
part_id => $self->part->id,
bin_id => $self->bin->id,
warehouse_id => $self->warehouse->id,
+ unit_id => $self->unit->id,
);
}
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 init_warehouses {
- SL::DB::Manager::Warehouse->get_all;
+ SL::DB::Manager::Warehouse->get_all(query => [ or => [ invalid => 0, invalid => undef ]]);
}
sub init_units {
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 {
return \@sorted;
}
-sub show_no_warehouse_error {
+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_warehouses_error {
my ($self) = @_;
my $msg = t8('No warehouse has been created yet or the quantity of the bins is not configured yet.') . ' ';