employee commission reporting, RT#6991
[freeside.git] / FS / FS / part_event / Action / pkg_referral_credit.pm
index 98d9820..e7c92d6 100644 (file)
@@ -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');