From 79fe86a487a0d0410ba0eb3283b9a72f35962613 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20B=C3=BCren?= Date: Tue, 4 Nov 2014 16:19:46 +0100 Subject: [PATCH] =?utf8?q?Verbesserung=20Standardauslagern=20f=C3=BCr=20de?= =?utf8?q?n=20Fall=20Dienstleistung=20ist=20nicht=20lagerbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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) --- bin/mozilla/do.pl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl index d9312cc86..d33baa3b1 100644 --- a/bin/mozilla/do.pl +++ b/bin/mozilla/do.pl @@ -1598,12 +1598,15 @@ sub transfer_in_out_default { $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}); $qty_parts{$form->{"id_$i"}} += $qty; - delete $qty_parts{$form->{"id_$i"}} if $qty == 0; + if ($qty == 0) { + delete $qty_parts{$form->{"id_$i"}} if $qty == 0; + undef $form->{"stock_in_$i"}; + } $part_info_map{$form->{"id_$i"}}{bin_id} ||= $default_bin_id; $part_info_map{$form->{"id_$i"}}{warehouse_id} ||= $default_warehouse_id; - push @all_requests, ($qty == 0) ? undef : { + push @all_requests, ($qty == 0) ? { } : { 'chargenumber' => '', #?? die müsste entsprechend geholt werden #'bestbefore' => undef, # TODO wird nicht berücksichtigt 'bin_id' => $part_info_map{$form->{"id_$i"}}{bin_id}, @@ -1621,6 +1624,7 @@ sub transfer_in_out_default { # jetzt wird erst überprüft, ob die Stückzahl entsprechend stimmt. # check if bin (transfer in and transfer out and qty (transfer out) is correct foreach my $key (keys %qty_parts) { + $missing_default_bins{$key}{missing_bin} = 1 unless ($part_info_map{$key}{bin_id}); next unless ($part_info_map{$key}{bin_id}); # abbruch @@ -1687,10 +1691,11 @@ sub transfer_in_out_default { # dieser array_ref ist für DO->save da: # einmal die all_requests in YAML verwandeln, damit delivery_order_items_stock # gefüllt werden kann. - my $i = 1; + my $i = 0; foreach (@all_requests){ - $form->{"stock_${prefix}_$i"} = YAML::Dump([$_]); $i++; + next unless scalar(%{ $_ }); + $form->{"stock_${prefix}_$i"} = YAML::Dump([$_]); } save(no_redirect => 1); # Wir können auslagern, deshalb beleg speichern -- 2.20.1