@@ -, +, @@ --- 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.

--