X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/9d14fd7e7dc33f871b4a0841f85e8f0a347e9df0..df2cb4e9ab3eb6b70a84e09fad5eb6a3a6360bfa:/SL/WH.pm diff --git a/SL/WH.pm b/SL/WH.pm index bf850fa30..352ca1af8 100644 --- a/SL/WH.pm +++ b/SL/WH.pm @@ -73,13 +73,15 @@ sub transfer { return; }; + my @trans_ids; + my $db = SL::DB::Inventory->new->db; $db->do_transaction(sub{ while (my $transfer = shift @args) { my ($trans_id) = selectrow_query($::form, $::form->get_standard_dbh, qq|SELECT nextval('id')|); my $part = $objectify->($transfer, 'parts', 'SL::DB::Part'); - my $unit = $objectify->($transfer, 'unit', 'SL::DB::Unit', unit => $transfer->{unit}); + my $unit = $objectify->($transfer, 'unit', 'SL::DB::Unit', name => $transfer->{unit}); my $qty = $transfer->{qty}; my $src_bin = $objectify->($transfer, 'src_bin', 'SL::DB::Bin'); my $dst_bin = $objectify->($transfer, 'dst_bin', 'SL::DB::Bin'); @@ -109,7 +111,7 @@ sub transfer { ); if ($unit) { - $qty *= $unit->factor; + $qty *= $unit->factor || 1; $qty /= $part->unit_obj->factor || 1 if $part->unit; } @@ -130,12 +132,16 @@ sub transfer { qty => $qty, )->save; } + + push @trans_ids, $trans_id; } }) or do { $::form->error("Warehouse transfer error: " . join("\n", (split(/\n/, $db->error))[0..2])); }; $::lxdebug->leave_sub; + + return @trans_ids; } sub transfer_assembly {