Bug 10748: Add the ability to block return of lost items
Mimicking what does BlockReturnOfWithdrawnItems we can easily add a new syspref to block return of lost items. This patch adds BlockReturnOfLostItems, if set to 'Block' a item marked as lost cannot be checked in. Test plan: 1/ Set BlockReturnOfLostItems to 'Do not block' 2/ Check an item out to a patron 3/ Edit the item and mark it as lost (*) 4/ Check the item in => The item is checked in 5/ Edit the item and remove the lost status 6/ Check the item out again 7/ Edit the item and mark it as lost (*) 8/ Check the item in => The item is not checked in (*) There are 2 ways to mark an item lost: - From the item list view (/catalogue/moredetail.pl?biblionumber=42) If you set the lost status from this form, the issue will be returned Maybe this should be optional (?) - From the edit items form (/cataloguing/additem.pl?biblionumber=42) It is the form you must use to not mark the issue returned. Sponsored-by: BULAC - http://www.bulac.fr/ Signed-off-by: Dominic Pichette <dominic@inlibro.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
ff82c9aadc
commit
529793d4ae
|
|
@ -1911,6 +1911,10 @@ sub AddReturn {
|
|||
$doreturn = 0 if C4::Context->preference("BlockReturnOfWithdrawnItems");
|
||||
}
|
||||
|
||||
if ( $item->{itemlost} and C4::Context->preference("BlockReturnOfLostItems") ) {
|
||||
$doreturn = 0;
|
||||
}
|
||||
|
||||
# case of a return of document (deal with issues and holdingbranch)
|
||||
my $today = DateTime->now( time_zone => C4::Context->tz() );
|
||||
|
||||
|
|
@ -1988,8 +1992,7 @@ sub AddReturn {
|
|||
# fix up the accounts.....
|
||||
if ( $item->{'itemlost'} ) {
|
||||
$messages->{'WasLost'} = 1;
|
||||
|
||||
if ( $item->{'itemlost'} ) {
|
||||
unless ( C4::Context->preference("BlockReturnOfLostItems") ) {
|
||||
if (
|
||||
Koha::RefundLostItemFeeRules->should_refund(
|
||||
{
|
||||
|
|
@ -2000,7 +2003,8 @@ sub AddReturn {
|
|||
)
|
||||
)
|
||||
{
|
||||
_FixAccountForLostAndReturned( $item->{'itemnumber'}, $borrowernumber, $barcode );
|
||||
_FixAccountForLostAndReturned( $item->{'itemnumber'},
|
||||
$borrowernumber, $barcode );
|
||||
$messages->{'LostItemFeeRefunded'} = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ sub BuildReport {
|
|||
z3950NormalizeAuthor
|
||||
SpineLabelAutoPrint
|
||||
SpineLabelShowPrintOnBibDetails
|
||||
BlockReturnOfLostItems
|
||||
BlockReturnOfWithdrawnItems
|
||||
CalculateFinesOnReturn
|
||||
AgeRestrictionOverride
|
||||
|
|
|
|||
|
|
@ -505,6 +505,7 @@ foreach my $code ( keys %$messages ) {
|
|||
}
|
||||
elsif ( $code eq 'WasLost' ) {
|
||||
$err{waslost} = 1;
|
||||
$exit_required_p = 1 if C4::Context->preference("BlockReturnOfLostItems");
|
||||
}
|
||||
elsif ( $code eq 'LostItemFeeRefunded' ) {
|
||||
$template->param( LostItemFeeRefunded => 1 );
|
||||
|
|
@ -643,7 +644,6 @@ $template->param(
|
|||
forgivemanualholdsexpire => $forgivemanualholdsexpire,
|
||||
overduecharges => $overduecharges,
|
||||
AudioAlerts => C4::Context->preference("AudioAlerts"),
|
||||
BlockReturnOfWithdrawnItems => C4::Context->preference("BlockReturnOfWithdrawnItems"),
|
||||
);
|
||||
|
||||
$itemnumber = GetItemnumberFromBarcode( $barcode );
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
|
||||
INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
|
||||
('BlockReturnOfLostItems','0','0','If enabled, items that are marked as lost cannot be returned.','YesNo');
|
||||
|
|
@ -82,6 +82,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
|
|||
('BiblioDefaultView','normal','normal|marc|isbd','Choose the default detail view in the catalog; choose between normal, marc or isbd','Choice'),
|
||||
('BibtexExportAdditionalFields', '', NULL , 'Define additional BibTex tags to export from MARC records in YAML format as an associative array with either a marc tag/subfield combination as the value, or a list of tag/subfield combinations.', 'textarea'),
|
||||
('BlockExpiredPatronOpacActions','1',NULL,'Set whether an expired patron can perform opac actions such as placing holds or renew books, can be overridden on a per patron-type basis','YesNo'),
|
||||
('BlockReturnOfLostItems','0','0','If enabled, items that are marked as lost cannot be returned.','YesNo'),
|
||||
('BlockReturnOfWithdrawnItems','1','0','If enabled, items that are marked as withdrawn cannot be returned.','YesNo'),
|
||||
('BorrowerMandatoryField','surname|cardnumber',NULL,'Choose the mandatory fields for a patron\'s account','free'),
|
||||
('borrowerRelationship','father|mother','','Define valid relationships between a guarantor & a guarantee (separated by | or ,)','free'),
|
||||
|
|
|
|||
|
|
@ -472,6 +472,12 @@ Circulation:
|
|||
yes: Block
|
||||
no: "Don't block"
|
||||
- returning of items that have been withdrawn.
|
||||
-
|
||||
- pref: BlockReturnOfLostItems
|
||||
choices:
|
||||
yes: Block
|
||||
no: "Don't block"
|
||||
- returning of items that have been lost.
|
||||
-
|
||||
- pref: CalculateFinesOnReturn
|
||||
choices:
|
||||
|
|
|
|||
|
|
@ -617,20 +617,21 @@ $(document).ready(function () {
|
|||
[% END %]
|
||||
[% IF ( errmsgloo.waslost ) %]
|
||||
<p class="problem">Item was lost, now found.</p>
|
||||
[% IF ( LostItemFeeRefunded ) %]
|
||||
[% IF LostItemFeeRefunded and not Koha.Preference('BlockReturnOfLostItems') %]
|
||||
<p class="problem">A refund has been applied to the borrowing patron's account.</p>
|
||||
[% ELSIF Koha.Preference('BlockReturnOfLostItems') %]
|
||||
<h5>Cannot check in</h5>
|
||||
<p><strong>NOT CHECKED IN</strong></p>
|
||||
[% ELSE %]
|
||||
<p class="problem">Any lost item fees for this item will remain on the patron's account.</p>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% IF ( errmsgloo.withdrawn ) %]
|
||||
[% IF BlockReturnOfWithdrawnItems %]
|
||||
[% IF Koha.Preference('BlockReturnOfWithdrawnItems') %]
|
||||
<h5>Cannot check in</h5>
|
||||
<p><strong>NOT CHECKED IN</strong></p>
|
||||
<p class="problem">Item is withdrawn.</p>
|
||||
[% ELSE %]
|
||||
<p class="problem">Item is withdrawn.</p>
|
||||
[% END %]
|
||||
<p class="problem">Item is withdrawn.</p>
|
||||
[% END %]
|
||||
[% IF ( errmsgloo.debarred ) %]
|
||||
<p class="problem"><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% errmsgloo.debarborrowernumber %]">[% errmsgloo.debarname %]([% errmsgloo.debarcardnumber %])</a> is now debarred until [% errmsgloo.debarred | $KohaDates %].</p>
|
||||
|
|
|
|||
|
|
@ -380,6 +380,7 @@ sub mocking_systempreferences_to_a_set_value {
|
|||
z3950NormalizeAuthor
|
||||
SpineLabelAutoPrint
|
||||
SpineLabelShowPrintOnBibDetails
|
||||
BlockReturnOfLostItems
|
||||
BlockReturnOfWithdrawnItems
|
||||
CalculateFinesOnReturn
|
||||
AgeRestrictionOverride
|
||||
|
|
|
|||
Loading…
Reference in New Issue