This commit was generated by cvs2svn to compensate for changes in r6252,
[freeside.git] / httemplate / browse / rate_detail.html
1 <% include( 'elements/browse.html',
2      'title'          => $title,
3      'name_singular'  => 'rate',
4      'html_init'      => $html_init,
5      'menubar'        => [ 'Rate plans' => $p.'browse/rate.cgi' ],
6      'query'          => {
7                            'table'     => 'rate_detail',
8                            'addl_from' => $join,
9                            'hashref'   => { 'ratenum' => $ratenum },
10                            'extra_sql' => $where,
11                          },
12      'count_query'    => "SELECT COUNT(*) FROM rate_detail $join".
13                          " WHERE ratenum = $ratenum $where",
14      'header'         => [
15                            'Region',
16                            'Prefix(es)',
17                            'Included<BR>minutes',
18                            'Charge per<BR>minute',
19                            'Granularity',
20                          ],
21      'fields'         => [
22                            'regionname',
23                            sub { shift->dest_region->prefixes_short },
24                            sub { shift->min_included.
25                                  '&nbsp;<FONT SIZE="-1">(edit)</FONT>';
26                                },
27                            sub { $money_char. shift->min_charge.
28                                  '&nbsp;<FONT SIZE="-1">(edit)</FONT>';
29                                },
30                            sub { $granularity{ shift->sec_granularity } },
31                          ],
32      'links'          => [ '', '', $edit_link,    $edit_link,    '' ],
33      'link_onclicks'  => [ '', '', $edit_onclick, $edit_onclick, '' ],
34      'align'          => 'llrrc',
35    )
36 %>
37 <%once>
38
39 my %granularity = (
40   '1', => '1 second',
41   '6'  => '6 second',
42   '30' => '30 second', # '1/2 minute',
43   '60' => 'minute',
44 );
45
46 my $conf = new FS::Conf;
47 my $money_char = $conf->config('money_char') || '$';
48
49 my $html_init = qq(
50   <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/overlibmws.js"></SCRIPT>
51   <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/overlibmws_iframe.js"></SCRIPT>
52   <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/overlibmws_draggable.js"></SCRIPT>
53   <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/iframecontentmws.js"></SCRIPT>
54 );
55
56 my $join =
57   ' JOIN rate_region ON ( rate_detail.dest_regionnum = rate_region.regionnum )';
58
59 my $edit_link = [ 'javascript:void(0);', sub { ''; } ];
60
61 my $edit_onclick = sub {
62   my $rate_detail = shift;
63   my $ratedetailnum = $rate_detail->ratedetailnum;
64   my $color = '#333399';
65   qq!overlib( OLiframeContent('${p}edit/rate_detail.html?$ratedetailnum', 540, 420, 'edit_rate_detail_popup' ), CAPTION, 'Edit tax rate', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '$color', CGCOLOR, '$color' ); return false;!;
66 };
67
68 </%once>
69 <%init>
70
71 die "access denied"
72   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
73
74 $cgi->param('ratenum') =~ /^(\d+)$/ or die "unparsable ratenum";
75 my $ratenum = $1;
76 my $rate = qsearchs('rate', { 'ratenum' => $ratenum } )
77   or die "unknown ratenum $ratenum";
78 my $ratename = $rate->ratename;
79 my $title = "$ratename rates";
80
81 my @where = ();
82
83 if ( $cgi->param('countrycode') =~ /^(\d+)$/ ) { 
84   my $countrycode = $1;
85   push @where, "0 < ( SELECT COUNT(*) FROM rate_prefix
86                         WHERE rate_prefix.regionnum = rate_region.regionnum
87                           AND countrycode = '$countrycode'
88                     )
89                ";
90   $title .= " for +$countrycode";
91 }
92
93 my $where = scalar(@where) ? ' AND '.join(' AND ', @where ) : '';
94
95 </%init>