X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/377ff40990680968fefeeb65b6e6935fcf9fcf35..8e2065873b0e00dde437383bb22c57be508e331f:/SL/Form.pm diff --git a/SL/Form.pm b/SL/Form.pm index 95cd80e8e..c4eaf2259 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -147,7 +147,7 @@ sub new { $self->{action} = lc $self->{action}; $self->{action} =~ s/( |-|,|\#)/_/g; - $self->{version} = "2.4.1"; + $self->{version} = "2.4.2"; $main::lxdebug->leave_sub(); @@ -1395,48 +1395,70 @@ sub get_duedate { $main::lxdebug->leave_sub(); } -# get other contact for transaction and form - html/tex -sub get_contact { +# get contacts for id, if no contact return {"","","","",""} +sub get_contacts { $main::lxdebug->enter_sub(); - my ($self, $dbh, $id) = @_; + my ($self, $dbh, $id, $key) = @_; - my $query = qq|SELECT c.* - FROM contacts c - WHERE cp_id=$id|; - $sth = $dbh->prepare($query); - $sth->execute || $self->dberror($query); + $key = "all_contacts" unless ($key); + $self->{$key} = []; - $ref = $sth->fetchrow_hashref(NAME_lc); + my $query = + qq|SELECT c.cp_id, c.cp_cv_id, c.cp_name, c.cp_givenname, c.cp_abteilung | . + qq|FROM contacts c | . + qq|WHERE cp_cv_id = ? | . + qq|ORDER BY lower(c.cp_name)|; + my $sth = $dbh->prepare($query); + $sth->execute($id) || $self->dberror($query . " ($id)"); - push @{ $self->{$_} }, $ref; + my $i = 0; + while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { + push @{ $self->{$key} }, $ref; + $i++; + } + if ($i == 0) { + push @{ $self->{$key} }, { { "", "", "", "", "", "" } }; + } $sth->finish; $main::lxdebug->leave_sub(); } -# get contacts for id, if no contact return {"","","","",""} -sub get_contacts { +sub get_lists { $main::lxdebug->enter_sub(); - my ($self, $dbh, $id) = @_; + my $self = shift; + my %params = @_; + + my $dbh = $self->dbconnect(\%main::myconfig); + my ($sth, $query, $ref); - my $query = qq|SELECT c.cp_id, c.cp_cv_id, c.cp_name, c.cp_givenname, c.cp_abteilung - FROM contacts c - WHERE cp_cv_id=$id|; - my $sth = $dbh->prepare($query); - $sth->execute || $self->dberror($query); + my $vc = $self->{"vc"} eq "customer" ? "customer" : "vendor"; + my $vc_id = $self->{"${vc}_id"}; - my $i = 0; - while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { - push @{ $self->{all_contacts} }, $ref; - $i++; + if ($params{"contacts"}) { + $self->get_contacts($dbh, $vc_id, $params{"contacts"}); } - if ($i == 0) { - push @{ $self->{all_contacts} }, { { "", "", "", "", "", "" } }; + if ($params{"shipto"}) { + # get shipping addresses + $query = + qq|SELECT s.shipto_id,s.shiptoname,s.shiptodepartment_1 | . + qq|FROM shipto s | . + qq|WHERE s.trans_id = ?|; + $sth = $dbh->prepare($query); + $sth->execute($vc_id) || $self->dberror($query . " ($vc_id)"); + + $self->{$params{"shipto"}} = []; + while ($ref = $sth->fetchrow_hashref(NAME_lc)) { + push(@{ $self->{$params{"shipto"}} }, $ref); + } + $sth->finish; } - $sth->finish; + + $dbh->disconnect(); + $main::lxdebug->leave_sub(); }