X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fcust_main.cgi;h=61d92b9982ed0d02895960831b847276c1f06fb8;hb=e0a26680d75fc2000bde195eba7946805a3aaa28;hp=15c9f45b21f0ef04de0b6c5e0ff4cae501d06b53;hpb=c183de0b7e942672cafdc1c14a203e389ffd2c43;p=freeside.git diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi index 15c9f45b2..61d92b998 100755 --- a/httemplate/edit/cust_main.cgi +++ b/httemplate/edit/cust_main.cgi @@ -1,5 +1,5 @@ <% include('/elements/header.html', - "Customer $action", + $title, '', ' onUnload="myclose()"' #hmm, in billing.html ) %> @@ -13,7 +13,8 @@ %# STYLE="margin-top: 0; margin-bottom: 0"> > - + + % if ( $custnum ) { Customer #<% $cust_main->display_custnum %> - @@ -45,9 +46,11 @@ % my $same_checked = ''; % my $ship_disabled = ''; +% my @ship_style = (); % unless ( $cust_main->ship_last && $same ne 'Y' ) { % $same_checked = 'CHECKED'; -% $ship_disabled = 'DISABLED STYLE="background-color: #dddddd"'; +% $ship_disabled = 'DISABLED'; +% push @ship_style, 'background-color:#dddddd'; % foreach ( % qw( last first company address1 address2 city county state zip country % daytime night fax ) @@ -74,14 +77,20 @@ function bill_changed(what) { if ( what.form.same.checked ) { % for (qw( last first company address1 address2 city zip daytime night fax )) { - what.form.ship_<%$_%>.value = what.form.<%$_%>.value; % } what.form.ship_country.selectedIndex = what.form.country.selectedIndex; + function fix_ship_city() { + what.form.ship_city_select.selectedIndex = what.form.city_select.selectedIndex; + what.form.ship_city.style.display = what.form.city.style.display; + what.form.ship_city_select.style.display = what.form.city_select.style.display; + } + function fix_ship_county() { what.form.ship_county.selectedIndex = what.form.county.selectedIndex; + ship_county_changed(what.form.ship_county, fix_ship_city ); } function fix_ship_state() { @@ -97,7 +106,8 @@ function samechanged(what) { if ( what.checked ) { bill_changed(what); -% for (qw( last first company address1 address2 city county state zip country daytime night fax )) { +% my @fields = qw( last first company address1 address2 city city_select county state zip country daytime night fax ); +% for (@fields) { what.form.ship_<%$_%>.disabled = true; what.form.ship_<%$_%>.style.backgroundColor = '#dddddd'; % } @@ -111,7 +121,7 @@ function samechanged(what) { } else { -% for (qw( last first company address1 address2 city county state zip country daytime night fax )) { +% for (@fields) { what.form.ship_<%$_%>.disabled = false; what.form.ship_<%$_%>.style.backgroundColor = '#ffffff'; % } @@ -136,6 +146,7 @@ function samechanged(what) { 'pre' => 'ship_', 'onchange' => '', 'disabled' => $ship_disabled, + 'style' => \@ship_style ) %> @@ -169,18 +180,23 @@ function samechanged(what) { <% include('cust_main/first_pkg.html', $cust_main, 'pkgpart_svcpart' => $pkgpart_svcpart, + 'disable_empty' => + scalar( $cgi->param('lock_pkgpart') =~ /^(\d+)$/ ), #svc_acct 'username' => $username, 'password' => $password, 'popnum' => $popnum, 'saved_domsvc' => $saved_domsvc, %svc_phone, + %svc_dsl, ) %> % } - + + + %# cust_main/bottomfixup.js % foreach my $hidden ( @@ -225,6 +241,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') ) { @@ -244,8 +263,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'); @@ -261,6 +284,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" @@ -297,14 +324,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 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 $action = $custnum ? 'Edit' : 'Add'; -$action .= ": ". $cust_main->name if $custnum; +my $title = $custnum ? 'Edit Customer' : 'Add Customer'; +$title .= ": ". $cust_main->name if $custnum; my $r = qq!* !;