]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0638.schema.unapi.sitem-fix.sql
LP#1206936 - Fix wrong billing info in money.transaction_billing_summary
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0638.schema.unapi.sitem-fix.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('0638', :eg_version); -- miker
4
5 CREATE OR REPLACE FUNCTION unapi.sitem ( obj_id BIGINT, format TEXT,  ename TEXT, includes TEXT[], org TEXT, depth INT DEFAULT NULL, slimit INT DEFAULT NULL, soffset INT DEFAULT NULL, include_xmlns BOOL DEFAULT TRUE ) RETURNS XML AS $F$
6         SELECT  XMLELEMENT(
7                     name serial_item,
8                     XMLATTRIBUTES(
9                         CASE WHEN $9 THEN 'http://open-ils.org/spec/holdings/v1' ELSE NULL END AS xmlns,
10                         'tag:open-ils.org:U2@sitem/' || id AS id,
11                         'tag:open-ils.org:U2@siss/' || issuance AS issuance,
12                         date_expected, date_received
13                     ),
14                     CASE WHEN issuance IS NOT NULL AND ('siss' = ANY ($4)) THEN unapi.siss( issuance, $2, 'issuance', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END,
15                     CASE WHEN stream IS NOT NULL AND ('sstr' = ANY ($4)) THEN unapi.sstr( stream, $2, 'stream', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END,
16                     CASE WHEN unit IS NOT NULL AND ('sunit' = ANY ($4)) THEN unapi.sunit( unit, $2, 'serial_unit', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END,
17                     CASE WHEN uri IS NOT NULL AND ('auri' = ANY ($4)) THEN unapi.auri( uri, $2, 'uri', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END
18 --                    XMLELEMENT( name notes,
19 --                        CASE 
20 --                            WHEN ('acpn' = ANY ($4)) THEN
21 --                                (SELECT XMLAGG(acpn) FROM (
22 --                                    SELECT  unapi.acpn( id, 'xml', 'copy_note', evergreen.array_remove_item_by_value($4,'acp'), $5, $6, $7, $8)
23 --                                      FROM  asset.copy_note
24 --                                      WHERE owning_copy = cp.id AND pub
25 --                                )x)
26 --                            ELSE NULL
27 --                        END
28 --                    )
29                 )
30           FROM  serial.item sitem
31           WHERE id = $1;
32 $F$ LANGUAGE SQL;
33
34 COMMIT;
35