X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=rotating_collections%2FaddItems.pl;h=6cde9aebceee5806bdb3c6e4161deb7b3e5873b3;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=ae7070f8660ea83778f69a576d92384eadd59086;hpb=16f1fffdd1f5d1c97db0bf664f83496864b7e24d;p=srvgit diff --git a/rotating_collections/addItems.pl b/rotating_collections/addItems.pl index ae7070f866..6cde9aebce 100755 --- a/rotating_collections/addItems.pl +++ b/rotating_collections/addItems.pl @@ -2,100 +2,104 @@ # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . # -use strict; -#use warnings; FIXME - Bug 2505 -require Exporter; +use Modern::Perl; -use C4::Output; -use C4::Auth; +use C4::Output qw( output_html_with_http_headers ); +use C4::Auth qw( get_template_and_user ); use C4::Context; use C4::RotatingCollections; -use C4::Items; - -use CGI; - -my $query = new CGI; -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "rotating_collections/addItems.tmpl", - query => $query, - type => "intranet", - authnotrequired => 0, - flagsrequired => {parameters => 1}, - debug => 1, - }); - -if ( $query->param('action') eq 'addItem' ) { - ## Add the given item to the collection - my $colId = $query->param('colId'); - my $barcode = $query->param('barcode'); - my $removeItem = $query->param('removeItem'); - my $itemnumber = GetItemnumberFromBarcode( $barcode ); - - my ( $success, $errorCode, $errorMessage ); - - if ( ! $removeItem ) { - ( $success, $errorCode, $errorMessage ) = AddItemToCollection( $colId, $itemnumber ); - - $template->param( - previousActionAdd => 1, - addedBarcode => $barcode, - ); - - if ( $success ) { - $template->param( addSuccess => 1 ); - } else { - $template->param( addFailure => 1 ); - $template->param( failureMessage => $errorMessage ); + +use Koha::Items; + +use CGI qw ( -utf8 ); + +my $query = CGI->new; + +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "rotating_collections/addItems.tt", + query => $query, + type => "intranet", + flagsrequired => { tools => 'rotating_collections' }, } - } else { - ## Remove the given item from the collection - ( $success, $errorCode, $errorMessage ) = RemoveItemFromCollection( $colId, $itemnumber ); - - $template->param( - previousActionRemove => 1, - removedBarcode => $barcode, - removeChecked => 1, - ); - - if ( $success ) { - $template->param( removeSuccess => 1 ); - } else { - $template->param( removeFailure => 1 ); - $template->param( failureMessage => $errorMessage ); +); + +if ( defined $query->param('action') and + $query->param('action') eq 'addItem' ) { + ## Add the given item to the collection + my $colId = $query->param('colId'); + my $barcode = $query->param('barcode'); + my $removeItem = $query->param('removeItem'); + my $item = Koha::Items->find({barcode => $barcode}); + my $itemnumber = $item ? $item->itemnumber : undef; + + my ( $success, $errorCode, $errorMessage ); + + $template->param( barcode => $barcode ); + + if ( !$removeItem ) { + ( $success, $errorCode, $errorMessage ) = + AddItemToCollection( $colId, $itemnumber ); + + $template->param( + previousActionAdd => 1, + ); + + if ($success) { + $template->param( addSuccess => 1 ); + } + else { + $template->param( addFailure => 1 ); + $template->param( failureMessage => $errorMessage ); + } } + else { + ## Remove the given item from the collection + ( $success, $errorCode, $errorMessage ) = + RemoveItemFromCollection( $colId, $itemnumber ); - } + $template->param( + previousActionRemove => 1, + removeChecked => 1, + ); + + if ($success) { + $template->param( removeSuccess => 1 ); + } + else { + $template->param( removeFailure => 1 ); + $template->param( failureMessage => $errorMessage ); + } + + } } -my ( $colId, $colTitle, $colDescription, $colBranchcode ) = GetCollection( $query->param('colId') ); -my $collectionItems = GetItemsInCollection( $colId ); -if ( $collectionItems ) { - $template->param( collectionItemsLoop => $collectionItems ); +my ( $colId, $colTitle, $colDescription, $colBranchcode ) = + GetCollection( scalar $query->param('colId') ); +my $collectionItems = GetItemsInCollection($colId); +if ($collectionItems) { + $template->param( collectionItemsLoop => $collectionItems ); } $template->param( - intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"), - intranetstylesheet => C4::Context->preference("intranetstylesheet"), - IntranetNav => C4::Context->preference("IntranetNav"), - - colId => $colId, - colTitle => $colTitle, - colDescription => $colDescription, - colBranchcode => $colBranchcode, - ); + colId => $colId, + colTitle => $colTitle, + colDescription => $colDescription, + colBranchcode => $colBranchcode, +); output_html_with_http_headers $query, $cookie, $template->output;