diff options
author | ivan <ivan> | 2005-08-07 00:40:02 +0000 |
---|---|---|
committer | ivan <ivan> | 2005-08-07 00:40:02 +0000 |
commit | 6ed5d51b3a72e2935dd5d084c9e24567150b03ca (patch) | |
tree | 25626f44e2179b5b1fa704d672153345ae404380 /FS/FS/agent.pm | |
parent | 05d94720d26ca009b06f21534b06d1650d9f2915 (diff) |
move cust_pkg search to new template, add active/suspended/cancelled customer packages to agent browse
Diffstat (limited to 'FS/FS/agent.pm')
-rw-r--r-- | FS/FS/agent.pm | 48 |
1 files changed, 44 insertions, 4 deletions
diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index fc1d1a9..0a0e4f7 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -4,6 +4,7 @@ use strict; use vars qw( @ISA ); use FS::Record qw( dbh qsearch qsearchs ); use FS::cust_main; +use FS::cust_pkg; use FS::agent_type; use FS::reg_code; #use Crypt::YAPassGen; @@ -179,10 +180,9 @@ sub num_prospect_cust_main { sub num_sql { my( $self, $sql ) = @_; - 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; + 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"; $sth->fetchrow_arrayref->[0]; } @@ -266,6 +266,46 @@ 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 |