X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcdr.pm;h=b7d78766e316f077bb07c349dec79ab7c82b22f4;hb=f9a181e4c2e505df84de16190ee3b75011326f3f;hp=f7402eeada012aa0682b916d17612c423e90cc2c;hpb=39289cd1e5a06044aa9a8dc3d2e4d8c9ffb02b11;p=freeside.git diff --git a/FS/FS/cdr.pm b/FS/FS/cdr.pm index f7402eead..b7d78766e 100644 --- a/FS/FS/cdr.pm +++ b/FS/FS/cdr.pm @@ -525,6 +525,10 @@ my %export_names = ( 'invoice_header' => "Date,Time,Called From,Destination,Duration,Price", #"Date,Time,Name,Called From,Destination,Duration,Price", }, + 'basic' => { + 'name' => 'Basic', + 'invoice_header' => "Date/Time,Called Number,Min/Sec,Price", + }, 'default' => { 'name' => 'Default', 'invoice_header' => 'Date,Time,Number,Destination,Duration,Price', @@ -585,6 +589,12 @@ sub export_formats { #sub { sprintf('%.3f', shift->upstream_price ) }, #PRICE sub { my($cdr, %opt) = @_; $opt{money_char}. $opt{charge}; }, #PRICE ], + 'basic' => [ + sub { time2str('%d %b - %I:%M %p', shift->calldate_unix) }, + 'dst', + $duration_sub, + sub { my($cdr, %opt) = @_; $opt{money_char}. $opt{charge}; }, #PRICE + ], 'default' => [ #DATE @@ -678,6 +688,50 @@ sub invoice_header { $export_names{$format}->{'invoice_header'}; } +=item clear_status + +Clears cdr and any associated cdr_termination statuses - used for +CDR reprocessing. + +=cut + +sub clear_status { + my $self = shift; + + local $SIG{HUP} = 'IGNORE'; + local $SIG{INT} = 'IGNORE'; + local $SIG{QUIT} = 'IGNORE'; + local $SIG{TERM} = 'IGNORE'; + local $SIG{TSTP} = 'IGNORE'; + local $SIG{PIPE} = 'IGNORE'; + + my $oldAutoCommit = $FS::UID::AutoCommit; + local $FS::UID::AutoCommit = 0; + my $dbh = dbh; + + $self->freesidestatus(''); + my $error = $self->replace; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } + + my @cdr_termination = qsearch('cdr_termination', + { 'acctid' => $self->acctid } ); + foreach my $cdr_termination ( @cdr_termination ) { + $cdr_termination->status(''); + $error = $cdr_termination->replace; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } + } + + $dbh->commit or die $dbh->errstr if $oldAutoCommit; + + ''; +} + =item import_formats Returns an ordered list of key value pairs containing import format names