From 46ba101e23ca02188dc99411d037c90e941e1d1e Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Sun, 18 Dec 2011 00:07:22 -0500 Subject: [PATCH] unapi: Sort volumes in holdings_xml by library, label In-database unapi currently returns volumes sorted strictly by label, but a more meaningful order would sort the volumes first by copy library (in alphabetical order), and then by label within each library. This commit makes it so. Signed-off-by: Dan Scott --- Open-ILS/src/sql/Pg/990.schema.unapi.sql | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/sql/Pg/990.schema.unapi.sql b/Open-ILS/src/sql/Pg/990.schema.unapi.sql index 2e542dd326..decde34df7 100644 --- a/Open-ILS/src/sql/Pg/990.schema.unapi.sql +++ b/Open-ILS/src/sql/Pg/990.schema.unapi.sql @@ -278,12 +278,13 @@ CREATE OR REPLACE FUNCTION unapi.holdings_xml (bid BIGINT, ouid INT, org TEXT, d name volumes, (SELECT XMLAGG(acn) FROM ( SELECT unapi.acn(y.id,'xml','volume',evergreen.array_remove_item_by_value( evergreen.array_remove_item_by_value($5,'holdings_xml'),'bre'), $3, $4, $6, $7, FALSE) FROM ( - SELECT distinct acn.id, acn.label_sortkey + SELECT distinct acn.id, acp.circ_lib, acn.label_sortkey FROM asset.call_number acn JOIN asset.copy acp ON (acn.id = acp.call_number) JOIN actor.org_unit_descendants( $2 ) aoud ON (acp.circ_lib = aoud.id) + INNER JOIN actor.org_unit aou ON (aou.id = acp.circ_lib) WHERE acn.record = $1 - ORDER BY acn.label_sortkey + ORDER BY acp.circ_lib, acn.label_sortkey LIMIT ($6 -> 'acn')::INT OFFSET ($7 -> 'acn')::INT )y @@ -294,12 +295,13 @@ CREATE OR REPLACE FUNCTION unapi.holdings_xml (bid BIGINT, ouid INT, org TEXT, d name volumes, (SELECT XMLAGG(acn) FROM ( SELECT unapi.acn(y.id,'xml','volume',evergreen.array_remove_item_by_value( evergreen.array_remove_item_by_value($5,'holdings_xml'),'bre'), $3, $4, $6, $7, FALSE) FROM ( - SELECT distinct acn.id, acn.label_sortkey + SELECT distinct acn.id, acp.circ_lib, acn.label_sortkey FROM asset.call_number acn JOIN asset.copy acp ON (acn.id = acp.call_number) JOIN actor.org_unit_descendants( $2, $4 ) aoud ON (acp.circ_lib = aoud.id) + INNER JOIN actor.org_unit aou ON (aou.id = acp.circ_lib) WHERE acn.record = $1 - ORDER BY acn.label_sortkey + ORDER BY acp.circ_lib, acn.label_sortkey LIMIT ($6 -> 'acn')::INT OFFSET ($7 -> 'acn')::INT )y -- 2.11.0