} 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};
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};
}
} # 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;
}
# 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};
}
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
my $sort_order = $form->{order};
$sort_col = $filter{sort} unless $sort_col;
- $sort_col = "parts_id" unless $sort_col;
+ # falls $sort_col gar nicht in dem Bericht aufgenommen werden soll,
+ # führt ein entsprechenes order by $sort_col zu einem SQL-Fehler
+ # entsprechend parts_id als default lassen, wenn $sort_col UND l_$sort_col
+ # vorhanden sind (bpsw. l_partnumber = 'Y', für in Bericht aufnehmen).
+ # S.a. Bug 1597 jb 12.5.2011
+ $sort_col = "parts_id" unless ($sort_col && $form->{"l_$sort_col"});
$sort_order = $filter{order} unless $sort_order;
$sort_col =~ s/ASC|DESC//; # kill stuff left in from previous queries
my $orderby = $sort_col;