diff options
Diffstat (limited to 'FS/FS/agent.pm')
-rw-r--r-- | FS/FS/agent.pm | 139 |
1 files changed, 4 insertions, 135 deletions
diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index 83f0ce5..a9e41a6 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -2,13 +2,9 @@ package FS::agent; use strict; use vars qw( @ISA ); -#use Crypt::YAPassGen; use FS::Record qw( dbh qsearch qsearchs ); use FS::cust_main; -use FS::cust_pkg; use FS::agent_type; -use FS::reg_code; -use FS::TicketSystem; @ISA = qw( FS::Record ); @@ -168,18 +164,6 @@ sub pkgpart_hashref { $self->agent_type->pkgpart_hashref; } -=item ticketing_queue - -Returns the queue name corresponding with the id from the I<ticketing_queueid> -field, or the empty string. - -=cut - -sub ticketing_queue { - my $self = shift; - FS::TicketSystem->queue($self->ticketing_queueid); -}; - =item num_prospect_cust_main Returns the number of prospects (customers with no packages ever ordered) for @@ -193,9 +177,10 @@ sub num_prospect_cust_main { sub num_sql { my( $self, $sql ) = @_; - my $statement = "SELECT COUNT(*) FROM cust_main WHERE agentnum = ? AND $sql"; - my $sth = dbh->prepare($statement) or die dbh->errstr." preparing $statement"; - $sth->execute($self->agentnum) or die $sth->errstr. "executing $statement"; + my $sth = dbh->prepare( + "SELECT COUNT(*) FROM cust_main WHERE agentnum = ? AND $sql" + ) or die dbh->errstr; + $sth->execute($self->agentnum) or die $sth->errstr; $sth->fetchrow_arrayref->[0]; } @@ -279,122 +264,6 @@ sub cancel_cust_main { shift->cust_main_sql(FS::cust_main->cancel_sql); } -=item num_active_cust_pkg - -Returns the number of active customer packages for this agent. - -=cut - -sub num_active_cust_pkg { - shift->num_pkg_sql(FS::cust_pkg->active_sql); -} - -sub num_pkg_sql { - my( $self, $sql ) = @_; - my $statement = - "SELECT COUNT(*) FROM cust_pkg LEFT JOIN cust_main USING ( custnum )". - " WHERE agentnum = ? AND $sql"; - my $sth = dbh->prepare($statement) or die dbh->errstr." preparing $statement"; - $sth->execute($self->agentnum) or die $sth->errstr. "executing $statement"; - $sth->fetchrow_arrayref->[0]; -} - -=item num_susp_cust_pkg - -Returns the number of suspended customer packages for this agent. - -=cut - -sub num_susp_cust_pkg { - shift->num_pkg_sql(FS::cust_pkg->susp_sql); -} - -=item num_cancel_cust_pkg - -Returns the number of cancelled customer packages for this agent. - -=cut - -sub num_cancel_cust_pkg { - shift->num_pkg_sql(FS::cust_pkg->cancel_sql); -} - -=item generate_reg_codes NUM PKGPART_ARRAYREF - -Generates the specified number of registration codes, allowing purchase of the -specified package definitions. Returns an array reference of the newly -generated codes, or a scalar error message. - -=cut - -#false laziness w/prepay_credit::generate -sub generate_reg_codes { - my( $self, $num, $pkgparts ) = @_; - - my @codeset = ( 'A'..'Z' ); - - local $SIG{HUP} = 'IGNORE'; - local $SIG{INT} = 'IGNORE'; - local $SIG{QUIT} = 'IGNORE'; - local $SIG{TERM} = 'IGNORE'; - local $SIG{TSTP} = 'IGNORE'; - local $SIG{PIPE} = 'IGNORE'; - - my $oldAutoCommit = $FS::UID::AutoCommit; - local $FS::UID::AutoCommit = 0; - my $dbh = dbh; - - my @codes = (); - for ( 1 ... $num ) { - my $reg_code = new FS::reg_code { - 'agentnum' => $self->agentnum, - 'code' => join('', map($codeset[int(rand $#codeset)], (0..7) ) ), - }; - my $error = $reg_code->insert($pkgparts); - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return $error; - } - push @codes, $reg_code->code; - } - - $dbh->commit or die $dbh->errstr if $oldAutoCommit; - - \@codes; - -} - -=item num_reg_code - -Returns the number of unused registration codes for this agent. - -=cut - -sub num_reg_code { - my $self = shift; - my $sth = dbh->prepare( - "SELECT COUNT(*) FROM reg_code WHERE agentnum = ?" - ) or die dbh->errstr; - $sth->execute($self->agentnum) or die $sth->errstr; - $sth->fetchrow_arrayref->[0]; -} - -=item num_prepay_credit - -Returns the number of unused prepaid cards for this agent. - -=cut - -sub num_prepay_credit { - my $self = shift; - my $sth = dbh->prepare( - "SELECT COUNT(*) FROM prepay_credit WHERE agentnum = ?" - ) or die dbh->errstr; - $sth->execute($self->agentnum) or die $sth->errstr; - $sth->fetchrow_arrayref->[0]; -} - - =back =head1 BUGS |