From acbc7e3c55a3d5a0e9999b0630653ad510d4b19a Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Tue, 31 Dec 2013 17:35:09 -0800 Subject: [PATCH] enable census tract lookup and manual entry in package order/change and location edit, #26722 --- httemplate/edit/cust_location.cgi | 1 + httemplate/edit/process/change-cust_pkg.html | 2 +- httemplate/elements/standardize_locations.js | 48 +++++++++++++++++++++++++++- httemplate/misc/change_pkg.cgi | 6 ++-- httemplate/misc/confirm-censustract.html | 6 +++- httemplate/misc/order_pkg.html | 3 +- 6 files changed, 60 insertions(+), 6 deletions(-) diff --git a/httemplate/edit/cust_location.cgi b/httemplate/edit/cust_location.cgi index 93ce32382..774b66730 100755 --- a/httemplate/edit/cust_location.cgi +++ b/httemplate/edit/cust_location.cgi @@ -19,6 +19,7 @@ ACTION="<% $p %>edit/process/cust_location.cgi" METHOD=POST> 'form' => 'EditLocationForm', 'callback' => 'document.EditLocationForm.submit();', 'with_census' => 1, + 'with_census_functions' => 1, &> diff --git a/httemplate/edit/process/change-cust_pkg.html b/httemplate/edit/process/change-cust_pkg.html index 0d571defd..96175e1e4 100644 --- a/httemplate/edit/process/change-cust_pkg.html +++ b/httemplate/edit/process/change-cust_pkg.html @@ -35,7 +35,7 @@ if ( $cgi->param('locationnum') == -1 ) { my $cust_location = FS::cust_location->new({ 'custnum' => $cust_pkg->custnum, map { $_ => scalar($cgi->param($_)) } - qw( address1 address2 city county state zip country ) + FS::cust_main->location_fields }); $change{'cust_location'} = $cust_location; } diff --git a/httemplate/elements/standardize_locations.js b/httemplate/elements/standardize_locations.js index debd9e7c4..cea59b801 100644 --- a/httemplate/elements/standardize_locations.js +++ b/httemplate/elements/standardize_locations.js @@ -157,7 +157,7 @@ function replace_address() { var clean = newaddr['<% $pre %>addr_clean'] == 'Y'; var error = newaddr['<% $pre %>error']; if ( clean ) { -% foreach my $field (qw(address1 address2 city state zip addr_clean censustract)) { +% foreach my $field (qw(address1 address2 city state zip addr_clean )) { cf.elements['<% $pre %><% $field %>'].value = newaddr['<% $pre %><% $field %>']; % } #foreach $field @@ -296,6 +296,45 @@ function setselect(el, value) { } } + +% if ($census_functions) { # do not use this in cust_main +function confirm_censustract() { +% if ( FS::Conf->new->exists('cust_main-require_censustract') ) { + var form = document.<% $formname %>; + // this is the existing/confirmed censustract, not the manually entered one + if ( form.elements['censustract'].value == '' || + form.elements['censustract'].value != + form.elements['enter_censustract'].value ) { + var address_info = form_address_info(); + address_info['latitude'] = form.elements['latitude'].value; + address_info['longitude'] = form.elements['longitude'].value; + OLpostAJAX( + '<%$p%>/misc/confirm-censustract.html', + 'q=' + encodeURIComponent(JSON.stringify(address_info)), + function() { + overlib( OLresponseAJAX, CAPTION, 'Confirm censustract', STICKY, + AUTOSTATUSCAP, CLOSETEXT, '', MIDX, 0, MIDY, 0, DRAGGABLE, WIDTH, + 576, HEIGHT, 268, BGCOLOR, '#333399', CGCOLOR, '#333399', + TEXTSIZE, 3 ); + }, + 0); + } else { + <% $post_censustract %>; + } +% } else { # skip this step + <% $post_censustract %>; +% } +} + +function set_censustract(tract, year) { + var form = document.<% $formname %>; + form.elements['censustract'].value = tract; + form.elements['censusyear'].value = year; + <% $post_censustract %>; +} + +% } # $census_functions + <%init> my %opt = @_; @@ -315,5 +354,12 @@ if ($billship) { my $formname = $opt{form} || 'CustomerForm'; my $post_geocode = $opt{callback} || 'post_geocode();'; +my $post_censustract; + +my $census_functions = $opt{'with_census_functions'} ? 1 : 0; +if ( $census_functions ) { + $post_censustract = $post_geocode; + $post_geocode = 'confirm_censustract()'; +} diff --git a/httemplate/misc/change_pkg.cgi b/httemplate/misc/change_pkg.cgi index ce8348000..5b4a3dea9 100755 --- a/httemplate/misc/change_pkg.cgi +++ b/httemplate/misc/change_pkg.cgi @@ -80,8 +80,10 @@ <& /elements/standardize_locations.html, - 'form' => "OrderPkgForm", - 'callback' => 'document.OrderPkgForm.submit();', + 'form' => "OrderPkgForm", + 'with_census' => 1, + 'with_census_functions' => 1, + 'callback' => 'document.OrderPkgForm.submit()', &> param('q') if $DEBUG; my $q = decode_json($cgi->param('q')) or die "bad argument '".$cgi->param('q')."'"; -my $pre = $q->{'same'} ? 'bill_' : 'ship_'; +my $pre = ''; +if ($q->{billship}) { + # this still isn't quite correct + $pre = $q->{'same'} ? 'bill_' : 'ship_'; +} my %location = ( map { $_ => $q->{$pre.$_} } qw( company address1 address2 city state zip country latitude longitude ) diff --git a/httemplate/misc/order_pkg.html b/httemplate/misc/order_pkg.html index 03531bf4d..b06f9622c 100644 --- a/httemplate/misc/order_pkg.html +++ b/httemplate/misc/order_pkg.html @@ -176,8 +176,9 @@ <& /elements/standardize_locations.html, 'form' => "OrderPkgForm", - 'callback' => 'document.OrderPkgForm.submit();', + 'callback' => 'document.OrderPkgForm.submit()', 'with_census' => 1, + 'with_census_functions' => 1, &> % } -- 2.11.0