diff options
author | ivan <ivan> | 1998-07-13 17:52:51 +0000 |
---|---|---|
committer | ivan <ivan> | 1998-07-13 17:52:51 +0000 |
commit | 8ae047bd7c16f16ace5acfa1098392b56835d24c (patch) | |
tree | 8c473632f167b192f1acd00ce2151d6568ea999c /htdocs | |
parent | f647714b103eb35a53419d170aac40660c851e0c (diff) |
Initial revision
Diffstat (limited to 'htdocs')
-rwxr-xr-x | htdocs/edit/cust_main.cgi | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/htdocs/edit/cust_main.cgi b/htdocs/edit/cust_main.cgi new file mode 100755 index 000000000..14556010c --- /dev/null +++ b/htdocs/edit/cust_main.cgi @@ -0,0 +1,214 @@ +#!/usr/bin/perl -Tw +# +# cust_main.cgi: Edit a customer (output form) +# +# Usage: cust_main.cgi custnum +# http://server.name/path/cust_main.cgi?custnum +# +# Note: Should be run setuid freeside as user nobody. +# +# ivan@voicenet.com 96-nov-29 -> 96-dec-04 +# +# Blank custnum for new customer. +# ivan@voicenet.com 96-dec-16 +# +# referral defaults to blank, to force people to pick something +# ivan@voicenet.com 97-jun-4 +# +# rewrote for new API +# ivan@voicenet.com 97-jul-28 +# +# new customer is null, not '#' +# otaker gotten from &getotaker instead of $ENV{REMOTE_USER} +# ivan@sisd.com 97-nov-12 +# +# cgisuidsetup($cgi); +# no need for old_ fields. +# now state+county is a select field (took out PA hack) +# used autoloaded $cust_main->field methods +# ivan@sisd.com 97-dec-17 +# +# fixed quoting problems ivan@sisd.com 98-feb-23 +# +# paydate sql update ivan@sisd.com 98-mar-5 +# +# Changes to allow page to work at a relative position in server +# Changed 'day' to 'daytime' because Pg6.3 reserves the day word +# Added test for paydate in mm-dd-yyyy format for Pg6.3 default format +# bmccane@maxbaud.net 98-apr-3 +# +# fixed one missed day->daytime ivan@sisd.com 98-jul-13 + +use strict; +use CGI::Base; +use CGI::Carp qw(fatalsToBrowser); +use FS::UID qw(cgisuidsetup getotaker); +use FS::Record qw(qsearch qsearchs); +use FS::cust_main; + +my($cgi) = new CGI::Base; +$cgi->get; + +cgisuidsetup($cgi); + +SendHeaders(); # one guess. + +#get record +my($custnum,$action,$cust_main); +if ( $cgi->var('QUERY_STRING') =~ /^(\d+)$/ ) { #editing + $custnum=$1; + $cust_main = qsearchs('cust_main',{'custnum'=>$custnum}); + $action='Edit'; +} else { + $custnum=''; + $cust_main = create FS::cust_main ( {} ); + $cust_main->setfield('otaker',&getotaker); + $cust_main->setfield('country','US'); + $action='Add'; +} + +print <<END; +<HTML> + <HEAD> + <TITLE>Customer $action</TITLE> + </HEAD> + <BODY> + <CENTER> + <H1>Customer $action</H1> + </CENTER> + <FORM ACTION="process/cust_main.cgi" METHOD=POST> + <PRE> +END + +print qq!<INPUT TYPE="hidden" NAME="custnum" VALUE="$custnum">!, + qq!Customer #<FONT SIZE="+1"><B>!; +print $custnum ? $custnum : " (NEW)" , "</B></FONT>"; + +#agentnum +my($agentnum)=$cust_main->agentnum || 1; #set to first agent by default +my(@agents) = qsearch('agent',{}); +print qq!\n\nAgent # <SELECT NAME="agentnum" SIZE="1">!; +my($agent); +foreach $agent (sort { + $a->agent cmp $b->agent; +} @agents) { + print "<OPTION" . " SELECTED"x($agent->agentnum==$agentnum), + ">", $agent->agentnum,": ", $agent->agent, "\n"; +} +print "</SELECT>"; + +#referral +#unless ($custnum) { + my($refnum)=$cust_main->refnum || 0; #to avoid "arguement not numeric" error + my(@referrals) = qsearch('part_referral',{}); + print qq!\nReferral <SELECT NAME="refnum" SIZE="1">!; + print "<OPTION> \n"; + my($referral); + foreach $referral (sort { + $a->refnum <=> $b->refnum; + } @referrals) { + print "<OPTION" . " SELECTED"x($referral->refnum==$refnum), + ">", $referral->refnum, ": ", $referral->referral,"\n"; + } + print "</SELECT>"; +#} + +my($last,$first,$ss,$company,$address1,$address2,$city)=( + $cust_main->last, + $cust_main->first, + $cust_main->ss, + $cust_main->company, + $cust_main->address1, + $cust_main->address2, + $cust_main->city, +); + +print <<END; + + +Name (last)<INPUT TYPE="text" NAME="last" VALUE="$last"> (first)<INPUT TYPE="text" NAME="first" VALUE="$first"> SS# <INPUT TYPE="text" NAME="ss" VALUE="$ss" SIZE=11 MAXLENGTH=11> +Company <INPUT TYPE="text" NAME="company" VALUE="$company"> +Address <INPUT TYPE="text" NAME="address1" VALUE="$address1" SIZE=40 MAXLENGTH=40> + <INPUT TYPE="text" NAME="address2" VALUE="$address2" SIZE=40 MAXLENGTH=40> +City <INPUT TYPE="text" NAME="city" VALUE="$city"> State (county) <SELECT NAME="state" SIZE="1"> +END + +foreach ( qsearch('cust_main_county',{}) ) { + print "<OPTION"; + print " SELECTED" if ( $cust_main->state eq $_->state + && $cust_main->county eq $_->county ); + print ">",$_->state; + print " (",$_->county,")" if $_->county; +} +print "</SELECT>"; + +my($zip,$country,$daytime,$night,$fax)=( + $cust_main->zip, + $cust_main->country, + $cust_main->daytime, + $cust_main->night, + $cust_main->fax, +); + +print <<END; + Zip <INPUT TYPE="text" NAME="zip" VALUE="$zip" SIZE=10 MAXLENGTH=10> +Country: <FONT SIZE="+1"><B>$country</B></FONT><INPUT TYPE="hidden" NAME="country" VALUE="$country"> + +Phone (daytime)<INPUT TYPE="text" NAME="daytime" VALUE="$daytime" SIZE=18 MAXLENGTH=20> (night)<INPUT TYPE="text" NAME="night" VALUE="$night" SIZE=18 MAXLENGTH=20> (fax)<INPUT TYPE="text" NAME="fax" VALUE="$fax" SIZE=12 MAXLENGTH=12> + +END + +my(%payby)=( + 'CARD' => "Credit card ", + 'BILL' => "Billing ", + 'COMP' => "Complimentary", +); +for (qw(CARD BILL COMP)) { + print qq!<INPUT TYPE="radio" NAME="payby" VALUE="$_"!; + print qq! CHECKED! if ($cust_main->payby eq "$_"); + print qq!>$payby{$_}!; +} + + +my($payinfo,$payname,$otaker)=( + $cust_main->payinfo, + $cust_main->payname, + $cust_main->otaker, +); + +my($paydate); +if ( $cust_main->paydate =~ /^(\d{4})-(\d{2})-\d{2}$/ ) { + $paydate="$2/$1" +} elsif ( $cust_main->paydate =~ /^(\d{2})-\d{2}-(\d{4}$)/ ) { + $paydate="$1/$2" +} +else { + $paydate=''; +} + +print <<END; + + Card number , P.O. # or Authorization <INPUT TYPE="text" NAME="payinfo" VALUE="$payinfo" SIZE=19 MAXLENGTH=19> +END + +print qq!Exp. date (MM/YY or MM/YYYY)<INPUT TYPE="text" NAME="paydate" VALUE="$paydate" SIZE=8 MAXLENGTH=7> Billing name <INPUT TYPE="text" NAME="payname" VALUE="$payname">\n<INPUT TYPE="checkbox" NAME="tax" VALUE="Y"!; +print qq! CHECKED! if $cust_main->tax eq "Y"; +print qq!> Tax Exempt!; + +print <<END; + + +Order taken by: <FONT SIZE="+1"><B>$otaker</B></FONT><INPUT TYPE="hidden" NAME="otaker" VALUE="$otaker"> +</PRE> +END + +print qq!<CENTER><INPUT TYPE="submit" VALUE="!, + $custnum ? "Apply Changes" : "Add Customer", qq!"></CENTER>!; + +print <<END; + + </FORM> + </BODY> +</HTML> +END + |