X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_event%2FAction%2Fpkg_referral_credit.pm;h=a85a3a17ba4001396ee32ed284f18924d1490db5;hb=8ea744edd71f90160d5268d4ab1cbcd3d6bfb806;hp=e7c92d6501aa3671175fa4735545b4cbc81991f3;hpb=624b2d44625f69d71175c3348cae635d580c890b;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 e7c92d650..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,19 +10,6 @@ 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', - }, - ); - -} - sub do_action { my( $self, $cust_pkg, $cust_event ) = @_; @@ -35,8 +23,9 @@ sub do_action { return 'Referring customer is cancelled' if $referring_cust_main->status eq 'cancelled'; - my $amount = $self->_calc_credit($cust_pkg); - return '' unless $amount > 0; + my $warning = ''; + my $amount = $self->_calc_credit($cust_pkg, $referring_cust_main, \$warning); + return $warning unless $amount > 0; my $reasonnum = $self->option('reasonnum'); @@ -53,10 +42,4 @@ sub do_action { } -sub _calc_credit { - my( $self, $cust_pkg ) = @_; - - $self->option('amount'); -} - 1;