time/data/etc. unit pricing add-ons, RT#24392
[freeside.git] / httemplate / edit / rate_time.cgi
1 <% include("/elements/header.html", { title => "$action Time Period" }) %>
2 <% include("/elements/menubar.html",
3       'Rate plans' => "${p}browse/rate.cgi",
4     ) %>
5 <BR>
6 <% include('/elements/error.html') %>
7 <BR>
8
9 <FORM METHOD="POST" ACTION="<% "${p}edit/process/rate_time.cgi" %>">
10 <INPUT TYPE="hidden" NAME="ratetimenum" VALUE="<% $ratetimenum %>">
11 <% ntable('#cccccc',2) %>
12 <TABLE>
13   <TR>
14     <TH ALIGN="right">Period name</TH>
15     <TD><INPUT TYPE="text" NAME="ratetimename" VALUE="<% $rate_time ? $rate_time->ratetimename : '' %>"></TD>
16   </TR>
17 </TABLE>
18 <TABLE>
19   <TR>
20     <TH COLSPAN=4 ALIGN="center">Start</TH>
21     <TH COLSPAN=4 ALIGN="center">End</TH>
22   </TR>
23   <TR id="mytemplate">
24 %   for my $pre (qw(s e)) {
25 %     for my $f (qw(d h m a)) { # day, hour, minute, am/pm
26         <TD>
27           <SELECT NAME="<%$pre.$f%>">
28 %       my $i = 0;
29 %       while ($i < @{ $choices{$f} }) {
30             <OPTION VALUE="<%$choices{$f}[$i]%>">
31 %         $i++;
32             <%$choices{$f}[$i]%></OPTION>
33 %         $i++;
34 %       }
35           </SELECT>
36         </TD>
37 %     } #$f
38 %   } #$pre
39   </TR>
40 <& /elements/auto-table.html, 
41     'template_row' => 'mytemplate',
42     'data'   => \@data,
43     'fieldorder' => [qw(sd sh sm sa ed eh em ea)],
44 &>
45 </TABLE>
46 <INPUT TYPE="submit" VALUE="<% $rate_time ? 'Apply changes' : 'Add period'%>">
47 </FORM>
48 <BR>
49 <A HREF="<% "${p}edit/process/rate_time.cgi?ratetimenum=$ratetimenum;delete=1" %>">Delete this period</A>
50 <% include('/elements/footer.html') %>
51
52 <%init>
53 my $ratetimenum = ($cgi->keywords)[0] || $cgi->param('ratetimenum') || '';
54 my $action = 'Add';
55 my $rate_time;
56 my @data = ();
57 my $day = [ 0 => 'Sun',
58             1 => 'Mon',
59             2 => 'Tue',
60             3 => 'Wed',
61             4 => 'Thu',
62             5 => 'Fri',
63             6 => 'Sat', ];
64 my $hour = [ map( {$_, sprintf('%02d',$_) } 12, 1..11 )];
65 my $min  = [ map( {$_, sprintf('%02d',$_) } 0,30  )];
66 my $ampm = [ 0 => 'AM', 1 => 'PM' ];
67 my %choices = (
68   'd' => $day,
69   'h' => $hour,
70   'm' => $min,
71   'a' => $ampm,
72 );
73 if($ratetimenum) {
74   $action = 'Edit';
75   $rate_time = qsearchs('rate_time', {ratetimenum => $ratetimenum})
76     or die "ratetimenum $ratetimenum not found";
77   if($cgi->param('error')) {
78     my %vars = $cgi->Vars;
79     foreach my $i (sort {$a <=> $b } map { /^sd(\d+)$/ } keys(%vars)) {
80       push @data, [ @vars{"sd$i", "sh$i", "sm$i", "sa$i",
81                           "ed$i", "eh$i", "em$i", "ea$i"} ];
82     }
83   }
84   else {
85     foreach my $interval ($rate_time->intervals) {
86       push @data, [ map { int($_/86400) % 7,
87                           (int($_/3600) % 12 || 12),
88                           int($_/60) % 60,
89                           int($_/43200) % 2, } 
90                     ( $interval->stime, $interval->etime ) 
91       ];
92     }
93   }
94 }
95
96 </%init>