use FS::cdr;
use FS::UI::Web;
use FS::export_cust_svc;
+use FS::DBI;
#most FS::svc_ classes are autoloaded in svc_x emthod
use FS::svc_acct; #this one is used in the cache stuff
#my $error = $new->SUPER::replace($old, @_);
my $error = $new->SUPER::replace($old);
- #trigger a relocate export on location changes
- if ( $new->cust_pkg->locationnum != $old->cust_pkg->locationnum ) {
+ #trigger a relocate export on location changes (NENA2 and Northern 911 export)
+ my $old_pkg = $old->cust_pkg;
+ my $new_pkg = $new->cust_pkg;
+ if ( $old_pkg && $new_pkg && $new_pkg->locationnum != $old_pkg->locationnum ) {
my $svc_x = $new->svc_x;
if ( $svc_x->locationnum ) {
if ( $svc_x->locationnum == $old->cust_pkg->locationnum ) {
return $cust_pkg->getfield('cancel') || '';
}
-=item label
+=item label [ LOCALE ]
Returns a list consisting of:
-- The name of this service (from part_svc)
+- The name of this service (from part_svc), optionally localized
- A meaningful identifier (username, domain, or mail alias)
- The table name (i.e. svc_domain) for this service
- svcnum
my($label, $value, $svcdb) = $cust_svc->label;
-=item label_long
+=item label_long [ LOCALE ]
Like the B<label> method, except the second item in the list ("meaningful
identifier") may be longer - typically, a full name is included.
sub _label {
my $self = shift;
my $method = shift;
+ my $locale = shift;
my $svc_x = $self->svc_x
or return "can't find ". $self->part_svc->svcdb. '.svcnum '. $self->svcnum;
- $self->$method($svc_x);
+ $self->$method($svc_x, undef, undef, $locale);
}
+# svc_label(_long) takes three arguments: end date, start date, locale
+# and FS::svc_*::label methods must accept those also, if they even care
+
sub svc_label { shift->_svc_label('label', @_); }
sub svc_label_long { shift->_svc_label('label_long', @_); }
sub _svc_label {
my( $self, $method, $svc_x ) = ( shift, shift, shift );
+ my ($end, $start, $locale) = @_;
(
- $self->part_svc->svc,
+ $self->part_svc->svc_locale($locale),
$svc_x->$method(@_),
$self->part_svc->svcdb,
$self->svcnum
warn "$mes connecting to sqlradius database\n"
if $DEBUG;
- my $dbh = DBI->connect( map { $part_export->option($_) }
+ my $dbh = FS::DBI->connect( map { $part_export->option($_) }
qw(datasrc username password) )
- or die "can't connect to sqlradius database: ". $DBI::errstr;
+ or die "can't connect to sqlradius database: ". $FS::DBI::errstr;
warn "$mes connected to sqlradius database\n"
if $DEBUG;
warn "$mes connecting to sqlradius database\n"
if $DEBUG;
- my $dbh = DBI->connect( map { $part_export->option($_) }
+ my $dbh = FS::DBI->connect( map { $part_export->option($_) }
qw(datasrc username password) )
- or die "can't connect to sqlradius database: ". $DBI::errstr;
+ or die "can't connect to sqlradius database: ". $FS::DBI::errstr;
warn "$mes connected to sqlradius database\n"
if $DEBUG;
warn "$mes connecting to sqlradius database\n"
if $DEBUG;
- my $dbh = DBI->connect( map { $part_export->option($_) }
+ my $dbh = FS::DBI->connect( map { $part_export->option($_) }
qw(datasrc username password) )
- or die "can't connect to sqlradius database: ". $DBI::errstr;
+ or die "can't connect to sqlradius database: ". $FS::DBI::errstr;
warn "$mes connected to sqlradius database\n"
if $DEBUG;
my $self = shift;
my $svc_x = $self->svc_x;
+{ ( map { $_=>$self->$_ } $self->fields ),
- ( map { $svc_x=>$svc_x->$_ } $svc_x->fields ),
+ ( map { $_=>$svc_x->$_ } $svc_x->fields ),
};
}