From 4d035af17d7f94eb07e5bee2a3e885159f520eae Mon Sep 17 00:00:00 2001
From: Andrew Isherwood <andrew.isherwood@ptfs-europe.com>
Date: Tue, 17 Apr 2018 12:02:18 +0100
Subject: [PATCH] Bug 20581: Provide status_alias on IllRequest

This patch provides status_alias support for the Koha::Illrequest
object.

- New 'statusalias' getter method, returns the request's status_alias
authorised value object if set, otherwise undef
- Overloads existing 'status' method, getter/setter accessors intact,
but setting the request's status now implicitly removes any status_alias
that has been set

Signed-off-by: Niamh.Walker-Headon@it-tallaght.ie
---
 Koha/Illrequest.pm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/Koha/Illrequest.pm b/Koha/Illrequest.pm
index ff834f14f5..18cd57e676 100644
--- a/Koha/Illrequest.pm
+++ b/Koha/Illrequest.pm
@@ -31,6 +31,7 @@ use Koha::Email;
 use Koha::Exceptions::Ill;
 use Koha::Illcomments;
 use Koha::Illrequestattributes;
+use Koha::AuthorisedValue;
 use Koha::Patron;
 
 use base qw(Koha::Object);
@@ -109,6 +110,19 @@ available for request.
 
 =head2 Class methods
 
+=head3 statusalias
+
+=cut
+
+sub statusalias {
+    my ( $self ) = @_;
+    return $self->status_alias ?
+        Koha::AuthorisedValue->_new_from_dbic(
+            scalar $self->_result->status_alias
+        ) :
+        undef;
+}
+
 =head3 illrequestattributes
 
 =cut
@@ -142,6 +156,22 @@ sub patron {
     );
 }
 
+=head3 status
+
+Overloaded getter/setter for request status,
+also nullifies status_alias
+
+=cut
+
+sub status {
+    my ( $self, $newval) = @_;
+    if ($newval) {
+        $self->status_alias(undef);
+        return $self->SUPER::status($newval);
+    }
+    return $self->SUPER::status;
+}
+
 =head3 load_backend
 
 Require "Base.pm" from the relevant ILL backend.
-- 
2.11.0