Bug 12448: Ask for confirmation when checking out an item with rental fees
authormbeaulieu <mbeaulieu@inlibro.com>
Tue, 29 Jul 2014 20:20:39 +0000 (16:20 -0400)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 7 Nov 2014 14:33:43 +0000 (11:33 -0300)
Sponsored-by: Ville de Victoriaville, QC
Confirmation box contents:

"Please confirm checkout"
"-Rental charge for this item: n"
[Yes, check out (Y)] [No, Don't Check Out (N)]

Test case A: Confirm checkout
1) Go to checkout user "X"'s checkout page.
2) Enter barcode for an item with rental fees.
3) Click the "Check out" button.
4) Confirmation box appears.
5) Click on the "Yes" button.
6) Item is added to checkout list.
7) Fees are added to the patron's account.

Test case B: Decline checkout
1) Go to checkout user "X"'s checkout page.
2) Enter barcode for an item with rental fees.
3) Click the "Check out" button.
4) Confirmation box appears.
5) Click the "No" button.
6) Checkout page goes back to its initial state.
7) Patron has no item checked out and no fees to pay.

Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
With the system preference RentalFeesCheckoutConfirmation
set to "don't ask" there is no change in behaviour.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
C4/Circulation.pm
installer/data/mysql/sysprefs.sql
installer/data/mysql/updatedatabase.pl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt

index 4597db9..fb5b82f 100644 (file)
@@ -919,12 +919,23 @@ sub CanBookBeIssued {
               if ( $borrower->{'branchcode'} ne $userenv->{branch} );
         }
     }
+    #
+    # CHECK IF THERE IS RENTAL CHARGES. RENTAL MUST BE CONFIRMED BY THE BORROWER
+    #
+    my $rentalConfirmation = C4::Context->preference("RentalFeesCheckoutConfirmation");
+
+    if ( $rentalConfirmation ){
+        my ($rentalCharge) = GetIssuingCharges( $item->{'itemnumber'}, $borrower->{'borrowernumber'} );
+        if ( $rentalCharge ){
+            $rentalCharge = sprintf("%.02f", $rentalCharge);
+            $needsconfirmation{RENTALCHARGE} = $rentalCharge;
+        }
+    }
 
     #
     # CHECK IF BOOK ALREADY ISSUED TO THIS BORROWER
     #
-    if ( $issue->{borrowernumber} && $issue->{borrowernumber} eq $borrower->{'borrowernumber'} )
-    {
+    if ( $issue->{borrowernumber} && $issue->{borrowernumber} eq $borrower->{'borrowernumber'} ){
 
         # Already issued to current borrower. Ask whether the loan should
         # be renewed.
index c0cd8dd..d0a9c6d 100644 (file)
@@ -339,6 +339,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
 ('RenewalPeriodBase','date_due','date_due|now','Set whether the renewal date should be counted from the date_due or from the moment the Patron asks for renewal ','Choice'),
 ('RenewalSendNotice','0','',NULL,'YesNo'),
 ('RenewSerialAddsSuggestion','0',NULL,'If ON, adds a new suggestion at serial subscription renewal','YesNo'),
+('RentalFeesCheckoutConfirmation', '0', NULL , 'Allow user to confirm when checking out an item with rental fees.', 'YesNo'),
 ('RentalsInNoissuesCharge','1',NULL,'Rental charges block checkouts (added to noissuescharge).','YesNo'),
 ('RequestOnOpac','1',NULL,'If ON, globally enables patron holds on OPAC','YesNo'),
 ('ReservesControlBranch','PatronLibrary','ItemHomeLibrary|PatronLibrary','Branch checked for members reservations rights','Choice'),
index d4d76fb..037c2e7 100755 (executable)
@@ -9017,6 +9017,17 @@ if ( CheckVersion($DBversion) ) {
     SetVersion($DBversion);
 }
 
+
+
+$DBversion = "XXX";
+if ( CheckVersion($DBversion) ) {
+    $dbh->do(q|
+        INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES('RentalFeesCheckoutConfirmation', '0', NULL , 'Allow user to confirm when checking out an item with rental fees.', 'YesNo')
+    |);
+    print "Upgrade to $DBversion done (Bug 11169 - Add RentalFeesCheckoutConfirmation syspref)\n";
+    SetVersion($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
index 74b9b68..23cd3ea 100644 (file)
@@ -340,7 +340,14 @@ Circulation:
                   block: Block
                   noblock: "Don't block"
                   confirmation: Ask for confirmation
-            - when checking out to a borrower that has overdues outstanding        
+            - when checking out to a borrower that has overdues outstanding
+        -
+            - "When checking out an item with rental fees, "
+            - pref: RentalFeesCheckoutConfirmation
+              choices:
+                  yes: ask
+                  no: "do not ask"
+            - "for confirmation."
         -
             - On checkin route the returned item to
             - pref: HomeOrHoldingBranchReturn
index 80b1355..7b0a070 100644 (file)
@@ -181,7 +181,11 @@ $(document).ready(function() {
 [% END %]
 
 [% IF ( DEBT ) %]
-    <li>The patron has a debt of [% DEBT %]</li>
+    <li>The patron has a debt of [% DEBT %].</li>
+[% END %]
+
+[% IF ( RENTALCHARGE ) %]
+    <li>Rental charge for this item: [% RENTALCHARGE %]</li>
 [% END %]
 
 [% IF ( RENEW_ISSUE ) %]