ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / svc / checkouts
index 0b0d329..9a1b3a5 100755 (executable)
@@ -17,8 +17,7 @@
 # with Koha; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
-use strict;
-use warnings;
+use Modern::Perl;
 
 use CGI;
 use JSON qw(to_json);
@@ -31,6 +30,7 @@ use C4::Context;
 
 use Koha::AuthorisedValues;
 use Koha::DateUtils;
+use Koha::ItemTypes;
 
 my $input = new CGI;
 
@@ -41,7 +41,7 @@ my $session   = get_session($sessionID);
 my $userid   = $session->param('id');
 
 unless (haspermission($userid, { circulate => 'circulate_remaining_permissions' })
-    || haspermission($userid, { borrowers => '*' })) {
+    || haspermission($userid, { borrowers => 'edit_borrowers' })) {
     exit 0;
 }
 
@@ -90,6 +90,8 @@ my $sql = '
         items.itype,
         biblioitems.itemtype,
 
+        items.ccode AS collection,
+
         borrowernumber,
         surname,
         firstname,
@@ -148,12 +150,17 @@ while ( my $c = $sth->fetchrow_hashref() ) {
     my ( $renewals_count, $renewals_allowed, $renewals_remaining ) =
       GetRenewCount( $c->{borrowernumber}, $c->{itemnumber} );
 
-    my $itemtype = C4::Koha::getitemtypeinfo( $item_level_itypes ? $c->{itype} : $c->{itemtype} );
+    my $itemtype = Koha::ItemTypes->find( $item_level_itypes ? $c->{itype} : $c->{itemtype} );
     my $location;
     if ( $c->{location} ) {
         my $av = Koha::AuthorisedValues->search({ category => 'LOC', authorised_value => $c->{location} });
         $location = $av->count ? $av->next->lib : '';
     }
+    my $collection;
+    if ( $c->{collection} ) {
+        my $av = Koha::AuthorisedValues->search({ category => 'CCODE', authorised_value => $c->{collection} });
+        $collection = $av->count ? $av->next->lib : '';
+    }
     my $lost;
     if ( $c->{itemlost} ) {
         my $av = Koha::AuthorisedValues->search({ category => 'LOST', authorised_value => $c->{itemlost} });
@@ -170,7 +177,8 @@ while ( my $c = $sth->fetchrow_hashref() ) {
         author               => $c->{author},
         barcode              => $c->{barcode},
         itemtype             => $item_level_itypes ? $c->{itype} : $c->{itemtype},
-        itemtype_description => $itemtype->{translated_description},
+        itemtype_description => $itemtype ? $itemtype->translated_description : q{},
+        collection           => $collection,
         location             => $location,
         homebranch           => $c->{homebranch},
         itemnotes            => $c->{itemnotes},
@@ -208,8 +216,10 @@ while ( my $c = $sth->fetchrow_hashref() ) {
                 as_due_date => 1
             }
         ),
-        subtitle =>
-          GetRecordValue( 'subtitle', GetMarcBiblio( $c->{biblionumber} ), GetFrameworkCode( $c->{biblionumber} ) ),
+        subtitle => GetRecordValue(
+            'subtitle',
+            GetMarcBiblio({ biblionumber => $c->{biblionumber} }),
+            GetFrameworkCode( $c->{biblionumber} ) ),
         lost    => $lost,
         damaged => $damaged,
         borrower => {