5b42095b383c7fa77aac1800865f75efaec4d57b
[freeside.git] / htdocs / edit / agent.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # $Id: agent.cgi,v 1.7 1999-04-07 11:27:50 ivan Exp $
4 #
5 # ivan@sisd.com 97-dec-12
6 #
7 # Changes to allow page to work at a relative position in server
8 # Changed 'type' to 'atype' because Pg6.3 reserves the type word
9 #       bmccane@maxbaud.net     98-apr-3
10 #
11 # use FS::CGI, added inline documentation ivan@sisd.com 98-jul-12
12 #
13 # $Log: agent.cgi,v $
14 # Revision 1.7  1999-04-07 11:27:50  ivan
15 # avoid perl's silly arguement not numeric error
16 #
17 # Revision 1.6  1999/01/25 12:09:50  ivan
18 # yet more mod_perl stuff
19 #
20 # Revision 1.5  1999/01/19 05:13:31  ivan
21 # for mod_perl: no more top-level my() variables; use vars instead
22 # also the last s/create/new/;
23 #
24 # Revision 1.4  1999/01/18 09:41:21  ivan
25 # all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
26 # (good idea anyway)
27 #
28 # Revision 1.3  1998/12/17 06:16:57  ivan
29 # fix double // in relative URLs, s/CGI::Base/CGI/;
30 #
31 # Revision 1.2  1998/11/23 07:52:08  ivan
32 # *** empty log message ***
33 #
34
35 use strict;
36 use vars qw ( $cgi $agent $action $hashref $p $agent_type );
37 use CGI;
38 use CGI::Carp qw(fatalsToBrowser);
39 use FS::UID qw(cgisuidsetup);
40 use FS::CGI qw(header menubar popurl);
41 use FS::Record qw(qsearch qsearchs fields);
42 use FS::agent;
43 use FS::agent_type;
44
45 $cgi = new CGI;
46
47 &cgisuidsetup($cgi);
48
49 if ( $cgi->param('error') ) {
50   $agent = new FS::agent ( {
51     map { $_, scalar($cgi->param($_)) } fields('agent')
52   } );
53 } elsif ( $cgi->keywords ) {
54   my($query) = $cgi->keywords;
55   $query =~ /^(\d+)$/;
56   $agent = qsearchs( 'agent', { 'agentnum' => $1 } );
57 } else { #adding
58   $agent = new FS::agent {};
59 }
60 $action = $agent->agentnum ? 'Edit' : 'Add';
61 $hashref = $agent->hashref;
62
63 $p = popurl(2);
64
65 print $cgi->header( '-expires' => 'now' ), header("$action Agent", menubar(
66   'Main Menu' => $p,
67   'View all agents' => $p. 'browse/agent.cgi',
68 ));
69
70 print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
71       "</FONT>"
72   if $cgi->param('error');
73
74 print '<FORM ACTION="', popurl(1), 'process/agent.cgi" METHOD=POST>',
75       qq!<INPUT TYPE="hidden" NAME="agentnum" VALUE="$hashref->{agentnum}">!,
76       "Agent #", $hashref->{agentnum} ? $hashref->{agentnum} : "(NEW)";
77
78 print <<END;
79 <PRE>
80 Agent                     <INPUT TYPE="text" NAME="agent" SIZE=32 VALUE="$hashref->{agent}">
81 Agent type                <SELECT NAME="typenum" SIZE=1>
82 END
83
84 foreach $agent_type (qsearch('agent_type',{})) {
85   print "<OPTION VALUE=". $agent_type->typenum;
86   print " SELECTED"
87     if $hashref->{typenum} && ( $hashref->{typenum} == $agent_type->typenum );
88   print ">", $agent_type->getfield('typenum'), ": ",
89         $agent_type->getfield('atype'),"\n";
90 }
91
92 print <<END;
93 </SELECT>
94 Frequency (unimplemented) <INPUT TYPE="text" NAME="freq" VALUE="$hashref->{freq}">
95 Program (unimplemented)   <INPUT TYPE="text" NAME="prog" VALUE="$hashref->{prog}">
96 </PRE>
97 END
98
99 print qq!<BR><INPUT TYPE="submit" VALUE="!,
100       $hashref->{agentnum} ? "Apply changes" : "Add agent",
101       qq!">!;
102
103 print <<END;
104     </FORM>
105   </BODY>
106 </HTML>
107 END
108