View | Details | Raw Unified | Return to bug 12469
Collapse All | Expand All

(-)a/C4/ILSDI/Services.pm (-12 / +13 lines)
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
- 

Return to bug 12469