its all about control
[freeside.git] / httemplate / browse / reason_type.html
1 <% include( 'elements/browse.html',
2                  'title'       => ucfirst($classname) . " Reason Types",
3                  'menubar'     => [ ucfirst($classname) . " reasons" =>
4                                      $p.'browse/reason.html?class=' .  $class,
5                                   ],
6                  'html_init'   => $html_init,
7                  'name'        => $classname . " reason types",
8                  'query'       => { 'table'     => 'reason_type',
9                                     'hashref'   => {},
10                                     'extra_sql' => $where_clause .
11                                                    'ORDER BY typenum',
12                                   },
13                  'count_query' => $count_query,
14                  'header'      => [ '#',
15                                     ucfirst($classname) . ' Reason Type',
16                                     ucfirst($classname) . ' Reasons',
17                                   ],
18                  'fields'      => [ 'typenum',
19                                     'type',
20                                     $reasons_sub,
21                                   ],
22                  'links'       => [ $link,
23                                     $link,
24                                     '',
25                                   ],
26              )
27 %>
28 <%init>
29
30 die "access denied"
31   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
32
33 $cgi->param('class') =~ /^(\w)$/ or die "illegal class";
34 my $class=$1;
35
36 my %classmap = ( 'C' => 'cancel',
37                  'S' => 'suspend',
38                 );
39
40 my $classname = $classmap{$class};
41
42 my $html_init = ucfirst($classname) .
43   " reason types allow groups of $classname reasons for reporting purposes." .
44   qq!<BR><BR><A HREF="${p}edit/reason_type.html?class=$class"><I>Add a ! .
45   $classname . " reason type</I></A><BR><BR>";
46
47 my $reasons_sub = sub {
48   my $reason_type = shift;
49
50   [ map {
51           [
52             {
53               'data'  => $_->reason,
54               'align' => 'left',
55               'link'  => $p. "edit/reason.html?class=$class&reasonnum=".
56                              $_->reasonnum,
57             },
58           ];
59         }
60     $reason_type->enabled_reasons,
61
62   ];
63   
64 };
65
66 my $where_clause = "WHERE class='$class'";
67 my $count_query = 'SELECT COUNT(*) FROM reason_type ';
68 $count_query .= $where_clause;
69
70 my $link = [ $p.'edit/reason_type.html?class='.$class.'&typenum=', 'typenum' ];
71
72 </%init>