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' );
}
=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
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 ) {
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
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 );
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'} });
}
}
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
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 );
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);