X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fagent.pm;h=ff0a2b1f6c3cfbd4a94c2b8b51384f987e81987f;hb=8a00b4c10743a314f4a298879141b60d6096eb3b;hp=849dafa2afdbc53e2366bbc239b3e1b06b7c8cc2;hpb=5809a99d862a6bd0da6742479f18728aae8216a2;p=freeside.git diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index 849dafa2a..ff0a2b1f6 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -10,7 +10,7 @@ use FS::agent_type; use FS::reg_code; use FS::TicketSystem; -@ISA = qw( FS::Record ); +@ISA = qw( FS::m2m_Common FS::Record ); =head1 NAME @@ -48,17 +48,23 @@ from FS::Record. The following fields are currently supported: =item agent - Text name of this agent -=item typenum - Agent type. See L +=item typenum - Agent type (see L) -=item prog - For future use. +=item ticketing_queueid - Ticketing Queue -=item freq - For future use. +=item invoice_template - Invoice template name + +=item agent_custnum - Optional agent customer (see L) =item disabled - Disabled flag, empty or 'Y' -=item username - Username for the Agent interface +=item prog - Deprecated (never used) + +=item freq - Deprecated (never used) -=item _password - Password for the Agent interface +=item username - (Deprecated) Username for the Agent interface + +=item _password - (Deprecated) Password for the Agent interface =back @@ -117,6 +123,8 @@ sub check { || $self->ut_number('typenum') || $self->ut_numbern('freq') || $self->ut_textn('prog') + || $self->ut_textn('invoice_template') + || $self->ut_foreign_keyn('agent_custnum', 'cust_main', 'custnum' ) ; return $error if $error; @@ -155,6 +163,18 @@ sub agent_type { qsearchs( 'agent_type', { 'typenum' => $self->typenum } ); } +=item agent_cust_main + +Returns the FS::cust_main object (see L), if any, for this +agent. + +=cut + +sub agent_cust_main { + my $self = shift; + qsearchs( 'cust_main', { 'custnum' => $self->agent_custnum } ); +} + =item pkgpart_hashref Returns a hash reference. The keys of the hash are pkgparts. The value is @@ -221,7 +241,8 @@ sub cust_main_sql { =item num_active_cust_main -Returns the number of active customers for this agent. +Returns the number of active customers for this agent (customers with active +recurring packages). =cut @@ -239,6 +260,28 @@ sub active_cust_main { shift->cust_main_sql(FS::cust_main->active_sql); } +=item num_inactive_cust_main + +Returns the number of inactive customers for this agent (customers with no +active recurring packages, but otherwise unsuspended/uncancelled). + +=cut + +sub num_inactive_cust_main { + shift->num_sql(FS::cust_main->inactive_sql); +} + +=item inactive_cust_main + +Returns the inactive customers for this agent, as cust_main objects. + +=cut + +sub inactive_cust_main { + shift->cust_main_sql(FS::cust_main->inactive_sql); +} + + =item num_susp_cust_main Returns the number of suspended customers for this agent. @@ -299,6 +342,17 @@ sub num_pkg_sql { $sth->fetchrow_arrayref->[0]; } +=item num_inactive_cust_pkg + +Returns the number of inactive customer packages (one-time packages otherwise +unsuspended/uncancelled) for this agent. + +=cut + +sub num_inactive_cust_pkg { + shift->num_pkg_sql(FS::cust_pkg->inactive_sql); +} + =item num_susp_cust_pkg Returns the number of suspended customer packages for this agent.