X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FIS.pm;h=e9e9144d41523beb09389987cba01e9118988649;hb=0882a28352cc7808db2474be2398fa1330bb8831;hp=c743f3bf002f34a15e1225a70a618d1d644fff4c;hpb=c9cace869bcf939c42de9c142df65d7c214ecdbc;p=kivitendo-erp.git diff --git a/SL/IS.pm b/SL/IS.pm index c743f3bf0..e9e9144d4 100644 --- a/SL/IS.pm +++ b/SL/IS.pm @@ -1462,18 +1462,20 @@ sub transfer_out { foreach my $i (1 .. $form->{rowcount}) { next if !$form->{"id_$i"}; - my ($err, $wh_id, $bin_id, $chargenumber); + my ($err, $qty, $wh_id, $bin_id, $chargenumber); - if ($::instance_conf->get_sales_serial_eq_charge) { - next unless $form->{"serialnumber_$i"}; + if ($::instance_conf->get_sales_serial_eq_charge && $form->{"serialnumber_$i"}) { my @serials = split(" ", $form->{"serialnumber_$i"}); if (scalar @serials != $form->{"qty_$i"}) { push @errors, $::locale->text("Cannot transfer #1 qty with #2 serial number(s)", $form->{"qty_$i"}, scalar @serials); last; } foreach my $serial (@serials) { - ($wh_id, $bin_id, $chargenumber) = WH->get_wh_and_bin_for_charge(chargenumber => $serial); - + ($qty, $wh_id, $bin_id, $chargenumber) = WH->get_wh_and_bin_for_charge(chargenumber => $serial); + if (!$qty) { + push @errors, $::locale->text("Not enough in stock for the serial number #1", $serial); + last; + } push @transfers, { 'parts_id' => $form->{"id_$i"}, 'qty' => 1,