X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/791090f3380a2d1797db7406b13c76ccd66f4b9e..bc40bcabc425b99f3b79a5544684a6fe8674adfe:/SL/WH.pm diff --git a/SL/WH.pm b/SL/WH.pm index 8ff63f219..97f0a7553 100644 --- a/SL/WH.pm +++ b/SL/WH.pm @@ -37,6 +37,7 @@ package WH; use SL::AM; use SL::DBUtils; use SL::Form; +use SL::Util qw(trim); use SL::DB::Unit; use SL::DB::Assembly; @@ -329,32 +330,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}) { - push @filter_ary, "?::DATE <= i1.itime::DATE"; - push @filter_vars, $form->{fromdate}; + if (trim($form->{fromdate})) { + push @filter_ary, "? <= i1.shippingdate"; + push @filter_vars, trim($form->{fromdate}); } - if ($form->{todate}) { - push @filter_ary, "?::DATE >= i1.itime::DATE"; - push @filter_vars, $form->{todate}; + if (trim($form->{todate})) { + push @filter_ary, "? >= i1.shippingdate"; + push @filter_vars, trim($form->{todate}); } if ($form->{l_employee}) { @@ -383,8 +384,8 @@ sub get_warehouse_journal { my $sort_order = $form->{order}; $sort_col = $filter{sort} unless $sort_col; - $sort_order = ($sort_col = 'itime') unless $sort_col; - $sort_col = 'itime' if $sort_col eq 'date'; + $sort_order = ($sort_col = 'shippingdate') unless $sort_col; + $sort_col = 'shippingdate' if $sort_col eq 'date'; $sort_order = $filter{order} unless $sort_order; my $sort_spec = "${sort_col} " . ($sort_order ? " DESC" : " ASC"); @@ -409,8 +410,9 @@ sub get_warehouse_journal { "trans_id" => "i1.trans_id", "oe_id" => "COALESCE(i1.oe_id, i2.oe_id)", "invoice_id" => "COALESCE(i1.invoice_id, i2.invoice_id)", - "date" => "i1.itime::DATE", + "date" => "i1.shippingdate", "itime" => "i1.itime", + "shippingdate" => "i1.shippingdate", "employee" => "e.name", "projectnumber" => "COALESCE(pr.projectnumber, '$filter{na}')", }; @@ -431,13 +433,14 @@ sub get_warehouse_journal { # take all the requested ones from the first hash and overwrite them from the out/in hashes if present. for my $i ('trans', 'out', 'in') { $select{$i} = join ', ', map { +/^l_/; ($select_tokens{$i}{"$'"} || $select_tokens{'trans'}{"$'"}) . " AS r_$'" } - ( grep( { !/qty$/ and /^l_/ and $form->{$_} eq 'Y' } keys %$form), qw(l_parts_id l_qty l_partunit l_itime) ); + ( grep( { !/qty$/ and /^l_/ and $form->{$_} eq 'Y' } keys %$form), qw(l_parts_id l_qty l_partunit l_shippingdate) ); } 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) ); + ( grep( { !/qty$/ and /^l_/ and $form->{$_} eq 'Y' } keys %$form), qw(l_parts_id l_partunit l_shippingdate) ); $where_clause = defined($where_clause) ? $where_clause : ''; + my $query = qq|SELECT DISTINCT $select{trans} FROM inventory i1 @@ -629,12 +632,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}) { @@ -644,22 +647,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}) { - push @filter_ary, "i.itime <= ?"; - push @filter_vars, $filter{date}; + if (trim($filter{date})) { + push @filter_ary, "i.shippingdate <= ?"; + push @filter_vars, trim($filter{date}); } if (!$filter{include_invalid_warehouses}){ push @filter_ary, "NOT (w.invalid)"; @@ -977,13 +980,9 @@ $main::lxdebug->enter_sub(); $max_qty_parts += $ref->{sum}; $i++; if (($ref->{chargenumber} || $ref->{bestbefore}) && $ref->{sum} != 0){ - $error=1; + $error = 1; } } - #if ($i < 1){ - # $error = 2; - #} - $main::lxdebug->leave_sub(); return ($max_qty_parts, $error); @@ -1004,7 +1003,7 @@ SL::WH - Warehouse backend =head1 DESCRIPTION -Backend for lx-office warehousing functions. +Backend for kivitendo warehousing functions. =head1 FUNCTIONS @@ -1018,7 +1017,7 @@ is called like this: qty => 12.45, transfer_type => 'transfer', src_warehouse_id => 12, - stc_bin_id => 23, + src_bin_id => 23, dst_warehouse_id => 25, dst_bin_id => 167, });