X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_event%2FAction%2Fpkg_referral_credit.pm;h=a85a3a17ba4001396ee32ed284f18924d1490db5;hb=39fe6499bd38e6e7c468f549b1d4919a7cf2c44d;hp=98d982066020e42af75a83b637035d50bd4cd342;hpb=58f99accce35aa76abe9ff852f6c6ee84e8ce712;p=freeside.git diff --git a/FS/FS/part_event/Action/pkg_referral_credit.pm b/FS/FS/part_event/Action/pkg_referral_credit.pm index 98d982066..a85a3a17b 100644 --- a/FS/FS/part_event/Action/pkg_referral_credit.pm +++ b/FS/FS/part_event/Action/pkg_referral_credit.pm @@ -1,7 +1,8 @@ package FS::part_event::Action::pkg_referral_credit; use strict; -use base qw( FS::part_event::Action ); +use base qw( FS::part_event::Action::Mixin::credit_flat + FS::part_event::Action ); sub description { 'Credit the referring customer a specific amount'; } @@ -9,22 +10,8 @@ sub eventtable_hashref { { 'cust_pkg' => 1 }; } -sub option_fields { - ( - 'reasonnum' => { 'label' => 'Credit reason', - 'type' => 'select-reason', - 'reason_class' => 'R', - }, - 'amount' => { 'label' => 'Credit amount', - 'type' => 'money', - }, - ); - -} - -#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 +23,18 @@ sub do_action { return 'Referring customer is cancelled' if $referring_cust_main->status eq 'cancelled'; - my $amount = $self->_calc_referral_credit($cust_pkg); + my $warning = ''; + my $amount = $self->_calc_credit($cust_pkg, $referring_cust_main, \$warning); + return $warning 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,10 +42,4 @@ sub do_action { } -sub _calc_referral_credit { - my( $self, $cust_pkg ) = @_; - - $self->option('amount'); -} - 1;