X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FWH.pm;h=3cc2e2375c76ea7361b7485964c2d1a09042f09b;hb=f9a93e326337ed219de49f575c02e5a8cb36a1b6;hp=6fab5ec63b2819d8e464f8133530b9d81ec135d2;hpb=8fd886849e68f07a7e40af8566082917ab5196f3;p=kivitendo-erp.git diff --git a/SL/WH.pm b/SL/WH.pm index 6fab5ec63..3cc2e2375 100644 --- a/SL/WH.pm +++ b/SL/WH.pm @@ -37,9 +37,7 @@ package WH; use SL::AM; use SL::DBUtils; use SL::Form; - -use SL::DB::Unit; -use SL::DB::Assembly; +use SL::Util qw(trim); use warnings; use strict; @@ -161,17 +159,6 @@ sub transfer_assembly { my %params = @_; Common::check_params(\%params, qw(assembly_id dst_warehouse_id login qty unit dst_bin_id chargenumber bestbefore comment)); - - my $unit = SL::DB::Manager::Unit->find_by(name => $params{unit}); - if ($unit) { - my $assembly = SL::DB::Manager::Assembly->get_all( - query => [ id => $params{assembly_id} ], - with_objects => ['part'], - limit => 1, - )->[0]; - $params{qty} = $unit->convert_to($params{qty}, $assembly->part->unit_obj); - } - # my $maxcreate=WH->check_assembly_max_create(assembly_id =>$params{'assembly_id'}, dbh => $my_dbh); my $myconfig = \%main::myconfig; @@ -202,9 +189,11 @@ sub transfer_assembly { my $sth_part_qty_assembly = prepare_execute_query($form, $dbh, $query, $params{assembly_id}); # Hier wird das prepared Statement für die Schleife über alle Lagerplätze vorbereitet - my $transferPartSQL = qq|INSERT INTO inventory (parts_id, warehouse_id, bin_id, chargenumber, bestbefore, comment, employee_id, qty, trans_id, trans_type_id) + my $transferPartSQL = qq|INSERT INTO inventory (parts_id, warehouse_id, bin_id, chargenumber, bestbefore, comment, employee_id, qty, + trans_id, trans_type_id, shippingdate) VALUES (?, ?, ?, ?, ?, ?, (SELECT id FROM employee WHERE login = ?), ?, nextval('id'), - (SELECT id FROM transfer_type WHERE direction = 'out' AND description = 'used'))|; + (SELECT id FROM transfer_type WHERE direction = 'out' AND description = 'used'), + (SELECT current_date))|; my $sthTransferPartSQL = prepare_query($form, $dbh, $transferPartSQL); # der return-string für die fehlermeldung inkl. welche waren zum fertigen noch fehlen @@ -288,9 +277,10 @@ sub transfer_assembly { # soweit alles gut. Jetzt noch die wirkliche Lagerbewegung für das Erzeugnis ausführen ... my $transferAssemblySQL = qq|INSERT INTO inventory (parts_id, warehouse_id, bin_id, chargenumber, bestbefore, - comment, employee_id, qty, trans_id, trans_type_id) + comment, employee_id, qty, trans_id, trans_type_id, shippingdate) VALUES (?, ?, ?, ?, ?, ?, (SELECT id FROM employee WHERE login = ?), ?, nextval('id'), - (SELECT id FROM transfer_type WHERE direction = 'in' AND description = 'stock'))|; + (SELECT id FROM transfer_type WHERE direction = 'in' AND description = 'assembled'), + (select current_date))|; 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}, conv_date($params{bestbefore}), $params{comment}, $params{login}, $params{qty}); @@ -329,32 +319,32 @@ sub get_warehouse_journal { if ($filter{partnumber}) { push @filter_ary, "p.partnumber ILIKE ?"; - push @filter_vars, '%' . $filter{partnumber} . '%'; + push @filter_vars, like($filter{partnumber}); } if ($filter{description}) { push @filter_ary, "(p.description ILIKE ?)"; - push @filter_vars, '%' . $filter{description} . '%'; + push @filter_vars, like($filter{description}); } if ($filter{chargenumber}) { push @filter_ary, "i1.chargenumber ILIKE ?"; - push @filter_vars, '%' . $filter{chargenumber} . '%'; + push @filter_vars, like($filter{chargenumber}); } - if ($form->{bestbefore}) { + if (trim($form->{bestbefore})) { push @filter_ary, "?::DATE = i1.bestbefore::DATE"; - push @filter_vars, $form->{bestbefore}; + push @filter_vars, trim($form->{bestbefore}); } - if ($form->{fromdate}) { + if (trim($form->{fromdate})) { push @filter_ary, "? <= i1.shippingdate"; - push @filter_vars, $form->{fromdate}; + push @filter_vars, trim($form->{fromdate}); } - if ($form->{todate}) { + if (trim($form->{todate})) { push @filter_ary, "? >= i1.shippingdate"; - push @filter_vars, $form->{todate}; + push @filter_vars, trim($form->{todate}); } if ($form->{l_employee}) { @@ -631,12 +621,12 @@ sub get_warehouse_report { if ($filter{partnumber}) { push @filter_ary, "p.partnumber ILIKE ?"; - push @filter_vars, '%' . $filter{partnumber} . '%'; + push @filter_vars, like($filter{partnumber}); } if ($filter{description}) { push @filter_ary, "p.description ILIKE ?"; - push @filter_vars, '%' . $filter{description} . '%'; + push @filter_vars, like($filter{description}); } if ($filter{partsid}) { @@ -646,22 +636,22 @@ sub get_warehouse_report { if ($filter{chargenumber}) { push @filter_ary, "i.chargenumber ILIKE ?"; - push @filter_vars, '%' . $filter{chargenumber} . '%'; + push @filter_vars, like($filter{chargenumber}); } - if ($form->{bestbefore}) { + if (trim($form->{bestbefore})) { push @filter_ary, "?::DATE = i.bestbefore::DATE"; - push @filter_vars, $form->{bestbefore}; + push @filter_vars, trim($form->{bestbefore}); } if ($filter{ean}) { push @filter_ary, "p.ean ILIKE ?"; - push @filter_vars, '%' . $filter{ean} . '%'; + push @filter_vars, like($filter{ean}); } - if ($filter{date}) { + if (trim($filter{date})) { push @filter_ary, "i.shippingdate <= ?"; - push @filter_vars, $filter{date}; + push @filter_vars, trim($filter{date}); } if (!$filter{include_invalid_warehouses}){ push @filter_ary, "NOT (w.invalid)";