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 {