X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Flocation.html;h=68552331414f0b97937070309a8b53f82cccc51c;hp=dbc567d4d34119edcb4a37ede79a480c150f150b;hb=05a8005cb5435fbdb3552af855a77934b58eac91;hpb=d6b6f81e383f9d876e67e9704914e887a331012e diff --git a/httemplate/elements/location.html b/httemplate/elements/location.html index dbc567d4d..685523314 100644 --- a/httemplate/elements/location.html +++ b/httemplate/elements/location.html @@ -3,26 +3,51 @@ Example: include( '/elements/location.html', - 'object' => $cust_main, # or $cust_location - 'prefix' => $pre, #only for cust_main objects + 'object' => $cust_location + 'prefix' => $pre, # prefixed to form field names 'onchange' => $javascript, - 'disabled' => $disabled, - 'same_checked' => $same_checked, 'geocode' => $geocode, #passed through + 'censustract' => $censustract, #passed through 'no_asterisks' => 0, #set true to disable the red asterisks next #to required fields 'address1_label' => 'Address', #label for address + 'enable_coords' => 1, #show latitude/longitude fields + 'enable_district' => 1, #show tax district field + 'enable_censustract' => 1, #show censustract field + ) +% if ( $opt{'alt_format'} ) { + - <%$r%><% $opt{'address1_label'} || 'Address' %> + <<%$th%> ALIGN="right">Location kind> + + <% include('/elements/select.html', + 'cgi' => $cgi, + 'field' => 'location_kind', + 'id' => 'location_kind', + 'disabled' => $disabled, + #'style' => \@style, + 'options' => \@location_kind_options, + 'labels' => $location_kind_labels, + 'curr_value' => scalar($cgi->param('location_kind')) + || $object->get('location_kind'), + ) + %> + + + +% } + + + <<%$th%> STYLE="width:16ex" ALIGN="right"><%$r%><% $opt{'address1_label'} || emt('Address') %>> @@ -31,46 +56,115 @@ Example: +% if ( ! $opt{'alt_format'} ) { #regular format + - >* >Unit # - - - <% $style %> - > - + >* >Unit # + + + <% $style %> + > + +% } else { # alternate format + + + - <%$r%>City - - - <% $style %> - > - - ><%$r%>County - <% include('/elements/select-county.html', %select_hash ) %> - <%$r%>State + <<%$th%> ALIGN="right">Unit type and #> + + +% my $location_type = scalar($cgi->param('location_type')) +% || $object->get('location_type'); +% #my $location_number = scalar($cgi->param('location_number')) +% # || $object->get($pre.'location_number'); +% +% if ( $object->get($pre.'address2') && ! $location_type ) { +% } +% +% if ( 1 ) { #ikano, switch on via config +% tie my %location_types, 'Tie::IxHash', +% FS::part_export::ikano->location_types; + <% include('/elements/select.html', + 'cgi' => $cgi, + 'field' => 'location_type', + 'id' => 'location_type', + 'disabled' => $disabled, + #'style' => \@style, + 'options' => [ keys %location_types ], + 'labels' => \%location_types, + 'curr_value' => $location_type, + 'onchange' => 'location_type_changed', + ) + %> + +% } else { + + <% $style %> + > +% } + + + <% $style %> + > + +% #XXX i don't work so well when the dropdown is changed :/ i probably need to be triggered by "default service address" +% $alt_err =~ s/(ship_)?address2/''.encode_entities($object->get($1.'address2')).'<\/B>'/e; + <% $alt_err %> + + + + + +% } + + + + <<%$th%> ALIGN="right"><%$r%><% mt('City') |h %>> + <% include('/elements/city.html', %select_hash, 'text_style' => \@style ) %> + <<%$th%> ALIGN="right" WIDTH="1" ID="<%$pre%>countylabel" <%$county_style%>><%$r%>County> + <% include('/elements/select-county.html', %select_hash ) %> + <<%$th%> ALIGN="right" WIDTH="1"><%$r%><% mt('State') |h %>> <% include('/elements/select-state.html', %select_hash ) %> - <%$r%>Zip + <<%$th%> ALIGN="right" WIDTH="1"><%$r%><% mt('Zip') |h %>> <% $style %> @@ -79,14 +173,79 @@ Example: - <%$r%>Country + <<%$th%> ALIGN="right"><%$r%><% mt('Country') |h %>> <% include('/elements/select-country.html', %select_hash ) %> -% if ( !$pre ) { - -% } +% if ( $opt{enable_coords} ) { + + <% mt('Latitude') |h %> + + + <% $style %> + > + <% mt('Longitude') |h %> + + <% $style %> + > + + +% } else { +% foreach (qw(latitude longitude)) { + +% } +% } + + + + +% if ( $opt{enable_censustract} ) { + + Census tract + + + <% '(automatic)' %> + + +% } +% if ( $conf->config('tax_district_method') ) { +% if ( $opt{enable_district} ) { + + Tax district + + + <% '(automatic)' %> + + +% } else { + +% } +% } + +%# For address standardization: +%# keep a clean copy of the address so we know if we need +%# to re-standardize +% foreach (qw(address1 city state country zip latitude +% longitude censustract district addr_clean) ) { + +% } +%# Placeholders + + <%init> my %opt = @_; @@ -100,19 +259,18 @@ my $conf = new FS::Conf; my $r = $opt{'no_asterisks'} ? '' : qq!* !; -#false laziness with ship state my $countrydefault = $conf->config('countrydefault') || 'US'; -$object->set($pre.'country', $countrydefault ) - unless $object->get($pre.'country'); - -my $statedefault = $conf->config('statedefault') +my $statedefault = $conf->config('statedefault') || ($countrydefault eq 'US' ? 'CA' : ''); -$object->set($pre.'state', $statedefault ) - unless $object->get($pre.'state') - || $object->get($pre.'country') ne $countrydefault; +$object ||= FS::cust_location->new({ + 'country' => $countrydefault, + 'state' => $statedefault, +}); + +my $alt_err = ($opt{'alt_format'} && !$disabled) ? $object->alternize : ''; my @style = (); -push @style, 'background-color: #dddddd"' if $disabled; +push @style, 'background-color: #dddddd' if $disabled; my @address2_label_style = (); push @address2_label_style, 'visibility:hidden' @@ -120,8 +278,8 @@ push @address2_label_style, 'visibility:hidden' || ! $conf->exists('cust_main-require_address2') || ( !$pre && !$opt{'same_checked'} ); -my @counties = counties( $object->get($pre.'state'), - $object->get($pre.'country'), +my @counties = counties( $object->get('state'), + $object->get('country'), ); my @county_style = (); push @county_style, 'display:none' # 'visibility:hidden' @@ -141,13 +299,19 @@ my $county_style = : ''; my %select_hash = ( - 'county' => $object->get($pre.'county'), - 'state' => $object->get($pre.'state'), - 'country' => $object->get($pre.'country'), + 'city' => $object->get('city'), + 'county' => $object->get('county'), + 'state' => $object->get('state'), + 'country' => $object->get('country'), 'prefix' => $pre, 'onchange' => $onchange, 'disabled' => $disabled, - 'style' => \@style, + #'style' => \@style, ); +my $th = $opt{'no_bold'} ? 'TD' : 'TH'; + +my @location_kind_options = ( '', 'R', 'B' ); +my $location_kind_labels = { '' => '', 'R' => 'Residential', 'B' => 'Business' }; +