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

(-)a/C4/Reserves.pm (-34 / +12 lines)
Lines 1886-1934 sub RevertWaitingStatus { Link Here
1886
    my $dbh = C4::Context->dbh;
1886
    my $dbh = C4::Context->dbh;
1887
1887
1888
    ## Get the waiting reserve we want to revert
1888
    ## Get the waiting reserve we want to revert
1889
    my $query = "
1889
    my $hold = Koha::Holds->search(
1890
        SELECT * FROM reserves
1890
        {
1891
        WHERE itemnumber = ?
1891
            itemnumber => $itemnumber,
1892
        AND found IS NOT NULL
1892
            found => { not => undef },
1893
    ";
1893
        }
1894
    my $sth = $dbh->prepare( $query );
1894
    )->next;
1895
    $sth->execute( $itemnumber );
1896
    my $reserve = $sth->fetchrow_hashref();
1897
1898
    my $hold = Koha::Holds->find( $reserve->{reserve_id} ); # TODO Remove the next raw SQL statements and use this instead
1899
1895
1900
    ## Increment the priority of all other non-waiting
1896
    ## Increment the priority of all other non-waiting
1901
    ## reserves for this bib record
1897
    ## reserves for this bib record
1902
    $query = "
1898
    my $holds = Koha::Holds->search({ biblionumber => $hold->biblionumber, priority => { '>' => 0 } });
1903
        UPDATE reserves
1899
    while ( my $h = $holds->next ) {
1904
        SET
1900
        $h->priority( $h->priority + 1 )->store;
1905
          priority = priority + 1
1901
    }
1906
        WHERE
1907
          biblionumber =  ?
1908
        AND
1909
          priority > 0
1910
    ";
1911
    $sth = $dbh->prepare( $query );
1912
    $sth->execute( $reserve->{'biblionumber'} );
1913
1902
1914
    ## Fix up the currently waiting reserve
1903
    ## Fix up the currently waiting reserve
1915
    $query = "
1904
    $hold->set( { priority => 1, found => undef, waitingdate => undef } )->store;
1916
    UPDATE reserves
1917
    SET
1918
      priority = 1,
1919
      found = NULL,
1920
      waitingdate = NULL
1921
    WHERE
1922
      reserve_id = ?
1923
    ";
1924
    $sth = $dbh->prepare( $query );
1925
    $sth->execute( $reserve->{'reserve_id'} );
1926
1905
1927
    unless ( $hold->item_level_hold ) {
1906
    unless ( $hold->item_level_hold ) {
1928
        $hold->itemnumber(undef)->store;
1907
        $hold->itemnumber(undef)->store;
1929
    }
1908
    }
1930
1909
1931
    _FixPriority( { biblionumber => $reserve->{biblionumber} } );
1910
    _FixPriority( { biblionumber => $hold->biblionumber } );
1932
}
1911
}
1933
1912
1934
=head2 ReserveSlip
1913
=head2 ReserveSlip
1935
- 

Return to bug 23070