[Koha-patches] [PATCH] Bug 5691 - Delete all items respects independentbranches system preferences
Chris Cormack
chrisc at catalyst.net.nz
Fri Feb 4 01:01:00 CET 2011
Squashed commit of the following:
commit 66cdb8804136803a3f626d183c8f192f61f3c7b1
Author: Chris Cormack <chrisc at catalyst.net.nz>
Date: Fri Feb 4 12:55:10 2011 +1300
Bug 5691: Updating copyright statement
commit 79ef6c269afc9c644c51709a7657542a0fc6d7d6
Author: Chris Cormack <chrisc at catalyst.net.nz>
Date: Fri Feb 4 12:52:13 2011 +1300
Bug 5691 - Fixing a syntax error and tidying up some formatting
commit a66485dba113c05ed51a3b4ff19f788e335aa1f6
Author: Henri-Damien LAURENT <henridamien.laurent at biblibre.com>
Date: Tue Oct 5 17:23:55 2010 +0200
(MT #1365) Delete all items
Using DelItemCheck in cataloguing/additem.pl
when deleting all items
commit fe845fd48ab22ff82ad6d8971c468c327b49f3c4
Author: Christophe Croullebois <christophe.croullebois at biblibre.com>
Date: Wed Sep 22 11:39:28 2010 +0200
(MT #1365) Delete all items
Now if IndependantBranches is on and a user try to delete all items, only the items of his branch will be deleted.
A message explain this fact.
---
C4/Items.pm | 41 ++++++++++++-------
cataloguing/additem.pl | 30 ++++++++++----
.../prog/en/modules/cataloguing/additem.tmpl | 1 +
3 files changed, 49 insertions(+), 23 deletions(-)
diff --git a/C4/Items.pm b/C4/Items.pm
index 4ab385c..ecc52c2 100644
--- a/C4/Items.pm
+++ b/C4/Items.pm
@@ -1,6 +1,7 @@
package C4::Items;
# Copyright 2007 LibLime, Inc.
+# Parts Copyright Biblibre 2010
#
# This file is part of Koha.
#
@@ -2040,21 +2041,31 @@ sub DelItemCheck {
my $sth=$dbh->prepare("select * from issues i where i.itemnumber=?");
$sth->execute($itemnumber);
- my $onloan=$sth->fetchrow;
-
- if ($onloan){
- $error = "book_on_loan"
- }else{
- # check it doesnt have a waiting reserve
- $sth=$dbh->prepare("SELECT * FROM reserves WHERE (found = 'W' or found = 'T') AND itemnumber = ?");
- $sth->execute($itemnumber);
- my $reserve=$sth->fetchrow;
- if ($reserve){
- $error = "book_reserved";
- }else{
- DelItem($dbh, $biblionumber, $itemnumber);
- return 1;
- }
+ my $item = GetItem($itemnumber);
+ my $onloan = $sth->fetchrow;
+ if ($onloan) {
+ $error = "book_on_loan";
+ }
+ elsif (C4::Context->preference("IndependantBranches") and (C4::Context->userenv->{branch} ne $item->{C4::Context->preference("HomeOrHoldingBranch")||'homebranch'})){
+ $error = "not_same_branch";
+ }
+ else {
+ if ($onloan){
+ $error = "book_on_loan"
+ }
+ else {
+ # check it doesnt have a waiting reserve
+ $sth=$dbh->prepare("SELECT * FROM reserves WHERE (found = 'W' or found = 'T') AND itemnumber = ?");
+ $sth->execute($itemnumber);
+ my $reserve=$sth->fetchrow;
+ if ($reserve) {
+ $error = "book_reserved";
+ }
+ else {
+ DelItem($dbh, $biblionumber, $itemnumber);
+ return 1;
+ }
+ }
}
return $error;
}
diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index b79e7f5..7317698 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -435,14 +435,28 @@ if ($op eq "additem") {
} elsif ($op eq "delallitems") {
#-------------------------------------------------------------------------------
my @biblioitems = &GetBiblioItemByBiblioNumber($biblionumber);
- foreach my $biblioitem (@biblioitems){
- my $items = &GetItemsByBiblioitemnumber($biblioitem->{biblioitemnumber});
-
- foreach my $item (@$items){
- # FIXME although it won't delete items that have loans
- # or waiting holds on them, should explicitly tell operator
- # about items that are not deleted
- &DelItemCheck($dbh,$biblionumber,$item->{itemnumber});
+ my $errortest=0;
+ my $itemfail;
+ foreach my $biblioitem (@biblioitems) {
+ my $items = &GetItemsByBiblioitemnumber( $biblioitem->{biblioitemnumber} );
+
+ foreach my $item (@$items) {
+ $error =&DelItemCheck( $dbh, $biblionumber, $item->{itemnumber} );
+ $itemfail =$item;
+ if($error == 1){
+ next
+ }
+ else {
+ push @errors,$error;
+ $errortest++
+ }
+ }
+ if($errortest > 0){
+ $nextop="additem";
+ }
+ else {
+ print $input->redirect("/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=$biblionumber");
+ exit;
}
}
#-------------------------------------------------------------------------------
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
index d0be875..6929787 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
@@ -191,6 +191,7 @@ function set_to_today(id, force) {
<!-- TMPL_IF NAME="no_next_barcode" --><div class="dialog alert"><strong>Error saving items</strong>: Unable to automatically determine values for barcodes. No item has been inserted.</div><!-- /TMPL_IF -->
<!-- TMPL_IF NAME="book_on_loan" --><div class="dialog alert"><strong>Cannot Delete</strong>: item is checked out.</div><!-- /TMPL_IF -->
<!-- TMPL_IF NAME="book_reserved" --><div class="dialogalert"><strong>Cannot Delete</strong>: item has a waiting hold.</div><!-- /TMPL_IF -->
+<!-- TMPL_IF Name="not_same_branch" --><div class="dialog alert"><strong>Cannot Delete</strong>: branch of item is not yours.</div><!-- /TMPL_IF -->
<div id="cataloguing_additem_itemlist">
<!-- TMPL_IF name="item_loop" -->
--
1.7.1
More information about the Koha-patches
mailing list