From f2d66841385ae9929fbacdc025fca2dd3e86ac89 Mon Sep 17 00:00:00 2001 From: blake Date: Fri, 21 Jan 2022 10:01:45 -0600 Subject: [PATCH] LP1528301 Adding email support for SIP msg10 NOBLE's extension to the feature Signed-off by blake@mobiusconsortium.org --- Open-ILS/src/perlmods/lib/OpenILS/SIP/Item.pm | 2 ++ Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm | 13 +++++++++++++ .../src/perlmods/lib/OpenILS/SIP/Transaction/Checkin.pm | 10 ++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Item.pm b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Item.pm index 99c378acc8..3cb4c0f92f 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Item.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Item.pm @@ -47,6 +47,7 @@ my %fields = ( record => 0, mods => 0, hold_patron_phone => 0, + hold_patron_email => 0, ); our $AUTOLOAD; @@ -221,6 +222,7 @@ sub fetch_hold { syslog('LOG_WARNING', "OILS: Item(".$copy->barcode. ") is captured for a hold, but there is no matching hold request") unless $hold; $self->{hold_patron_phone} = $hold->phone_notify unless !$hold; + $self->{hold_patron_email} = $hold->email_notify unless !$hold; return $hold; } diff --git a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm index 43824cf273..f74de2daef 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm @@ -254,6 +254,19 @@ sub format_name { ($u->family_name || '')); } +sub format_name_noble { + my $u = shift; + return sprintf('%s, %s %s', + ($u->family_name || ''), + ($u->first_given_name || ''), + ($u->second_given_name || '')); +} + +sub name_alias { + my $u = shift; + return $u->alias; +} + sub home_library { my $self = shift; my $lib = OpenILS::SIP::shortname_from_id($self->{user}->home_ou); diff --git a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/Checkin.pm b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/Checkin.pm index c7ab6aa5fa..6ffcbede42 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/Checkin.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/Checkin.pm @@ -188,7 +188,8 @@ sub do_checkin { my $holder = OpenILS::SIP->editor()->retrieve_actor_user( [$self->item->hold->usr, {flesh => 1, flesh_fields => {au => ['card']}}]); - my $holder_name = OpenILS::SIP::Patron::format_name($holder); + my $holder_name = OpenILS::SIP::Patron::format_name_noble($holder); + my $holder_alias = OpenILS::SIP::Patron::name_alias($holder); if (ref $self->item->hold->pickup_lib) { $pickup_lib_id = $self->item->hold->pickup_lib->id; @@ -200,10 +201,15 @@ sub do_checkin { } $self->item->hold_patron_bcode( ($holder->card) ? $holder->card->barcode : ''); - $self->item->hold_patron_name($holder_name); + $self->item->hold_patron_name( ($holder_alias) ? $holder_alias : $holder_name ); $self->item->destination_loc($pickup_lib_sn); $self->item->hold_patron_phone($self->item->hold->phone_notify); + my $email_notify = ( ($self->item->hold->email_notify eq 't') ? 'TRUE' : ''); + my $sms_notify = $self->item->hold->sms_notify; + $self->item->hold_patron_email( ($email_notify || $sms_notify) ? 'NOTIFIED' : ''); + + my $atype = ($pickup_lib_id == $phys_location) ? '01' : '02'; $self->alert_type($atype); } -- 2.11.0