@@ -, +, @@
---
C4/Circulation.pm | 12 +++++++++---
circ/returns.pl | 3 +++
installer/data/mysql/sysprefs.sql | 1 +
installer/data/mysql/updatedatabase.pl | 7 +++++++
.../en/modules/admin/preferences/circulation.pref | 6 ++++++
.../intranet-tmpl/prog/en/modules/circ/returns.tt | 5 +++++
6 files changed, 31 insertions(+), 3 deletions(-)
--- a/C4/Circulation.pm
+++ a/C4/Circulation.pm
@@ -1069,7 +1069,9 @@ sub AddIssue {
## If item was lost, it has now been found, reverse any list item charges if neccessary.
if ( $item->{'itemlost'} ) {
- _FixAccountForLostAndReturned( $item->{'itemnumber'}, undef, $item->{'barcode'} );
+ if ( C4::Context->preference('RefundLostItemFeeOnReturn' ) ) {
+ _FixAccountForLostAndReturned( $item->{'itemnumber'}, undef, $item->{'barcode'} );
+ }
}
ModItem({ issues => $item->{'issues'},
@@ -1668,9 +1670,13 @@ sub AddReturn {
}
# fix up the accounts.....
- if ($item->{'itemlost'}) {
- _FixAccountForLostAndReturned($item->{'itemnumber'}, $borrowernumber, $barcode); # can tolerate undef $borrowernumber
+ if ( $item->{'itemlost'} ) {
$messages->{'WasLost'} = 1;
+
+ if ( C4::Context->preference('RefundLostItemFeeOnReturn' ) ) {
+ _FixAccountForLostAndReturned($item->{'itemnumber'}, $borrowernumber, $barcode); # can tolerate undef $borrowernumber
+ $messages->{'LostItemFeeRefunded'} = 1;
+ }
}
# fix up the overdues in accounts...
--- a/circ/returns.pl
+++ a/circ/returns.pl
@@ -433,6 +433,9 @@ foreach my $code ( keys %$messages ) {
elsif ( $code eq 'WasLost' ) {
$err{waslost} = 1;
}
+ elsif ( $code eq 'LostItemFeeRefunded' ) {
+ $err{LostItemFeeRefunded} = 1;
+ }
elsif ( $code eq 'ResFound' ) {
; # FIXME... anything to do here?
}
--- a/installer/data/mysql/sysprefs.sql
+++ a/installer/data/mysql/sysprefs.sql
@@ -375,3 +375,4 @@ INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES (
INSERT INTO systempreferences (variable,value,explanation,type) VALUES('EnableBorrowerFiles','0','If enabled, allows librarians to upload and attach arbitrary files to a borrower record.','YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UpdateTotalIssuesOnCirc','0','Whether to update the totalissues field in the biblio on each circ.',NULL,'YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('IntranetSlipPrinterJS','','Use this JavaScript for printing slips. Define at least function printThenClose(). For use e.g. with Firefox PlugIn jsPrintSetup, see http://jsprintsetup.mozdev.org/','','Free');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('RefundLostItemFeeOnReturn', '1', 'If enabled, the lost item fee charged to a borrower will be refunded when the lst item is returned.', NULL, 'YesNo');
--- a/installer/data/mysql/updatedatabase.pl
+++ a/installer/data/mysql/updatedatabase.pl
@@ -5536,6 +5536,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
SetVersion($DBversion);
}
+$DBversion = "3.09.00.XXX";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('RefundLostItemFeeOnReturn', '1', 'If enabled, the lost item fee charged to a borrower will be refunded when the lst item is returned.', NULL, 'YesNo')");
+ print "Upgrade to $DBversion done ( Add system preference RefundLostItemFeeOnReturn )\n";
+ SetVersion($DBversion);
+}
+
=head1 FUNCTIONS
=head2 TableExists($table)
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -393,6 +393,12 @@ Circulation:
test: Calculate (but only for mailing to the admin)
production: Calculate and charge
- fines (when misc/cronjobs/fines.pl
is being run).
+ -
+ - pref: RefundLostItemFeeOnReturn
+ choices:
+ yes: Refund
+ no: "Don't refund"
+ - lost item fees charged to a borrower when the lost item is returned.
Self Checkout:
-
- pref: ShowPatronImageInWebBasedSelfCheck
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
@@ -333,6 +333,11 @@ $(document).ready(function () {
[% END %]
[% IF ( errmsgloo.waslost ) %]
Item was lost, now found.
+ [% IF ( errmsgloo.LostItemFeeRefunded ) %] +A refund has been applied to the borrowing patron's account.
+ [% ELSE %] +Any lost item fees for this item will remain on the patron's account
+ [% END %] [% END %] [% IF ( errmsgloo.withdrawn ) %]Item is withdrawn.
--