From 31f40d3b931198c3ef2985f97dbb8a5d3a8efe17 Mon Sep 17 00:00:00 2001 From: miker Date: Sat, 22 Apr 2006 02:27:31 +0000 Subject: [PATCH] sort records within a metarecord by type/quality git-svn-id: svn://svn.open-ils.org/ILS/trunk@3829 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../OpenILS/Application/Storage/Publisher/metabib.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/metabib.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/metabib.pm index 2ee3cb55f3..289935d7ec 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/metabib.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/metabib.pm @@ -42,13 +42,15 @@ sub ordered_records_from_metarecord { my $cp_table = asset::copy->table; my $cs_table = config::copy_status->table; my $out_table = actor::org_unit_type->table; + my $br_table = biblio::record_entry->table; my $sql = <<" SQL"; - SELECT * + SELECT record, item_type, item_form, count FROM ( SELECT rd.record, rd.item_type, rd.item_form, + br.quality, SQL if ($copies_visible) { @@ -69,22 +71,26 @@ sub ordered_records_from_metarecord { $sql .= <<" SQL"; FROM $cn_table cn, $sm_table sm, + $br_table br, $rd_table rd WHERE rd.record = sm.source + AND br.id = rd.record AND cn.record = rd.record AND sm.metarecord = ? SQL } else { $sql .= <<" SQL"; FROM $sm_table sm, + $br_table br, $rd_table rd WHERE rd.record = sm.source + AND br.id = rd.record AND sm.metarecord = ? SQL } $sql .= <<" SQL"; - GROUP BY rd.record, rd.item_type, rd.item_form + GROUP BY rd.record, rd.item_type, rd.item_form, br.quality ORDER BY CASE WHEN rd.item_type IS NULL -- default @@ -110,6 +116,7 @@ sub ordered_records_from_metarecord { WHEN rd.item_type = 'r' -- 3d THEN 9 END, + br.quality DESC, count DESC ) x SQL -- 2.43.2