run_bill_events option for order_pkg, RT#42053
[freeside.git] / FS / FS / ClientAPI / MyAccount.pm
index 62bd9e8..8b04436 100644 (file)
@@ -2410,7 +2410,7 @@ sub order_pkg {
   my $conf = new FS::Conf;
   if ( $conf->exists('signup_server-realtime') ) {
 
-    my $bill_error = _do_bop_realtime( $cust_main, $status );
+    my $bill_error = _do_bop_realtime( $cust_main, $status, 'collect'=>$p->{run_bill_events} );
 
     if ($bill_error) {
       $cust_pkg->cancel('quiet'=>1);
@@ -2565,6 +2565,12 @@ sub _do_bop_realtime {
     return { 'error' => '_decline', 'bill_error' => $bill_error };
   }
 
+  if ( $opt{'collect'} ) {
+    my $collect_error = $cust_main->collect();
+    return { 'error' => '_decline', 'bill_error' => $collect_error }
+     if $collect_error; #?
+  }
+
   '';
 }
 
@@ -2671,19 +2677,18 @@ sub cancel_pkg {
     or return { 'error' => "Can't resume session" }; #better error message
 
   my $custnum = $session->{'custnum'};
-
   my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
     or return { 'error' => "unknown custnum $custnum" };
 
   my $pkgnum = $p->{'pkgnum'};
-
   my $cust_pkg = qsearchs('cust_pkg', { 'custnum' => $custnum,
                                         'pkgnum'  => $pkgnum,   } )
     or return { 'error' => "unknown pkgnum $pkgnum" };
 
-  my $error = $cust_pkg->cancel('quiet' => 1);
+  my $error = $cust_pkg->cancel( 'quiet' => 1,
+                                 'date'  => $p->{'date'},
+                               );
   return { 'error' => $error };
-
 }
 
 sub provision_phone {
@@ -3606,11 +3611,6 @@ sub adjust_ticket_priority {
   my($context, $session, $custnum) = _custoragent_session_custnum($p);
   return { 'error' => $session } if $context eq 'error';
 
-  # temporary instrumentation for RT#39536
-    local $DEBUG = 1;
-    local $FS::TicketSystem::RT_Internal::DEBUG = 1;
-    warn "[adjust_ticket_priority]\n" . Dumper($p->{'values'}) . "\n\n";
-
 #  warn "$me adjust_ticket_priority: initializing ticket system\n" if $DEBUG;
 #  FS::TicketSystem->init;
   my $ss_priority = FS::TicketSystem->selfservice_priority;