diff options
-rw-r--r-- | FS/FS/part_event/Action/cust_bill_fee_percent.pm | 19 | ||||
-rw-r--r-- | FS/FS/part_event/Action/fee.pm | 12 | ||||
-rw-r--r-- | httemplate/elements/select-taxclass.html | 4 | ||||
-rw-r--r-- | httemplate/elements/tr-select-taxclass.html | 6 |
4 files changed, 29 insertions, 12 deletions
diff --git a/FS/FS/part_event/Action/cust_bill_fee_percent.pm b/FS/FS/part_event/Action/cust_bill_fee_percent.pm index 570fd6316..c6f37265a 100644 --- a/FS/FS/part_event/Action/cust_bill_fee_percent.pm +++ b/FS/FS/part_event/Action/cust_bill_fee_percent.pm @@ -11,8 +11,9 @@ sub eventtable_hashref { 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 $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; ''; diff --git a/FS/FS/part_event/Action/fee.pm b/FS/FS/part_event/Action/fee.pm index 3cf50fbca..7d07df5c7 100644 --- a/FS/FS/part_event/Action/fee.pm +++ b/FS/FS/part_event/Action/fee.pm @@ -7,8 +7,9 @@ sub description { 'Late fee (flat)'; } 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 $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; diff --git a/httemplate/elements/select-taxclass.html b/httemplate/elements/select-taxclass.html index fb09cfdb9..6845d2360 100644 --- a/httemplate/elements/select-taxclass.html +++ b/httemplate/elements/select-taxclass.html @@ -1,6 +1,6 @@ % 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 @@ -16,7 +16,7 @@ % } else { - <INPUT TYPE="hidden" NAME="taxclass" VALUE="<% $selected_taxclass %>"> + <INPUT TYPE="hidden" NAME="<% $opt{'element_name'} || $opt{'field'} || 'taxclass' %>" VALUE="<% $selected_taxclass %>"> % } diff --git a/httemplate/elements/tr-select-taxclass.html b/httemplate/elements/tr-select-taxclass.html index 95cabf7f7..97f3cad0b 100644 --- a/httemplate/elements/tr-select-taxclass.html +++ b/httemplate/elements/tr-select-taxclass.html @@ -9,7 +9,11 @@ <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> |