diff options
Diffstat (limited to 'FS/FS/part_event/Action/pkg_referral_credit.pm')
-rw-r--r-- | FS/FS/part_event/Action/pkg_referral_credit.pm | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/FS/FS/part_event/Action/pkg_referral_credit.pm b/FS/FS/part_event/Action/pkg_referral_credit.pm index 98d9820..e7c92d6 100644 --- a/FS/FS/part_event/Action/pkg_referral_credit.pm +++ b/FS/FS/part_event/Action/pkg_referral_credit.pm @@ -22,9 +22,8 @@ sub option_fields { } -#a little false laziness w/pkg_referral_credit_pkg sub do_action { - my( $self, $cust_pkg ) = @_; + my( $self, $cust_pkg, $cust_event ) = @_; my $cust_main = $self->cust_main($cust_pkg); @@ -36,14 +35,17 @@ sub do_action { return 'Referring customer is cancelled' if $referring_cust_main->status eq 'cancelled'; - my $amount = $self->_calc_referral_credit($cust_pkg); + my $amount = $self->_calc_credit($cust_pkg); + return '' unless $amount > 0; + my $reasonnum = $self->option('reasonnum'); my $error = $referring_cust_main->credit( $amount, \$reasonnum, - 'addlinfo' => - 'for customer #'. $cust_main->display_custnum. ': '.$cust_main->name, + 'eventnum' => $cust_event->eventnum, + 'addlinfo' => 'for customer #'. $cust_main->display_custnum. + ': '.$cust_main->name, ); die "Error crediting customer ". $cust_main->referral_custnum. " for referral: $error" @@ -51,7 +53,7 @@ sub do_action { } -sub _calc_referral_credit { +sub _calc_credit { my( $self, $cust_pkg ) = @_; $self->option('amount'); |