X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=2e60eda3b32f58c8a737f1bf84e16ae552f99d60;hb=3dbb7d158b87c6bab8467e8f1fae8be5c59d0153;hp=6a21da8b36f78b7802523b183d33181a961c7820;hpb=b54e0fcd43f881c957a1b00692afbd203db14aff;p=freeside.git diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 6a21da8b3..2e60eda3b 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -1560,8 +1560,6 @@ sub acct_forward_info { sub process_acct_forward { my $p = shift; - warn Dumper($p); - my($context, $session, $custnum) = _custoragent_session_custnum($p); return { 'error' => $session } if $context eq 'error'; @@ -1569,7 +1567,6 @@ sub process_acct_forward { { 'srcsvc' => $p->{'svcnum'} }, 'svc_forward', ); - warn $old; if ( $p->{'dst'} eq '' ) { if ( $old ) { @@ -1585,20 +1582,21 @@ sub process_acct_forward { my $error; if ( $old ) { - warn "old: $old\n"; $new->svcnum($old->svcnum); my $cust_svc = $old->cust_svc; $new->svcpart($old->svcpart); $new->pkgnuym($old->pkgnum); $error = $new->replace($old); } else { - warn "new: $new\n"; my $conf = new FS::Conf; $new->svcpart($conf->config('selfservice-svc_forward_svcpart')); - $new->pkgnum($old->cust_svc->pkgnum); - warn Dumper($new); + + my $svc_acct = _customer_svc_x( $custnum, $p->{'svcnum'}, 'svc_acct' ) + or return { 'error' => 'No service' }; #how would we even get here? + + $new->pkgnum( $svc_acct->cust_svc->pkgnum ); + $error = $new->insert; - warn $error; } return { 'error' => $error }; @@ -1718,9 +1716,10 @@ sub list_support_usage { } sub _list_cdr_usage { - my($svc_phone, $begin, $end) = @_; - map [ $_->downstream_csv('format' => 'default', 'keeparray' => 1) ], #XXX config for format - $svc_phone->get_cdrs( 'begin'=>$begin, 'end'=>$end, ); + # XXX CDR type support... + my($svc_phone, $begin, $end, %opt) = @_; + map [ $_->downstream_csv(%opt, 'keeparray' => 1) ], + $svc_phone->get_cdrs( 'begin'=>$begin, 'end'=>$end, ); } sub list_cdr_usage { @@ -1745,12 +1744,26 @@ sub _usage_details { return { 'error' => 'No service selected in list_svc_usage' } unless $svc_x; - my $header = $svcdb eq 'svc_phone' - ? [ split(',', FS::cdr::invoice_header('default') ) ] #XXX - : []; - my $cust_pkg = $svc_x->cust_svc->cust_pkg; my $freq = $cust_pkg->part_pkg->freq; + my %callback_opt; + my $header = []; + if ( $svcdb eq 'svc_phone' ) { + my $format = $cust_pkg->part_pkg->option('output_format') || ''; + $format = '' if $format =~ /^sum_/; + # sensible default if there is no format or it's a summary format + if ( $cust_pkg->part_pkg->plan eq 'voip_inbound' ) { + $format ||= 'source_default'; + $callback_opt{inbound} = 1; + } + else { + $format ||= 'default'; + } + + $callback_opt{format} = $format; + $header = [ split(',', FS::cdr::invoice_header($format) ) ]; + } + my $start = $cust_pkg->setup; #my $end = $cust_pkg->bill; # or time? my $end = time; @@ -1760,7 +1773,9 @@ sub _usage_details { $p->{ending} = $end; } - my (@usage) = &$callback($svc_x, $p->{beginning}, $p->{ending}); + my (@usage) = &$callback($svc_x, $p->{beginning}, $p->{ending}, + %callback_opt + ); #kinda false laziness with FS::cust_main::bill, but perhaps #we should really change this bit to DateTime and DateTime::Duration