summaryrefslogtreecommitdiff
path: root/fs_selfservice
diff options
context:
space:
mode:
authorivan <ivan>2009-05-18 09:55:30 +0000
committerivan <ivan>2009-05-18 09:55:30 +0000
commitaab3bdd971c21f6d422b7708ecf8ba7cb5ec0fea (patch)
treee25121214aa5f9dd12da48d22d88fa18ef55fc4b /fs_selfservice
parente5ed992c003ce75def88da5f40f0ed2096461348 (diff)
basic CDR viewing from self-service, RT#4018
Diffstat (limited to 'fs_selfservice')
-rw-r--r--fs_selfservice/FS-SelfService/SelfService.pm1
-rw-r--r--fs_selfservice/FS-SelfService/cgi/header.html9
-rw-r--r--fs_selfservice/FS-SelfService/cgi/selfservice.cgi16
-rw-r--r--fs_selfservice/FS-SelfService/cgi/view_cdr_details.html54
-rw-r--r--fs_selfservice/FS-SelfService/cgi/view_usage.html68
5 files changed, 125 insertions, 23 deletions
diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm
index fef211580..47f312ac0 100644
--- a/fs_selfservice/FS-SelfService/SelfService.pm
+++ b/fs_selfservice/FS-SelfService/SelfService.pm
@@ -45,6 +45,7 @@ $socket .= '.'.$tag if defined $tag && length($tag);
'list_pkgs' => 'MyAccount/list_pkgs', #add to ss (added?)
'list_svcs' => 'MyAccount/list_svcs', #add to ss (added?)
'list_svc_usage' => 'MyAccount/list_svc_usage',
+ 'list_cdr_usage' => 'MyAccount/list_cdr_usage',
'list_support_usage' => 'MyAccount/list_support_usage',
'order_pkg' => 'MyAccount/order_pkg', #add to ss cgi!
'change_pkg' => 'MyAccount/change_pkg',
diff --git a/fs_selfservice/FS-SelfService/cgi/header.html b/fs_selfservice/FS-SelfService/cgi/header.html
new file mode 100644
index 000000000..cf8fd2bd9
--- /dev/null
+++ b/fs_selfservice/FS-SelfService/cgi/header.html
@@ -0,0 +1,9 @@
+<HTML>
+ <HEAD>
+ <TITLE>MyAccount</TITLE>
+ </HEAD>
+ <BODY BGCOLOR="#eeeeee">
+ <FONT SIZE=5>MyAccount</FONT>
+ <BR><BR>
+ <%= include('myaccount_menu') %>
+ <TD VALIGN="top">
diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
index bb3db12c6..ecf2553a3 100644
--- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
+++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
@@ -15,7 +15,8 @@ use FS::SelfService qw( login_info login customer_info edit_info invoice
list_pkgs order_pkg signup_info order_recharge
part_svc_info provision_acct provision_external
unprovision_svc change_pkg domainselector
- list_svcs list_svc_usage list_support_usage
+ list_svcs
+ list_svc_usage list_cdr_usage list_support_usage
myaccount_passwd
);
@@ -72,7 +73,7 @@ $session_id = $cgi->param('session');
#order|pw_list XXX ???
$cgi->param('action') =~
- /^(myaccount|view_invoice|make_payment|make_ach_payment|make_thirdparty_payment|payment_results|ach_payment_results|recharge_prepay|recharge_results|logout|change_bill|change_ship|change_pay|process_change_bill|process_change_ship|process_change_pay|customer_order_pkg|process_order_pkg|customer_change_pkg|process_change_pkg|process_order_recharge|provision|provision_svc|process_svc_acct|process_svc_external|delete_svc|view_usage|view_usage_details|view_support_details|change_password|process_change_password)$/
+ /^(myaccount|view_invoice|make_payment|make_ach_payment|make_thirdparty_payment|payment_results|ach_payment_results|recharge_prepay|recharge_results|logout|change_bill|change_ship|change_pay|process_change_bill|process_change_ship|process_change_pay|customer_order_pkg|process_order_pkg|customer_change_pkg|process_change_pkg|process_order_recharge|provision|provision_svc|process_svc_acct|process_svc_external|delete_svc|view_usage|view_usage_details|view_cdr_details|view_support_details|change_password|process_change_password)$/
or die "unknown action ". $cgi->param('action');
my $action = $1;
@@ -564,7 +565,7 @@ sub delete_svc {
sub view_usage {
list_svcs(
'session_id' => $session_id,
- 'svcdb' => 'svc_acct',
+ 'svcdb' => [ 'svc_acct', 'svc_phone' ],
'ncancelled' => 1,
);
}
@@ -578,6 +579,15 @@ sub view_usage_details {
);
}
+sub view_cdr_details {
+ list_cdr_usage(
+ 'session_id' => $session_id,
+ 'svcnum' => $cgi->param('svcnum'),
+ 'beginning' => $cgi->param('beginning') || '',
+ 'ending' => $cgi->param('ending') || '',
+ );
+}
+
sub view_support_details {
list_support_usage(
'session_id' => $session_id,
diff --git a/fs_selfservice/FS-SelfService/cgi/view_cdr_details.html b/fs_selfservice/FS-SelfService/cgi/view_cdr_details.html
new file mode 100644
index 000000000..32bd632b4
--- /dev/null
+++ b/fs_selfservice/FS-SelfService/cgi/view_cdr_details.html
@@ -0,0 +1,54 @@
+<%= $url = "$selfurl?session=$session_id;action="; ''; %>
+<%= include('header') %>
+
+<FONT SIZE=4>Call usage for
+<%= Date::Format::time2str('%b&nbsp;%o&nbsp;%Y', $beginning) %> -
+<%= Date::Format::time2str('%b&nbsp;%o&nbsp;%Y', $ending) %>
+</FONT><BR><BR>
+
+<%= if ( $error ) {
+ $OUT .= qq!<FONT SIZE="+1" COLOR="#ff0000">$error</FONT><BR><BR>!;
+} ''; %>
+
+<TABLE WIDTH="100%">
+ <TR>
+ <TD WIDTH="50%">
+<%= if ($previous < $beginning) {
+ $OUT .= qq!<A HREF="${url}view_cdr_details;svcnum=$svcnum;beginning=!;
+ $OUT .= qq!$previous;ending=$beginning">Previous period</A>!;
+ }else{
+ '';
+ } %>
+ </TD>
+ <TD WIDTH="50%" ALIGN="right">
+<%= if ($next > $ending) {
+ $OUT .= qq!<A HREF="${url}view_cdr_details;svcnum=$svcnum;beginning=!;
+ $OUT .= qq!$ending;ending=$next">Next period</A>!;
+ }else{
+ '';
+ }%>
+ </TD>
+ </TR>
+</TABLE>
+<TABLE BGCOLOR="#cccccc">
+ <TR>
+<%= foreach my $header (@header) {
+ $OUT .= qq(<TH ALIGN="right">$header</TH>);
+ }
+%>
+ </TR>
+<%= my $total = 0;
+ my $utotal = 0;
+ my $dtotal = 0;
+ foreach my $usage ( @usage ) {
+ $OUT .= '<TR>';
+ $OUT .= qq(<TD>$_</TD>) foreach @{$usage};
+ $OUT .= '</TR>';
+ }
+%>
+
+</TABLE>
+<BR>
+
+</TD></TR></TABLE>
+<%= include('footer') %>
diff --git a/fs_selfservice/FS-SelfService/cgi/view_usage.html b/fs_selfservice/FS-SelfService/cgi/view_usage.html
index b78f9975b..b492102ce 100644
--- a/fs_selfservice/FS-SelfService/cgi/view_usage.html
+++ b/fs_selfservice/FS-SelfService/cgi/view_usage.html
@@ -1,24 +1,30 @@
-<HTML><HEAD><TITLE>MyAccount</TITLE></HEAD>
-<BODY BGCOLOR="#eeeeee"><FONT SIZE=5>MyAccount</FONT><BR><BR>
-<%= $url = "$selfurl?session=$session_id;action="; ''; %>
-<%= include('myaccount_menu') %>
-<TD VALIGN="top">
-
-<FONT SIZE=4>Service usage</FONT><BR><BR>
+<%= $url = "$selfurl?session=$session_id;action=";
+ @svc_acct = grep { $_->{svcdb} eq 'svc_acct' } @svcs;
+ @svc_phone = grep { $_->{svcdb} eq 'svc_phone' } @svcs;
+ '';
+%>
+<%= include('header') %>
<%= if ( $error ) {
$OUT .= qq!<FONT SIZE="+1" COLOR="#ff0000">$error</FONT><BR><BR>!;
} ''; %>
-<TABLE BGCOLOR="#cccccc">
- <TR>
- <TH ALIGN="left">Account</TH>
- <TH ALIGN="right">Time remaining</TH>
- <TH ALIGN="right">Upload remaining</TH>
- <TH ALIGN="right">Download remaining</TH>
- <TH ALIGN="right">Total remaining</TH>
- </TR>
-<%= foreach my $svc ( @svcs ) {
+<%= if ( @svc_acct ) {
+ $OUT.= '<FONT SIZE="4">Account usage</FONT><BR><BR>
+ <TABLE BGCOLOR="#cccccc">
+ <TR>
+ <TH ALIGN="left">Account</TH>
+ <TH ALIGN="right">Time remaining</TH>
+ <TH ALIGN="right">Upload remaining</TH>
+ <TH ALIGN="right">Download remaining</TH>
+ <TH ALIGN="right">Total remaining</TH>
+ </TR>';
+ } else {
+ $OUT .= '';
+ }
+%>
+
+<%= foreach my $svc ( @svc_acct ) {
my $link = "${url}view_usage_details;".
"svcnum=$svc->{'svcnum'};beginning=0;ending=0";
$OUT .= '<TR><TD>';
@@ -48,11 +54,33 @@
$OUT .= $svc->{'recharge_totalbytes'} if $svc->{'recharge_totalbytes'};
$OUT .= '</TD></TR>';
}
- } %>
+ }
+%>
-</TABLE>
-<BR>
+<%= scalar(@svc_acct) ? '</TABLE><BR><BR>' : '' %>
-</TD></TR></TABLE>
+<%= if ( @svc_phone ) {
+ $OUT.= '<FONT SIZE="4">Call usage</FONT><BR><BR>
+ <TABLE BGCOLOR="#cccccc">
+ <TR>
+ <TH ALIGN="left">Number</TH>'; #"Account" ?
+ #what else?
+ $OUT .= '</TR>';
+ } else {
+ $OUT .= '';
+ }
+%>
+<%= foreach my $svc_phone ( @svc_phone ) {
+ my $link = "${url}view_cdr_details;".
+ "svcnum=$svc_phone->{'svcnum'};beginning=0;ending=0";
+ $OUT .= '<TR><TD>';
+ $OUT .= qq!<A HREF="$link">!. $svc_phone->{'label'}. ': '. $svc_phone->{'value'}.'</A>';
+ $OUT .= '</TD></TR>';
+ }
+%>
+
+<%= scalar(@svc_phone) ? '</TABLE><BR><BR>' : '' %>
+
+</TD></TR></TABLE>
<%= include('footer') %>