diff options
author | jeff <jeff> | 2008-04-06 16:12:46 +0000 |
---|---|---|
committer | jeff <jeff> | 2008-04-06 16:12:46 +0000 |
commit | 6626dc2a13c809092aa539c5a72bc72a0c56afdc (patch) | |
tree | e92d2d1ea157b941f090a6f27cfbeb2db8dd12a3 /httemplate/edit | |
parent | ebfc3f058e29e09631112ee355a2c57dce56914f (diff) |
new tax rating engine
Diffstat (limited to 'httemplate/edit')
-rw-r--r-- | httemplate/edit/elements/edit.html | 8 | ||||
-rwxr-xr-x | httemplate/edit/part_pkg.cgi | 15 | ||||
-rw-r--r-- | httemplate/edit/process/elements/process.html | 6 | ||||
-rw-r--r-- | httemplate/edit/process/tax_rate.html | 9 | ||||
-rw-r--r-- | httemplate/edit/tax_rate.html | 28 |
5 files changed, 46 insertions, 20 deletions
diff --git a/httemplate/edit/elements/edit.html b/httemplate/edit/elements/edit.html index ad52f7a4c..c80586a4c 100644 --- a/httemplate/edit/elements/edit.html +++ b/httemplate/edit/elements/edit.html @@ -97,6 +97,9 @@ Example: #run when adding 'new_callback' => sub { my( $cgi, $object, $fields_listref ) = @_; }, + #run before display to return a different value + 'value_callback' => sub { my( $columname, $value } ) = @_; }, + #XXX describe 'field_callback' => sub { }, @@ -273,7 +276,10 @@ Example: % #$field .= $fieldnum; % $onchange .= "\nspawn_$field(what);"; % } else { -% $curr_value = $object->$field(); +% $curr_value = +% ($opt{'value_callback'} && $mode ne 'error') +% ? &{ $opt{'value_callback'} }( $f->{'field'}, $object->$field() ) +% : $object->$field(); % } % % my @include = &{ $include_sub }( diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index 2e7c732e6..c00af197e 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -94,7 +94,7 @@ Tax information <TD align="right">Tax product</TD> <TD> <INPUT name="part_pkg_taxproduct_taxproductnum" id="taxproductnum" type="hidden" value="<% $hashref->{'taxproductnum'}%>"> - <INPUT name="part_pkg_taxproduct_description" id="taxproduct_description" type="text" value="<% $taxproduct_description %>" size="12" onclick="overlib( OLiframeContent('part_pkg_taxproduct.html?'+document.getElementById('taxproductnum').value, 1000, 400, 'tax_product_popup'), CAPTION, 'Select product', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK); return false;"> + <INPUT name="part_pkg_taxproduct_description" id="taxproductnum_description" type="text" value="<% $taxproduct_description %>" size="12" onclick="overlib( OLiframeContent('<% $p %>/browse/part_pkg_taxproduct.cgi?_type=select&id=taxproductnum&taxproductnum='+document.getElementById('taxproductnum').value, 1000, 400, 'tax_product_popup'), CAPTION, 'Select product', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, DRAGGABLE, CLOSECLICK); return false;"> </TD> </TR> <TR> @@ -111,6 +111,7 @@ Tax information % } else { <INPUT TYPE="hidden" NAME="taxproductnum" VALUE="<% $hashref->{taxproductnum} %>"> + <INPUT TYPE="hidden" NAME="tax_override" VALUE="<% $tax_override %>"> % } @@ -466,10 +467,16 @@ if ( $cgi->param('clone') ) { } elsif ( $query && $query =~ /^(\d+)$/ ) { (@agent_type) = map {$_->typenum} qsearch('type_pkgs',{'pkgpart'=>$1}) unless $part_pkg; - $tax_override = + unless ($part_pkg) { + $tax_override = join (",", map {$_->taxclassnum} - qsearch('part_pkg_taxoverride',{'pkgpart'=>$1})) - unless $part_pkg; + qsearch( 'part_pkg_taxoverride', {'pkgpart' => $1} ) + ); +# join (",", map {$_->taxclassnum} +# $part_pkg->part_pkg_taxrate( 'cch', $conf->config('defaultloc') +# ); +# unless $tax_override; + } $part_pkg ||= qsearchs('part_pkg',{'pkgpart'=>$1}); $pkgpart = $part_pkg->pkgpart; } else { diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html index a671ca118..d29ffcfe5 100644 --- a/httemplate/edit/process/elements/process.html +++ b/httemplate/edit/process/elements/process.html @@ -145,7 +145,11 @@ if ( $pkeyvalue ) { }); } -my %hash = map { $_ => scalar($cgi->param($_)) } @$fields; +my %hash = + map { my @entry = ( $_ => $cgi->param($_) ); + $opt{'value_callback'} ? ( $_ => &{ $opt{'value_callback'} }( @entry )) + : ( @entry ) + } @$fields; my $new = $class->new( \%hash ); diff --git a/httemplate/edit/process/tax_rate.html b/httemplate/edit/process/tax_rate.html index 933bf07d6..431e54264 100644 --- a/httemplate/edit/process/tax_rate.html +++ b/httemplate/edit/process/tax_rate.html @@ -1,9 +1,18 @@ <% include( 'elements/process.html', 'table' => 'tax_rate', + 'value_callback' => $value_callback, 'popup_reload' => 'Tax changed', #a popup "parent reload" for now #someday change the individual element and go away instead ) %> +<%once> + +my $value_callback = sub { my ($field, $value) = @_; + ($field =~ /^(tax|excessrate|usetax|useexcessrate)$/) + ? $value/100 + : $value + }; +</%once> <%init> my $conf = new FS::Conf; diff --git a/httemplate/edit/tax_rate.html b/httemplate/edit/tax_rate.html index e1d8d4f93..c48bdd1df 100644 --- a/httemplate/edit/tax_rate.html +++ b/httemplate/edit/tax_rate.html @@ -1,14 +1,21 @@ <% include('elements/edit.html', - 'popup' => 1, - 'name' => 'Tax rate', #Edit tax rate - 'table' => 'tax_rate', - 'labels' => $labels, - 'fields' => \@fields, + 'popup' => 1, + 'name' => 'Tax rate', #Edit tax rate + 'table' => 'tax_rate', + 'labels' => $labels, + 'fields' => \@fields, + 'value_callback' => $value_callback, ) %> <%once> my $conf = new FS::Conf; +my $value_callback = + sub { my ( $field, $value ) = @_; + ( $field =~ /^(tax|excessrate|usetax|useexcessrate)$/ ) + ? $value*100 + : $value; + }; </%once> @@ -90,16 +97,9 @@ my @fields = ( { field=>'passtype', type=>'hidden' } , { field=>'passtype_name', type=>'fixed' } , { field=>'passflag', type=>'fixed' } , - { field=>'setuptax', type=>'checkbox' } , - { field=>'recurtax', type=>'checkbox' } , + { field=>'setuptax', type=>'checkbox', value=>'Y' } , + { field=>'recurtax', type=>'checkbox', value=>'Y' } , { field=>'manual', type=>'hidden', value=>'Y' } , ); -#push @fields, -# { type=>'tablebreak-tr-title', value=>'Exemptions' }, -# { field=>'setuptax', type=>'checkbox', value=>'Y', }, -# { field=>'recurtax', type=>'checkbox', value=>'Y', }, -# { field=>'exempt_amount', type=>'money', }, -#; - </%init> |