From: Dan Scott Date: Sun, 18 Dec 2011 05:07:22 +0000 (-0500) Subject: unapi: Sort volumes in holdings_xml by library, label X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=f692390655812eb0fcbe4aa67e20c59018c55ed3;p=working%2FEvergreen.git 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 --- 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