clarify interface difference between calc_setup and calc_recur: calc_setup takes...
[freeside.git] / FS / FS / part_pkg / currency_fixed.pm
index ce71452..d4c1487 100644 (file)
@@ -33,30 +33,31 @@ 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;
 }
 
 sub base_setup {
-  my($self, $cust_pkg, $sdate, $details, $param ) = @_;
+  my($self, $cust_pkg, $time, $details, $param ) = @_;
 
-  $self->calc_currency_option('setup_fee', $cust_pkg, $sdate, $details, $param);
+  $self->calc_currency_option('setup_fee', $cust_pkg, $time, $details, $param);
 }
 
 sub calc_setup {
-  my($self, $cust_pkg, $sdate, $details, $param) = @_;
+  my($self, $cust_pkg, $time, $details, $param) = @_;
 
-  return 0 if $self->prorate_setup($cust_pkg, $sdate);
+  return 0 if $self->prorate_setup($cust_pkg, $time);
 
-  $self->base_setup($cust_pkg, $sdate, $details, $param);
+  $self->base_setup($cust_pkg, $time, $details, $param);
 }
 
 use FS::Conf;
 sub calc_currency_option {
-  my($self, $optionname, $cust_pkg, $sdate, $details, $param) = @_;
+  my($self, $optionname, $cust_or_quotation_pkg, $time, $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;