X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fcurrency_fixed.pm;h=41d7a657ed730a6f36fcb4a1620055bc65044a37;hp=ce7145278bddcab077a549498d0af115d18d0ec6;hb=0692ff47a2eac65616bf24104a51e558506f1b8f;hpb=b7a2175dd9b386441f4ab66869d73083e5e8beb1 diff --git a/FS/FS/part_pkg/currency_fixed.pm b/FS/FS/part_pkg/currency_fixed.pm index ce7145278..41d7a657e 100644 --- a/FS/FS/part_pkg/currency_fixed.pm +++ b/FS/FS/part_pkg/currency_fixed.pm @@ -33,7 +33,7 @@ use FS::currency_exchange; sub price_info { my $self = shift; - my $str = $self->SUPER::price_info; + my $str = $self->SUPER::price_info(@_); $str .= " (or local currency pricing)" if $str; $str; } @@ -54,9 +54,10 @@ sub calc_setup { use FS::Conf; sub calc_currency_option { - my($self, $optionname, $cust_pkg, $sdate, $details, $param) = @_; + my($self, $optionname, $cust_or_quotation_pkg, $sdate, $details, $param) = @_; - my($currency, $amount) = $cust_pkg->part_pkg_currency_option($optionname); + my($currency, $amount) = + $cust_or_quotation_pkg->part_pkg_currency_option($optionname); return sprintf('%.2f', $amount ) unless $currency; $param->{'billed_currency'} = $currency; @@ -73,21 +74,27 @@ sub calc_currency_option { } sub base_recur { - my( $self, $cust_pkg, $sdate, $details, $param ) = @_; - $param ||= {}; - $self->calc_currency_option('recur_fee', $cust_pkg, $sdate, $details, $param); + my( $self, $cust_or_quotation_pkg, $sdate, $details, $param ) = @_; + $self->calc_currency_option( + 'recur_fee', $cust_or_quotation_pkg, $sdate, $details, $param || {} + ); } sub can_discount { 0; } #can't discount yet (percentage would work, but amount?) sub calc_recur { my $self = shift; + #my($cust_pkg, $sdate, $details, $param ) = @_; - #$self->calc_recur_Common($cust_pkg,$sdate,$details,$param); - $self->calc_recur_Common(@_); + my $cust_pkg = $_[0]; + + ($cust_pkg->quantity || 1) * $self->calc_recur_Common(@_); #($cust_pkg,$sdate,$details,$param); + } sub is_free { 0; } sub can_currency_exchange { 1; } +sub can_usageprice { 0; } + 1;