fix order_pkg-no_start_date option, RT#25650, fallout from RT#24955, fallout from...
[freeside.git] / FS / FS / cust_main / Packages.pm
index 5145753..9fdf22e 100644 (file)
@@ -57,7 +57,7 @@ action completes (such as running the customer's credit card successfully).
 
 Optional subject for a ticket created and attached to this customer
 
-=item ticket_subject
+=item ticket_queue
 
 Optional queue name for ticket additions
 
@@ -333,8 +333,9 @@ sub sort_packages {
     return 0  if !$a_num_cust_svc && !$b_num_cust_svc;
     return -1 if  $a_num_cust_svc && !$b_num_cust_svc;
     return 1  if !$a_num_cust_svc &&  $b_num_cust_svc;
-    my @a_cust_svc = $a->cust_svc;
-    my @b_cust_svc = $b->cust_svc;
+    return 0 if $a_num_cust_svc + $b_num_cust_svc > 20; #for perf, just give up
+    my @a_cust_svc = $a->cust_svc_unsorted;
+    my @b_cust_svc = $b->cust_svc_unsorted;
     return 0  if !scalar(@a_cust_svc) && !scalar(@b_cust_svc);
     return -1 if  scalar(@a_cust_svc) && !scalar(@b_cust_svc);
     return 1  if !scalar(@a_cust_svc) &&  scalar(@b_cust_svc);
@@ -408,7 +409,11 @@ sub billing_pkgs {
   my $self = shift;
   grep { my $part_pkg = $_->part_pkg;
          $part_pkg->freq ne '' && $part_pkg->freq ne '0'
-           && ( ! $_->susp || $part_pkg->option('suspend_bill', 1) );
+           && ( ! $_->susp || $_->option('suspend_bill',1)
+                           || ( $part_pkg->option('suspend_bill', 1)
+                                  && ! $_->option('no_suspend_bill',1)
+                              )
+              );
        }
        $self->ncancelled_pkgs;
 }