first part of ACL and re-skinning work and some other small stuff
[freeside.git] / httemplate / edit / cust_pkg.cgi
1 <%
2
3 my %pkg = ();
4 my %comment = ();
5 my %all_pkg = ();
6 my %all_comment = ();
7 #foreach (qsearch('part_pkg', { 'disabled' => '' })) {
8 #  $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg');
9 #  $comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment');
10 #}
11 foreach (qsearch('part_pkg', {} )) {
12   $all_pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg');
13   $all_comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment');
14   next if $_->disabled;
15   $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg');
16   $comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment');
17 }
18
19 my($custnum, %remove_pkg);
20 if ( $cgi->param('error') ) {
21   $custnum = $cgi->param('custnum');
22   %remove_pkg = map { $_ => 1 } $cgi->param('remove_pkg');
23 } else {
24   my($query) = $cgi->keywords;
25   $query =~ /^(\d+)$/;
26   $custnum = $1;
27   %remove_pkg = ();
28 }
29
30 my $p1 = popurl(1);
31
32 %><%= include('/elements/header.html', "Add/Edit Packages", '') %>
33
34 <% if ( $cgi->param('error') ) { %>
35   <FONT SIZE="+1" COLOR="#ff0000">Error: <%= $cgi->param('error') %></FONT>
36 <% } %>
37
38 <FORM ACTION="<%= $p1 %>process/cust_pkg.cgi" METHOD=POST>
39
40 <INPUT TYPE="hidden" NAME="custnum" VALUE="<%= $custnum %>">
41
42 <%
43 #current packages
44 my @cust_pkg = qsearch('cust_pkg', { 'custnum' => $custnum, 'cancel' => '' } );
45
46 if (@cust_pkg) {
47 %>
48
49   Current packages - select to remove (services are moved to a new package below)
50   <TABLE>
51     <TR STYLE="background-color: #cccccc;">
52       <TH COLSPAN="2">Pkg #</TH>
53       <TH>Package description</TH>
54     </TR>
55   <BR><BR>
56
57   <%
58
59   foreach ( sort {     $all_pkg{ $a->getfield('pkgpart') }
60                    cmp $all_pkg{ $b->getfield('pkgpart') }
61                  }
62                  @cust_pkg
63           )
64   {
65     my($pkgnum,$pkgpart)=( $_->getfield('pkgnum'), $_->getfield('pkgpart') );
66     my $checked = $remove_pkg{$pkgnum} ? ' CHECKED' : '';
67
68   %>
69
70     <TR>
71       <TD><INPUT TYPE="checkbox" NAME="remove_pkg" VALUE="<%= $pkgnum %>"<%= $checked %>></TD>
72       <TD ALIGN="right"><%= $pkgnum %>:</TD>
73       <TD><%= $all_pkg{$pkgpart} %> - <%= $all_comment{$pkgpart} %></TD>
74     </TR>
75
76   <% } %>
77
78   </TABLE>
79   <BR><BR>
80
81 <% } %>
82
83 Order new packages
84 <BR><BR>
85
86 <%
87 my $cust_main = qsearchs('cust_main',{'custnum'=>$custnum});
88 my $agent = qsearchs('agent',{'agentnum'=> $cust_main->agentnum });
89
90 my %agent_pkgs = map { ( $_->pkgpart , $all_pkg{$_->pkgpart} ) }
91                      qsearch('type_pkgs',{'typenum'=> $agent->typenum });
92
93 my $count = 0;
94 my $pkgparts = 0;
95 %>
96
97 <TABLE>
98   <TR STYLE="background-color: #cccccc;">
99     <TH>Qty.</TH>
100     <TH COLSPAN="2">Package Description</TH>
101   </TR>
102
103 <%
104 #foreach my $type_pkgs ( qsearch('type_pkgs',{'typenum'=> $agent->typenum }) ) {
105 foreach my $pkgpart ( sort { $agent_pkgs{$a} cmp $agent_pkgs{$b} }
106                              keys(%agent_pkgs) ) {
107   $pkgparts++;
108   next unless exists $pkg{$pkgpart}; #skip disabled ones
109   #print qq!<TR>! if ( $count == 0 );
110   my $value = $cgi->param("pkg$pkgpart") || 0;
111 %>
112
113   <TR>
114     <TD>
115       <INPUT TYPE="text" NAME="<%= "pkg$pkgpart" %>" VALUE="<%= $value %>" SIZE="2" MAXLENGTH="2">
116     </TD>
117     <TD ALIGN="right"><%= $pkgpart %>:</TD>
118     <TD><%= $pkg{$pkgpart} %> - <%= $comment{$pkgpart}%></TD>
119   </TR>
120
121 <%
122   $count ++ ;
123   #if ( $count == 2 ) {
124   #  print qq!</TR>\n! ;
125   #  $count = 0;
126   #}
127 }
128 %>
129
130 </TABLE>
131
132 <% unless ( $pkgparts ) {
133      my $p2 = popurl(2);
134      my $typenum = $agent->typenum;
135      my $agent_type = qsearchs( 'agent_type', { 'typenum' => $typenum } );
136      my $atype = $agent_type->atype;
137 %>
138
139      (No <A HREF="<%= $p2 %>browse/part_pkg.cgi">package definitions</A>,
140      or agent type
141      <A HREF="<%= $p2 %>edit/agent_type.cgi?<%= $typenum %>"><%= $atype %></a>
142      is not allowed to purchase any packages.)
143
144 <% } %>
145
146 <P><INPUT TYPE="submit" VALUE="Order">
147
148 </FORM>
149
150 <%= include('/elements/footer.html') %>