X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FWH.pm;h=669b295fef3479ccf48b01e334eaafd7d4404911;hb=89c9ff022d3f13e27ba6bda085df15707fcfb0eb;hp=44feb83a29d126a5b632f1538c743d415f447ab1;hpb=718e0b5a83140105047a20a46e6590437885910b;p=kivitendo-erp.git diff --git a/SL/WH.pm b/SL/WH.pm index 44feb83a2..669b295fe 100644 --- a/SL/WH.pm +++ b/SL/WH.pm @@ -99,7 +99,8 @@ sub transfer { } else { push @values, $transfer_types{$directions[$direction]}->{$transfer->{transfer_type}}; } - + + $transfer->{comment} = defined($transfer->{comment}) ? $transfer->{comment} : ''; push @values, "$transfer->{comment}"; my $qty = $transfer->{qty}; @@ -170,11 +171,11 @@ sub transfer_assembly { my $sthTransferPartSQL = prepare_query($form, $dbh, $transferPartSQL); # der return-string für die fehlermeldung inkl. welche waren zum fertigen noch fehlen - my $kannNichtFertigen ="Für dieses Erzeugnis sind keine Einzelteile definiert. - Dementsprechend kann auch nichts hergestellt werden"; + my $kannNichtFertigen =""; # Falls leer dann erfolgreich + my $schleife_durchlaufen=0; # Falls die Schleife nicht ausgeführt wird -> Keine Einzelteile definiert. Bessere Idee? jan while (my $hash_ref = $sth_part_qty_assembly->fetchrow_hashref()) { #Schleife für select parts_id,(...) from assembly - $kannNichtFertigen =""; # Wieder auf erfolgreich setzen LEER == keine Fehlermeldung + $schleife_durchlaufen=1; # Erzeugnis definiert my $partsQTY = $hash_ref->{qty} * $params{qty}; # benötigte teile * anzahl erzeugnisse my $currentPart_ID = $hash_ref->{parts_id}; @@ -236,6 +237,14 @@ sub transfer_assembly { } } # ende while SELECT SUM(qty), bin_id, chargenumber, bestbefore FROM inventory WHERE warehouse_id } #ende while select parts_id,qty from assembly where id = ? + + if ($schleife_durchlaufen==0){ # falls die schleife nicht durchlaufen wurde, wurden auch + # keine einzelteile definiert + $kannNichtFertigen ="Für dieses Erzeugnis sind keine Einzelteile definiert. + Dementsprechend kann auch nichts hergestellt werden"; + } + # gibt die Fehlermeldung zurück. A.) Keine Teile definiert + # B.) Artikel und Anzahl der fehlenden Teile/Dienstleistungen if ($kannNichtFertigen) { return $kannNichtFertigen; } @@ -271,12 +280,12 @@ sub get_warehouse_journal { # filters my (@filter_ary, @filter_vars, $joins, %select_tokens, %select); - if ($filter{warehouse_id} ne '') { + if ($filter{warehouse_id}) { push @filter_ary, "w1.id = ? OR w2.id = ?"; push @filter_vars, $filter{warehouse_id}, $filter{warehouse_id}; } - if ($filter{bin_id} ne '') { + if ($filter{bin_id}) { push @filter_ary, "b1.id = ? OR b2.id = ?"; push @filter_vars, $filter{bin_id}, $filter{bin_id}; } @@ -388,6 +397,7 @@ sub get_warehouse_journal { my $group_clause = join ", ", map { +/^l_/; "r_$'" } ( grep( { !/qty$/ and /^l_/ and $form->{$_} eq 'Y' } keys %$form), qw(l_parts_id l_partunit l_itime) ); + $where_clause = defined($where_clause) ? $where_clause : ''; my $query = qq|SELECT DISTINCT $select{trans} FROM inventory i1