From 3c6aff53541314a0cb2d7374f834b42cec1f50b6 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Fri, 12 Feb 2016 09:07:09 +0000
Subject: [PATCH] Bug 15736: Add ShowAllCheckins pref to control the display of
 checked-in item list on checking

Bug 14821 removed the items which were not checked out, but some
libraries considered it as a bug.
So let's add a new pref to control this behavior.

Test plan:
0/ Execute the updatedb entry and set ShowAllCheckins to "Do not show"
(default)
1/ Check an item in.
If the item was not checked out, it won't be listed
2/ Turn the pref to "Show"
3/ Check an item in
If the item was not checked out, it should be listed

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
---
 circ/returns.pl                                                     | 5 +++++
 installer/data/mysql/atomicupdate/bug_15736.sql                     | 1 +
 installer/data/mysql/sysprefs.sql                                   | 1 +
 .../prog/en/modules/admin/preferences/circulation.pref              | 6 ++++++
 4 files changed, 13 insertions(+)
 create mode 100644 installer/data/mysql/atomicupdate/bug_15736.sql

diff --git a/circ/returns.pl b/circ/returns.pl
index 8ff9350..bdc2612 100755
--- a/circ/returns.pl
+++ b/circ/returns.pl
@@ -343,6 +343,11 @@ if ($barcode) {
                 );
             }
         }
+    } elsif ( C4::Context->preference('ShowAllCheckins') and !$messages->{'BadBarcode'} ) {
+        $input{duedate}   = 0;
+        $returneditems{0} = $barcode;
+        $riduedate{0}     = 0;
+        push( @inputloop, \%input );
     }
     $template->param( privacy => $borrower->{privacy} );
 }
diff --git a/installer/data/mysql/atomicupdate/bug_15736.sql b/installer/data/mysql/atomicupdate/bug_15736.sql
new file mode 100644
index 0000000..04c93d5
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug_15736.sql
@@ -0,0 +1 @@
+INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES ('ShowAllCheckins', '0', '', 'Show all checkins', 'YesNo');
diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql
index 96ea9ad..059289a 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -418,6 +418,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
 ('ShelfBrowserUsesCcode','1','0','Use the item collection code when finding items for the shelf browser.','YesNo'),
 ('ShelfBrowserUsesHomeBranch','1','1','Use the item home branch when finding items for the shelf browser.','YesNo'),
 ('ShelfBrowserUsesLocation','1','1','Use the item location when finding items for the shelf browser.','YesNo'),
+('ShowAllCheckins', '0', '', 'Show all checkins', 'YesNo'),
 ('ShowPatronImageInWebBasedSelfCheck','0','','If ON, displays patron image when a patron uses web-based self-checkout','YesNo'),
 ('ShowReviewer','full','none|full|first|surname|firstandinitial|username','Choose how a commenter\'s identity is presented alongside comments in the OPAC','Choice'),
 ('ShowReviewerPhoto','1','','If ON, photo of reviewer will be shown beside comments in OPAC','YesNo'),
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
index d9c7e25..4b59884 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -130,6 +130,12 @@ Circulation:
                   yes: Enable
                   no: "Do not enable"
             - "offline circulation on regular circulation computers. (NOTE: This system preference does not affect the Firefox plugin or the desktop application)"
+        -
+            - pref: ShowAllCheckins
+              choices:
+                  yes: Show
+                  no: "Do not show"
+            - all checkins, even items that were not checked out.
 
     Checkout Policy:
         -
-- 
2.1.4