X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FCourseReserves.pm;h=fac8b849e217257aa15c17aa6c2f206de8f2c4e8;hb=9d9ecdc49b4cb71aba99a7d7ca8bc89d426f7ca1;hp=061c8399257e6b96033a6a480478e8f512cd285a;hpb=580c390bda0e694d901e892b579bef442d660b5e;p=koha-ffzg.git diff --git a/C4/CourseReserves.pm b/C4/CourseReserves.pm index 061c839925..fac8b849e2 100644 --- a/C4/CourseReserves.pm +++ b/C4/CourseReserves.pm @@ -17,43 +17,42 @@ package C4::CourseReserves; use Modern::Perl; -use List::MoreUtils qw(any); +use List::MoreUtils qw( any ); use C4::Context; -use C4::Circulation qw(GetOpenIssue); use Koha::Courses; use Koha::Course::Instructors; use Koha::Course::Items; use Koha::Course::Reserves; +use Koha::Checkouts; -use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS @FIELDS); - +use vars qw(@FIELDS); +our (@ISA, @EXPORT_OK); BEGIN { require Exporter; @ISA = qw(Exporter); @EXPORT_OK = qw( - &GetCourse - &ModCourse - &GetCourses - &DelCourse + GetCourse + ModCourse + GetCourses + DelCourse - &GetCourseInstructors - &ModCourseInstructors + GetCourseInstructors + ModCourseInstructors - &GetCourseItem - &ModCourseItem + GetCourseItem + ModCourseItem - &GetCourseReserve - &ModCourseReserve - &GetCourseReserves - &DelCourseReserve + GetCourseReserve + ModCourseReserve + GetCourseReserves + DelCourseReserve - &SearchCourses + SearchCourses - &GetItemCourseReservesInfo + GetItemCourseReservesInfo ); - %EXPORT_TAGS = ( 'all' => \@EXPORT_OK ); @FIELDS = ( 'itype', 'ccode', 'homebranch', 'holdingbranch', 'location' ); } @@ -405,7 +404,11 @@ sub ModCourseInstructors { =head2 GetCourseItem { - $course_item = GetCourseItem( itemnumber => $itemnumber [, ci_id => $ci_id ); + Given one of biblionumber, itenumber, or ci_id, returns hashref of the course_items values + + $course_item = GetCourseItem( itemnumber => $itemnumber [, ci_id => $ci_id ] ); + $course_item = GetCourseItem( biblionumber => $biblionumber [, ci_id => $ci_id ]); + $course_item = GetCourseItem( ci_id => $ci_id ); =cut @@ -416,7 +419,7 @@ sub GetCourseItem { my $itemnumber = $params{'itemnumber'}; my $biblionumber = $params{'biblionumber'}; - return unless ( $itemnumber || $biblionumber || $ci_id ); + return unless ( $itemnumber xor $biblionumber xor $ci_id ); my ( $field, $value ); if ( $itemnumber ) { @@ -453,7 +456,7 @@ sub GetCourseItem { ModCourseItem( %params ); - Creates or modifies an existing course item. + Creates or modifies an existing course item. Must be passed either an itemnumber or biblionumber parameter =cut @@ -463,7 +466,7 @@ sub ModCourseItem { my $itemnumber = $params{'itemnumber'}; my $biblionumber = $params{'biblionumber'}; - return unless ($itemnumber || $biblionumber); + return unless ($itemnumber xor $biblionumber); my $course_item = $itemnumber ? GetCourseItem( itemnumber => $itemnumber ) : GetCourseItem( biblionumber => $biblionumber ); @@ -863,14 +866,14 @@ sub GetCourseReserves { if ($include_items) { foreach my $cr (@$course_reserves) { - my $item = Koha::Items->find( $cr->{itemnumber} ); - my $biblio = $cr->{itemnumber} ? $item->biblio : Koha::Biblios->find( $cr->{biblionumber} ); + my $item = Koha::Items->find( $cr->{itemnumber}, { prefetch => ['biblio','biblioitem'] }); + my $biblio = $cr->{itemnumber} ? $item->biblio : Koha::Biblios->find( $cr->{biblionumber}, { prefetch => ['biblioitem'] }); my $biblioitem = $biblio->biblioitem; $cr->{'course_item'} = GetCourseItem( ci_id => $cr->{'ci_id'} ); $cr->{'item'} = $item; $cr->{'biblio'} = $biblio; $cr->{'biblioitem'} = $biblioitem; - $cr->{'issue'} = GetOpenIssue( $cr->{'itemnumber'} ); + $cr->{'issue'} = Koha::Checkouts->find({ itemnumber => $cr->{'itemnumber'} }); } } @@ -925,7 +928,7 @@ sub DelCourseReserve { my $arrayref = GetItemCourseReservesInfo( itemnumber => $itemnumber ); my $arrayref = GetItemCourseReservesInfo( biblionumber => $biblionumber ); - For a given item, returns an arrayref of reserves hashrefs, + For a given itemnumber or biblionumber, returns an arrayref of reserves hashrefs, with a course hashref under the key 'course' =cut @@ -936,7 +939,7 @@ sub GetItemCourseReservesInfo { my $itemnumber = $params{'itemnumber'}; my $biblionumber = $params{'biblionumber'}; - return unless ($itemnumber || $biblionumber); + return unless ($itemnumber xor $biblionumber); my $course_item = $itemnumber ? GetCourseItem( itemnumber => $itemnumber ) : GetCourseItem( biblionumber => $biblionumber ); @@ -975,9 +978,9 @@ sub CountCourseReservesForItem { my $enabled = $params{'enabled'}; my $biblionumber = $params{'biblionumber'}; - return unless ( $ci_id || ( $itemnumber || $biblionumber ) ); + return unless ( $ci_id xor $itemnumber xor $biblionumber ); - my $course_item = $itemnumber ? GetCourseItem( ci_id => $ci_id, itemnumber => $itemnumber ) : GetCourseItem( ci_id => $ci_id, biblionumber => $biblionumber ); + my $course_item = GetCourseItem( ci_id => $ci_id ) || GetCourseItem( itemnumber => $itemnumber ) || GetCourseItem( biblionumber => $biblionumber ); my @params = ( $course_item->{'ci_id'} ); push( @params, $enabled ) if ($enabled);