summaryrefslogtreecommitdiff
path: root/FS/FS/ClientAPI
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-04-26 13:15:03 -0700
committerIvan Kohler <ivan@freeside.biz>2017-04-26 13:15:03 -0700
commitb9fee0a2939c7b19da44982ceaa513292c3a7cd8 (patch)
tree003a011cab9afe19011275f7c0a11fefd32b6e3d /FS/FS/ClientAPI
parent8e31152753c243cbd3e67b36fb63e1e288963c61 (diff)
add list_payments and payment_receipt self-service API calls, RT#75517
Diffstat (limited to 'FS/FS/ClientAPI')
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm36
1 files changed, 36 insertions, 0 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 8072006..7df481e 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -1589,6 +1589,42 @@ sub list_invoices {
};
}
+sub list_payments {
+ my $p = shift;
+ my $session = _cache->get($p->{'session_id'})
+ or return { 'error' => "Can't resume session" }; #better error message
+
+ my $custnum = $session->{'custnum'};
+
+ my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
+ or return { 'error' => "unknown custnum $custnum" };
+
+ return { 'error' => '',
+ 'balance' => $cust_main->balance,
+ 'money_char' => FS::Conf->new->config("money_char") || '$',
+ 'payments' => [ map $_->SSAPI_getinfo, $cust_main->cust_pay ],
+ };
+}
+
+sub payment_receipt {
+ my $p = shift;
+ my $session = _cache->get($p->{'session_id'})
+ or return { 'error' => "Can't resume session" }; #better error message
+
+ my $custnum = $session->{'custnum'};
+
+ my $cust_pay = qsearchs('cust_pay', { 'custnum' => $custnum,
+ 'paynum' => $p->{'paynum'},
+ }
+ )
+ or return { 'error' => "unknown payment ". $p->{'paynum'} };
+
+ return {
+ 'error' => '',
+ %{ $cust_pay->SSAPI_getinfo },
+ };
+}
+
sub list_payby {
my $p = shift;