display inbound CDRs in selfservice, #18316; Taqua caller ID, #18574
[freeside.git] / fs_selfservice / FS-SelfService / cgi / view_usage.html
1 <%= $url = "$selfurl?session=$session_id;action=";
2     @svc_acct  = grep { $_->{svcdb} eq 'svc_acct'  } @svcs;
3     @svc_phone = grep { $_->{svcdb} eq 'svc_phone' } @svcs;
4     @svc_port = grep { $_->{svcdb} eq 'svc_port' } @svcs;
5     '';
6 %>
7 <%= include('header', 'Account usage') %>
8
9 <%= if ( $error ) {
10   $OUT .= qq!<FONT SIZE="+1" COLOR="#ff0000">$error</FONT><BR><BR>!;
11 } ''; %>
12
13 <%= if ( @svc_acct ) {
14       $OUT.= '<TABLE BGCOLOR="#cccccc">
15                 <TR>
16                   <TH ALIGN="left">Account</TH>
17                   <TH ALIGN="right">Time remaining</TH>
18                   <TH ALIGN="right">Upload remaining</TH>
19                   <TH ALIGN="right">Download remaining</TH>
20                   <TH ALIGN="right">Total remaining</TH>
21                 </TR>';
22     } else {
23       $OUT .= '';
24     }
25 %>
26
27 <%= foreach my $svc ( @svc_acct ) {
28       my $link = "${url}view_usage_details;".
29         "svcnum=$svc->{'svcnum'};beginning=0;ending=0";
30     my $username = $svc->{'value'};
31     $username =~ s/@.*?$//g if $view_usage_nodomain;
32   $OUT .= '<TR><TD>';
33     $OUT .= qq!<A HREF="$link">!. $svc->{'label'}. ': '. $username .'</A>';
34     $OUT .= '</TD><TD ALIGN="right">';
35     $OUT .= $svc->{'seconds'};
36     $OUT .= '</TD><TD ALIGN="right">';
37     $OUT .=  $svc->{'upbytes'};
38     $OUT .= '</TD><TD ALIGN="right">';
39     $OUT .= $svc->{'downbytes'};
40     $OUT .= '</TD><TD ALIGN="right">';
41     $OUT .= $svc->{'totalbytes'};
42   $OUT .= '</TD></TR>';
43     if ( $svc->{'recharge_amount'} ) {
44       my $link = "${url}process_order_recharge;".
45                  "svcnum=$svc->{'svcnum'}";
46     $OUT .= '<TR><TD ALIGN="right">';
47       $OUT .= qq!<A HREF="$link">!.'Recharge for $';
48       $OUT .= $svc->{'recharge_amount'} . '</A> with';
49       $OUT .= '</TD><TD ALIGN="right">';
50       $OUT .= $svc->{'recharge_seconds'} if $svc->{'recharge_seconds'};
51       $OUT .= '</TD><TD ALIGN="right">';
52       $OUT .=  $svc->{'recharge_upbytes'} if $svc->{'recharge_upbytes'};
53       $OUT .= '</TD><TD ALIGN="right">';
54       $OUT .= $svc->{'recharge_downbytes'} if $svc->{'recharge_downbytes'};
55       $OUT .= '</TD><TD ALIGN="right">';
56       $OUT .= $svc->{'recharge_totalbytes'} if $svc->{'recharge_totalbytes'};
57     $OUT .= '</TD></TR>';
58     }
59   }
60 %>
61
62 <%= scalar(@svc_acct) ? '</TABLE><BR><BR>' : '' %>
63
64 <%= if ( @svc_phone ) {
65       %any = ();
66       for my $dir (qw(outbound inbound)) {
67         $any{$dir} = grep { $_->{$dir} } @svc_phone;
68       }
69       $OUT.= '<FONT SIZE="4">Call usage</FONT><BR><BR>
70               <TABLE BGCOLOR="#cccccc">
71                 <TR>
72                   <TH ALIGN="left">Number</TH>';
73       if ( $any{outbound} ) {
74         $OUT .= '
75                   <TH>Dialed</TH>';
76       }
77       if ( $any{inbound} ) {
78         $OUT .= '
79                   <TH>Received</TH>';
80       }
81       $OUT .= '</TR>';
82     } else {
83       $OUT .= '';
84     }
85 %>
86
87 <%= foreach my $svc_phone ( @svc_phone ) {
88       my $link = "${url}view_cdr_details;".
89         "svcnum=$svc_phone->{'svcnum'};beginning=0;ending=0";
90   $OUT .= '<TR><TD>'. $svc_phone->{'label'}. ': '. $svc_phone->{'value'};
91   $OUT .= '</TD>';
92   # usage summary w/ links
93   for my $dir (qw(outbound inbound)) {
94     if ( $dir eq 'inbound' ) {
95       $link .= ';inbound=1';
96     }
97     if ( $svc_phone->{$dir} ) {
98       $OUT .= '<TD ALIGN="right">'.qq!<A HREF="$link">! .
99         sprintf('%d calls (%.0f minutes)',
100           $svc_phone->{$dir}->{'count'},
101           $svc_phone->{$dir}->{'duration'} / 60
102         ) .
103         '</A></TD>';
104     } elsif ( $any{$dir} )  {
105       $OUT .= '<TD></TD>';
106     }
107   }
108   $OUT .= '</TR>';
109 }
110 '';
111 %>
112
113 <%= scalar(@svc_phone) ? '</TABLE><BR><BR>' : '' %>
114
115 <%= if ( @svc_port ) {
116       $OUT.= '<FONT SIZE="4">Bandwidth Graphs</FONT><BR><BR>
117                 <script type="text/javascript">
118                     function preset_range(start,end,prefix){
119                         document.getElementById(prefix+\'_start\').value = start;
120                         document.getElementById(prefix+\'_end\').value = end;
121                     }
122                   </script>
123               <TABLE BGCOLOR="#cccccc">
124                 <TR>
125                   <TH ALIGN="left">Service</TH>
126                   <TH ALIGN="right">
127                   </TH>
128                 </TR>';
129     } 
130     $OUT .= '';
131 %>
132
133 <%=
134
135 sub preset_range {
136     my($start,$end,$label,$date_format,$prefix) = (shift,shift,shift,shift,shift);
137     $start = Date::Format::time2str($date_format,$start);
138     $end = Date::Format::time2str($date_format,$end);
139     return '<A HREF="javascript:void(0);" onclick="preset_range(\''
140             .$start.'\',\''.$end.'\',\''.$prefix.'\')">'.$label.'</A>';
141 }
142
143 foreach my $svc_port ( @svc_port ) {
144   $svcnum = $svc_port->{'svcnum'}; 
145   $default_end = time;
146   $default_start = $default_end-86400;
147
148   $OUT .= '<TR><TD>'. $svc_port->{'label'}. ': '. $svc_port->{'value'}.'</TD>';
149   $OUT .= qq! <TD><FORM ACTION="$url" METHOD="GET">
150                 <INPUT TYPE="hidden" name="svcnum" value="$svcnum">
151                 <INPUT TYPE="hidden" name="action" value="view_port_graph">  
152                 <INPUT TYPE="hidden" name="session" value="$session_id">  !;
153   $OUT .= preset_range($default_start,$default_end,'Last Day',$date_format,$svcnum)
154         .' | '.preset_range($default_end-86400*7,$default_end,'Last Week',$date_format,$svcnum)
155         .' | '.preset_range($default_end-86400*30,$default_end,'Last Month',$date_format,$svcnum)
156         .' | '.preset_range($default_end-86400*365,$default_end,'Last Year',$date_format,$svcnum);
157   
158   $OUT .= qq! <BR>
159             Start Date <INPUT TYPE="TEXT" id="${svcnum}_start" name="${svcnum}_start" SIZE="10" MAXLENGTH="10">
160             End Date <INPUT TYPE="TEXT" id="${svcnum}_end" name="${svcnum}_end" SIZE="10" MAXLENGTH="10">
161             <BR>
162             <INPUT TYPE="submit" value="Display"> !;
163
164   $OUT .= '</FORM></TD></TR>';
165 }
166 %>
167
168 <%= scalar(@svc_port) ? '</TABLE><BR><BR>' : '' %>
169
170
171 </TD></TR></TABLE>
172 <%= include('footer') %>