X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fbase_rate.pm;h=7453f98d3ff5e296ff9dbb693138da78edf79a3f;hb=ff27c3f36240aee48ed50153dd5d8fe3ac3f2443;hp=67819779915594bf31043e48bfefe01067b05ecb;hpb=d3ce5efd1ec0e1a715a154696e2b0aa86e51c27b;p=freeside.git diff --git a/FS/FS/part_pkg/base_rate.pm b/FS/FS/part_pkg/base_rate.pm index 678197799..7453f98d3 100644 --- a/FS/FS/part_pkg/base_rate.pm +++ b/FS/FS/part_pkg/base_rate.pm @@ -1,83 +1,12 @@ package FS::part_pkg::base_rate; use strict; -use vars qw(@ISA %info); -#use FS::Record qw(qsearch); -use FS::part_pkg; +use vars qw( %info ); -@ISA = qw(FS::part_pkg); +#disabled stub, otherwise, the old files stick around and show up as price plans -%info = ( - 'name' => 'Base rate (anniversary billing, Times units ordered)', - # XXX it multiplies recurring fee by cust_pkg option "units", how to - # express that - 'shortname' => 'Bulk (manual from "units" option)', - 'inherit_fields' => [ 'global_Mixin' ], - 'fields' => { - 'externalid' => { 'name' => 'Optional External ID', - 'default' => '', - }, - }, - 'fieldorder' => [ qw( externalid ) ], - 'weight' => 52, +%info = ( + 'disabled' => 1, ); -sub calc_setup { - my($self, $cust_pkg, $sdate, $details ) = @_; - - my $i = 0; - my $count = $self->option( 'additional_count', 'quiet' ) || 0; - while ($i < $count) { - push @$details, $self->option( 'additional_info' . $i++ ); - } - - $self->option('setup_fee'); -} - -sub calc_recur { - my($self, $cust_pkg) = @_; - $self->base_recur($cust_pkg); -} - -sub base_recur { - my($self, $cust_pkg) = @_; - my $units = $cust_pkg->option('units') ? $cust_pkg->option('units') : 1 ; - # default to 1 if not found - sprintf("%.2f", - ($self->option('recur_fee') * $units ) - ); -} - -sub calc_remain { - my ($self, $cust_pkg, %options) = @_; - my $time = $options{'time'} || time; - my $next_bill = $cust_pkg->getfield('bill') || 0; - return 0 if ! $self->base_recur($cust_pkg) - || ! $next_bill - || $next_bill < $time; - - my %sec = ( - 'h' => 3600, # 60 * 60 - 'd' => 86400, # 60 * 60 * 24 - 'w' => 604800, # 60 * 60 * 24 * 7 - 'm' => 2629744, # 60 * 60 * 24 * 365.2422 / 12 - ); - - $self->freq =~ /^(\d+)([hdwm]?)$/ - or die 'unparsable frequency: '. $self->freq; - my $freq_sec = $1 * $sec{$2||'m'}; - return 0 unless $freq_sec; - - sprintf("%.2f", $self->base_recur($cust_pkg) * ( $next_bill - $time ) / $freq_sec ); - -} - -sub is_free_options { - qw( setup_fee recur_fee ); -} - -sub is_prepaid { - 0; #no, we're postpaid -} - 1;