X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_event%2FAction%2Fpkg_agent_credit.pm;h=35cf07ea22fb5d899eebfe413bdc5e4a40dc7b74;hb=ffc8927ad1df5a565256bdb47210006afa4b2f78;hp=250273846390775ea966243cb9482145d8f52d98;hpb=548bde0209edab634e5b2ea919e4a2096607d2d0;p=freeside.git diff --git a/FS/FS/part_event/Action/pkg_agent_credit.pm b/FS/FS/part_event/Action/pkg_agent_credit.pm index 250273846..35cf07ea2 100644 --- a/FS/FS/part_event/Action/pkg_agent_credit.pm +++ b/FS/FS/part_event/Action/pkg_agent_credit.pm @@ -1,13 +1,14 @@ package FS::part_event::Action::pkg_agent_credit; use strict; -use base qw( FS::part_event::Action::pkg_referral_credit ); +use base qw( FS::part_event::Action::Mixin::credit_flat + FS::part_event::Action ); sub description { 'Credit the agent a specific amount'; } #a little false laziness w/pkg_referral_credit sub do_action { - my( $self, $cust_pkg ) = @_; + my( $self, $cust_pkg, $cust_event ) = @_; my $cust_main = $self->cust_main($cust_pkg); @@ -18,16 +19,20 @@ sub do_action { my $agent_cust_main = $agent->agent_cust_main; #? or return "No customer record for agent ". $agent->agent; - my $amount = $self->_calc_credit($cust_pkg); - return '' unless $amount > 0; + my $warning = ''; + my $amount = $self->_calc_credit($cust_pkg, $agent, \$warning); + return $warning unless $amount > 0; my $reasonnum = $self->option('reasonnum'); my $error = $agent_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, + 'commission_agentnum' => $agent->agentnum, + 'commission_pkgnum' => $cust_pkg->pkgnum, ); die "Error crediting customer ". $agent_cust_main->custnum. " for agent commission: $error"