summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2016-03-18 18:40:24 -0700
committerIvan Kohler <ivan@freeside.biz>2016-03-18 18:40:24 -0700
commit699758d489a44bddc6ce92809fd6176e2548d45f (patch)
tree76e10a37b6ad0e858aa89e6c1fcfa162f23aa835
parent9dd24df729dd13819019b87d25c1669346c49dd4 (diff)
sort customer locations in package list, RT#41119, RT#39822
-rw-r--r--FS/FS/cust_main.pm18
-rw-r--r--FS/FS/prospect_main.pm9
-rw-r--r--httemplate/elements/tr-select-cust_location.html2
3 files changed, 22 insertions, 7 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 0586a80..6d5d1d3 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -2183,8 +2183,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
@@ -3592,9 +3597,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
diff --git a/FS/FS/prospect_main.pm b/FS/FS/prospect_main.pm
index 79efa86..f600b23 100644
--- a/FS/FS/prospect_main.pm
+++ b/FS/FS/prospect_main.pm
@@ -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
diff --git a/httemplate/elements/tr-select-cust_location.html b/httemplate/elements/tr-select-cust_location.html
index 3078f2c..47a917d 100644
--- a/httemplate/elements/tr-select-cust_location.html
+++ b/httemplate/elements/tr-select-cust_location.html
@@ -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)
};