X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fcdr_termination.pm;h=37fa47e9878b13f46c235451dea6d4d978ca9f8c;hb=3b331dce1edea02e0b60cb2f763b1d5df9f58c36;hp=15103378e3559b6fe10e81caaf877c548a39b2f2;hpb=69678d308805f5ca4b171ea0c5ac1da957811aa0;p=freeside.git diff --git a/FS/FS/part_pkg/cdr_termination.pm b/FS/FS/part_pkg/cdr_termination.pm index 15103378e..37fa47e98 100644 --- a/FS/FS/part_pkg/cdr_termination.pm +++ b/FS/FS/part_pkg/cdr_termination.pm @@ -16,15 +16,8 @@ tie my %temporalities, 'Tie::IxHash', %info = ( 'name' => 'VoIP rating of CDR records for termination partners.', 'shortname' => 'VoIP/telco CDR termination', + 'inherit_fields' => [ 'prorate_Mixin', 'global_Mixin' ], 'fields' => { - - 'setup_fee' => { 'name' => 'Setup fee for this package', - 'default' => 0, - }, - 'recur_fee' => { 'name' => 'Base recurring fee for this package', - 'default' => 0, - }, - #'cdr_column' => { 'name' => 'Column from CDR records', # 'type' => 'select', # 'select_enum' => [qw( @@ -49,16 +42,10 @@ tie my %temporalities, 'Tie::IxHash', 'select_options' => \%temporalities, }, - 'unused_credit' => { 'name' => 'Credit the customer for the unused portion'. - ' of service at cancellation', - 'type' => 'checkbox', - }, - 'cutoff_day' => { 'name' => 'Billing Day (1 - 28) for prorating or '. 'subscription', 'default' => '1', }, - 'recur_method' => { 'name' => 'Recurring fee method', #'type' => 'radio', #'options' => \%recur_method, @@ -66,7 +53,7 @@ tie my %temporalities, 'Tie::IxHash', 'select_options' => \%FS::part_pkg::recur_Common::recur_method, }, - #false laziness w/cdr_termination.pm + #false laziness w/voip_cdr.pm 'output_format' => { 'name' => 'CDR invoice display format', 'type' => 'select', 'select_options' => { FS::cdr::invoice_formats() }, @@ -80,13 +67,17 @@ tie my %temporalities, 'Tie::IxHash', 'type' => 'checkbox', }, - }, + 'usage_mandate' => { 'name' => 'Always put usage details in separate section', + 'type' => 'checkbox', + }, + #eofalse - 'fieldorder' => [qw( - setup_fee recur_fee - cdr_column - recur_temporality unused_credit recur_method cutoff_day - output_format usage_section summarize_usage + }, + #cdr_column + 'fieldorder' => [qw( recur_temporality recur_method cutoff_day ), + FS::part_pkg::prorate_Mixin::fieldorder, + qw( + output_format usage_section summarize_usage usage_mandate ) ], @@ -94,11 +85,6 @@ tie my %temporalities, 'Tie::IxHash', ); -sub calc_setup { - my($self, $cust_pkg ) = @_; - $self->option('setup_fee'); -} - sub calc_recur { my $self = shift; my($cust_pkg, $sdate, $details, $param ) = @_; @@ -107,7 +93,7 @@ sub calc_recur { my $last_bill = $cust_pkg->get('last_bill'); #->last_bill falls back to setup return 0 - if $self->option('recur_temporality', 1) eq 'preceding' + if $self->recur_temporality eq 'preceding' && ( $last_bill eq '' || $last_bill == 0 ); # termination calculations @@ -165,7 +151,9 @@ sub calc_recur { #add a cdr_termination record and the charges - my $term_price = sprintf('%.2f', $cdr->rated_price * $term_percent / 100 ); + # XXX config? + #my $term_price = sprintf('%.2f', $cdr->rated_price * $term_percent / 100 ); + my $term_price = sprintf('%.4f', $cdr->rated_price * $term_percent / 100 ); my $cdr_termination = new FS::cdr_termination { 'acctid' => $cdr->acctid,