Bug 29792: [22.05.x] Automatically send wrong transfers
authorNick Clemens <nick@bywatersolutions.com>
Fri, 30 Sep 2022 11:01:56 +0000 (11:01 +0000)
committerLucas Gass <lucas@bywatersolutions.com>
Thu, 16 Feb 2023 13:05:53 +0000 (13:05 +0000)
Bug 24434 reinstated the 'updateWrongTransfer' call here, but made the assertion that
the transfer should not be sent until 'Ok' was clicked.

I see how unsent transfers are useful for rotation, but I believe for wrong transfer we shouldn't require a confirm or print. If a library does want to, the 'transfersblockcirc' system preference will enforce clicking the button
to continue

This patch also confirms a transfer when item already has a transfer and only options are Confirm/Print because the transfer already exists

To test:
1 - Disable TransfersBlockCirc system preference
2 - Manually transfer an item from branch A to branch B
3 - Check in the item at branch A
4 - Dismiss modal without confirming
5 - View item on biblio details page, item not in transit
6 - Check in item, confirm transfer
7 - Note item in transit on details page
8 - Check in the item at branch C
9 - Dismiss modal without confirm
10 - View item on biblio detail, not in transit
11 - Checkin at A, cancel transfer
12 - Apply patch
13 - repeat 1 - 4
14 - Confirm item appears in transit
15 - Check in at branch C, dismiss modal
16 - Confirm item in transit

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
installer/data/mysql/atomicupdate/bug_29792_add_AutomaticConfirmTransfer_preference.pl [new file with mode: 0755]
installer/data/mysql/mandatory/sysprefs.sql
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt

diff --git a/installer/data/mysql/atomicupdate/bug_29792_add_AutomaticConfirmTransfer_preference.pl b/installer/data/mysql/atomicupdate/bug_29792_add_AutomaticConfirmTransfer_preference.pl
new file mode 100755 (executable)
index 0000000..5bda1b1
--- /dev/null
@@ -0,0 +1,16 @@
+use Modern::Perl;
+
+return {
+    bug_number => "29792",
+    description => "Add AutomaticConfirmTransfer system preference",
+    up => sub {
+        my ($args) = @_;
+        my ($dbh, $out) = @$args{qw(dbh out)};
+        $dbh->do(q{
+            INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
+            ('AutomaticConfirmTransfer','0',NULL,'Defines whether transfers should be automatically confirmed at checkin if modal dismissed','YesNo')
+        });
+        # Print useful stuff here
+        say $out "AutomaticConfirmTransfer system preference added";
+    },
+};
index 37e3c72..21dfacb 100644 (file)
@@ -81,6 +81,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
 ('AutoShareWithMana','subscription','','defines datas automatically shared with mana','multiple'),
 ('AutoLocation','0',NULL,'If ON, IP authentication is enabled, blocking access to the staff interface from unauthorized IP addresses','YesNo'),
 ('AutomaticItemReturn','1',NULL,'If ON, Koha will automatically set up a transfer of this item to its homebranch','YesNo'),
+('AutomaticWrongTransfer','0',NULL,'Defines whether transfers should be automatically confirmed at checkin if modal dismissed','YesNo'),
 ('autoMemberNum','0','','If ON, patron number is auto-calculated','YesNo'),
 ('AutoRemoveOverduesRestrictions','0',NULL,'Defines whether an OVERDUES debarment should be lifted automatically if all overdue items are returned by the patron.','YesNo'),
 ('AutoRenewalNotices','cron','cron|preferences|never','How should Koha determine whether to end autorenewal notices','Choice'),
index 10fe95c..3a93e77 100644 (file)
@@ -658,6 +658,12 @@ Circulation:
                   0: "Don't block"
             - staff from continuing to checkin items when a transfer is triggered.
         -
+            - pref: AutomaticConfirmTransfer
+              choices:
+                  1: "Do"
+                  0: "Don't"
+            - automatically confirm a transfer when the modal is dismissed without clicking 'Yes'.
+        -
             - pref: StoreLastBorrower
               default: 0
               choices:
index df75c72..3f812ef 100644 (file)
                 window.open("/cgi-bin/koha/members/printslip.pl?borrowernumber=" + borrowernumber + "&amp;print=checkinslip", "printwindow");
             });
 
+            [% IF ( !(Koha.Preference('TransfersBlockCirc')) && Koha.Preference('AutomaticConfirmTransfer') ) %]
+                $("#wrong-transfer-modal").on('hidden.bs.modal',function(){
+                    $("#wrongtransferform").submit();
+                });
+                [% IF (transfer) %]
+                    $("#item-transfer-modal").on('hidden.bs.modal',function(){
+                        $("#mainform").submit();
+                    });
+                [% END %]
+            [% END %]
         });
     </script>
 [% END %]