Revision 4b2e8d68
Von Jan Büren vor mehr als 4 Jahren hinzugefügt
SL/IS.pm | ||
---|---|---|
1462 | 1462 |
foreach my $i (1 .. $form->{rowcount}) { |
1463 | 1463 |
next if !$form->{"id_$i"}; |
1464 | 1464 |
|
1465 |
my ($err, $wh_id, $bin_id, $chargenumber); |
|
1465 |
my ($err, $qty, $wh_id, $bin_id, $chargenumber);
|
|
1466 | 1466 |
|
1467 | 1467 |
if ($::instance_conf->get_sales_serial_eq_charge) { |
1468 | 1468 |
next unless $form->{"serialnumber_$i"}; |
... | ... | |
1472 | 1472 |
last; |
1473 | 1473 |
} |
1474 | 1474 |
foreach my $serial (@serials) { |
1475 |
($wh_id, $bin_id, $chargenumber) = WH->get_wh_and_bin_for_charge(chargenumber => $serial); |
|
1476 |
|
|
1475 |
($qty, $wh_id, $bin_id, $chargenumber) = WH->get_wh_and_bin_for_charge(chargenumber => $serial); |
|
1476 |
if (!$qty) { |
|
1477 |
push @errors, $::locale->text("Not enough in stock for the serial number #1", $serial); |
|
1478 |
last; |
|
1479 |
} |
|
1477 | 1480 |
push @transfers, { |
1478 | 1481 |
'parts_id' => $form->{"id_$i"}, |
1479 | 1482 |
'qty' => 1, |
SL/WH.pm | ||
---|---|---|
1135 | 1135 |
|
1136 | 1136 |
my $self = shift; |
1137 | 1137 |
my %params = @_; |
1138 |
my %bin_qty; |
|
1138 | 1139 |
|
1139 | 1140 |
croak t8('Need charge number!') unless $params{chargenumber}; |
1140 | 1141 |
|
1141 |
my $inv_item= SL::DB::Manager::Inventory->get_first(where => [chargenumber => $params{chargenumber} ]);
|
|
1142 |
my $inv_items = SL::DB::Manager::Inventory->get_all(where => [chargenumber => $params{chargenumber} ]);
|
|
1142 | 1143 |
|
1143 |
croak t8("Invalid charge number: #1", $params{chargenumber}) unless (ref $inv_item eq 'SL::DB::Inventory'); |
|
1144 |
croak t8("Invalid charge number: #1", $params{chargenumber}) unless (ref @{$inv_items}[0] eq 'SL::DB::Inventory'); |
|
1145 |
# add all qty for one bin and add wh_id |
|
1146 |
($bin_qty{$_->bin_id}{qty}, $bin_qty{$_->bin_id}{wh}) = ($bin_qty{$_->bin_id}{qty} + $_->qty, $_->warehouse_id) for @{ $inv_items }; |
|
1147 |
|
|
1148 |
while (my ($bin, $value) = each (%bin_qty)) { |
|
1149 |
if ($value->{qty} > 0) { |
|
1150 |
$main::lxdebug->leave_sub(); |
|
1151 |
return ($value->{qty}, $value->{wh}, $bin, $params{chargenumber}); |
|
1152 |
} |
|
1153 |
} |
|
1144 | 1154 |
|
1145 | 1155 |
$main::lxdebug->leave_sub(); |
1146 |
return ($inv_item->warehouse_id, $inv_item->bin_id, $inv_item->chargenumber);
|
|
1156 |
return undef;
|
|
1147 | 1157 |
} |
1148 | 1158 |
1; |
1149 | 1159 |
|
... | ... | |
1301 | 1311 |
|
1302 | 1312 |
=head2 get_wh_and_bin_for_charge C<$params{chargenumber}> |
1303 | 1313 |
|
1304 |
Gets the first inventory entry with the mandatory chargenumber: C<$params{chargenumber}>.
|
|
1314 |
Gets the current qty from the inventory entries with the mandatory chargenumber: C<$params{chargenumber}>.
|
|
1305 | 1315 |
Croaks if the chargenumber is missing or no entry currently exists. |
1306 |
From the found inventory entry the following values and in this order are returned: |
|
1307 |
C<warehouse_id>, C<bin_id>, C<chargenumber>. |
|
1316 |
If there is one bin and warehouse with a positive qty, this fields are returned: |
|
1317 |
C<qty> C<warehouse_id>, C<bin_id>, C<chargenumber>. |
|
1318 |
Otherwise returns undef. |
|
1308 | 1319 |
|
1309 | 1320 |
|
1310 | 1321 |
=head3 Prerequisites |
locale/de/all | ||
---|---|---|
2123 | 2123 |
'Not Discountable' => 'Nicht rabattierfähig', |
2124 | 2124 |
'Not delivered' => 'Nicht geliefert', |
2125 | 2125 |
'Not done yet' => 'Noch nicht fertig', |
2126 |
'Not enough in stock for the serial number #1' => 'Nicht genug auf Lager von der Seriennummer #1', |
|
2126 | 2127 |
'Not obsolete' => 'Gültig', |
2127 | 2128 |
'Note' => 'Hinweis', |
2128 | 2129 |
'Note that parameter names must not be quoted.' => 'Beachten Sie, dass Parameternamen nicht in Anführungszeichen stehen dürfen.', |
Auch abrufbar als: Unified diff
Feature: Auslagern über Rechnung inkl. Seriennummer Lagermenge berücksichtigen