diff options
| -rw-r--r-- | httemplate/edit/cust_main/contact.html | 2 | ||||
| -rw-r--r-- | httemplate/edit/process/qual.cgi | 4 | ||||
| -rw-r--r-- | httemplate/elements/tr-select-cust_location.html | 66 | ||||
| -rw-r--r-- | httemplate/misc/location.cgi | 3 | ||||
| -rw-r--r-- | httemplate/misc/qual.html | 9 | ||||
| -rwxr-xr-x | httemplate/search/qual.cgi | 2 | ||||
| -rw-r--r-- | httemplate/view/qual.cgi | 2 | 
7 files changed, 70 insertions, 18 deletions
diff --git a/httemplate/edit/cust_main/contact.html b/httemplate/edit/cust_main/contact.html index 99bc558c3..01d024ca2 100644 --- a/httemplate/edit/cust_main/contact.html +++ b/httemplate/edit/cust_main/contact.html @@ -2,7 +2,7 @@  <TR>    <TH ALIGN="right"><%$r%>Contact name<BR>(last, first)</TH> -  <TD COLSPAN=5> +  <TD COLSPAN=7>      <INPUT TYPE="text" NAME="<%$pre%>last" VALUE="<% $cust_main->get($pre.'last') |h %>" onChange="<% $onchange %>" <%$disabled%> <%$style%>> ,       <INPUT TYPE="text" NAME="<%$pre%>first" VALUE="<% $cust_main->get($pre.'first') |h %>" onChange="<% $onchange %>" <%$disabled%> <%$style%>>    </TD> diff --git a/httemplate/edit/process/qual.cgi b/httemplate/edit/process/qual.cgi index a702047c5..dd8d00b11 100644 --- a/httemplate/edit/process/qual.cgi +++ b/httemplate/edit/process/qual.cgi @@ -52,7 +52,7 @@ my %location_hash = (        qw( location_type location_number location_kind )  ); -if ( $locationnum == -1 ) { # adding a new one +if ( $locationnum == -1 || $locationnum == -3 ) { # adding a new one    $cust_location = new FS::cust_location {      $cust_or_prospect."num" => $custnum_or_prospectnum, @@ -80,7 +80,7 @@ $qual->phonenum($phonenum)       if $phonenum ne '';  #$qual->locationnum($locationnum) if $locationnum > 0;  $qual->exportnum($exportnum)     if $exportnum > 0;  $qual->set( $cust_or_prospect."num" => $custnum_or_prospectnum ) -  unless $locationnum == -1 || $locationnum > 0; +  unless $locationnum == -1 || $locationnum == -3 || $locationnum > 0;  $error ||= $qual->insert( 'cust_location' => $cust_location ); diff --git a/httemplate/elements/tr-select-cust_location.html b/httemplate/elements/tr-select-cust_location.html index d7566262e..b882c3d46 100644 --- a/httemplate/elements/tr-select-cust_location.html +++ b/httemplate/elements/tr-select-cust_location.html @@ -34,29 +34,39 @@ Example:  %   }     } +  function location_clear(what) { +%   for (grep { $_ ne 'location_number' } @location_fields, 'city_select') {  +      var ftype = what.form.<%$_%>.tagName; +      if( ftype == 'INPUT' ) what.form.<%$_%>.value = ''; +%   } +%   if ( $opt{'alt_format'} ) { +      changeSelect(what.form.location_kind, ''); +      changeSelect(what.form.location_type, ''); +      what.form.location_number.value = ''; +%   } +  } +    function location_enable(what) {  %   for (grep { $_ ne 'location_number' } @location_fields, 'city_select') {         what.form.<%$_%>.disabled = false;        var ftype = what.form.<%$_%>.tagName;        if( ftype != 'SELECT') what.form.<%$_%>.style.backgroundColor = '#ffffff'; -      if( ftype == 'INPUT' ) what.form.<%$_%>.value = '';  %   }       if ( what.form.location_type.options[what.form.location_type.selectedIndex].value ) {        what.form.location_number.disabled = false;        what.form.location_number.style.backgroundColor = '#ffffff';      } -    what.form.location_number.value = '';    }    function locationnum_changed(what) {      var locationnum = what.options[what.selectedIndex].value; -    if ( locationnum == -2 ) { +    if ( locationnum == -2 ) { //(not required)        location_disable(what);        return;      } -    if ( locationnum == -1 ) { -      location_enable(what); +    if ( locationnum == -1 ) { //Add new location +      location_clear(what);        changeSelect(what.form.country, <% $countrydefault |js_string %>); @@ -65,10 +75,33 @@ Example:                                            ''                                          )                       ); + +      location_enable(what); +      return; +    } +    if ( locationnum == -3 ) { //service address location for qualificaitons +      what.form.address1.value = <% $cust_location->address1 |js_string %>; +      what.form.address2.value = <% $cust_location->address2 |js_string %>; +      what.form.city.value = <% $cust_location->city |js_string %>; +      what.form.zip.value = <% $cust_location->zip |js_string %>; +%     if ( $opt{'alt_format'} ) { +        what.form.location_number.value = <% $cust_location->location_number |js_string %>; +        changeSelect(what.form.location_kind, <% $cust_location->location_kind |js_string %> ); +        changeSelect(what.form.location_type, <% $cust_location->location_type |js_string %> ); +%     } + +      changeSelect(what.form.country, <% $cust_location->country | js_string %> ); + +      country_changed( what.form.country, +                       fix_state_factory( <% $cust_location->state | js_string %>, +                                          <% $cust_location->county | js_string %> +                                        ) +                     ); +      location_enable(what);        return;      } -    if ( locationnum == 0 ) { +    if ( locationnum == 0 ) { //(default service address)  %     if ( $cust_main ) {        what.form.address1.value = <% $cust_main->get($prefix.'address1') |js_string %>;        what.form.address2.value = <% $cust_main->get($prefix.'address2') |js_string %>; @@ -139,10 +172,17 @@ Example:    function update_location( string ) {      var hash = eval('('+string+')');      document.getElementById('address1').value = hash['address1']; -    document.getElementById('address2').value = hash['address2'];      document.getElementById('city').value     = hash['city'];      document.getElementById('zip').value      = hash['zip']; +%   if ( $opt{'alt_format'} ) { +      changeSelect( document.getElementById('location_kind'), hash['location_kind']); +      changeSelect( document.getElementById('location_type'), hash['location_type']); +      document.getElementById('location_number').value = hash['location_number']; +%   } else { +      document.getElementById('address2').value = hash['address2']; +%   } +      var country_el = document.getElementById('country');      changeSelect( country_el, hash['country'] ); @@ -238,7 +278,7 @@ if ( $locationnum && $locationnum > 0 ) {      or die "unknown locationnum";  } else {    $cust_location = new FS::cust_location; -  if ( $locationnum == -1 ) { +  if ( $locationnum == -1 || $locationnum == -3 ) {      $cust_location->$_( $cgi->param($_) ) foreach @location_fields;    } elsif ( $cust_pkg && $cust_pkg->locationnum ) {      my $pkg_location = $cust_pkg->cust_location; @@ -265,6 +305,10 @@ push @cust_location, $cust_location  @cust_location = sort $location_sort grep !$_->disabled, @cust_location; +if ( ( $prospect_main || $opt{'disable_empty'} ) && !$opt{'is_optional'} ) { +  $cust_location = $cust_location[0]; +} +  my $disabled =    ( $locationnum < 0      || ( $editable && $locationnum ) @@ -275,6 +319,12 @@ my $disabled =      ? ''      : 'DISABLED'; +if ( $cust_main && $opt{'alt_format'} && ! @cust_location ) { +  $cust_location->locationnum(-3); +  $cust_location->alternize; +  push @cust_location, $cust_location; +} +  my $th = $opt{'no_bold'} ? 'TD' : 'TH';  </%init> diff --git a/httemplate/misc/location.cgi b/httemplate/misc/location.cgi index 82ad636c4..188c5c3df 100644 --- a/httemplate/misc/location.cgi +++ b/httemplate/misc/location.cgi @@ -24,7 +24,8 @@ my $cust_location = qsearchs({  my %hash = ();  %hash = map { $_ => $cust_location->$_() } -            qw( address1 address2 city county state zip country ) +            qw( address1 address2 city county state zip country +                location_kind location_type location_number )    if $cust_location;  </%init> diff --git a/httemplate/misc/qual.html b/httemplate/misc/qual.html index ed6ba2d6c..78d85edca 100644 --- a/httemplate/misc/qual.html +++ b/httemplate/misc/qual.html @@ -45,10 +45,11 @@  %>  <% include('/elements/tr-select-cust_location.html', -             'cgi'         => $cgi, -             $table        => $cust_main_or_prospect_main, -             'alt_format'  => $conf->exists('qual-alt_address_format'), -             'no_bold'     => 1, +             'cgi'           => $cgi, +             $table          => $cust_main_or_prospect_main, +             'alt_format'    => $conf->exists('qual-alt_address_format'), +             'disable_empty' => $conf->exists('qual-alt_address_format'), +             'no_bold'       => 1,               #required for ikano.. config? 'is_optional' => 1,            )  %> diff --git a/httemplate/search/qual.cgi b/httemplate/search/qual.cgi index 1803ab827..7133ef056 100755 --- a/httemplate/search/qual.cgi +++ b/httemplate/search/qual.cgi @@ -22,7 +22,7 @@  					$self->status_long;  				      },  				      sub { shift->cust_or_prospect->name }, -				      'phonenum', +				      sub { shift->phonenum || '(none - dry loop)' },  				      sub {  					my $self = shift;  					my %location_hash= $self->location_hash; diff --git a/httemplate/view/qual.cgi b/httemplate/view/qual.cgi index ec3a7cf1d..5e706a18d 100644 --- a/httemplate/view/qual.cgi +++ b/httemplate/view/qual.cgi @@ -16,7 +16,7 @@  <B>Qualification #<% $qual->qualnum %></B>  <% ntable("#cccccc", 2) %>  <% include('elements/tr.html', label => 'Status', value => $qual->status_long ) %> -<% include('elements/tr.html', label => 'Service Telephone Number', value => $qual->phonenum ) %> +<% include('elements/tr.html', label => 'Service Telephone Number', value => $qual->phonenum || '(none - dry loop)' ) %>  <% include('elements/tr.html', label => 'Address', value => $location_line ) %>  % if ( $location_kind ) {  <% include('elements/tr.html', label => 'Location Kind', value => $location_kind ) %>  | 
