X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_main.cgi;h=e823f7c93b774c575c3975de5cdb6fdb1e8bad46;hp=57dc3597a45d31a749fd1cadd42c0c0a213f0e68;hb=75e11f1d1a5ced24496b5732e290f7762403feb8;hpb=607de99a5c55135dad851303e31506aeca0651fa diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi index 57dc3597a..e823f7c93 100755 --- a/httemplate/edit/cust_main.cgi +++ b/httemplate/edit/cust_main.cgi @@ -1,22 +1,21 @@ -<% include('/elements/header.html', +<& /elements/header.html, $title, '', ' onUnload="myclose()"' #hmm, in billing.html -) %> +&> -<% include('/elements/error.html') %> +<& /elements/error.html &>
> - + + % if ( $custnum ) { - Customer #<% $cust_main->display_custnum %> - + <% mt('Customer #') |h %><% $cust_main->display_custnum %> - <% ucfirst($cust_main->status) %> @@ -24,12 +23,12 @@ % } %# agent, agent_custid, refnum (advertising source), referral_custnum -<% include('cust_main/top_misc.html', $cust_main, 'custnum' => $custnum ) %> +<& cust_main/top_misc.html, $cust_main, 'custnum' => $custnum &> %# birthdate % if ( $conf->exists('cust_main-enable_birthdate') ) {
- <% include('cust_main/birthdate.html', $cust_main) %> + <& cust_main/birthdate.html, $cust_main &> % } %# latitude and longitude @@ -52,16 +51,17 @@ % push @ship_style, 'background-color:#dddddd'; % foreach ( % qw( last first company address1 address2 city county state zip country -% daytime night fax ) +% latitude longitude coord_auto +% daytime night fax mobile ) % ) { % $cust_main->set("ship_$_", $cust_main->get($_) ); % } % }
-Billing address +<% mt('Billing address') |h %> -<% include('cust_main/contact.html', +<& cust_main/contact.html, 'cust_main' => $cust_main, 'pre' => '', 'onchange' => 'bill_changed(this)', @@ -69,13 +69,12 @@ 'ss' => $ss, 'stateid' => $stateid, 'same_checked' => $same_checked, #for address2 "Unit #" labeling - ) -%> +&>
-Service address +<% mt('Service address') |h %> -(>same as billing address) -<% include('cust_main/contact.html', +(><% mt('same as billing address') |h %>) +<& cust_main/contact.html, 'cust_main' => $cust_main, 'pre' => 'ship_', 'onchange' => '', 'disabled' => $ship_disabled, 'style' => \@ship_style - ) -%> +&> %# billing info -<% include( 'cust_main/billing.html', $cust_main, +<& cust_main/billing.html, $cust_main, 'payinfo' => $payinfo, 'invoicing_list' => \@invoicing_list, - ) -%> +&> % my $ro_comments = $conf->exists('cust_main-use_comments')?'':'readonly'; % if (!$ro_comments || $cust_main->comments) { -
Comments +
<% mt('Comments') |h %> <% &ntable("#cccccc") %> @@ -177,25 +174,28 @@ function samechanged(what) { % unless ( $custnum ) { - <% include('cust_main/first_pkg.html', $cust_main, + <& cust_main/first_pkg.html, $cust_main, 'pkgpart_svcpart' => $pkgpart_svcpart, - #svc_acct + 'disable_empty' => + scalar( $cgi->param('lock_pkgpart') =~ /^(\d+)$/ ), 'username' => $username, 'password' => $password, 'popnum' => $popnum, 'saved_domsvc' => $saved_domsvc, %svc_phone, - ) - %> + %svc_dsl, + &> % } + + %# cust_main/bottomfixup.js % foreach my $hidden ( -% 'payauto', -% 'payinfo', 'payinfo1', 'payinfo2', 'paytype', +% 'payauto', 'billday', +% 'payinfo', 'payinfo1', 'payinfo2', 'payinfo3', 'paytype', % 'payname', 'paystate', 'exp_month', 'exp_year', 'paycvv', % 'paystart_month', 'paystart_year', 'payissue', % 'payip', @@ -204,18 +204,18 @@ function samechanged(what) { % } -<% include('cust_main/bottomfixup.html') %> +<& cust_main/bottomfixup.html &>
" + VALUE = "<% $custnum ? emt("Apply changes") : emt("Add Customer") %>" onClick = "this.disabled=true; bottomfixup(this.form);" >
-<% include('/elements/footer.html') %> +<& /elements/footer.html &> <%init> @@ -235,6 +235,9 @@ my $same = ''; my $pkgpart_svcpart = ''; #first_pkg my($username, $password, $popnum, $saved_domsvc) = ( '', '', 0, 0 ); #svc_acct my %svc_phone = (); +my %svc_dsl = (); +my $prospectnum = ''; +my $locationnum = ''; if ( $cgi->param('error') ) { @@ -254,8 +257,12 @@ if ( $cgi->param('error') ) { $stateid = $cust_main->stateid; # don't mask an entered value on errors $payinfo = $cust_main->payinfo; # don't mask an entered value on errors + $prospectnum = $cgi->param('prospectnum') || ''; + $pkgpart_svcpart = $cgi->param('pkgpart_svcpart') || ''; + $locationnum = $cgi->param('locationnum') || ''; + #svc_acct $username = $cgi->param('username'); $password = $cgi->param('_password'); @@ -271,6 +278,10 @@ if ( $cgi->param('error') ) { $svc_phone{$_} = $cgi->param($_) foreach qw( countrycode phonenum sip_password pin phone_name ); + #svc_dsl (phonenum came in with svc_phone) + $svc_phone{$_} = $cgi->param($_) + foreach qw( password isp_chg isp_prev vendor_qual_id ); + } elsif ( $cgi->keywords ) { #editing die "access denied" @@ -298,6 +309,8 @@ if ( $cgi->param('error') ) { $custnum=''; $cust_main = new FS::cust_main ( {} ); + $cust_main->agentnum( $conf->config('default_agentnum') ) + if $conf->exists('default_agentnum'); $cust_main->otaker( &getotaker ); $cust_main->referral_custnum( $cgi->param('referral_custnum') ); @invoicing_list = (); @@ -307,13 +320,56 @@ if ( $cgi->param('error') ) { $stateid = ''; $payinfo = ''; + if ( $cgi->param('qualnum') =~ /^(\d+)$/ ) { + my $qualnum = $1; + my $qual = qsearchs('qual', { 'qualnum' => $qualnum } ) + or die "unknown qualnum $qualnum"; + + my $prospect_main = $qual->cust_or_prospect; + $prospectnum = $prospect_main->prospectnum + or die "qualification not on a prospect"; + + $cust_main->agentnum( $prospect_main->agentnum ); + $cust_main->company( $prospect_main->company ); + + #first contact? -> name + my @contacts = $prospect_main->contact; + my $contact = $contacts[0]; + $cust_main->first( $contact->first ); + $cust_main->set( 'last', $contact->get('last') ); + #contact phone numbers? + + #location -> address (all prospect quals have location, right?) + my $cust_location = $qual->cust_location; + $cust_location->dealternize; + $cust_main->$_( $cust_location->$_ ) + foreach qw( address1 address2 city county state zip country latitude longitude coord_auto geocode ); + + #locationnum -> package order + $locationnum = $qual->locationnum; + + #pkgpart handled by lock_pkgpart below + + #service telephone & vendor_qual_id -> svc_dsl + $svc_dsl{$_} = $qual->$_ + foreach qw( phonenum vendor_qual_id ); + } + + if ( $cgi->param('lock_pkgpart') =~ /^(\d+)$/ ) { + my $pkgpart = $1; + my $part_pkg = qsearchs('part_pkg', { 'pkgpart' => $pkgpart } ) + or die "unknown pkgpart $pkgpart"; + my $svcpart = $part_pkg->svcpart; + $pkgpart_svcpart = $pkgpart.'_'.$svcpart; + } + } -my $error = $cgi->param('error'); -$cgi->delete_all(); -$cgi->param('error', $error); +my %keep = map { $_=>1 } qw( error tagnum lock_agentnum lock_pkgpart ); +$cgi->delete( grep !$keep{$_}, $cgi->param ); my $title = $custnum ? 'Edit Customer' : 'Add Customer'; +$title = mt($title); $title .= ": ". $cust_main->name if $custnum; my $r = qq!* !;