LP1528301 Adding email support for SIP msg10 user/blake/LP1528301_noble_email_extension
authorblake <blake@mobiusconsortium.org>
Fri, 21 Jan 2022 16:01:45 +0000 (10:01 -0600)
committerblake <blake@mobiusconsortium.org>
Fri, 21 Jan 2022 16:22:34 +0000 (10:22 -0600)
NOBLE's extension to the feature

Signed-off by blake@mobiusconsortium.org

Open-ILS/src/perlmods/lib/OpenILS/SIP/Item.pm
Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm
Open-ILS/src/perlmods/lib/OpenILS/SIP/Transaction/Checkin.pm

index 99c378a..3cb4c0f 100644 (file)
@@ -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;
     }
index 43824cf..f74de2d 100644 (file)
@@ -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);
index c7ab6aa..6ffcbed 100644 (file)
@@ -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);
     }