[freeside-commits] freeside/httemplate/elements standardize_locations.html, NONE, 1.1 standardize_locations.js, NONE, 1.1
Jeff Finucane,420,,
jeff at wavetail.420.am
Mon Oct 11 12:00:34 PDT 2010
- Previous message: [freeside-commits] freeside/FS/FS geocode_Mixin.pm, NONE, 1.1 cust_location.pm, 1.7, 1.8 cust_main.pm, 1.557, 1.558
- Next message: [freeside-commits] freeside/httemplate/misc choose_tax_location.html, NONE, 1.1 change_pkg.cgi, 1.11, 1.12 order_pkg.html, 1.16, 1.17 xmlhttp-cust_main-address_standardize.html, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/cvsroot/freeside/httemplate/elements
In directory wavetail.420.am:/tmp/cvs-serv21347/httemplate/elements
Added Files:
standardize_locations.html standardize_locations.js
Log Message:
external taxes support package locations RT10093
--- NEW FILE: standardize_locations.js ---
function standardize_locations() {
var cf = document.<% $formname %>;
var state_el = cf.elements['<% $main_prefix %>state'];
var ship_state_el = cf.elements['<% $ship_prefix %>state'];
var address_info = new Array(
% if ( $onlyship ) {
'onlyship', 1,
% } else {
% if ( $withfirm ) {
'company', cf.elements['<% $main_prefix %>company'].value,
% }
'address1', cf.elements['<% $main_prefix %>address1'].value,
'address2', cf.elements['<% $main_prefix %>address2'].value,
'city', cf.elements['<% $main_prefix %>city'].value,
'state', state_el.options[ state_el.selectedIndex ].value,
'zip', cf.elements['<% $main_prefix %>zip'].value,
% }
% if ( $withfirm ) {
'ship_company', cf.elements['<% $ship_prefix %>company'].value,
% }
'ship_address1', cf.elements['<% $ship_prefix %>address1'].value,
'ship_address2', cf.elements['<% $ship_prefix %>address2'].value,
'ship_city', cf.elements['<% $ship_prefix %>city'].value,
'ship_state', ship_state_el.options[ ship_state_el.selectedIndex ].value,
'ship_zip', cf.elements['<% $ship_prefix %>zip'].value
);
address_standardize( address_info, update_address );
}
var standardize_address;
function update_address(arg) {
var argsHash = eval('(' + arg + ')');
var changed = argsHash['address_standardized'];
var ship_changed = argsHash['ship_address_standardized'];
var error = argsHash['error'];
var ship_error = argsHash['ship_error'];
//yay closures
standardize_address = function () {
var cf = document.<% $formname %>;
var state_el = cf.elements['<% $main_prefix %>state'];
var ship_state_el = cf.elements['<% $ship_prefix %>state'];
% if ( !$onlyship ) {
if ( changed ) {
% if ( $withfirm ) {
cf.elements['<% $main_prefix %>company'].value = argsHash['new_company'];
% }
cf.elements['<% $main_prefix %>address1'].value = argsHash['new_address1'];
cf.elements['<% $main_prefix %>address2'].value = argsHash['new_address2'];
cf.elements['<% $main_prefix %>city'].value = argsHash['new_city'];
setselect(cf.elements['<% $main_prefix %>state'], argsHash['new_state']);
cf.elements['<% $main_prefix %>zip'].value = argsHash['new_zip'];
}
% }
if ( ship_changed ) {
% if ( $withfirm ) {
cf.elements['<% $ship_prefix %>company'].value = argsHash['new_ship_company'];
% }
cf.elements['<% $ship_prefix %>address1'].value = argsHash['new_ship_address1'];
cf.elements['<% $ship_prefix %>address2'].value = argsHash['new_ship_address2'];
cf.elements['<% $ship_prefix %>city'].value = argsHash['new_ship_city'];
setselect(cf.elements['<% $ship_prefix %>state'], argsHash['new_ship_state']);
cf.elements['<% $ship_prefix %>zip'].value = argsHash['new_ship_zip'];
}
post_standardization();
}
if ( changed || ship_changed ) {
% if ( $conf->exists('cust_main-auto_standardize_address') ) {
standardize_address();
% } else {
// popup a confirmation popup
var confirm_change =
'<CENTER><BR><B>Confirm address standardization</B><BR><BR>' +
'<TABLE>';
if ( changed ) {
confirm_change = confirm_change +
'<TR><TH>Entered billing address</TH>' +
'<TH>Standardized billing address</TH></TR>';
// + '<TR><TD> </TD><TD> </TD></TR>';
if ( argsHash['company'] || argsHash['new_company'] ) {
confirm_change = confirm_change +
'<TR><TD>' + argsHash['company'] +
'</TD><TD>' + argsHash['new_company'] + '</TD></TR>';
}
confirm_change = confirm_change +
'<TR><TD>' + argsHash['address1'] +
'</TD><TD>' + argsHash['new_address1'] + '</TD></TR>' +
'<TR><TD>' + argsHash['address2'] +
'</TD><TD>' + argsHash['new_address2'] + '</TD></TR>' +
'<TR><TD>' + argsHash['city'] + ', ' + argsHash['state'] + ' ' + argsHash['zip'] +
'</TD><TD>' + argsHash['new_city'] + ', ' + argsHash['new_state'] + ' ' + argsHash['new_zip'] + '</TD></TR>' +
'<TR><TD> </TD><TD> </TD></TR>';
}
if ( ship_changed ) {
confirm_change = confirm_change +
'<TR><TH>Entered service address</TH>' +
'<TH>Standardized service address</TH></TR>';
// + '<TR><TD> </TD><TD> </TD></TR>';
if ( argsHash['ship_company'] || argsHash['new_ship_company'] ) {
confirm_change = confirm_change +
'<TR><TD>' + argsHash['ship_company'] +
'</TD><TD>' + argsHash['new_ship_company'] + '</TD></TR>';
}
confirm_change = confirm_change +
'<TR><TD>' + argsHash['ship_address1'] +
'</TD><TD>' + argsHash['new_ship_address1'] + '</TD></TR>' +
'<TR><TD>' + argsHash['ship_address2'] +
'</TD><TD>' + argsHash['new_ship_address2'] + '</TD></TR>' +
'<TR><TD>' + argsHash['ship_city'] + ', ' + argsHash['ship_state'] + ' ' + argsHash['ship_zip'] +
'</TD><TD>' + argsHash['new_ship_city'] + ', ' + argsHash['new_ship_state'] + ' ' + argsHash['new_ship_zip'] + '</TD></TR>' +
'<TR><TD> </TD><TD> </TD></TR>';
}
var addresses = 'address';
var height = 268;
if ( changed && ship_changed ) {
addresses = 'addresses';
height = 396; // #what
}
confirm_change = confirm_change +
'<TR><TD>' +
'<BUTTON TYPE="button" onClick="post_standardization();"><IMG SRC="<%$p%>images/error.png" ALT=""> Use entered ' + addresses + '</BUTTON>' +
'</TD><TD>' +
'<BUTTON TYPE="button" onClick="standardize_address();"><IMG SRC="<%$p%>images/tick.png" ALT=""> Use standardized ' + addresses + '</BUTTON>' +
'</TD></TR>' +
'<TR><TD COLSPAN=2 ALIGN="center">' +
'<BUTTON TYPE="button" onClick="document.<% $formname %>.submitButton.disabled=false; parent.cClick();"><IMG SRC="<%$p%>images/cross.png" ALT=""> Cancel submission</BUTTON></TD></TR>' +
'</TABLE></CENTER>';
overlib( confirm_change, CAPTION, 'Confirm address standardization', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', MIDX, 0, MIDY, 0, DRAGGABLE, WIDTH, 576, HEIGHT, height, BGCOLOR, '#333399', CGCOLOR, '#333399', TEXTSIZE, 3 );
% }
} else {
post_standardization();
}
}
function post_standardization() {
var cf = document.<% $formname %>;
% if ( $conf->exists('enable_taxproducts') ) {
if ( new String(cf.elements['<% $taxpre %>zip'].value).length < 10 )
{
var country_el = cf.elements['<% $taxpre %>country'];
var country = country_el.options[ country_el.selectedIndex ].value;
var geocode = cf.elements['geocode'].value;
if ( country == 'CA' || country == 'US' ) {
var state_el = cf.elements['<% $taxpre %>state'];
var state = state_el.options[ state_el.selectedIndex ].value;
var url = "<% $p %>/misc/choose_tax_location.html" +
"?data_vendor=cch-zip" +
";city=" + cf.elements['<% $taxpre %>city'].value +
";state=" + state +
";zip=" + cf.elements['<% $taxpre %>zip'].value +
";country=" + country +
";geocode=" + geocode +
";formname=" + '<% $formname %>' +
";";
// popup a chooser
OLgetAJAX( url, update_geocode, 300 );
} else {
cf.elements['geocode'].value = 'DEFAULT';
<% $post_geocode %>;
}
} else {
cf.elements['geocode'].value = '';
<% $post_geocode %>;
}
% } else {
<% $post_geocode %>;
% }
}
function update_geocode() {
//yay closures
set_geocode = function (what) {
var cf = document.<% $formname %>;
//alert(what.options[what.selectedIndex].value);
var argsHash = eval('(' + what.options[what.selectedIndex].value + ')');
cf.elements['<% $taxpre %>city'].value = argsHash['city'];
setselect(cf.elements['<% $taxpre %>state'], argsHash['state']);
cf.elements['<% $taxpre %>zip'].value = argsHash['zip'];
cf.elements['geocode'].value = argsHash['geocode'];
<% $post_geocode %>;
}
// popup a chooser
overlib( OLresponseAJAX, CAPTION, 'Select tax location', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', MIDX, 0, MIDY, 0, DRAGGABLE, WIDTH, 576, HEIGHT, 268, BGCOLOR, '#333399', CGCOLOR, '#333399', TEXTSIZE, 3 );
}
function setselect(el, value) {
for ( var s = 0; s < el.options.length; s++ ) {
if ( el.options[s].value == value ) {
el.selectedIndex = s;
}
}
}
<%init>
my %opt = @_;
my $conf = new FS::Conf;
my $withfirm = 1;
my $formname = $opt{form} || 'CustomerForm';
my $onlyship = $opt{onlyship} || '';
my $main_prefix = $opt{main_prefix} || '';
my $ship_prefix = $opt{ship_prefix} || ($onlyship ? '' : 'ship_');
my $taxpre = $main_prefix;
$taxpre = $ship_prefix if ( $conf->exists('tax-ship_address') || $onlyship );
my $post_geocode = $opt{callback} || 'post_geocode();';
$withfirm = 0 if $opt{no_company};
</%init>
--- NEW FILE: standardize_locations.html ---
<% include('/elements/init_overlib.html') %>
<% include( '/elements/xmlhttp.html',
'url' => $p.'misc/xmlhttp-cust_main-address_standardize.html',
'subs' => [ 'address_standardize' ],
#'method' => 'POST', #could get too long?
)
%>
<SCRIPT TYPE="text/javascript">
<% include('/elements/standardize_locations.js', %options) %>
</SCRIPT>
<%init>
my (%options) = @_;
</%init>
- Previous message: [freeside-commits] freeside/FS/FS geocode_Mixin.pm, NONE, 1.1 cust_location.pm, 1.7, 1.8 cust_main.pm, 1.557, 1.558
- Next message: [freeside-commits] freeside/httemplate/misc choose_tax_location.html, NONE, 1.1 change_pkg.cgi, 1.11, 1.12 order_pkg.html, 1.16, 1.17 xmlhttp-cust_main-address_standardize.html, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the freeside-commits
mailing list