Bug 18264 - Course reserves - use itemnumber for editing existing reserve items
authorNick Clemens <nick@bywatersolutions.com>
Tue, 14 Mar 2017 14:16:09 +0000 (14:16 +0000)
committerBrendan A Gallagher <brendan@bywatersolutions.com>
Wed, 22 Mar 2017 19:04:43 +0000 (19:04 +0000)
This patch alters the crouse reserves module to use itemnumber as the
lookup method for existing reserves as opposed to barcode

To test:
1 - Apply patch
2 - Add some items to a course reserves - all should work as expected
3 - Delete the barcode for an item on reserve
4 - Note the edit link still resolves to the correct item

Followed test plan, works as expected.
Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
course_reserves/add_items.pl
koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt

index bcfadc7..ef8605f 100755 (executable)
@@ -31,12 +31,13 @@ use C4::CourseReserves qw(GetCourse GetCourseItem GetCourseReserve ModCourseItem
 
 my $cgi = new CGI;
 
-my $action    = $cgi->param('action')    || '';
-my $course_id = $cgi->param('course_id') || '';
-my $barcode   = $cgi->param('barcode')   || '';
-my $return    = $cgi->param('return')    || '';
+my $action       = $cgi->param('action')       || '';
+my $course_id    = $cgi->param('course_id')    || '';
+my $barcode      = $cgi->param('barcode')      || '';
+my $return       = $cgi->param('return')       || '';
+my $itemnumber   = ($cgi->param('itemnumber') && $action eq 'lookup') ? $cgi->param('itemnumber') : '';
 
-my $item = GetBiblioFromItemNumber( undef, $barcode );
+my $item = GetBiblioFromItemNumber( $itemnumber, $barcode );
 
 my $step = ( $action eq 'lookup' && $item ) ? '2' : '1';
 
@@ -49,8 +50,9 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         flagsrequired   => { coursereserves => 'add_reserves' },
     }
 );
-$template->param( ERROR_BARCODE_NOT_FOUND => $barcode )
-  unless ( $barcode && $item && $action eq 'lookup' );
+my $inumber = $itemnumber ? "<blank> (itemnumber:$itemnumber)" : "";
+$template->param( ERROR_BARCODE_NOT_FOUND => $barcode . $inumber )
+  unless ( $barcode && !$itemnumber && $item && $action eq 'lookup' );
 
 $template->param( course => GetCourse($course_id) );
 
index 9360706..7ab27d8 100644 (file)
                             [% IF CAN_user_coursereserves_add_reserves || CAN_user_coursereserves_delete_reserves %]
                                 <td class="actions">
                                     [% IF CAN_user_coursereserves_add_reserves %]
-                                        <a class="btn btn-default btn-xs" href="add_items.pl?course_id=[% course.course_id %]&amp;barcode=[% cr.item.barcode %]&amp;action=lookup&amp;return=[% course.course_id %]"><i class="fa fa-pencil"></i> Edit</a>
+                                        <a class="btn btn-default btn-xs" href="add_items.pl?course_id=[% course.course_id %]&amp;itemnumber=[% cr.item.itemnumber %]&amp;action=lookup&amp;return=[% course.course_id %]"><i class="fa fa-pencil"></i> Edit</a>
                                     [% END %]
 
                                     [% IF CAN_user_coursereserves_delete_reserves %]