X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/90daea72226506cd9f797ba2bfd7d3c39e19fe3e..c09536f461b4933a1813b2af5e17eb6214f7bf38:/SL/OE.pm diff --git a/SL/OE.pm b/SL/OE.pm index 0b9256e50..b731dc1cc 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -41,6 +41,8 @@ use SL::CVar; use SL::DBUtils; use SL::IC; +use strict; + sub transactions { $main::lxdebug->enter_sub(); @@ -74,7 +76,7 @@ sub transactions { qq| ex.$rate AS exchangerate, | . qq| pr.projectnumber AS globalprojectnumber, | . qq| e.name AS employee, s.name AS salesman, | . - qq| ct.country, ct.ustid | . + qq| ct.${vc}number AS vcnumber, ct.country, ct.ustid | . qq|FROM oe o | . qq|JOIN $vc ct ON (o.${vc}_id = ct.id) | . qq|LEFT JOIN employee e ON (o.employee_id = e.id) | . @@ -97,7 +99,18 @@ sub transactions { qq|AND ((globalproject_id = ?) OR EXISTS | . qq| (SELECT * FROM orderitems oi | . qq| WHERE oi.project_id = ? AND oi.trans_id = o.id))|; - push(@values, $form->{"project_id"}, $form->{"project_id"}); + push(@values, conv_i($form->{"project_id"}), conv_i($form->{"project_id"})); + } + + if ($form->{"projectnumber"}) { + $query .= <{"projectnumber"} . "%", "%" . $form->{"projectnumber"} . "%" ; } if ($form->{"${vc}_id"}) { @@ -736,7 +749,7 @@ sub retrieve { "quonumber" : "ordnumber"}; # set all entries for multiple ids blank that yield different information - while ($ref = $sth->fetchrow_hashref(NAME_lc)) { + while ($ref = $sth->fetchrow_hashref("NAME_lc")) { map { $form->{$_} = '' if ($ref->{$_} ne $form->{$_}) } keys %$ref; } @@ -930,6 +943,30 @@ sub retrieve { return $rc; } +sub retrieve_simple { + $main::lxdebug->enter_sub(); + + my $self = shift; + my %params = @_; + + Common::check_params(\%params, qw(id)); + + my $myconfig = \%main::myconfig; + my $form = $main::form; + + my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig); + + my $oe_query = qq|SELECT * FROM oe WHERE id = ?|; + my $oi_query = qq|SELECT * FROM orderitems WHERE trans_id = ?|; + + my $order = selectfirst_hashref_query($form, $dbh, $oe_query, conv_i($params{id})); + $order->{orderitems} = selectall_hashref_query( $form, $dbh, $oi_query, conv_i($params{id})); + + $main::lxdebug->leave_sub(); + + return $order; +} + sub order_details { $main::lxdebug->enter_sub(); @@ -1160,13 +1197,13 @@ sub order_details { } $query = qq|SELECT p.partnumber, p.description, p.unit, a.qty, | . - qq|pg.partsgroup | . - qq|FROM assembly a | . - qq| JOIN parts p ON (a.parts_id = p.id) | . - qq| LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) | . - qq| WHERE a.bom = '1' | . - qq| AND a.id = ? | . $sortorder; - @values = ($form->{"id_$i"}); + qq|pg.partsgroup | . + qq|FROM assembly a | . + qq| JOIN parts p ON (a.parts_id = p.id) | . + qq| LEFT JOIN partsgroup pg ON (p.partsgroup_id = pg.id) | . + qq| WHERE a.bom = '1' | . + qq| AND a.id = ? | . $sortorder; + @values = ($form->{"id_$i"}); $sth = $dbh->prepare($query); $sth->execute(@values) || $form->dberror($query); @@ -1241,3 +1278,36 @@ sub project_description { } 1; + +__END__ + +=head1 NAME + +OE.pm - Order entry module + +=head1 DESCRIPTION + +OE.pm is part of the OE module. OE is responsible for sales and purchase orders, as well as sales quotations and purchase requests. This file abstracts the database tables C and C. + +=head1 FUNCTIONS + +=over 4 + +=item retrieve_simple PARAMS + +simple OE retrieval by id. does not look up customer, vendor, units or any other stuff. only oe and orderitems. + + my $order = retrieve_simple(id => 2); + + $order => { + %_OE_CONTENT, + orderitems => [ + %_ORDERITEM_ROW_1, + %_ORDERITEM_ROW_2, + ... + ] + } + +=back + +=cut