If the syspref 'AllowNotForLoanOverride'(YESNO) is set to YES, the librarian is
able to force a loan on an item set as "not for
loan".
If the item is not for loan and the syspref is set to YES, koha will ask to the
librarian if he really want to check-out it, else
do nothing.
---
C4/Circulation.pm | 39 +++++++++++---------
installer/data/mysql/en/mandatory/sysprefs.sql | 1 +
.../1-Obligatoire/unimarc_standard_systemprefs.sql | 3 +-
installer/data/mysql/updatedatabase.pl | 7 ++++
4 files changed, 32 insertions(+), 18 deletions(-)
diff --git a/C4/Circulation.pm b/C4/Circulation.pm
index c79ca05..e1b21d8 100644
--- a/C4/Circulation.pm
+++ b/C4/Circulation.pm
@@ -731,27 +731,32 @@ sub CanBookBeIssued {
unless ( $item->{barcode} ) {
$issuingimpossible{UNKNOWN_BARCODE} = 1;
}
+
if ( $item->{'notforloan'}
&& $item->{'notforloan'} > 0 )
{
- $issuingimpossible{NOT_FOR_LOAN} = 1;
+ if(!C4::Context->preference("AllowNotForLoanOverride")){
+ $issuingimpossible{NOT_FOR_LOAN} = 1;
+ }else{
+ $needsconfirmation{NOT_FOR_LOAN_FORCING} = 1;
+ }
+ }
+ elsif ( !$item->{'notforloan'} ){
+ # we have to check itemtypes.notforloan also
+ if (C4::Context->preference('item-level_itypes')){
+ # this should probably be a subroutine
+ my $sth = $dbh->prepare("SELECT notforloan FROM itemtypes WHERE
itemtype = ?");
+ $sth->execute($item->{'itemtype'});
+ my $notforloan=$sth->fetchrow_hashref();
+ $sth->finish();
+ if ($notforloan->{'notforloan'} == 1){
+ $issuingimpossible{NOT_FOR_LOAN} = 1;
+ }
+ }
+ elsif ($biblioitem->{'notforloan'} == 1){
+ $issuingimpossible{NOT_FOR_LOAN} = 1;
+ }
}
- elsif ( !$item->{'notforloan'} ){
- # we have to check itemtypes.notforloan also
- if (C4::Context->preference('item-level_itypes')){
- # this should probably be a subroutine
- my $sth = $dbh->prepare("SELECT notforloan FROM
itemtypes WHERE itemtype = ?");
- $sth->execute($item->{'itemtype'});
- my $notforloan=$sth->fetchrow_hashref();
- $sth->finish();
- if ($notforloan->{'notforloan'} == 1){
- $issuingimpossible{NOT_FOR_LOAN} = 1;
- }
- }
- elsif ($biblioitem->{'notforloan'} == 1){
- $issuingimpossible{NOT_FOR_LOAN} = 1;
- }
- }
if ( $item->{'wthdrawn'} && $item->{'wthdrawn'} == 1 )
{
$issuingimpossible{WTHDRAWN} = 1;
diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql
b/installer/data/mysql/en/mandatory/sysprefs.sql
index 27a5736..d38484e 100644
--- a/installer/data/mysql/en/mandatory/sysprefs.sql
+++ b/installer/data/mysql/en/mandatory/sysprefs.sql
@@ -213,3 +213,4 @@ INSERT INTO `systempreferences`
(variable,value,options,explanation,type) VALUES
INSERT INTO systempreferences (variable,value,explanation,options,type)
VALUES('AllowRenewalLimitOverride', '0', 'if ON, allows renewal limits to be
overridden on the circulation screen',NULL,'YesNo');
INSERT INTO `systempreferences` (variable,value,options,explanation,type)
VALUES ('OPACDisplayRequestPriority','0','','Show patrons the priority level on
holds in the OPAC','YesNo');
INSERT INTO `systempreferences` ( `variable` , `value` , `options` ,
`explanation` , `type` ) VALUES ( 'UseBranchTransferLimits', '0', '', 'If ON,
Koha will will use the rules defined in branch_transfer_limits to decide if an
item transfer should be allowed.', 'YesNo');
+INSERT INTO `systempreferences` ( `variable` , `value` , `options` ,
`explanation` , `type` ) VALUES ( 'AllowNotForLoanOverride', '0', '', 'If ON,
Koha will allow the librarian to loan a not for loan item.', 'YesNo');
\ No newline at end of file
diff --git
a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
index 97a9573..2164818 100644
--- a/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
+++ b/installer/data/mysql/fr-FR/1-Obligatoire/unimarc_standard_systemprefs.sql
@@ -213,5 +213,6 @@ INSERT INTO `systempreferences`
(variable,value,options,explanation,type) VALUES
INSERT INTO `systempreferences` (variable,value,options,explanation,type)
VALUES('OpacSuppression', '0', '', 'Turn ON the OPAC Suppression feature,
requires further setup, ask your system administrator for details', 'YesNo');
INSERT INTO `systempreferences` (variable,value,options,explanation,type)
VALUES ('SMSSendDriver','','','Détermine le pilote utilisé par SMS::Send pour
envoyer des SMS.','free');
INSERT INTO systempreferences (variable,value,explanation,options,type)
VALUES('AllowRenewalLimitOverride', '0', "S'il est activé, autorise le
dépassement des limites du renouvellement sur la page de
circulation",NULL,'YesNo');
-INSERT INTO `systempreferences` (variable,value,options,explanation,type)
VALUES ('OPACDisplayRequestPriority','0','','Afficher l\'ordre des réservation
pour les adhérents � l\'opac','YesNo');
+INSERT INTO `systempreferences` (variable,value,options,explanation,type)
VALUES ('OPACDisplayRequestPriority','0','','Afficher l\'ordre des réservation
pour les adhérents � l\'opac','YesNo');
INSERT INTO `systempreferences` ( `variable` , `value` , `options` ,
`explanation` , `type` ) VALUES ( 'UseBranchTransferLimits', '0', '', 'If ON,
Koha will will use the rules defined in branch_transfer_limits to decide if an
item transfer should be allowed.', 'YesNo');
+INSERT INTO `systempreferences` ( `variable` , `value` , `options` ,
`explanation` , `type` ) VALUES ( 'AllowNotForLoanOverride', '0', '', 'If ON,
Koha will allow the librarian to loan a not for loan item.', 'YesNo');
\ No newline at end of file
diff --git a/installer/data/mysql/updatedatabase.pl
b/installer/data/mysql/updatedatabase.pl
index f787eee..8a13a22 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -2123,6 +2123,13 @@ if (C4::Context->preference("Version") <
TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
+$DBversion = "3.01.00.015";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO `systempreferences` ( `variable` , `value` ,
`options` , `explanation` , `type` ) VALUES ( 'AllowNotForLoanOverride', '0',
'', 'If ON, Koha will allow the librarian to loan a not for loan item.',
'YesNo')");
+ print "Upgrade to $DBversion done (added AllowNotForLoanOverride system
preference)\n";
+ SetVersion ($DBversion);
+}
+
=item DropAllForeignKeys($table)
Drop all foreign keys of the table $table
--
1.5.6.3
_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches