From 6292094b4cc985e7f24b941069efc6b20a955133 Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 29 Jun 2005 19:48:22 +0000 Subject: [PATCH] adding hold notification targets and hold_copy_map git-svn-id: svn://svn.open-ils.org/ILS/trunk@975 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Storage/CDBI.pm | 6 ++++++ .../OpenILS/Application/Storage/CDBI/action.pm | 11 ++++++++++- .../OpenILS/Application/Storage/Driver/Pg/dbi.pm | 7 +++++++ Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm | 1 + Open-ILS/src/sql/Postgres/090.schema.action.sql | 8 ++++++++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI.pm index 10be2c1202..0fd5291c74 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI.pm @@ -443,11 +443,17 @@ sub modify_from_fieldmapper { action::hold_notification->has_a( hold => 'action::hold_request' ); + action::hold_copy_map->has_a( hold => 'action::hold_request' ); + action::hold_copy_map->has_a( copy => 'asset::copy' ); + action::hold_request->has_a( current_copy => 'asset::copy' ); action::hold_request->has_a( requestor => 'actor::user' ); action::hold_request->has_a( usr => 'actor::user' ); action::hold_request->has_a( pickup_lib => 'actor::org_unit' ); action::hold_request->has_many( notifications => 'action::hold_notification' ); + action::hold_request->has_many( copy_maps => 'action::hold_copy_map' ); + + asset::copy->has_many( hold_maps => 'action::hold_copy_map' ); 1; diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm index e025d4ec6f..eafaa19e11 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm @@ -56,7 +56,8 @@ __PACKAGE__->columns(Primary => 'id'); __PACKAGE__->columns(Essential => qw/request_time capture_time fulfillment_time prev_check_time expire_time requestor usr hold_type holdable_formats target - selection_depth pickup_lib current_copy/); + phone_notify email_notify selection_depth + pickup_lib current_copy/); #------------------------------------------------------------------------------- @@ -68,5 +69,13 @@ __PACKAGE__->columns(Essential => qw/hold method notify_time note/); #------------------------------------------------------------------------------- +package action::hold_copy_map; +use base qw/action/; +__PACKAGE__->table('action_hold_copy_map'); +__PACKAGE__->columns(Primary => 'id'); +__PACKAGE__->columns(Essential => qw/hold copy/); + +#------------------------------------------------------------------------------- + 1; diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm index a3d7c4a649..141362ff5c 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm @@ -455,6 +455,13 @@ #------------------------------------------------------------------------------- + package action::hold_copy_map; + + action::hold_copy_map->sequence( 'action.hold_copy_map_id_seq' ); + action::hold_copy_map->table('action.hold_copy_map'); + + #------------------------------------------------------------------------------- + } diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm b/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm index 788989b633..22fd708661 100644 --- a/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm +++ b/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm @@ -157,6 +157,7 @@ sub _init { 'Fieldmapper::permission::grp_perm_map' => { hint => 'pgpm' }, 'Fieldmapper::action::hold_request' => { hint => 'ahr' }, 'Fieldmapper::action::hold_notification' => { hint => 'ahn' }, + 'Fieldmapper::action::hold_copy_map' => { hint => 'ahcm' }, 'Fieldmapper::ex' => { hint => 'ex', diff --git a/Open-ILS/src/sql/Postgres/090.schema.action.sql b/Open-ILS/src/sql/Postgres/090.schema.action.sql index 7fabc74b32..3fa384f94f 100644 --- a/Open-ILS/src/sql/Postgres/090.schema.action.sql +++ b/Open-ILS/src/sql/Postgres/090.schema.action.sql @@ -82,6 +82,8 @@ CREATE TABLE action.hold_request ( usr INT NOT NULL REFERENCES actor.usr (id), hold_type CHAR NOT NULL CHECK (hold_type IN ('M','T','V','C')), holdable_formats TEXT, + phone_notify TEXT, + email_notify TEXT, target BIGINT NOT NULL, -- see hold_type selection_depth INT NOT NULL DEFAULT 0, pickup_lib INT NOT NULL REFERENCES actor.org_unit, @@ -97,6 +99,12 @@ CREATE TABLE action.hold_notification ( note TEXT ); +CREATE TABLE action.hold_copy_map ( + id SERIAL PRIMARY KEY, + hold INT NOT NULL REFERENCES action.hold_notification (id) ON DELETE CASCADE, + copy BIGINT NOT NULL REFERENCES asset.copy (id) ON DELETE CASCADE, + CONSTRAINT copy_once_per_hold UNIQUE (hold,copy) +); COMMIT; -- 2.43.2