RT #31482 you can now change the tax class when modifying a one-time charge.
authorAlex Brelsfoard <alex@freeside.biz>
Tue, 10 Feb 2015 05:33:22 +0000 (00:33 -0500)
committerAlex Brelsfoard <alex@freeside.biz>
Tue, 10 Feb 2015 05:33:22 +0000 (00:33 -0500)
FS/FS/cust_pkg.pm
httemplate/edit/process/quick-charge.cgi
httemplate/edit/quick-charge.html

index 48cc187..b0cc2a3 100644 (file)
@@ -2486,6 +2486,12 @@ sub modify_charge {
 
   } # else simply ignore them; the UI shouldn't allow editing the fields
 
+  if ( exists($opt{'taxclass'}) 
+          and $part_pkg->taxclass ne $opt{'taxclass'}) {
+        
+      $part_pkg->set('taxclass', $opt{'taxclass'});
+  }
+
   my $error;
   if ( $part_pkg->modified or $pkg_opt_modified ) {
     # can we safely modify the package def?
index c130a55..aa6010e 100644 (file)
@@ -67,6 +67,18 @@ if ( $param->{'pkgnum'} =~ /^(\d+)$/ ) { #modifying an existing one-time charge
   my $start_date = $cgi->param('start_date')
                      ? parse_datetime($cgi->param('start_date'))
                      : time;
+   
+  $param->{'tax_override'} =~ /^\s*([,\d]*)\s*$/
+    or $error .= "Illegal tax override " . $param->{"tax_override"} . "  ";
+  my $override = $1;
+  if ( $param->{'taxclass'} eq '(select)' ) {
+    $error .= "Must select a tax class.  "
+      unless ($conf->exists('enable_taxproducts') &&
+               ( $override || $param->{taxproductnum} )
+             );
+    $cgi->param('taxclass', '');
+  }
 
   $error = $cust_pkg->modify_charge(
       'pkg'               => scalar($cgi->param('pkg')),
@@ -75,6 +87,10 @@ if ( $param->{'pkgnum'} =~ /^(\d+)$/ ) { #modifying an existing one-time charge
       'adjust_commission' => ($cgi->param('adjust_commission') ? 1 : 0),
       'amount'            => $amount,
       'setup_cost'        => $setup_cost,
+      'setuptax'          => scalar($cgi->param('setuptax')),
+      'taxclass'          => scalar($cgi->param('taxclass')),
+      'taxproductnum'     => scalar($cgi->param('taxproductnum')),
+      'tax_override'      => $override,
       'quantity'          => $quantity,
       'start_date'        => $start_date,
   );
index 05a375a..64ee97b 100644 (file)
@@ -171,6 +171,17 @@ function bill_now_changed (what) {
       &>
 %   }
 
+%              unless ($billed) {
+<TR>
+  <TD ALIGN="right"><% mt('Tax exempt') |h %> </TD>
+  <TD><INPUT TYPE="checkbox" NAME="setuptax" VALUE="Y" <% $cgi->param('setuptax') ? 'CHECKED' : '' %>></TD>
+</TR>
+
+<& /elements/tr-select-taxclass.html, 'curr_value' => $part_pkg->get('taxclass')  &>
+
+<& /elements/tr-select-taxproduct.html, 'label' => emt('Tax product'), 'onclick' => 'parent.taxproductmagic(this);', 'curr_value' => $part_pkg->get('taxproductnum')  &>
+%              }
+
 % } else { # new one-time charge
 
     <TR>