bugfixes; fields isn't exported by derived classes
[freeside.git] / htdocs / edit / process / agent.cgi
1 #!/usr/bin/perl -Tw
2 #
3 # $Id: agent.cgi,v 1.4 1998-12-30 23:03:26 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 #       bmccane@maxbaud.net     98-apr-3
9 #
10 # lose background, FS::CGI ivan@sisd.com 98-sep-2
11 #
12 # $Log: agent.cgi,v $
13 # Revision 1.4  1998-12-30 23:03:26  ivan
14 # bugfixes; fields isn't exported by derived classes
15 #
16 # Revision 1.3  1998/12/17 08:40:16  ivan
17 # s/CGI::Request/CGI.pm/; etc
18 #
19 # Revision 1.2  1998/11/23 07:52:29  ivan
20 # *** empty log message ***
21 #
22
23 use strict;
24 use CGI;
25 use CGI::Carp qw(fatalsToBrowser);
26 use FS::UID qw(cgisuidsetup);
27 use FS::Record qw(qsearch qsearchs fields);
28 use FS::agent;
29 use FS::CGI qw(idiot popurl);
30
31 my($cgi)=new CGI;
32
33 &cgisuidsetup($cgi);
34
35 my($agentnum)=$cgi->param('agentnum');
36
37 my($old)=qsearchs('agent',{'agentnum'=>$agentnum}) if $agentnum;
38
39 #unmunge typenum
40 $cgi->param('typenum') =~ /^(\d+)(:.*)?$/;
41 $cgi->param('typenum',$1);
42
43 my($new)=create FS::agent ( {
44   map {
45     $_, scalar($cgi->param($_));
46   } fields('agent')
47 } );
48
49 my($error);
50 if ( $agentnum ) {
51   $error=$new->replace($old);
52 } else {
53   $error=$new->insert;
54   $agentnum=$new->getfield('agentnum');
55 }
56
57 if ( $error ) {
58   &idiot($error);
59 } else { 
60   print $cgi->redirect(popurl(3). "browse/agent.cgi");
61 }
62