Lines 48-63
Return a list of existing ILL statuses
Link Here
|
48 |
sub existing_statuses { |
48 |
sub existing_statuses { |
49 |
my ( $self, $backend_id ) = @_; |
49 |
my ( $self, $backend_id ) = @_; |
50 |
|
50 |
|
51 |
#FIXME: Currently fetching all requests, it'd be great if we could fetch distinct(status). |
51 |
# NOTE: This query fetches all distinct status's found in the database for this backend. |
52 |
# Even doing it with distinct status, we need the ILL request object, so that strings_map works and |
52 |
# We need the 'status' field for obvious reasons, the 'backend' field is required to not |
53 |
# the ILL request returns the correct status and info respective to its backend. |
53 |
# throw 'Koha::Exceptions::Ill::InvalidBackendId' when we're converting to a Koha object. |
|
|
54 |
# Finally, to get around 'ONLY_FULL_GROUP_BY', we have to be explicit about which |
55 |
# 'request_id' we want to return, hense the 'MAX' call. |
54 |
my $ill_requests = Koha::Illrequests->search( |
56 |
my $ill_requests = Koha::Illrequests->search( |
55 |
{backend => $backend_id}, |
57 |
{ backend => $backend_id }, |
56 |
# { |
58 |
{ |
57 |
# columns => [ qw/status/ ], |
59 |
select => [ 'status', \'MAX(illrequest_id)', 'backend' ], |
58 |
# group_by => [ qw/status/ ], |
60 |
as => [qw/ status illrequest_id backend /], |
59 |
# } |
61 |
group_by => [qw/status backend/], |
60 |
); |
62 |
} |
|
|
63 |
); |
61 |
|
64 |
|
62 |
my @data; |
65 |
my @data; |
63 |
while (my $request = $ill_requests->next) { |
66 |
while (my $request = $ill_requests->next) { |
Lines 74-83
sub existing_statuses {
Link Here
|
74 |
} |
77 |
} |
75 |
} |
78 |
} |
76 |
|
79 |
|
77 |
# Remove duplicate statuses |
|
|
78 |
my %seen; |
79 |
@data = grep { my $e = $_; my $key = join '___', map { $e->{$_}; } sort keys %$_;!$seen{$key}++ } @data; |
80 |
|
81 |
return \@data; |
80 |
return \@data; |
82 |
} |
81 |
} |
83 |
|
82 |
|
84 |
- |
|
|