X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=rotating_collections%2FaddItems.pl;h=4c79328f3f472b09ef1db1f59a047272ae6c7b6e;hb=7c7300b2d93124f2158cc96c4b463f6fb08c3f04;hp=ae7070f8660ea83778f69a576d92384eadd59086;hpb=6be9d2b27dd47c859eb6ab0cfd873b2059206986;p=koha.git diff --git a/rotating_collections/addItems.pl b/rotating_collections/addItems.pl index ae7070f866..4c79328f3f 100755 --- a/rotating_collections/addItems.pl +++ b/rotating_collections/addItems.pl @@ -2,23 +2,21 @@ # 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; @@ -26,76 +24,85 @@ use C4::Context; use C4::RotatingCollections; use C4::Items; -use CGI; +use Koha::Items; + +use CGI qw ( -utf8 ); 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 ); + +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "rotating_collections/addItems.tt", + query => $query, + type => "intranet", + authnotrequired => 0, + flagsrequired => { tools => 'rotating_collections' }, + debug => 1, } - } 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;