X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=eb49a6d00964842fde112c26f69bfc5013df17c6;hb=dbb388836b7951a3db49deda05a1ff9ba5125c17;hp=c0fb46b4f9b990f4ba06db4e2315757597e38a11;hpb=085d6dcbe3a137d8d8ad0b04b6d9c0af1516ee5e;p=freeside.git diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index c0fb46b4f..eb49a6d00 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -8,9 +8,11 @@ use Date::Format; use Business::CreditCard; use Time::Duration; use FS::CGI qw(small_custview); #doh +use FS::UI::Web; use FS::Conf; use FS::Record qw(qsearch qsearchs); use FS::Msgcat qw(gettext); +use FS::Misc qw(card_types); use FS::ClientAPI_SessionCache; use FS::svc_acct; use FS::svc_domain; @@ -213,31 +215,6 @@ sub payment_info { 'country' => $conf->config('countrydefault') || 'US' } ); - my %card_types = ( - #displayname #value (Business::CreditCard) - "VISA" => "VISA card", - "MasterCard" => "MasterCard", - "Discover" => "Discover card", - "American Express" => "American Express card", - "Diner's Club/Carte Blanche" => "Diner's Club/Carte Blanche", - "enRoute" => "enRoute", - "JCB" => "JCB", - "BankCard" => "BankCard", - "Switch" => "Switch", - "Solo" => "Solo", - ); - my @conf_card_types = grep { ! /^\s*$/ } $conf->config('card-types'); - if ( @conf_card_types ) { - #perhaps the hash is backwards for this, but this way works better for - #usage in selfservice - %card_types = map { $_ => $card_types{$_} } - grep { - my $d = $_; - grep { $card_types{$d} eq $_ } @conf_card_types - } - keys %card_types; - } - $payment_info = { #list all counties/states/countries @@ -248,14 +225,7 @@ sub payment_info { 'states' => [ sort { $a cmp $b } keys %states ], - 'card_types' => { - 'VISA' => 'VISA card', - 'MasterCard' => 'MasterCard', - 'Discover' => 'Discover card', - 'American Express' => 'American Express card', - 'Switch' => 'Switch', - 'Solo' => 'Solo', - }, + 'card_types' => card_types(), }; @@ -409,10 +379,12 @@ sub process_prepay { my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } ) or return { 'error' => "unknown custnum $custnum" }; - my( $amount, $seconds ) = ( 0, 0 ); + my( $amount, $seconds, $upbytes, $downbytes ) = ( 0, 0, 0, 0 ); my $error = $cust_main->recharge_prepay( $p->{'prepaid_cardnum'}, \$amount, - \$seconds + \$seconds, + \$upbytes, + \$downbytes ); return { 'error' => $error } if $error; @@ -421,6 +393,10 @@ sub process_prepay { 'amount' => $amount, 'seconds' => $seconds, 'duration' => duration_exact($seconds), + 'upbytes' => $upbytes, + 'upload' => FS::UI::Web::bytecount_unexact($upbytes), + 'downbytes'=> $downbytes, + 'download' => FS::UI::Web::bytecount_unexact($downbytes), }; } @@ -570,7 +546,9 @@ sub list_svcs { my @cust_svc = (); #foreach my $cust_pkg ( $cust_main->ncancelled_pkgs ) { - foreach my $cust_pkg ( $cust_main->unsuspended_pkgs ) { + foreach my $cust_pkg ( $p->{'ncancelled'} + ? $cust_main->ncancelled_pkgs + : $cust_main->unsuspended_pkgs ) { push @cust_svc, @{[ $cust_pkg->cust_svc ]}; #@{[ ]} to force array context } @cust_svc = grep { $_->part_svc->svcdb eq $p->{'svcdb'} } @cust_svc @@ -591,6 +569,9 @@ sub list_svcs { 'value' => $value, 'username' => $svc_x->username, 'email' => $svc_x->email, + 'seconds' => $svc_x->seconds, + 'upbytes' => $svc_x->upbytes, + 'downbytes'=> $svc_x->downbytes, # more... }; }