7d5bb3fd32ffb6226c8e9321f18e24e430f1dfdb
[freeside.git] / httemplate / edit / cust_pkg.cgi
1 <%
2 #<!-- $Id: cust_pkg.cgi,v 1.4 2001-10-30 14:54:07 ivan Exp $ -->
3
4 use strict;
5 use vars qw( $cgi %pkg %comment $custnum $p1 @cust_pkg 
6              $cust_main $agent $type_pkgs $count %remove_pkg $pkgparts );
7 use CGI;
8 use CGI::Carp qw(fatalsToBrowser);
9 use FS::UID qw(cgisuidsetup);
10 use FS::Record qw(qsearch qsearchs);
11 use FS::CGI qw(header popurl);
12 use FS::part_pkg;
13 use FS::type_pkgs;
14
15 $cgi = new CGI;
16 &cgisuidsetup($cgi);
17
18 %pkg = ();
19 %comment = ();
20 foreach (qsearch('part_pkg', {})) {
21   $pkg{ $_ -> getfield('pkgpart') } = $_->getfield('pkg');
22   $comment{ $_ -> getfield('pkgpart') } = $_->getfield('comment');
23 }
24
25 if ( $cgi->param('error') ) {
26   $custnum = $cgi->param('custnum');
27   %remove_pkg = map { $_ => 1 } $cgi->param('remove_pkg');
28 } else {
29   my($query) = $cgi->keywords;
30   $query =~ /^(\d+)$/;
31   $custnum = $1;
32   undef %remove_pkg;
33 }
34
35 $p1 = popurl(1);
36 print header("Add/Edit Packages", '');
37
38 print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
39       "</FONT>"
40   if $cgi->param('error');
41
42 print qq!<FORM ACTION="${p1}process/cust_pkg.cgi" METHOD=POST>!;
43
44 print qq!<INPUT TYPE="hidden" NAME="custnum" VALUE="$custnum">!;
45
46 #current packages
47 @cust_pkg = qsearch('cust_pkg',{ 'custnum' => $custnum, 'cancel' => '' } );
48
49 if (@cust_pkg) {
50   print <<END;
51 Current packages - select to remove (services are moved to a new package below)
52 <BR><BR>
53 END
54
55   my ($count) = 0 ;
56   print qq!<TABLE>! ;
57   foreach (@cust_pkg) {
58     print '<TR>' if $count == 0;
59     my($pkgnum,$pkgpart)=( $_->getfield('pkgnum'), $_->getfield('pkgpart') );
60     print qq!<TD><INPUT TYPE="checkbox" NAME="remove_pkg" VALUE="$pkgnum"!;
61     print " CHECKED" if $remove_pkg{$pkgnum};
62     print qq!>$pkgnum: $pkg{$pkgpart} - $comment{$pkgpart}</TD>\n!;
63     $count ++ ;
64     if ($count == 2)
65     {
66       $count = 0 ;
67       print qq!</TR>\n! ;
68     }
69   }
70   print qq!</TABLE><BR><BR>!;
71 }
72
73 print <<END;
74 Order new packages<BR><BR>
75 END
76
77 $cust_main = qsearchs('cust_main',{'custnum'=>$custnum});
78 $agent = qsearchs('agent',{'agentnum'=> $cust_main->agentnum });
79
80 $count = 0;
81 $pkgparts = 0;
82 print qq!<TABLE>!;
83 foreach $type_pkgs ( qsearch('type_pkgs',{'typenum'=> $agent->typenum }) ) {
84   $pkgparts++;
85   my($pkgpart)=$type_pkgs->pkgpart;
86   print qq!<TR>! if ( $count == 0 );
87   my $value = $cgi->param("pkg$pkgpart") || 0;
88   print <<END;
89   <TD>
90   <INPUT TYPE="text" NAME="pkg$pkgpart" VALUE="$value" SIZE="2" MAXLENGTH="2">
91   $pkgpart: $pkg{$pkgpart} - $comment{$pkgpart}</TD>\n
92 END
93   $count ++ ;
94   if ( $count == 2 ) {
95     print qq!</TR>\n! ;
96     $count = 0;
97   }
98 }
99 print qq!</TABLE>!;
100
101 unless ( $pkgparts ) {
102   my $p2 = popurl(2);
103   my $typenum = $agent->typenum;
104   my $agent_type = qsearchs( 'agent_type', { 'typenum' => $typenum } );
105   my $atype = $agent_type->atype;
106   print <<END;
107 (No <a href="${p2}browse/part_pkg.cgi">package definitions</a>, or agent type
108 <a href="${p2}edit/agent_type.cgi?$typenum">$atype</a> not allowed to purchase
109 any packages.)
110 END
111 }
112
113 #submit
114 print <<END;
115 <P><INPUT TYPE="submit" VALUE="Order">
116     </FORM>
117   </BODY>
118 </HTML>
119 END
120 %>