$overlimit_missing_cust_svc_nonfatal_kludge );
use Carp qw( cluck carp croak confess ); #specify cluck have to specify them all
use Scalar::Util qw( blessed );
+use FS::Conf;
use FS::Record qw( qsearch qsearchs fields dbh );
use FS::cust_main_Mixin;
use FS::cust_svc;
use FS::cust_main;
use FS::inventory_item;
use FS::inventory_class;
+use FS::NetworkMonitoringSystem;
@ISA = qw( FS::cust_main_Mixin FS::Record );
}
+ $self->nms_ip_insert;
+
if ( exists $options{'jobnums'} ) {
push @{ $options{'jobnums'} }, @jobnums;
}
( \%settings, \%defaults );
}
+=item export_getstatus
+
+Runs export_getstatus callbacks and returns a two item list consisting of an
+HTML status and a status hashref.
+
+=cut
+
+sub export_getstatus {
+ my $self = shift;
+ my $html = '';
+ my %hash = ();
+ my $error = $self->export('getstatus', \$html, \%hash);
+ if ( $error ) {
+ #XXX bubble this up better
+ warn "error running export_getstatus: $error";
+ return ( '', {} );
+ }
+ ( $html, \%hash );
+}
+
=item export HOOK [ EXPORT_ARGS ]
Runs the provided export hook (i.e. "suspend", "unsuspend") for this service.
return grep { $conflict_svcparts{$_->cust_svc->svcpart} } @dup;
}
+=item getstatus_html
+
+=cut
+
+sub getstatus_html {
+ my $self = shift;
+
+ my $part_svc = $self->cust_svc->part_svc;
+ my $html = '';
+ foreach my $export ( grep $_->can('export_getstatus'), $part_svc->part_export ) {
+ my $export_html = '';
+ my %hash = ();
+ $export->export_getstatus( $self, \$export_html, \%hash );
+ $html .= $export_html;
+ }
+
+ $html;
+
+}
+
+=item nms_ip_insert
+
+=cut
+
+sub nms_ip_insert {
+ my $self = shift;
+ my $conf = new FS::Conf;
+ return '' unless grep { $self->table eq $_ }
+ $conf->config('nms-auto_add-svc_ips');
+ my $ip_field = $self->table_info->{'ip_field'};
+
+ #XXX perhaps i should be job-queued, i take awhile, right?
+ my $nms = new FS::NetworkMonitoringSystem;
+ $nms->add_router( $self->$ip_field(),
+ $conf->config('nms-auto_add-community')
+ );
+}
+
+=item nms_delip
+
+=cut
+
+sub nms_ip_delete {
+#XXX not yet implemented
+}
=back