X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=fa0bbb8a76cb0f636d9d0fd6d50674f618590431;hb=158103c8701d8cd87148c579dc101979c808b8c2;hp=633d74d6c43085a660edef89eeba25c259f2e090;hpb=0f7643c1af2d909e0c3172e5bec0c01855fca1b9;p=freeside.git diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 633d74d6c..fa0bbb8a7 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -640,6 +640,7 @@ sub process_payment { #false laziness w/process/payment.cgi my $payinfo; my $paycvv = ''; + my $paynum = ''; if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) { $p->{'payinfo1'} =~ /^([\dx]+)$/ @@ -701,6 +702,7 @@ sub process_payment { 'payname' => $payname, 'paybatch' => $paybatch, #this doesn't actually do anything 'paycvv' => $paycvv, + 'paynum_ref' => \$paynum, 'pkgnum' => $session->{'pkgnum'}, 'discount_term' => $discount_term, 'selfservice' => 1, @@ -743,7 +745,46 @@ sub process_payment { } } - return { 'error' => '' }; + my $receipt_html = ''; + if($paynum) { + # currently supported for realtime CC only; send receipt data to SS + my $cust_pay = qsearchs('cust_pay', { 'paynum' => $paynum } ); + if($cust_pay) { + $receipt_html = qq! + + + + + + + + + + + + + + + + + + + + + + + + + +
Payment#! . $cust_pay->paynum . qq!
Date! . + time2str("%a %b %o, %Y %r", $cust_pay->_date) + . qq!
Amount! . $cust_pay->paid . qq!
Payment method! . $cust_pay->payby_name .' #'. $cust_pay->paymask + . qq!
+!; + } + } + + return { 'error' => '', 'receipt_html' => $receipt_html, }; } @@ -1043,9 +1084,13 @@ sub list_svcs { #@svc_x = sort { $a->domain cmp $b->domain || $a->username cmp $b->username } # @svc_x; + my $conf = new FS::Conf; + { 'svcnum' => $session->{'svcnum'}, 'custnum' => $custnum, + 'date_format' => $conf->config('date_format') || '%m/%d/%Y', + 'view_usage_nodomain' => $conf->exists('selfservice-view_usage_nodomain'), 'svcs' => [ map { my $svc_x = $_->svc_x; @@ -1081,7 +1126,7 @@ sub list_svcs { # more... ); - } elsif ( $svcdb eq 'svc_phone' ) { + } elsif ( $svcdb eq 'svc_phone' || $svcdb eq 'svc_port' ) { %hash = ( %hash, ); @@ -1095,6 +1140,21 @@ sub list_svcs { } +sub port_graph { + my $p = shift; + _usage_details( \&_port_graph, $p, + 'svcdb' => 'svc_port', + ); +} + +sub _port_graph { + my($svc_port, $begin, $end) = @_; + my @usage = (); + my $pngOrError = $svc_port->graph_png( start=>$begin, end=> $end ); + push @usage, { 'png' => $pngOrError }; + (@usage); +} + sub _list_svc_usage { my($svc_acct, $begin, $end) = @_; my @usage = (); @@ -1136,8 +1196,8 @@ sub list_support_usage { sub _list_cdr_usage { my($svc_phone, $begin, $end) = @_; - map [ $_->downstream_csv('format' => 'default') ], #XXX config for format - $svc_phone->get_cdrs( 'begin'=>$begin, 'end'=>$end, ); + map [ $_->downstream_csv('format' => 'default', 'keeparray' => 1) ], #XXX config for format + $svc_phone->get_cdrs( 'begin'=>$begin, 'end'=>$end, ); } sub list_cdr_usage {