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