From 4637ede67752c7fc635bfb0c78c40458af218a72 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 12 Oct 2009 14:11:32 +0000 Subject: [PATCH] finish netsapiens import, RT#6365 --- bin/cdr-netsapiens.import | 80 ++++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/bin/cdr-netsapiens.import b/bin/cdr-netsapiens.import index 80922556a..649ade62b 100755 --- a/bin/cdr-netsapiens.import +++ b/bin/cdr-netsapiens.import @@ -4,8 +4,9 @@ use strict; use vars qw( $DEBUG ); +use Date::Format; use REST::Client; -use FS::UID qw(adminsuidsetup); +use FS::UID qw(adminsuidsetup dbh); use FS::Record qw(qsearchs); use FS::part_export; use FS::cdr; @@ -19,56 +20,69 @@ my $exportnum = shift or die &usage; my $part_export = qsearchs('part_export', { 'exportnum' => $exportnum } ) or die "unknown exportnum $exportnum\n"; -#find max time_release -#SELECT MAX( -#2009-02-19 20:17:37 -my $time_release = '2009-01-01 00:00:00'; +my $cdrs = 0; -#retreive CDRs >= this time -#XXX (in pages, this tops out at 20) _start=>0, _limit=>20 +do { -my $ns = $part_export->ns_command( 'GET', '/cdr/', - 'time_release' => '$time_release,', - '_sort' => '+time_release', - ); + #find max time_release + my $sth = dbh->prepare('SELECT MAX(enddate) FROM cdr') #XXX and imported from this netsapens switch + or die dbh->errstr; -#loop over them, double check duplicates, insert the rest + $sth->execute or die $sth->errstr; + my $time_relase = time2str('%Y-%m-%d %x', $sth->fetchrow_arrayref->[0]); + #2009-02-19 20:17:37 + #my $time_release = '2009-01-01 00:00:00'; -my $content = $ns->responseContent; + #retreive CDRs >= this time -#20090219201719000016@SkyNet360.Com -#
-while ( $content =~ - s/^.*?//is ) -{ + my $ns = $part_export->ns_command( 'GET', '/cdr/', + 'time_release' => '$time_release,', + '_sort' => '+time_release', + ); - my $accountcode = $1; - warn "$accountcode\n" if $DEBUG; + #loop over them, double check duplicates, insert the rest - $content =~ s/(.*?)<\/form>//is; - my $cdr_content = $1; + my $content = $ns->responseContent; - while ( $cdr_content =~ - s/.*?//is ) + $cdrs = 0; + + #20090219201719000016@SkyNet360.Com + # + while ( $content =~ + s/^.*?//is ) { - warn " $1 => $2\n" if $DEBUG > 1; + + my $accountcode = $1; + warn "$accountcode\n" if $DEBUG; + + $content =~ s/(.*?)<\/form>//is; + my $cdr_content = $1; + + my %cdr = (); + while ( $cdr_content =~ + s/.*?//is ) + { + warn " $1 => $2\n" if $DEBUG > 1; + $cdr{$1} = $2; + } + + $cdrs++; my $cdr = new FS::cdr { - #'src' => - #'dst' => -# 'startdate' => 'time_start', #XXX needs parsing -# 'enddate' => 'time_release', #XXX needs parsing - 'duration' => 'duration', - 'billsec' => 'time_talking', + 'src' => $cdr{'orig_sub'}, #orig_from_user? + 'dst' => $cdr{'term_sub'}, + 'startdate' => FS::cdr::_cdr_date_parse($cdr{'time_start'}), + 'enddate' => FS::cdr::_cdr_date_parse($cdr{'time_release'}), + 'duration' => $cdr{'duration'}, + 'billsec' => $cdr{'time_talking'}, #'disposition' => 'accountcode' => $accountcode, #'charged_party' }; - } -} +} while $cdrs; sub usage { "Usage: \n cdr-netsapiens.import user exportnum\n"; -- 2.11.0