diff options
Diffstat (limited to 'httemplate/browse/cust_main_county.cgi')
-rwxr-xr-x | httemplate/browse/cust_main_county.cgi | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/httemplate/browse/cust_main_county.cgi b/httemplate/browse/cust_main_county.cgi deleted file mode 100755 index 12bdeb3..0000000 --- a/httemplate/browse/cust_main_county.cgi +++ /dev/null @@ -1,288 +0,0 @@ -<% include( 'elements/browse.html', - 'title' => "Tax Rates $title", - 'name_singular' => 'tax rate', - 'menubar' => \@menubar, - 'html_init' => $html_init, - 'html_posttotal' => $html_posttotal, - 'query' => { - 'table' => 'cust_main_county', - 'hashref' => $hashref, - 'order_by' => - 'ORDER BY country, state, county, taxclass', - }, - 'count_query' => $count_query, - 'header' => \@header, - 'header2' => \@header2, - 'fields' => \@fields, - 'align' => $align, - 'color' => \@color, - 'cell_style' => \@cell_style, - 'links' => \@links, - 'link_onclicks' => \@link_onclicks, - ) -%> -% -% # <FONT SIZE=-1><A HREF="<% $p %>edit/process/cust_main_county-collapse.cgi?<% $hashref->{taxnum} %>">collapse state</A></FONT> -% # % } -% -<%once> - -my $conf = new FS::Conf; -my $money_char = $conf->config('money_char') || '$'; - -my @manual_countries = ( 'US', 'CA', 'AU', 'NZ', 'GB' ); #some manual ordering -my @all_countries = ( @manual_countries, - grep { my $c = $_; ! grep { $c eq $_ } @manual_countries } - map { $_->country } - qsearch({ - 'select' => 'country', - 'table' => 'cust_main_county', - 'hashref' => {}, - 'extra_sql' => 'GROUP BY country', - }) - ); - -my $exempt_sub = sub { - my $cust_main_county = shift; - - my @exempt = (); - push @exempt, - sprintf("$money_char%.2f per month", $cust_main_county->exempt_amount ) - if $cust_main_county->exempt_amount > 0; - - push @exempt, 'Setup fee' - if $cust_main_county->setuptax =~ /^Y$/i; - - push @exempt, 'Recurring fee' - if $cust_main_county->recurtax =~ /^Y$/i; - - [ map [ {'data'=>$_} ], @exempt ]; -}; - -my $oldrow; -my $cell_style; -my $cell_style_sub = sub { - my $row = shift; - if ( $oldrow ne $row ) { - if ( $oldrow ) { - if ( $oldrow->country ne $row->country ) { - $cell_style = 'border-top:1px solid #000000'; - } elsif ( $oldrow->state ne $row->state ) { - $cell_style = 'border-top:1px solid #cccccc'; #default? - } elsif ( $oldrow->state eq $row->state ) { - #$cell_style = 'border-top:dashed 1px dark gray'; - $cell_style = 'border-top:1px dashed #cccccc'; - } - } - $oldrow = $row; - } - return $cell_style; -}; - -#my $edit_link = [ "${p}edit/cust_main_county.html", 'taxnum' ]; -my $edit_link = [ 'javascript:void(0);', sub { ''; } ]; - -my $edit_onclick = sub { - my $row = shift; - my $taxnum = $row->taxnum; - my $color = '#333399'; - qq!overlib( OLiframeContent('${p}edit/cust_main_county.html?$taxnum', 540, 420, 'edit_cust_main_county_popup' ), CAPTION, 'Edit tax rate', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '$color', CGCOLOR, '$color' ); return false;!; -}; - -sub expand_link { - my( $row, $desc ) = @_; - my $taxnum = $row->taxnum; - my $url = "${p}edit/cust_main_county-expand.cgi?$taxnum"; - my $color = '#333399'; - - qq!<FONT SIZE="-1"><A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('$url', 540, 420, 'edit_cust_main_county_popup' ), CAPTION, '$desc', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK, BGCOLOR, '$color', CGCOLOR, '$color' ); return false;">!; -} - -sub separate_taxclasses_link { - my( $row ) = @_; - my $taxnum = $row->taxnum; - my $url = "${p}edit/process/cust_main_county-expand.cgi?taxclass=1;taxnum=$taxnum"; - - qq!<FONT SIZE="-1"><A HREF="$url">!; -} - -</%once> -<%init> - -die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); - -#my $conf = new FS::Conf; -#my $money_char = $conf->config('money_char') || '$'; -my $enable_taxclasses = $conf->exists('enable_taxclasses'); - -my @menubar; - -my $html_init = - "Click on <u>add states</u> to specify a country's tax rates by state or province. - <BR>Click on <u>add counties</u> to specify a state's tax rates by county."; -$html_init .= "<BR>Click on <u>separate taxclasses</u> to specify taxes per taxclass." - if $enable_taxclasses; -$html_init .= '<BR><BR>'; - -$html_init .= qq( - <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/overlibmws.js"></SCRIPT> - <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/overlibmws_iframe.js"></SCRIPT> - <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/overlibmws_draggable.js"></SCRIPT> - <SCRIPT TYPE="text/javascript" SRC="${fsurl}elements/iframecontentmws.js"></SCRIPT> -); - -my $title = ''; - -my $country = ''; -if ( $cgi->param('country') =~ /^(\w\w)$/ ) { - $country = $1; - $title = $country; -} -$cgi->delete('country'); - -my $state = ''; -if ( $cgi->param('state') =~ /^([\w \-\'\[\]]+)$/ ) { - $state = $1; - $title = "$state, $title"; -} -$cgi->delete('state'); - -my $county = ''; -if ( $cgi->param('county') =~ /^([\w \-\'\[\]]+)$/ ) { - $county = $1; - $title = "$county county, $title"; -} -$cgi->delete('county'); - -$title = " for $title" if $title; - -my $taxclass = ''; -if ( $cgi->param('taxclass') =~ /^([\w \-]+)$/ ) { - $taxclass = $1; - $title .= " for $taxclass tax class"; -} -$cgi->delete('taxclass'); - -if ( $country || $taxclass ) { - push @menubar, 'View all tax rates' => $p.'browse/cust_main_county.cgi'; -} - -$cgi->param('dummy', 1); - -my $country_filter_change = - "window.location = '". - $cgi->self_url. ";country=' + this.options[this.selectedIndex].value;"; - -#restore this so pagination works -$cgi->param('country', $country) if $country; -$cgi->param('state', $state ) if $state; -$cgi->param('county', $county ) if $county; -$cgi->param('taxclass', $county ) if $taxclass; - -my $html_posttotal = - '(show country: '. - qq(<SELECT NAME="country" onChange="$country_filter_change">). - qq(<OPTION VALUE="">(all)\n). - join("\n", map qq[<OPTION VALUE="$_"]. - ( $_ eq $country ? 'SELECTED' : '' ). - '>'. code2country($_). " ($_)", - @all_countries - ). - '</SELECT>)'; - -my $hashref = {}; -my $count_query = 'SELECT COUNT(*) FROM cust_main_county'; -if ( $country ) { - $hashref->{'country'} = $country; - $count_query .= ' WHERE country = '. dbh->quote($country); -} -if ( $state ) { - $hashref->{'state'} = $state; - $count_query .= ' AND state = '. dbh->quote($state); -} -if ( $county ) { - $hashref->{'country'} = $country; - $count_query .= ' AND county = '. dbh->quote($county); -} -if ( $taxclass ) { - $hashref->{'taxclass'} = $taxclass; - $count_query .= ( $count_query =~ /WHERE/i ? ' AND ' : ' WHERE ' ). - ' taxclass = '. dbh->quote($taxclass); -} - - -$cell_style = ''; - -my @header = ( 'Country', 'State/Province', 'County',); -my @header2 = ( '', '', '', ); -my @links = ( '', '', '', ); -my @link_onclicks = ( '', '', '', ); -my $align = 'lll'; - -my @fields = ( - sub { my $country = shift->country; - code2country($country). " ($country)"; - }, - sub { state_label($_[0]->state, $_[0]->country). - ( $_[0]->state - ? '' - : ' '. expand_link($_[0], 'Add States'). - 'add states</A></FONT>' - ) - }, - sub { $_[0]->county || '(all) '. - expand_link($_[0], 'Add Counties'). - 'add counties</A></FONT>' - }, -); - -my @color = ( - '000000', - sub { shift->state ? '000000' : '999999' }, - sub { shift->county ? '000000' : '999999' }, -); - -if ( $conf->exists('enable_taxclasses') ) { - push @header, qq!Tax class (<A HREF="${p}edit/part_pkg_taxclass.html">add new</A>)!; - push @header2, '(per-package classification)'; - push @fields, sub { $_[0]->taxclass || '(all) '. - separate_taxclasses_link($_[0], 'Separate Taxclasses'). - 'separate taxclasses</A></FONT>' - }; - push @color, sub { shift->taxclass ? '000000' : '999999' }; - push @links, ''; - push @link_onclicks, ''; - $align .= 'l'; -} - -push @header, 'Tax name', - 'Rate', #'Tax', - 'Exemptions', - ; - -push @header2, '(printed on invoices)', - '', - '', - ; - -push @fields, - sub { shift->taxname || 'Tax' }, - sub { shift->tax. '% <FONT SIZE="-1">(edit)</FONT>' }, - $exempt_sub, -; - -push @color, - sub { shift->taxname ? '000000' : '666666' }, - sub { shift->tax ? '000000' : '666666' }, - '000000', -; - -$align .= 'lrl'; - -my @cell_style = map $cell_style_sub, (1..scalar(@header)); - -push @links, '', $edit_link, ''; -push @link_onclicks, '', $edit_onclick, ''; - -</%init> |