X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fbrowse%2Fcust_main_county.cgi;h=04d1ae5bbae07c80869bdebd27c89658d83e4875;hp=736d7fdbe19ad67a220b8bfb967736cc86a01e3e;hb=74e058c8a010ef6feb539248a550d0bb169c1e94;hpb=9e8206dc6a253409671e6d5c904b2d5189b18a86 diff --git a/httemplate/browse/cust_main_county.cgi b/httemplate/browse/cust_main_county.cgi index 736d7fdbe..04d1ae5bb 100755 --- a/httemplate/browse/cust_main_county.cgi +++ b/httemplate/browse/cust_main_county.cgi @@ -23,10 +23,6 @@ 'link_onclicks' => \@link_onclicks, ) %> -% -% # collapse state -% # % } -% <%once> my $conf = new FS::Conf; @@ -49,22 +45,22 @@ my $exempt_sub = sub { [ map [ {'data'=>$_} ], @exempt ]; }; -my $oldrow; +my $cs_oldrow; my $cell_style; my $cell_style_sub = sub { my $row = shift; - if ( $oldrow ne $row ) { - if ( $oldrow ) { - if ( $oldrow->country ne $row->country ) { + if ( $cs_oldrow ne $row ) { + if ( $cs_oldrow ) { + if ( $cs_oldrow->country ne $row->country ) { $cell_style = 'border-top:1px solid #000000'; - } elsif ( $oldrow->state ne $row->state ) { + } elsif ( $cs_oldrow->state ne $row->state ) { $cell_style = 'border-top:1px solid #cccccc'; #default? - } elsif ( $oldrow->state eq $row->state ) { + } elsif ( $cs_oldrow->state eq $row->state ) { #$cell_style = 'border-top:dashed 1px dark gray'; $cell_style = 'border-top:1px dashed #cccccc'; } } - $oldrow = $row; + $cs_oldrow = $row; } return $cell_style; }; @@ -84,9 +80,16 @@ my $edit_onclick = sub { ); }; +my $ex_oldrow; sub expand_link { my %param = @_; + if ( $ex_oldrow eq $param{'row'} ) { + return ''; + } else { + $ex_oldrow = $param{'row'}; + } + my $taxnum = $param{'row'}->taxnum; my $url = "${p}edit/cust_main_county-expand.cgi?$taxnum"; @@ -102,6 +105,38 @@ sub expand_link { ''; } +sub collapse_link { + my %param = @_; + + my $row = $param{'row'}; + my $col = $param{'col'}; + return '' + if $col eq 'county' and $row->city + || qsearch({ + 'table' => 'cust_main_county', + 'hashref' => { + 'country' => $row->country, + 'state' => $row->state, + 'city' => { op=>'!=', value=>'' }, + }, + 'order_by' => 'LIMIT 1', + }); + + my %above = ( 'city' => 'county', + 'county' => 'state', + ); + + #XXX can still show the link when you have some counties broken down into + #cities and others not :/ + + my $taxnum = $param{'row'}->taxnum; + my $url = "${p}edit/process/cust_main_county-collapse.cgi?$taxnum"; + $url = "javascript:collapse_areyousure('$url', '$col', '$above{$col}')"; + + qq($param{'label'}); +} + + sub separate_taxclasses_link { my( $row ) = @_; my $taxnum = $row->taxnum; @@ -110,6 +145,8 @@ sub separate_taxclasses_link { qq!!; } +#un-separate taxclasses too + <%init> @@ -122,9 +159,19 @@ my $enable_taxclasses = $conf->exists('enable_taxclasses'); my @menubar; -my $html_init = - "Click on add states to specify a country's tax rates by state or province. -
Click on add counties to specify a state's tax rates by county."; +my $html_init = < + function collapse_areyousure(href,col,above) { + if (confirm('Are you sure you want to remove all ' + col + ' tax rates for this ' + above + '?') == true) + window.location.href = href; + } + + + Click on add states to specify a country's tax rates by state or province. +
Click on add counties to specify a state's tax rates by county, or remove counties to remove per-county tax rates. +
Click on add cities to specify a county's tax rates by city, or remove cities to remove per-city tax rates. +END + $html_init .= "
Click on separate taxclasses to specify taxes per taxclass." if $enable_taxclasses; $html_init .= '

'; @@ -231,7 +278,7 @@ if ( scalar(@counties) > 1 ) { 'empty_data_label' => '(none)', 'empty_data_value' => '__NONE__', 'disable_empty' => 0, - 'disable_countyupdate' => 1, + 'disable_cityupdate' => 1, ); } else { $html_posttotal .= @@ -244,7 +291,7 @@ $html_posttotal .= ' )'; my $bulk_popup_link = include( '/elements/popup_link_onclick.html', - 'action' => "${p}edit/bulk-cust_main_county.html?MAGIC_taxnum_MAGIC", + 'action' => "${p}edit/bulk-cust_main_county.html?taxnum=MAGIC_taxnum_MAGIC", 'actionlabel' => 'Bulk add new tax', 'nofalse' => 1, 'height' => 420, @@ -277,7 +324,7 @@ my $html_foot = <unselect all
| toggle all

-Add new tax to selected +Add new tax to selected +| +Bulk edit selected END @@ -341,11 +391,11 @@ if ( $taxclass ) { $cell_style = ''; -my @header = ( 'Country', 'State/Province', 'County',); -my @header2 = ( '', '', '', ); -my @links = ( '', '', '', ); -my @link_onclicks = ( '', '', '', ); -my $align = 'lll'; +my @header = ( 'Country', 'State/Province', 'County', 'City' ); +my @header2 = ( '', '', '', '', ); +my @links = ( '', '', '', '', ); +my @link_onclicks = ( '', '', '', '', ); +my $align = 'llll'; my @fields = ( sub { my $country = shift->country; @@ -360,11 +410,29 @@ my @fields = ( ) ) }, - sub { $_[0]->county || '(all) '. - expand_link( desc => 'Add Counties', - row => $_[0], - label => 'add counties', - ) + sub { $_[0]->county + ? $_[0]->county. ' '. + collapse_link( col => 'county', + label=> 'remove counties', + row => $_[0], + ) + : '(all) '. + expand_link( desc => 'Add Counties', + row => $_[0], + label => 'add counties', + ); + }, + sub { $_[0]->city + ? $_[0]->city. ' '. + collapse_link( col => 'city', + label=> 'remove cities', + row => $_[0], + ) + : '(all) '. + expand_link( desc => 'Add Cities', + row => $_[0], + label => 'add cities', + ); }, ); @@ -372,6 +440,7 @@ my @color = ( '000000', sub { shift->state ? '000000' : '999999' }, sub { shift->county ? '000000' : '999999' }, + sub { shift->city ? '000000' : '999999' }, ); if ( $conf->exists('enable_taxclasses') ) { @@ -407,9 +476,10 @@ my $cb_sub = sub { my $cust_main_county = shift; if ( $cb_oldrow ) { - if ( $cb_oldrow->country ne $cust_main_county->country - || $cb_oldrow->state ne $cust_main_county->state + if ( $cb_oldrow->city ne $cust_main_county->city || $cb_oldrow->county ne $cust_main_county->county + || $cb_oldrow->state ne $cust_main_county->state + || $cb_oldrow->country ne $cust_main_county->country || $cb_oldrow->taxclass ne $cust_main_county->taxclass ) { $newregion = 1;