my $svc = $self->svc_x;
if ($svc) {
+
my $error = $svc->cancel;
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return "Error canceling service: $error";
}
- $error = $svc->delete;
+ $error = $svc->delete; #this deletes this cust_svc record as well
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
return "Error deleting service: $error";
}
- }
- my $error = $self->delete;
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return "Error deleting cust_svc: $error";
+ } else {
+
+ #huh?
+ warn "WARNING: no svc_ record found for svcnum ". $self->svcnum.
+ "; deleting cust_svc only\n";
+
+ my $error = $self->delete;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "Error deleting cust_svc: $error";
+ }
+
}
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
}
+=item export_links
+
+Returns a list of html elements associated with this services exports.
+
+=cut
+
+sub export_links {
+ my $self = shift;
+ my $svc_x = $self->svc_x
+ or return "can't find ". $self->part_svc->svcdb. '.svcnum '. $self->svcnum;
+
+ $svc_x->export_links;
+}
+
=item svc_x
Returns the FS::svc_XXX object for this service (i.e. an FS::svc_acct object or
sub get_cdrs_for_update {
my($self, %options) = @_;
+ my @cdrs = $self->get_cdrs_fromfield('charged_party', %options);
+
+ push @cdrs, $self->get_cdrs_fromfield('src', %options)
+ unless $options{'disable_src'};
+
+ @cdrs;
+}
+
+sub get_cdrs_fromfield {
+ my($self, $field, %options) = @_;
+
my $default_prefix = $options{'default_prefix'};
#CDRs are now associated with svc_phone services via svc_phone.phonenum
qsearch( {
'table' => 'cdr',
'hashref' => { 'freesidestatus' => '',
- 'charged_party' => $number
+ $field => $number
},
'extra_sql' => 'FOR UPDATE',
} );
qsearch( {
'table' => 'cdr',
'hashref' => { 'freesidestatus' => '',
- 'charged_party' => "$default_prefix$number",
+ $field => "$default_prefix$number",
},
'extra_sql' => 'FOR UPDATE',
} );
}
- #astricon hack? config option?
- push @cdrs,
- qsearch( {
- 'table' => 'cdr',
- 'hashref' => { 'freesidestatus' => '',
- 'src' => $number,
- },
- 'extra_sql' => 'FOR UPDATE',
- } );
-
- if ( length($default_prefix) ) {
- push @cdrs,
- qsearch( {
- 'table' => 'cdr',
- 'hashref' => { 'freesidestatus' => '',
- 'src' => "$default_prefix$number",
- },
- 'extra_sql' => 'FOR UPDATE',
- } );
- }
-
@cdrs;
}