}
sub calc_recur {
- my $self = shift;
- my($cust_pkg) = @_;
+ my($self, $cust_pkg, $sdate, $details, $param ) = @_;
#my $last_bill = $cust_pkg->last_bill;
my $last_bill = $cust_pkg->get('last_bill'); #->last_bill falls back to setup
return 0
if $self->option('recur_temporality', 1) eq 'preceding' && $last_bill == 0;
- my $br = $self->base_recur(@_);
+ my $br = $self->base_recur($cust_pkg);
- my $discount = $self->calc_discount(@_);
+ my $discount = $self->calc_discount($cust_pkg, $sdate, $details, $param);
sprintf('%.2f', $br - $discount);
}
sub calc_discount {
- my $self = shift;
- my($cust_pkg, $sdate, $details, $param ) = @_;
+ my($self, $cust_pkg, $sdate, $details, $param ) = @_;
- my $br = $self->base_recur(@_);
+ my $br = $self->base_recur($cust_pkg);
my $tot_discount = 0;
#UI enforces just 1 for now, will need ordering when they can be stacked
- foreach my $cust_pkg_discount ( $cust_pkg->cust_pkg_discount_active ) {
+ my @cust_pkg_discount = $cust_pkg->cust_pkg_discount_active;
+ foreach my $cust_pkg_discount ( @cust_pkg_discount ) {
my $discount = $cust_pkg_discount->discount;
#UI enforces one or the other (for now? probably for good)
my $amount = 0;
my $months = $discount->months
? min( $chg_months,
- $discount->months - $cust_pkg->months_used )
+ $discount->months - $cust_pkg_discount->months_used )
: $chg_months;
my $error = $cust_pkg_discount->increment_months_used($months);