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