consider "quick payment entry" payments manual for payment receipt purposes, RT#33681
[freeside.git] / FS / FS / cust_pay.pm
index 424fab0..90f491b 100644 (file)
@@ -396,6 +396,22 @@ sub insert {
     warn "can't send payment receipt/statement: $error" if $error;
   }
 
+  #run payment events immediately
+  my $due_cust_event = $self->cust_main->due_cust_event(
+    'eventtable'  => 'cust_pay',
+    'objects'     => [ $self ],
+  );
+  if ( !ref($due_cust_event) ) {
+    warn "Error searching for cust_pay billing events: $due_cust_event\n";
+  } else {
+    foreach my $cust_event (@$due_cust_event) {
+      next unless $cust_event->test_conditions;
+      if ( my $error = $cust_event->do_event() ) {
+        warn "Error running cust_pay billing event: $error\n";
+      }
+    }
+  }
+
   '';
 
 }
@@ -997,7 +1013,7 @@ sub batch_insert {
       }
 
     } elsif ( !$error ) { #normal case: apply payments as usual
-      $cust_pay->cust_main->apply_payments;
+      $cust_pay->cust_main->apply_payments( 'manual'=>1 );
     }
 
   }
@@ -1345,7 +1361,7 @@ sub process_batch_import {
       my $cust_pay = shift;
       my $cust_main = $cust_pay->cust_main
                         or return "can't find customer to which payments apply";
-      my $error = $cust_main->apply_payments_and_credits;
+      my $error = $cust_main->apply_payments_and_credits( 'manual'=>1 );
       return $error
                ? "can't apply payments to customer ".$cust_pay->custnum."$error"
                : '';