Revision 79fe86a4
Von Jan Büren vor etwa 10 Jahren hinzugefügt
bin/mozilla/do.pl | ||
---|---|---|
1598 | 1598 |
|
1599 | 1599 |
$qty = 0 if (!$::instance_conf->get_transfer_default_services && !defined($part_info_map{$form->{"id_$i"}}->{inventory_accno_id}) && !$part_info_map{$form->{"id_$i"}}->{assembly}); |
1600 | 1600 |
$qty_parts{$form->{"id_$i"}} += $qty; |
1601 |
delete $qty_parts{$form->{"id_$i"}} if $qty == 0; |
|
1601 |
if ($qty == 0) { |
|
1602 |
delete $qty_parts{$form->{"id_$i"}} if $qty == 0; |
|
1603 |
undef $form->{"stock_in_$i"}; |
|
1604 |
} |
|
1602 | 1605 |
|
1603 | 1606 |
$part_info_map{$form->{"id_$i"}}{bin_id} ||= $default_bin_id; |
1604 | 1607 |
$part_info_map{$form->{"id_$i"}}{warehouse_id} ||= $default_warehouse_id; |
1605 | 1608 |
|
1606 |
push @all_requests, ($qty == 0) ? undef : {
|
|
1609 |
push @all_requests, ($qty == 0) ? { } : {
|
|
1607 | 1610 |
'chargenumber' => '', #?? die müsste entsprechend geholt werden |
1608 | 1611 |
#'bestbefore' => undef, # TODO wird nicht berücksichtigt |
1609 | 1612 |
'bin_id' => $part_info_map{$form->{"id_$i"}}{bin_id}, |
... | ... | |
1621 | 1624 |
# jetzt wird erst überprüft, ob die Stückzahl entsprechend stimmt. |
1622 | 1625 |
# check if bin (transfer in and transfer out and qty (transfer out) is correct |
1623 | 1626 |
foreach my $key (keys %qty_parts) { |
1627 |
|
|
1624 | 1628 |
$missing_default_bins{$key}{missing_bin} = 1 unless ($part_info_map{$key}{bin_id}); |
1625 | 1629 |
next unless ($part_info_map{$key}{bin_id}); # abbruch |
1626 | 1630 |
|
... | ... | |
1687 | 1691 |
# dieser array_ref ist für DO->save da: |
1688 | 1692 |
# einmal die all_requests in YAML verwandeln, damit delivery_order_items_stock |
1689 | 1693 |
# gefüllt werden kann. |
1690 |
my $i = 1;
|
|
1694 |
my $i = 0;
|
|
1691 | 1695 |
foreach (@all_requests){ |
1692 |
$form->{"stock_${prefix}_$i"} = YAML::Dump([$_]); |
|
1693 | 1696 |
$i++; |
1697 |
next unless scalar(%{ $_ }); |
|
1698 |
$form->{"stock_${prefix}_$i"} = YAML::Dump([$_]); |
|
1694 | 1699 |
} |
1695 | 1700 |
|
1696 | 1701 |
save(no_redirect => 1); # Wir können auslagern, deshalb beleg speichern |
Auch abrufbar als: Unified diff
Verbesserung Standardauslagern für den Fall Dienstleistung ist nicht lagerbar
Kein undef an SL/DO.pm übergeben, sondern die richtigen Position zum
Einlagern durch eine "schlauere" Schleife machen.
Falls eine Position die NICHT ein-, bzw. ausgelagert werden soll, schon
belegt wurde (per Benutzereingabe). Diese auch dann löschen, da ansonsten
Beleg ne Lager (Hinweis von Sven)