'type' => 'select',
'select_options' => \%temporalities,
},
-
- %usage_fields,
- %usage_recharge_fields,
-
'unused_credit' => { 'name' => 'Credit the customer for the unused portion'.
' of service at cancellation',
'type' => 'checkbox',
},
+
+ #used in cust_pkg.pm so could add to any price plan
+ 'expire_months' => { 'name' => 'Auto-add an expiration date this number of months out',
+ },
+ #used in cust_pkg.pm so could add to any price plan where it made sense
+ 'start_1st' => { 'name' => 'Auto-add a start date to the 1st, ignoring the current month.',
+ 'type' => 'checkbox',
+ },
+
+ %usage_fields,
+ %usage_recharge_fields,
+
'externalid' => { 'name' => 'Optional External ID',
'default' => '',
},
},
- 'fieldorder' => [ qw( setup_fee recur_fee recur_temporality unused_credit ),
+ 'fieldorder' => [ qw( setup_fee recur_fee
+ recur_temporality unused_credit
+ expire_months start_1st
+ ),
@usage_fieldorder, @usage_recharge_fieldorder,
qw( externalid ),
],
}
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;