From 76171a589cfc00c1cade77eae0a07e5e13ae298d Mon Sep 17 00:00:00 2001
From: Fridolin Somers <fridolin.somers@biblibre.com>
Date: Wed, 14 Nov 2018 11:18:58 +0100
Subject: [PATCH] Bug 21832: Restore is_expired in ILS-DI GetPatronInfo service

Since Bug 17578 removed C4::Member::GetMemberDetails, the information "is_expired" disappeared from ILS-DI service GetPatronInfo.

I propose to restore in by adding the code that exisited in C4::Member::GetMemberDetails directly in C4::ILSDI::Services.

Test plan :
1) Enable ILS-DI webservice
2) Choose a patron not expired
3) Call web-service (replace X with patron's borrowernumber) :
   /cgi-bin/koha/ilsdi.pl?service=GetPatronInfo&patron_id=X
4) You see : <is_expired>0</is_expired>
5) Choose a patron expired
6) Call web-service (replace X with patron's borrowernumber) :
   /cgi-bin/koha/ilsdi.pl?service=GetPatronInfo&patron_id=X
7) You see : <is_expired>1</is_expired>
---
 C4/ILSDI/Services.pm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm
index 689973ea3e..f05b9d6542 100644
--- a/C4/ILSDI/Services.pm
+++ b/C4/ILSDI/Services.pm
@@ -32,6 +32,7 @@ use XML::Simple;
 use HTML::Entities;
 use CGI qw ( -utf8 );
 use DateTime;
+use Date::Calc qw/Today Date_to_Days/;
 use C4::Auth;
 use C4::Members::Attributes qw(GetBorrowerAttributes);
 use Koha::DateUtils;
@@ -480,6 +481,14 @@ sub GetPatronInfo {
         $borrower->{'attributes'} = $attrs;
     }
 
+    # Add is expired information
+    $borrower->{'is_expired'} = 0;
+    $borrower->{'is_expired'} = 1 if
+      defined($borrower->{dateexpiry}) &&
+      $borrower->{'dateexpiry'} ne '0000-00-00' &&
+      Date_to_Days( Today() ) >
+      Date_to_Days( split /-/, $borrower->{'dateexpiry'} );
+
     return $borrower;
 }
 
-- 
2.17.1