sort customer locations in package list, RT#41119, RT#39822
authorIvan Kohler <ivan@freeside.biz>
Sat, 19 Mar 2016 01:40:22 +0000 (18:40 -0700)
committerIvan Kohler <ivan@freeside.biz>
Sat, 19 Mar 2016 01:40:22 +0000 (18:40 -0700)
FS/FS/cust_main.pm
FS/FS/prospect_main.pm
httemplate/elements/tr-select-cust_location.html

index be02f9c..5f77ab5 100644 (file)
@@ -1951,8 +1951,13 @@ Returns all locations (see L<FS::cust_location>) for this customer.
 
 sub cust_location {
   my $self = shift;
-  qsearch('cust_location', { 'custnum'     => $self->custnum,
-                             'prospectnum' => '' } );
+  qsearch({
+    'table'   => 'cust_location',
+    'hashref' => { 'custnum'     => $self->custnum,
+                   'prospectnum' => '',
+                 },
+    'order_by' => 'ORDER BY country, LOWER(state), LOWER(city), LOWER(county), LOWER(address1), LOWER(address2)',
+  });
 }
 
 =item cust_contact
@@ -3364,9 +3369,12 @@ Returns all the credits (see L<FS::cust_credit>) for this customer.
 
 sub cust_credit {
   my $self = shift;
-  map { $_ } #return $self->num_cust_credit unless wantarray;
-  sort { $a->_date <=> $b->_date }
-    qsearch( 'cust_credit', { 'custnum' => $self->custnum } )
+
+  #return $self->num_cust_credit unless wantarray;
+
+  map { $_ } #behavior of sort undefined in scalar context
+    sort { $a->_date <=> $b->_date }
+      qsearch( 'cust_credit', { 'custnum' => $self->custnum } )
 }
 
 =item cust_credit_pkgnum
index 79efa86..f600b23 100644 (file)
@@ -288,8 +288,13 @@ Returns the locations (see L<FS::cust_location>) associated with this prospect.
 
 sub cust_location {
   my $self = shift;
-  qsearch( 'cust_location', { 'prospectnum' => $self->prospectnum,
-                              'custnum'     => '' } );
+  qsearch({
+    'table'   => 'cust_location',
+    'hashref' => { 'prospectnum' => $self->prospectnum,
+                   'custnum'     => '',
+                 },
+    'order_by' => 'ORDER BY country, LOWER(state), LOWER(city), LOWER(county), LOWER(address1), LOWER(address2)',
+  });
 }
 
 =item qual
index 3078f2c..47a917d 100644 (file)
@@ -271,7 +271,9 @@ my $location_sort = sub {
   #enabled w/label_prefix _location #    $a->locationname cmp $b->locationname
                                     # or 
         $a->country   cmp $b->country
+  or lc($a->state)    cmp lc($b->state)
   or lc($a->city)     cmp lc($b->city)
+  or lc($a->county)   cmp lc($b->county)
   or lc($a->address1) cmp lc($b->address1)
   or lc($a->address2) cmp lc($b->address2)
 };