X-Git-Url: https://git.sitka.bclibraries.ca/gitweb/?p=sitka%2Fsitka-tools.git;a=blobdiff_plain;f=marc_import_overdrive%2Foverdrive-ingest-db-func.sql;h=0f9570868eea32f92c6ffa9fe93764f006c07e54;hp=51cadeb9424dbbb4fba27091a6d86b1ed15ed414;hb=df5285f48bca0508d1b115876950e838418521af;hpb=38891e1ee70e2570fdc2dfd9de4ba1cccce3d9ba diff --git a/marc_import_overdrive/overdrive-ingest-db-func.sql b/marc_import_overdrive/overdrive-ingest-db-func.sql index 51cadeb..0f95708 100755 --- a/marc_import_overdrive/overdrive-ingest-db-func.sql +++ b/marc_import_overdrive/overdrive-ingest-db-func.sql @@ -1,4 +1,4 @@ -CREATE OR REPLACE FUNCTION sitka.overdrive_MARCXML_delete_all_uri_fields( TEXT ) RETURNS TEXT AS $func$ +CREATE OR REPLACE FUNCTION sitka.overdrive_bc_delete_all_uri_fields( TEXT ) RETURNS TEXT AS $func$ use MARC::Record; use MARC::File::XML (BinaryEncoding => 'UTF-8'); @@ -13,7 +13,7 @@ CREATE OR REPLACE FUNCTION sitka.overdrive_MARCXML_delete_all_uri_fields( TEXT ) next URIFIELD if ($uri->subfield('3')); # otherwise, delete away - $r->delete_fields($uri); + $r->delete_field($uri); } $xml = $r->as_xml_record(); @@ -23,7 +23,7 @@ CREATE OR REPLACE FUNCTION sitka.overdrive_MARCXML_delete_all_uri_fields( TEXT ) return $xml; $func$ LANGUAGE PLPERLU; -CREATE OR REPLACE FUNCTION sitka.overdrive_MARCXML_add_uri_field( TEXT, TEXT, TEXT, TEXT, TEXT ) RETURNS TEXT AS $func$ +CREATE OR REPLACE FUNCTION sitka.overdrive_bc_add_uri_field( TEXT, TEXT, TEXT, TEXT, TEXT ) RETURNS TEXT AS $func$ use MARC::Record; use MARC::File::XML (BinaryEncoding => 'UTF-8'); @@ -48,7 +48,7 @@ CREATE OR REPLACE FUNCTION sitka.overdrive_MARCXML_add_uri_field( TEXT, TEXT, TE my $field856 = MARC::Field->new( '856' => ('4', '0'), u => $url_prefix . $tcn, - z => $uri_caption, + y => $uri_caption, 9 => $shortname ); @@ -73,7 +73,7 @@ DECLARE urlprefix TEXT := 'http://downloads.bclibrary.ca/ContentDetails.htm?ID='; urlcaption TEXT := 'Click to access online (library card required)'; BEGIN - EXECUTE SELECT sitka.overdrive_MARCXML_delete_all_uri_fields(marc) FROM biblio.record_entry where id = rid INTO marcxml; + SELECT sitka.overdrive_bc_delete_all_uri_fields(marc) FROM biblio.record_entry where id = rid INTO marcxml; -- clean out asset.call_number and asset.uri and asset.uri_call_number_map @@ -82,15 +82,68 @@ BEGIN -- from actor.org_unit_setting b join actor.org_unit a on (a.id = b.org_unit) where b.name = 'sitka.overdrive_setting' and b.value = true -- something like that - EXECUTE SELECT sitka.overdrive_bc_add_uri_field (rid, tcnprefix, urlprefix, urlcaption, 'BBGVL') INTO marcxml; - EXECUTE SELECT sitka.overdrive_bc_add_uri_field (rid, tcnprefix, urlprefix, urlcaption, 'BBNCLF') INTO marcxml; - EXECUTE SELECT sitka.overdrive_bc_add_uri_field (rid, tcnprefix, urlprefix, urlcaption, 'BCK') INTO marcxml; - EXECUTE SELECT sitka.overdrive_bc_add_uri_field (rid, tcnprefix, urlprefix, urlcaption, 'BNCLF') INTO marcxml; - EXECUTE SELECT sitka.overdrive_bc_add_uri_field (rid, tcnprefix, urlprefix, urlcaption, 'BNELF') INTO marcxml; - EXECUTE SELECT sitka.overdrive_bc_add_uri_field (rid, tcnprefix, urlprefix, urlcaption, 'ISLANDLINK') INTO marcxml; - EXECUTE SELECT sitka.overdrive_bc_add_uri_field (rid, tcnprefix, urlprefix, urlcaption, 'UNFEDERATED') INTO marcxml; + SELECT sitka.overdrive_bc_add_uri_field(marcxml::TEXT, tcnprefix::TEXT, urlprefix::TEXT, urlcaption::TEXT, shortname::TEXT) FROM sitka.bc_overdrive_subscribers INTO marcxml; - EXECUTE UPDATE biblio.record_entry set marc = marcxml WHERE id = rid; + UPDATE biblio.record_entry set marc = marcxml WHERE id = rid; return true; END; -$$ LANGUAGE PLPGSQL IMMUTABLE; +$$ LANGUAGE PLPGSQL; + +CREATE TABLE sitka.bc_overdrive_subscribers (shortname TEXT); +INSERT INTO sitka.bc_overdrive_subscribers VALUES +('BB'), +('BNV'), +('BMV'), +('BVA'), +('BPE'), +('BCOQ'), +('BNW'), +('BSUR'), +('BNVD'), +('BBI'), +('BSQ'), +('BW'), +('BRI'), +('BABF'), +('BLP'), +('BGIBSE'), +('BPMP'), +('BMB'), +('BVDH'), +('BFSJA'), +('BPG'), +('BWLCR'), +('BMK'), +('BGSI'), +('BCR'), +('BVI'), +('BS'), +('BFN'), +('BPRDP'), +('BTA'), +('BNA'), +('BF'), +('BH'), +('BSPA'), +('BHA'), +('BTR'), +('BHH'), +('BPR'), +('BCHE'), +('BKASL'), +('BFSJ'), +('BR'), +('BFBV'), +('BKI'), +('BCD'), +('BIN'), +('BGF'), +('BSA'), +('BNE'), +('BT'), +('BTE'), +('BCRE'), +('BKO'), +('BP'), +('BKCT'), +('BNVI');