add tax class selection back for late charges w/1.9 events, RT#5665
authorivan <ivan>
Wed, 1 Jul 2009 05:34:43 +0000 (05:34 +0000)
committerivan <ivan>
Wed, 1 Jul 2009 05:34:43 +0000 (05:34 +0000)
FS/FS/part_event/Action/cust_bill_fee_percent.pm
FS/FS/part_event/Action/fee.pm
httemplate/elements/select-taxclass.html
httemplate/elements/tr-select-taxclass.html

index 570fd63..c6f3726 100644 (file)
@@ -11,8 +11,9 @@ sub eventtable_hashref {
 
 sub option_fields {
   ( 
 
 sub option_fields {
   ( 
-    'percent' => { label=>'Percent', size=>2, },
-    'reason'  => 'Reason',
+    'percent'  => { label=>'Percent', size=>2, },
+    'reason'   => 'Reason',
+    'taxclass' => { label=>'Tax class', type=>'select-taxclass', },
   );
 }
 
   );
 }
 
@@ -24,10 +25,16 @@ sub do_action {
   #my $cust_main = $self->cust_main($cust_bill);
   my $cust_main = $cust_bill->cust_main;
 
   #my $cust_main = $self->cust_main($cust_bill);
   my $cust_main = $cust_bill->cust_main;
 
-  my $error = $cust_main->charge(
-    sprintf('%.2f', $cust_bill->owed * $self->option('percent') / 100 ),
-    $self->option('reason')
-  );
+  my $amount =
+    sprintf('%.2f', $cust_bill->owed * $self->option('percent') / 100 );
+
+  my $error = $cust_main->charge( {
+    'amount'     => $amount,
+    'pkg'        => $self->option('reason'),
+    'taxclass'   => $self->option('taxclass'),
+    #'start_date' => $cust_main->next_bill_date, #unless its more than N months away?
+  } );
+
   die $error if $error;
 
   '';
   die $error if $error;
 
   '';
index 3cf50fb..7d07df5 100644 (file)
@@ -7,8 +7,9 @@ sub description { 'Late fee (flat)'; }
 
 sub option_fields {
   ( 
 
 sub option_fields {
   ( 
-    'charge' => { label=>'Amount', type=>'money', }, # size=>7, },
-    'reason' => 'Reason',
+    'charge'   => { label=>'Amount', type=>'money', }, # size=>7, },
+    'reason'   => 'Reason',
+    'taxclass' => { label=>'Tax class', type=>'select-taxclass', },
   );
 }
 
   );
 }
 
@@ -19,7 +20,12 @@ sub do_action {
 
   my $cust_main = $self->cust_main($cust_object);
 
 
   my $cust_main = $self->cust_main($cust_object);
 
-  my $error = $cust_main->charge( $self->option('charge'), $self->option('reason') );
+  my $error = $cust_main->charge( {
+    'amount'   => $self->option('charge'),
+    'pkg'      => $self->option('reason'),
+    'taxclass' => $self->option('taxclass')
+    #'start_date' => $cust_main->next_bill_date, #unless its more than N months away?
+  } );
 
   die $error if $error;
 
 
   die $error if $error;
 
index fb09cfd..6845d23 100644 (file)
@@ -1,6 +1,6 @@
 % if ( $conf->exists('enable_taxclasses') ) { 
 
 % if ( $conf->exists('enable_taxclasses') ) { 
 
-    <SELECT NAME="<% $opt{'name'} || 'taxclass' %>">
+    <SELECT NAME="<% $opt{'element_name'} || $opt{'field'} || 'taxclass' %>">
 
 %   if ( $conf->exists('require_taxclasses') ) { 
         <OPTION VALUE="(select)">Select tax class
 
 %   if ( $conf->exists('require_taxclasses') ) { 
         <OPTION VALUE="(select)">Select tax class
@@ -16,7 +16,7 @@
 
 % } else { 
 
 
 % } else { 
 
-  <INPUT TYPE="hidden" NAME="taxclass" VALUE="<% $selected_taxclass %>">
+  <INPUT TYPE="hidden" NAME="<% $opt{'element_name'} || $opt{'field'} || 'taxclass' %>" VALUE="<% $selected_taxclass %>">
 
 % } 
 
 
 % } 
 
index 95cabf7..97f3cad 100644 (file)
@@ -9,7 +9,11 @@
   <TR>
     <TD ALIGN="right"><% $opt{'label'} || 'Tax class: ' %></TD>
     <TD>
   <TR>
     <TD ALIGN="right"><% $opt{'label'} || 'Tax class: ' %></TD>
     <TD>
-      <% include( '/elements/select-taxclass.html', 'curr_value' => $selected_taxclass, %opt ) %>
+      <% include( '/elements/select-taxclass.html',
+                    'curr_value' => $selected_taxclass,
+                    %opt
+                )
+      %>
     </TD>
   </TR>
 
     </TD>
   </TR>