[open-ils-commits] r17964 - branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Circ (miker)
svn at svn.open-ils.org
svn at svn.open-ils.org
Fri Sep 24 14:13:21 EDT 2010
Author: miker
Date: 2010-09-24 14:13:17 -0400 (Fri, 24 Sep 2010)
New Revision: 17964
Modified:
branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm
Log:
Backporting hold queue stats fixes from 17956, 17957 and 17963
Modified: branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm
===================================================================
--- branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm 2010-09-24 18:08:05 UTC (rev 17963)
+++ branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Circ/Holds.pm 2010-09-24 18:13:17 UTC (rev 17964)
@@ -1033,11 +1033,7 @@
# fetch cut_in_line and request_time since they're in the order_by
# and we're asking for distinct values
select => {ahr => ['id', 'cut_in_line', 'request_time']},
- from => {
- ahr => {
- ahcm => {type => 'left'} # there may be no copy maps
- }
- },
+ from => { ahr => 'ahcm' },
order_by => [
{
"class" => "ahr",
@@ -1050,28 +1046,42 @@
],
distinct => 1,
where => {
- '-or' => [
- {
- '+ahcm' => {
- target_copy => {
- in => {
- select => {ahcm => ['target_copy']},
- from => 'ahcm',
- where => {hold => $hold->id}
- }
+ {
+ '+ahcm' => {
+ target_copy => {
+ in => {
+ select => {ahcm => ['target_copy']},
+ from => 'ahcm',
+ where => {hold => $hold->id}
}
- }
- },
- {
- '+ahr' => {
- hold_type => $hold->hold_type,
- target => $hold->target
- }
+ }
}
- ]
- },
+ }
+ }
});
+ if (!@$q_holds) { # none? maybe we don't have a map ...
+ $q_holds = $e->json_query({
+ select => {ahr => ['id', 'cut_in_line', 'request_time']},
+ from => 'ahr',
+ order_by => [
+ {
+ "class" => "ahr",
+ "field" => "cut_in_line",
+ "transform" => "coalesce",
+ "params" => [ 0 ],
+ "direction" => "desc"
+ },
+ { "class" => "ahr", "field" => "request_time" }
+ ],
+ where => {
+ hold_type => $hold->hold_type,
+ target => $hold->target
+ }
+ });
+ }
+
+
my $qpos = 1;
for my $h (@$q_holds) {
last if $h->{id} == $hold->id;
More information about the open-ils-commits
mailing list