} 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};
while (my $temphash_ref = $tempsth->fetchrow_hashref()) {
my $temppart_bin_id = $temphash_ref->{bin_id}; # kann man hier den quelllagerplatz beim verbauen angeben?
my $temppart_chargenumber = $temphash_ref->{chargenumber};
- my $temppart_bestbefore = $temphash_ref->{bestbefore};
+ my $temppart_bestbefore = conv_date($temphash_ref->{bestbefore});
my $temppart_qty = $temphash_ref->{sum};
if ($tmpPartsQTY > $temppart_qty) { # wir haben noch mehr waren zum wegbuchen.
}
} # 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;
}
(SELECT id FROM transfer_type WHERE direction = 'in' AND description = 'stock'))|;
my $sthTransferAssemblySQL = prepare_query($form, $dbh, $transferAssemblySQL);
do_statement($form, $sthTransferAssemblySQL, $transferAssemblySQL, $params{assembly_id}, $params{dst_warehouse_id},
- $params{dst_bin_id}, $params{chargenumber}, $params{bestbefore}, $params{comment}, $params{login}, $params{qty});
+ $params{dst_bin_id}, $params{chargenumber}, conv_date($params{bestbefore}), $params{comment}, $params{login}, $params{qty});
$dbh->commit();
$main::lxdebug->leave_sub();
# 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