yup, mysql-ing me harder
[freeside.git] / httemplate / edit / rate.cgi
1 %
2 %
3 %my $rate;
4 %if ( $cgi->keywords ) {
5 %  my($query) = $cgi->keywords;
6 %  $query =~ /^(\d+)$/;
7 %  $rate = qsearchs( 'rate', { 'ratenum' => $1 } );
8 %} else { #adding
9 %  $rate = new FS::rate {};
10 %}
11 %my $action = $rate->ratenum ? 'Edit' : 'Add';
12 %
13 %my $p1 = popurl(1);
14 %
15 %my %granularity = (
16 %  '1', => '1 second',
17 %  '6'  => '6 second',
18 %  '30' => '30 second', # '1/2 minute',
19 %  '60' => 'minute',
20 %);
21 %
22 %#my $nous = <<END;
23 %#  WHERE 0 < ( SELECT COUNT(*) FROM rate_prefix
24 %#               WHERE rate_region.regionnum = rate_prefix.regionnum
25 %#                 AND countrycode != '1'
26 %#            )
27 %#END
28 %
29 %
30
31
32 <% include("/elements/header.html","$action Rate plan", menubar(
33       'Main Menu' => $p,
34       'View all rate plans' => "${p}browse/rate.cgi",
35     ))
36 %>
37
38 <% include('/elements/progress-init.html',
39               'OneTrueForm',
40               [ 'rate', 'min_', 'sec_' ],
41               'process/rate.cgi',
42               $p.'browse/rate.cgi',
43            )
44 %>
45 <FORM NAME="OneTrueForm">
46 <INPUT TYPE="hidden" NAME="ratenum" VALUE="<% $rate->ratenum %>">
47
48 Rate plan
49 <INPUT TYPE="text" NAME="ratename" SIZE=32 VALUE="<% $rate->ratename %>">
50 <BR><BR>
51
52 <% table() %>
53 <TR>
54   <TH>Region</TH>
55   <TH>Prefix(es)</TH>
56   <TH><FONT SIZE=-1>Included<BR>minutes</FONT></TH>
57   <TH><FONT SIZE=-1>Charge per<BR>minute</FONT></TH>
58   <TH><FONT SIZE=-1>Granularity</FONT></TH>
59 </TR>
60 % foreach my $rate_region (
61 %     #sort { lc($a->regionname) cmp lc($b->regionname) }
62 %     qsearch({
63 %               'table'     => 'rate_region',
64 %               'hashref'   => {},
65 %               'order_by'  => 'ORDER BY LOWER(regionname)',
66 %
67 %               #'select'    => 'DISTINCT ON ( regionnum ) rate_region.*',
68 %               #...
69 %               #'addl_from' => 'INNER JOIN rate_prefix USING ( regionnum )',
70 %               #'extra_sql' => "WHERE countrycode != '1'",
71 %
72 %                              # 'ORDER BY regionname'
73 %                              # ERROR: SELECT DISTINCT ON expressions must
74 %                              #        match initial ORDER BY expressions
75 %                              # also, DISTINCT ON is a Pg-ism
76 %            })
77 %   ) {
78 %     my $n = $rate_region->regionnum;
79 %     my $rate_detail =
80 %       $rate->dest_detail($rate_region)
81 %       || new FS::rate_detail { 'min_included'    => 0,
82 %                                'min_charge'      => 0,
83 %                                'sec_granularity' => '60'
84 %                              };
85 %
86
87
88   <TR>
89     <TD><A HREF="<%$p%>edit/rate_region.cgi?<% $rate_region->regionnum %>"><% $rate_region->regionname %></A></TD>
90     <TD><% $rate_region->prefixes_short %></TD>
91     <TD><INPUT TYPE="text" SIZE=5 NAME="min_included<%$n%>" VALUE="<% $cgi->param("min_included$n") || $rate_detail->min_included %>"></TD>
92     <TD>$<INPUT TYPE="text" SIZE=4 NAME="min_charge<%$n%>" VALUE="<% sprintf('%.2f', $cgi->param("min_charge$n") || $rate_detail->min_charge ) %>"></TD>
93     <TD>
94       <SELECT NAME="sec_granularity<%$n%>">
95 % foreach my $granularity ( keys %granularity ) { 
96
97           <OPTION VALUE="<%$granularity%>"<% $granularity == ( $cgi->param("sec_granularity$n") || $rate_detail->sec_granularity ) ? ' SELECTED' : '' %>><%$granularity{$granularity}%>
98 % } 
99
100       </SELECT>
101   </TR>
102 % } 
103
104
105 <TR>
106   <TD COLSPAN=5 ALIGN="center">
107     <A HREF="<%$p%>edit/rate_region.cgi"><I>Add a region</I></A>
108   </TD>
109 </TR>
110
111 </TABLE>
112
113 <BR><INPUT NAME="submit" TYPE="button" VALUE="<% 
114   $rate->ratenum ? "Apply changes" : "Add rate plan"
115 %>" onClick="document.OneTrueForm.submit.disabled=true; process();">
116
117     </FORM>
118   </BODY>
119 </HTML>
120