=over 4
-=item agentnum - primary key (assigned automatically for new agents)
+=item agentnum
-=item agent - Text name of this agent
+primary key (assigned automatically for new agents)
-=item typenum - Agent type (see L<FS::agent_type>)
+=item agent
-=item ticketing_queueid - Ticketing Queue
+Text name of this agent
-=item invoice_template - Invoice template name
+=item typenum
-=item agent_custnum - Optional agent customer (see L<FS::cust_main>)
+Agent type (see L<FS::agent_type>)
-=item disabled - Disabled flag, empty or 'Y'
+=item ticketing_queueid
-=item prog - Deprecated (never used)
+Ticketing Queue
-=item freq - Deprecated (never used)
+=item invoice_template
-=item username - (Deprecated) Username for the Agent interface
+Invoice template name
-=item _password - (Deprecated) Password for the Agent interface
+=item agent_custnum
+
+Optional agent customer (see L<FS::cust_main>)
+
+=item disabled
+
+Disabled flag, empty or 'Y'
+
+=item prog
+
+Deprecated (never used)
+
+=item freq
+
+Deprecated (never used)
+
+=item username
+
+(Deprecated) Username for the Agent interface
+
+=item _password
+
+(Deprecated) Password for the Agent interface
=back
|| $self->ut_textn('prog')
|| $self->ut_textn('invoice_template')
|| $self->ut_foreign_keyn('agent_custnum', 'cust_main', 'custnum' )
+ || $self->ut_numbern('ticketing_queueid')
;
return $error if $error;
sub ticketing_queue {
my $self = shift;
FS::TicketSystem->queue($self->ticketing_queueid);
-};
+}
=item payment_gateway [ OPTION => VALUE, ... ]
# seeing the card number
my $gatewaynum =
$conf->config('selfservice-payment_gateway', $self->agentnum);
- my $gateway = FS::payment_gateway->by_key($gatewaynum)
- if $gatewaynum;
+ my $gateway;
+ $gateway = FS::payment_gateway->by_key($gatewaynum) if $gatewaynum;
+ return $gateway if $gateway;
+
+ # a little less kludgey than the above, and allows PayPal to coexist
+ # with credit card gateways
+ my $is_paypal = { op => '!=', value => 'PayPal' };
+ if ( uc($options{method}) eq 'PAYPAL' ) {
+ $is_paypal = 'PayPal';
+ }
+
+ $gateway = qsearchs({
+ table => 'payment_gateway',
+ addl_from => ' JOIN agent_payment_gateway USING (gatewaynum) ',
+ hashref => {
+ gateway_namespace => 'Business::OnlineThirdPartyPayment',
+ gateway_module => $is_paypal,
+ disabled => '',
+ },
+ extra_sql => ' AND agentnum = '.$self->agentnum,
+ });
if ( $gateway ) {
return $gateway;
shift->num_pkg_sql(FS::cust_pkg->cancel_sql);
}
+=item num_on_hold_cust_pkg
+
+Returns the number of inactive customer packages (one-time packages otherwise
+unsuspended/uncancelled) for this agent.
+
+=cut
+
+sub num_on_hold_cust_pkg {
+ shift->num_pkg_sql(FS::cust_pkg->on_hold_sql);
+}
+
+=item num_not_yet_billed_cust_pkg
+
+Returns the number of inactive customer packages (one-time packages otherwise
+unsuspended/uncancelled) for this agent.
+
+=cut
+
+sub num_not_yet_billed_cust_pkg {
+ shift->num_pkg_sql(FS::cust_pkg->not_yet_billed_sql);
+}
+
=item generate_reg_codes NUM PKGPART_ARRAYREF
Generates the specified number of registration codes, allowing purchase of the