See lnp_status. If lnp_status is portin-reject or portout-reject, this is an
optional reject reason.
+=item lnp_portid
+
+Port identifier from porting provider, for checking status
+
+=item lnp_signature
+
+Boolean (empty or `Y') indicating if a signature is required for the port
+
+=item lnp_bill
+
+Boolean (empty or `Y') indicating if a copy of an existing bill is required for
+the port
+
=item e911_class
Class of Service for E911 service (per the NENA 2.1 standard).
'native', 'portin-reject', 'portout-reject'])
|| $self->ut_enumn('portable', ['','Y'])
|| $self->ut_textn('lnp_reject_reason')
+ || $self->ut_textn('lnp_portid')
+ || $self->ut_enumn('lnp_signature', ['','Y'])
+ || $self->ut_enumn('lnp_bill', ['','Y'])
|| $self->ut_domainn('sip_server')
;
return $error if $error;
}
my $cust_pkg = $self->cust_svc->cust_pkg or return '';
if ( $cust_pkg->contactnum ) {
- return $cust_pkg->contact->firstlast;
+ return $cust_pkg->contact_obj->firstlast;
} else {
return $cust_pkg->cust_main->name_short;
}
"phonenum" field of the service. To access the CDRs themselves, call
"->fetch" on the resulting object.
-=over 2
-
Accepts the following options:
+=over 2
+
=item for_update => 1: SELECT the CDRs "FOR UPDATE".
=item status => "" (or "processing-tiered", "done"): Return only CDRs with that processing status.
=cut
sub psearch_cdrs {
-
my($self, %options) = @_;
+
+ unless ( $options{'billsec_sum'} ) {
+ #fixes a weird sequential scan of the whole cdr table on startdate, but only
+ # for a few charged_party values here and there.
+ # Pg 9.1 only? need to retest on 9.4, 9.6
+ dbh->do('SET enable_indexscan TO OFF');
+ }
+
my @fields;
my %hash;
my @where;