From 05cad534eae094aa9cb7a63acc55aef1e90cde00 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 13 May 2008 20:34:35 +0000 Subject: [PATCH] Merged revisions 9577,9584,9587 via svnmerge from svn://svn.open-ils.org/ILS/trunk ........ r9577 | dbs | 2008-05-13 10:52:21 -0400 (Tue, 13 May 2008) | 2 lines Missed a deferrable constraint ........ r9584 | miker | 2008-05-13 15:50:02 -0400 (Tue, 13 May 2008) | 1 line stub of vandelay ML ........ r9587 | miker | 2008-05-13 16:29:58 -0400 (Tue, 13 May 2008) | 1 line create queues and add records to them ........ git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9589 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Vandelay.pm | 180 +++++++++++++++++++++ Open-ILS/src/sql/Pg/040.schema.asset.sql | 2 +- 2 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm b/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm new file mode 100644 index 0000000000..8b71b50e83 --- /dev/null +++ b/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm @@ -0,0 +1,180 @@ +package OpenILS::Application::Vandelay; +use OpenILS::Application; +use base qw/OpenILS::Application/; + +use Unicode::Normalize; +use OpenSRF::EX qw/:try/; + +use OpenSRF::AppSession; +use OpenSRF::Utils::SettingsClient; + +use OpenILS::Utils::Fieldmapper; +use OpenILS::Utils::CStoreEditor qw/:funcs/; + +use MARC::Record; +use MARC::File::XML; + +use OpenILS::Utils::Fieldmapper; + +use Time::HiRes qw(time); + +use OpenSRF::Utils::Logger qw/:level/; +my $log = 'OpenSRF::Utils::Logger'; + +sub initialize {} +sub child_init {} + +sub entityize { + my $self = shift; + my $stuff = shift; + my $form = shift; + + if ($form eq 'D') { + $stuff = NFD($stuff); + } else { + $stuff = NFC($stuff); + } + + $stuff =~ s/([\x{0080}-\x{fffd}])/sprintf('&#x%X;',ord($1))/sgoe; + return $stuff; +} + +# -------------------------------------------------------------------------------- +# Biblio ingest + +sub create_bib_queue { + my $self = shift; + my $client = shift; + my $auth = shift; + my $name = shift; + my $owner = shift; + my $type = shift; + my $purpose = shift; + + my $e = new_editor(authtoken => $auth, xact => 1); + + return $e->die_event unless $e->checkauth; + return $e->die_event unless $e->allowed('CREATE_BIB_IMPORT_QUEUE', $owner); + + my $queue = new Fieldmapper::vandelay::bib_queue(); + $queue->name( $name ); + $queue->owner( $owner ); + $queue->queue_type( $type ) if ($type); + $queue->queue_purpose( $purpose ) if ($purpose); + + my $new_id = $e->create_vandelay_bib_queue( $queue ); + $e->die_event unless ($new_id); + + $queue->id($new_id); + return $queue; +} +__PACKAGE__->register_method( + api_name => "open-ils.vandelay.bib_queue.create", + method => "create_bib_queue", + api_level => 1, + argc => 3, +); + + +sub create_auth_queue { + my $self = shift; + my $client = shift; + my $auth = shift; + my $name = shift; + my $owner = shift; + my $type = shift; + my $purpose = shift; + + my $e = new_editor(authtoken => $auth, xact => 1); + + return $e->die_event unless $e->checkauth; + return $e->die_event unless $e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', $owner); + + my $queue = new Fieldmapper::vandelay::authority_queue(); + $queue->name( $name ); + $queue->owner( $owner ); + $queue->queue_type( $type ) if ($type); + $queue->queue_purpose( $purpose ) if ($purpose); + + my $new_id = $e->create_vandelay_authority_queue( $queue ); + $e->die_event unless ($new_id); + + $queue->id($new_id); + return $queue; +} +__PACKAGE__->register_method( + api_name => "open-ils.vandelay.authority_queue.create", + method => "create_auth_queue", + api_level => 1, + argc => 3, +); + +sub add_record_to_bib_queue { + my $self = shift; + my $client = shift; + my $auth = shift; + my $queue = shift; + my $marc = shift; + + my $e = new_editor(authtoken => $auth, xact => 1); + + $queue = $e->retrieve_vandelay_bib_queue($queue) + + return $e->die_event unless $e->checkauth; + return $e->die_event unless + ($e->allowed('CREATE_BIB_IMPORT_QUEUE', undef, $queue) || + $e->allowed('CREATE_BIB_IMPORT_QUEUE', $queue->owner)); + + my $rec = new Fieldmapper::vandelay::queued_bib_record(); + $rec->marc( $marc ); + $rec->queue( $queue->id ); + + my $new_id = $e->create_vandelay_queued_bib_record( $rec ); + $e->die_event unless ($new_id); + + $rec->id($new_id); + return $rec; +} +__PACKAGE__->register_method( + api_name => "open-ils.vandelay.queued_bib_record.create", + method => "add_record_to_bib_queue", + api_level => 1, + argc => 3, +); + +sub add_record_to_authority_queue { + my $self = shift; + my $client = shift; + my $auth = shift; + my $queue = shift; + my $marc = shift; + + my $e = new_editor(authtoken => $auth, xact => 1); + + $queue = $e->retrieve_vandelay_authority_queue($queue) + + return $e->die_event unless $e->checkauth; + return $e->die_event unless + ($e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', undef, $queue) || + $e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', $queue->owner)); + + my $rec = new Fieldmapper::vandelay::queued_authority_record(); + $rec->marc( $marc ); + $rec->queue( $queue->id ); + + my $new_id = $e->create_vandelay_queued_authority_record( $rec ); + $e->die_event unless ($new_id); + + $rec->id($new_id); + return $rec; +} +__PACKAGE__->register_method( + api_name => "open-ils.vandelay.queued_authority_record.create", + method => "add_record_to_authority_queue", + api_level => 1, + argc => 3, +); + + +1; + diff --git a/Open-ILS/src/sql/Pg/040.schema.asset.sql b/Open-ILS/src/sql/Pg/040.schema.asset.sql index dcf57a0296..1a17d9e559 100644 --- a/Open-ILS/src/sql/Pg/040.schema.asset.sql +++ b/Open-ILS/src/sql/Pg/040.schema.asset.sql @@ -7,7 +7,7 @@ CREATE SCHEMA asset; CREATE TABLE asset.copy_location ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, - owning_lib INT NOT NULL REFERENCES actor.org_unit (id), + owning_lib INT NOT NULL REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED, holdable BOOL NOT NULL DEFAULT TRUE, opac_visible BOOL NOT NULL DEFAULT TRUE, circulate BOOL NOT NULL DEFAULT TRUE -- 2.11.0