X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Ftaxproduct.cgi;fp=httemplate%2Fmisc%2Ftaxproduct.cgi;h=a397f23643999d36ed593ff1aa27ee5a04b6963b;hb=07df8db4a07137e678a36b37070721566955295c;hp=1533e8810583d700df3b0bd8bfe0859703265fe2;hpb=67d171a04ecbccbfd7d5fc2f1be2810299008c15;p=freeside.git diff --git a/httemplate/misc/taxproduct.cgi b/httemplate/misc/taxproduct.cgi index 1533e8810..a397f2364 100644 --- a/httemplate/misc/taxproduct.cgi +++ b/httemplate/misc/taxproduct.cgi @@ -1,16 +1,20 @@ +<% encode_json(\@results) %>\ <%once> my $conf = FS::Conf->new; my $vendor = $conf->config('tax_data_vendor'); <%init> + my $term = $cgi->param('term'); -warn "taxproduct.cgi?$term"; # XXX debug +#warn "taxproduct.cgi?$term"; # XXX debug + my $search = { table => 'part_pkg_taxproduct', hashref => { 'data_vendor' => $vendor } }; -if ( $term =~ /^\d+$/ ) { - $search->{extra_sql} = " AND taxproduct LIKE '$term%'"; + +if ( $term =~ /^[A-Z]?\d+$/ ) { + $search->{extra_sql} = " AND taxproduct ILIKE '$term%'"; $search->{order_by} = " ORDER BY taxproduct ASC"; } elsif ( length($term) ) { $term = dbh->quote( lc($term) ); # protect against bad strings @@ -18,10 +22,14 @@ if ( $term =~ /^\d+$/ ) { # and sort by how close to the beginning of the string it is $search->{order_by} = " ORDER BY POSITION($term IN LOWER(description)) ASC, LOWER(description) ASC, taxproduct ASC"; } + +$search->{extra_sql} .= ' AND length(taxproduct) > 4' + if $vendor eq 'compliance_solutions'; + my @taxproducts = qsearch($search); my @results = map { { label => $_->taxproduct . ' ' . $_->description, value => $_->taxproductnum } } @taxproducts; + -<% encode_json(\@results) %>\