summaryrefslogtreecommitdiff
path: root/FS/FS/cdr.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/cdr.pm')
-rw-r--r--FS/FS/cdr.pm47
1 files changed, 33 insertions, 14 deletions
diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm
index 850f797..1507dde 100644
--- a/FS/FS/cdr.pm
+++ b/FS/FS/cdr.pm
@@ -130,9 +130,9 @@ following fields are currently supported:
=item svcnum - Link to customer service (see L<FS::cust_svc>)
-=item freesidestatus - NULL, done (or something)
+=item freesidestatus - NULL, processing-tiered, done
-=item freesiderewritestatus - NULL, done (or something)
+=item freesiderewritestatus - NULL, done, skipped
=item cdrbatch
@@ -404,10 +404,7 @@ sub set_status_and_rated_price {
if ($opt{'inbound'}) {
- my $term = qsearchs('cdr_termination', {
- acctid => $self->acctid,
- termpart => 1 # inbound
- });
+ my $term = $self->cdr_termination( 1 ); #1: inbound
my $error;
if ( $term ) {
warn "replacing existing cdr status (".$self->acctid.")\n" if $term;
@@ -419,10 +416,10 @@ sub set_status_and_rated_price {
termpart => 1,
rated_price => $rated_price,
status => $status,
- svcnum => $svcnum,
});
$term->rated_seconds($opt{rated_seconds}) if exists($opt{rated_seconds});
$term->rated_minutes($opt{rated_minutes}) if exists($opt{rated_minutes});
+ $term->svcnum($svcnum) if $svcnum;
return $term->insert;
} else {
@@ -437,6 +434,29 @@ sub set_status_and_rated_price {
}
}
+=item cdr_termination [ TERMPART ]
+
+=cut
+
+sub cdr_termination {
+ my $self = shift;
+
+ if ( scalar(@_) && $_[0] ) {
+ my $termpart = shift;
+
+ qsearchs('cdr_termination', { acctid => $self->acctid,
+ termpart => $termpart,
+ }
+ );
+
+ } else {
+
+ qsearch('cdr_termination', { acctid => $self->acctid, } );
+
+ }
+
+}
+
=item calldate_unix
Parses the calldate in SQL string format and returns a UNIX timestamp.
@@ -753,14 +773,13 @@ sub clear_status {
return $error;
}
- my @cdr_termination = qsearch('cdr_termination',
- { 'acctid' => $self->acctid } );
- foreach my $cdr_termination ( @cdr_termination ) {
- $cdr_termination->status('');
- $error = $cdr_termination->replace;
+ foreach my $cdr_termination ( $self->cdr_termination ) {
+ #$cdr_termination->status('');
+ #$error = $cdr_termination->replace;
+ $error = $cdr_termination->delete;
if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
}
}