-<%
-#<!-- $Id: cust_main.cgi,v 1.15 2001-12-12 19:42:21 ivan Exp $ -->
-
-use vars qw( $cgi $custnum $action $cust_main $p1 @agents $agentnum
- $last $first $ss $company $address1 $address2 $city $zip
- $daytime $night $fax @invoicing_list $invoicing_list $payinfo
- $payname %payby %paybychecked $refnum $otaker $r );
-use vars qw ( $conf $saved_pkgpart $username $password $popnum $ulen $ulen2 );
-use vars qw ( $error );
-#use CGI::Switch;
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup getotaker);
-#use FS::Record qw(qsearch qsearchs fields);
-use FS::Record qw(qsearch qsearchs fields dbdef);
-use FS::CGI qw(header popurl itable table);
-use FS::cust_main;
-use FS::agent;
-use FS::part_referral;
-use FS::cust_main_county;
-
- #for misplaced logic below
- use FS::part_pkg;
-
- #for false laziness below (now more properly lazy)
- use FS::svc_acct_pop;
-
- #for (other) false laziness below
- use FS::agent;
- use FS::type_pkgs;
-
-$conf = new FS::Conf;
-
-#get record
-
-$error = '';
-if ( $cgi->param('error') ) {
- $error = $cgi->param('error');
- $cust_main = new FS::cust_main ( {
- map { $_, scalar($cgi->param($_)) } fields('cust_main')
- } );
- $custnum = $cust_main->custnum;
- $saved_pkgpart = $cgi->param('pkgpart_svcpart') || '';
- if ( $saved_pkgpart =~ /^(\d+)_/ ) {
- $saved_pkgpart = $1;
- } else {
- $saved_pkgpart = '';
- }
- $username = $cgi->param('username');
- $password = $cgi->param('_password');
- $popnum = $cgi->param('popnum');
-} elsif ( $cgi->keywords ) { #editing
- my( $query ) = $cgi->keywords;
- $query =~ /^(\d+)$/;
- $custnum=$1;
- $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } );
- $saved_pkgpart = 0;
- $username = '';
- $password = '';
- $popnum = 0;
-} else {
- $custnum='';
- $cust_main = new FS::cust_main ( {} );
- $cust_main->otaker( &getotaker );
- $cust_main->referral_custnum( $cgi->param('referral_custnum') );
- $saved_pkgpart = 0;
- $username = '';
- $password = '';
- $popnum = 0;
-}
-$cgi->delete_all();
-$action = $custnum ? 'Edit' : 'Add';
-
-# top
-
-$p1 = popurl(1);
-print header("Customer $action", '');
-print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $error, "</FONT>"
- if $error;
-
-print qq!<FORM ACTION="${p1}process/cust_main.cgi" METHOD=POST NAME="form1">!,
- qq!<INPUT TYPE="hidden" NAME="custnum" VALUE="$custnum">!,
- qq!Customer # !, ( $custnum ? "<B>$custnum</B>" : " (NEW)" ),
-
-;
-
-# agent
-
-$r = qq!<font color="#ff0000">*</font>!;
-
-@agents = qsearch( 'agent', {} );
-#die "No agents created!" unless @agents;
-die "You have not created any agents. You must create at least one agent before adding a customer. Go to ". popurl(2). "browse/agent.cgi and create one or more agents." unless @agents;
-$agentnum = $cust_main->agentnum || $agents[0]->agentnum; #default to first
-if ( scalar(@agents) == 1 ) {
- print qq!<INPUT TYPE="hidden" NAME="agentnum" VALUE="$agentnum">!;
-} else {
- print qq!<BR><BR>${r}Agent <SELECT NAME="agentnum" SIZE="1">!;
- my $agent;
- foreach $agent (sort {
- $a->agent cmp $b->agent;
- } @agents) {
- print '<OPTION VALUE="', $agent->agentnum, '"',
- " SELECTED"x($agent->agentnum==$agentnum),
- ">", $agent->agentnum,": ", $agent->agent;
+<& /elements/header.html,
+ $title,
+ '',
+ ' onUnload="myclose()"' #hmm, in billing.html
+&>
+
+<& /elements/error.html &>
+
+<FORM NAME = "CustomerForm"
+ METHOD = "POST"
+ ACTION = "<% popurl(1) %>process/cust_main.cgi"
+>
+
+<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>">
+<INPUT TYPE="hidden" NAME="prospectnum" VALUE="<% $prospectnum %>">
+
+% if ( $custnum ) {
+ <% mt('Customer #') |h %><B><% $cust_main->display_custnum %></B> -
+ <B><FONT COLOR="#<% $cust_main->statuscolor %>">
+ <% ucfirst($cust_main->status) %>
+ </FONT></B>
+ <BR><BR>
+% }
+
+%# agent, agent_custid, refnum (advertising source), referral_custnum
+%# better section title for this?
+<FONT CLASS="fsinnerbox-title"><% mt('Basics') |h %></FONT>
+<& cust_main/basics.html, $cust_main, 'custnum' => $custnum &>
+
+%# birthdate
+% if ( $conf->config('national_id-country')
+% || $conf->exists('cust_main-enable_birthdate')
+% || $conf->exists('cust_main-enable_anniversary_date')
+% )
+% {
+ <BR>
+ <& cust_main/birthdate.html, $cust_main &>
+% }
+% my $has_ship_address = '';
+% if ( $cgi->param('error') ) {
+% $has_ship_address = !$same;
+% } elsif ( $cust_main->custnum ) {
+% $has_ship_address = $cust_main->has_ship_address;
+% }
+<BR>
+<TABLE> <TR>
+ <TD STYLE="width:650px">
+%#; padding-right:2px; vertical-align:top">
+ <FONT CLASS="fsinnerbox-title"><% mt('Billing address') |h %></FONT>
+ <TABLE CLASS="fsinnerbox" WIDTH="100%">
+ <& cust_main/before_bill_location.html, $cust_main &>
+ <& /elements/location.html,
+ object => $cust_main->bill_location,
+ prefix => 'bill_',
+ enable_censustract => 1,
+ enable_district => 1,
+ enable_coords => 1,
+ &>
+ <& cust_main/after_bill_location.html, $cust_main &>
+ </TABLE>
+ </TD>
+</TR>
+<TR><TD STYLE="height:40px"></TD></TR>
+<TR>
+ <TD STYLE="width:650px">
+ <FONT CLASS="fsinnerbox-title"><% mt('Service address') |h %></FONT>
+ <INPUT TYPE="checkbox"
+ NAME="same"
+ ID="same"
+ onclick="samechanged(this)"
+ onkeyup="samechanged(this)"
+ VALUE="Y"
+ <% $has_ship_address ? '' : 'CHECKED' %>
+ ><% mt('same as billing address') |h %>
+ <DIV CLASS="fsinnerbox">
+ <TABLE ID="table_ship_location" WIDTH="100%">
+ <& cust_main/before_ship_location.html, $cust_main &>
+ <& /elements/location.html,
+ object => $cust_main->ship_location,
+ prefix => 'ship_',
+ enable_censustract => 1,
+ enable_district => 1,
+ enable_coords => 1,
+ &>
+ </TABLE>
+ </DIV>
+ </TD>
+</TR></TABLE>
+
+<SCRIPT>
+function samechanged(what) {
+%# not display = 'none', because we still want it to take up space
+%# document.getElementById('table_ship_location').style.visibility =
+%# what.checked ? 'hidden' : 'visible';
+ var t1 = document.getElementById('table_ship_location');
+ if ( what.checked ) {
+ t1.style.visibility = 'hidden';