Lines 121-127
sub GetAvailability {
Link Here
|
121 |
|
121 |
|
122 |
foreach my $id ( split( / /, $cgi->param('id') ) ) { |
122 |
foreach my $id ( split( / /, $cgi->param('id') ) ) { |
123 |
if ( $cgi->param('id_type') eq "item" ) { |
123 |
if ( $cgi->param('id_type') eq "item" ) { |
124 |
my ( $biblionumber, $status, $msg, $location ) = _availability($id); |
124 |
my ( $biblionumber, $status, $msg, $location, $callnum, $duedate ) = _availability($id); |
125 |
$out .= " <dlf:record>\n"; |
125 |
$out .= " <dlf:record>\n"; |
126 |
$out .= " <dlf:bibliographic id=\"" . ( $biblionumber || $id ) . "\" />\n"; |
126 |
$out .= " <dlf:bibliographic id=\"" . ( $biblionumber || $id ) . "\" />\n"; |
127 |
$out .= " <dlf:items>\n"; |
127 |
$out .= " <dlf:items>\n"; |
Lines 131-136
sub GetAvailability {
Link Here
|
131 |
$out .= " <dlf:availabilitystatus>" . $status . "</dlf:availabilitystatus>\n"; |
131 |
$out .= " <dlf:availabilitystatus>" . $status . "</dlf:availabilitystatus>\n"; |
132 |
if ($msg) { $out .= " <dlf:availabilitymsg>" . $msg . "</dlf:availabilitymsg>\n"; } |
132 |
if ($msg) { $out .= " <dlf:availabilitymsg>" . $msg . "</dlf:availabilitymsg>\n"; } |
133 |
if ($location) { $out .= " <dlf:location>" . $location . "</dlf:location>\n"; } |
133 |
if ($location) { $out .= " <dlf:location>" . $location . "</dlf:location>\n"; } |
|
|
134 |
if ($callnum) { $out .= " <dlf:callnumber>" . $callnum . "</dlf:callnumber>\n"; } |
134 |
if ($duedate) { $out .= " <dlf:dateavailable>" . $duedate . "</dlf:dateavailable>\n"; } |
135 |
if ($duedate) { $out .= " <dlf:dateavailable>" . $duedate . "</dlf:dateavailable>\n"; } |
135 |
$out .= " </dlf:simpleavailability>\n"; |
136 |
$out .= " </dlf:simpleavailability>\n"; |
136 |
$out .= " </dlf:item>\n"; |
137 |
$out .= " </dlf:item>\n"; |
Lines 148-160
sub GetAvailability {
Link Here
|
148 |
# We loop over the items to clean them |
149 |
# We loop over the items to clean them |
149 |
while ( my $item = $items->next ) { |
150 |
while ( my $item = $items->next ) { |
150 |
my $itemnumber = $item->itemnumber; |
151 |
my $itemnumber = $item->itemnumber; |
151 |
my ( $biblionumber, $status, $msg, $location ) = _availability($itemnumber); |
152 |
my ( $biblionumber, $status, $msg, $location, $callnum, $duedate ) = _availability($itemnumber); |
152 |
$out .= " <dlf:item id=\"" . $itemnumber . "\">\n"; |
153 |
$out .= " <dlf:item id=\"" . $itemnumber . "\">\n"; |
153 |
$out .= " <dlf:simpleavailability>\n"; |
154 |
$out .= " <dlf:simpleavailability>\n"; |
154 |
$out .= " <dlf:identifier>" . $itemnumber . "</dlf:identifier>\n"; |
155 |
$out .= " <dlf:identifier>" . $itemnumber . "</dlf:identifier>\n"; |
155 |
$out .= " <dlf:availabilitystatus>" . $status . "</dlf:availabilitystatus>\n"; |
156 |
$out .= " <dlf:availabilitystatus>" . $status . "</dlf:availabilitystatus>\n"; |
156 |
if ($msg) { $out .= " <dlf:availabilitymsg>" . $msg . "</dlf:availabilitymsg>\n"; } |
157 |
if ($msg) { $out .= " <dlf:availabilitymsg>" . $msg . "</dlf:availabilitymsg>\n"; } |
157 |
if ($location) { $out .= " <dlf:location>" . $location . "</dlf:location>\n"; } |
158 |
if ($location) { $out .= " <dlf:location>" . $location . "</dlf:location>\n"; } |
|
|
159 |
if ($callnum) { $out .= " <dlf:callnumber>" . $callnum . "</dlf:callnumber>\n"; } |
160 |
if ($duedate) { $out .= " <dlf:dateavailable>" . $duedate . "</dlf:dateavailable>\n"; } |
158 |
$out .= " </dlf:simpleavailability>\n"; |
161 |
$out .= " </dlf:simpleavailability>\n"; |
159 |
$out .= " </dlf:item>\n"; |
162 |
$out .= " </dlf:item>\n"; |
160 |
} |
163 |
} |
Lines 860-866
sub CancelHold {
Link Here
|
860 |
|
863 |
|
861 |
Returns, for an itemnumber, an array containing availability information. |
864 |
Returns, for an itemnumber, an array containing availability information. |
862 |
|
865 |
|
863 |
my ($biblionumber, $status, $msg, $location) = _availability($id); |
866 |
my ($biblionumber, $status, $msg, $location, $callnumber, duedate) = _availability($id); |
864 |
|
867 |
|
865 |
=cut |
868 |
=cut |
866 |
|
869 |
|
Lines 872-898
sub _availability {
Link Here
|
872 |
return ( undef, 'unknown', 'Error: could not retrieve availability for this ID', undef ); |
875 |
return ( undef, 'unknown', 'Error: could not retrieve availability for this ID', undef ); |
873 |
} |
876 |
} |
874 |
|
877 |
|
875 |
|
|
|
876 |
my $biblionumber = $item->biblioitemnumber; |
878 |
my $biblionumber = $item->biblioitemnumber; |
877 |
my $library = Koha::Libraries->find( $item->holdingbranch ); |
879 |
my $library = Koha::Libraries->find( $item->holdingbranch ); |
878 |
my $location = $library ? $library->branchname : ''; |
880 |
my $location = $library ? $library->branchname : ''; |
879 |
$location .= ", Call # $item->{itemcallnumber}" if $item->{itemcallnumber}; |
881 |
my $callnumber = $item->itemcallnumber; |
880 |
|
882 |
|
881 |
if ( $item->notforloan ) { |
883 |
if ( $item->notforloan ) { |
882 |
return ( $biblionumber, 'not available', 'Not for loan', $location ); |
884 |
return ( $biblionumber, 'not available', 'Not for loan', $location, $callnumber ); |
883 |
} elsif ( $item->{'onloan'} ) { |
885 |
} elsif ( $item->{'onloan'} ) { |
884 |
return ( |
886 |
return ( |
885 |
$biblionumber, 'not available', 'Checked out', |
887 |
$biblionumber, 'not available', 'Checked out', |
886 |
$location, $item->{'onloan'} |
888 |
$location, $item->itemcallnumber, $item->{'onloan'} |
887 |
); |
889 |
); |
888 |
} elsif ( $item->{'itemlost'} ) { |
890 |
} elsif ( $item->{'itemlost'} ) { |
889 |
return ( $biblionumber, 'not available', 'Item lost', $location ); |
891 |
return ( $biblionumber, 'not available', 'Item lost', $location, $callnumber ); |
890 |
} elsif ( $item->withdrawn ) { |
892 |
} elsif ( $item->withdrawn ) { |
891 |
return ( $biblionumber, 'not available', 'Item withdrawn', $location ); |
893 |
return ( $biblionumber, 'not available', 'Item withdrawn', $location, $callnumber ); |
892 |
} elsif ( $item->damaged ) { |
894 |
} elsif ( $item->damaged ) { |
893 |
return ( $biblionumber, 'not available', 'Item damaged', $location ); |
895 |
return ( $biblionumber, 'not available', 'Item damaged', $location, $callnumber ); |
894 |
} else { |
896 |
} else { |
895 |
return ( $biblionumber, 'available', undef, $location ); |
897 |
return ( $biblionumber, 'available', undef, $location, $callnumber, Koha::DateUtils::dt_from_string( DateTime->now )); |
896 |
} |
898 |
} |
897 |
} |
899 |
} |
898 |
|
900 |
|
899 |
- |
|
|