Initial revision
authorivan <ivan>
Mon, 13 Jul 1998 17:52:51 +0000 (17:52 +0000)
committerivan <ivan>
Mon, 13 Jul 1998 17:52:51 +0000 (17:52 +0000)
htdocs/edit/cust_main.cgi [new file with mode: 0755]

diff --git a/htdocs/edit/cust_main.cgi b/htdocs/edit/cust_main.cgi
new file mode 100755 (executable)
index 0000000..1455601
--- /dev/null
@@ -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
+