Lines 846-860
sub CancelReserve {
Link Here
|
846 |
my ( $params ) = @_; |
846 |
my ( $params ) = @_; |
847 |
|
847 |
|
848 |
my $reserve_id = $params->{'reserve_id'}; |
848 |
my $reserve_id = $params->{'reserve_id'}; |
849 |
# Filter out only the desired keys; this will insert undefined values for elements missing in |
849 |
my $hold; |
850 |
# \%params, but GetReserveId filters them out anyway. |
850 |
if ( $reserve_id ) { |
851 |
$reserve_id = GetReserveId( { biblionumber => $params->{'biblionumber'}, borrowernumber => $params->{'borrowernumber'}, itemnumber => $params->{'itemnumber'} } ) unless ( $reserve_id ); |
851 |
$hold = Koha::Holds->find( $reserve_id ); |
852 |
|
852 |
} else { |
853 |
return unless ( $reserve_id ); |
853 |
$hold = Koha::Holds->search( $params ); # biblionumber, borrowernumber, itemnumber |
854 |
|
854 |
} |
855 |
my $dbh = C4::Context->dbh; |
|
|
856 |
|
855 |
|
857 |
my $hold = Koha::Holds->find( $reserve_id ); |
|
|
858 |
return unless $hold; |
856 |
return unless $hold; |
859 |
|
857 |
|
860 |
logaction( 'HOLDS', 'CANCEL', $hold->reserve_id, Dumper($hold->unblessed) ) |
858 |
logaction( 'HOLDS', 'CANCEL', $hold->reserve_id, Dumper($hold->unblessed) ) |
Lines 866-871
sub CancelReserve {
Link Here
|
866 |
priority = 0 |
864 |
priority = 0 |
867 |
WHERE reserve_id = ? |
865 |
WHERE reserve_id = ? |
868 |
"; |
866 |
"; |
|
|
867 |
my $dbh = C4::Context->dbh; |
869 |
my $sth = $dbh->prepare($query); |
868 |
my $sth = $dbh->prepare($query); |
870 |
$sth->execute( $reserve_id ); |
869 |
$sth->execute( $reserve_id ); |
871 |
|
870 |
|
Lines 947-959
sub ModReserve {
Link Here
|
947 |
return if $rank eq "n"; |
946 |
return if $rank eq "n"; |
948 |
|
947 |
|
949 |
return unless ( $reserve_id || ( $borrowernumber && ( $biblionumber || $itemnumber ) ) ); |
948 |
return unless ( $reserve_id || ( $borrowernumber && ( $biblionumber || $itemnumber ) ) ); |
950 |
$reserve_id = GetReserveId({ biblionumber => $biblionumber, borrowernumber => $borrowernumber, itemnumber => $itemnumber }) unless ( $reserve_id ); |
949 |
|
|
|
950 |
my $hold; |
951 |
unless ( $reserve_id ) { |
952 |
$hold = Koha::Holds->search({ biblionumber => $biblionumber, borrowernumber => $borrowernumber, itemnumber => $itemnumber }); |
953 |
return unless $hold; # FIXME Should raise an exception |
954 |
$reserve_id = $hold->reserve_id; |
955 |
} |
951 |
|
956 |
|
952 |
if ( $rank eq "del" ) { |
957 |
if ( $rank eq "del" ) { |
953 |
CancelReserve({ reserve_id => $reserve_id }); |
958 |
CancelReserve({ reserve_id => $reserve_id }); |
954 |
} |
959 |
} |
955 |
elsif ($rank =~ /^\d+/ and $rank > 0) { |
960 |
elsif ($rank =~ /^\d+/ and $rank > 0) { |
956 |
my $hold = Koha::Holds->find($reserve_id); |
961 |
$hold ||= Koha::Holds->find($reserve_id); |
957 |
logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) |
962 |
logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) |
958 |
if C4::Context->preference('HoldsLog'); |
963 |
if C4::Context->preference('HoldsLog'); |
959 |
|
964 |
|
Lines 1999-2028
sub RevertWaitingStatus {
Link Here
|
1999 |
_FixPriority( { biblionumber => $reserve->{biblionumber} } ); |
2004 |
_FixPriority( { biblionumber => $reserve->{biblionumber} } ); |
2000 |
} |
2005 |
} |
2001 |
|
2006 |
|
2002 |
=head2 GetReserveId |
|
|
2003 |
|
2004 |
$reserve_id = GetReserveId({ biblionumber => $biblionumber, borrowernumber => $borrowernumber [, itemnumber => $itemnumber ] }); |
2005 |
|
2006 |
Returnes the first reserve id that matches the given criteria |
2007 |
|
2008 |
=cut |
2009 |
|
2010 |
sub GetReserveId { |
2011 |
my ( $params ) = @_; |
2012 |
|
2013 |
return unless ( ( $params->{'biblionumber'} || $params->{'itemnumber'} ) && $params->{'borrowernumber'} ); |
2014 |
|
2015 |
foreach my $key ( keys %$params ) { |
2016 |
delete $params->{$key} unless defined( $params->{$key} ); |
2017 |
} |
2018 |
|
2019 |
my $hold = Koha::Holds->search( $params )->next(); |
2020 |
|
2021 |
return unless $hold; |
2022 |
|
2023 |
return $hold->id(); |
2024 |
} |
2025 |
|
2026 |
=head2 ReserveSlip |
2007 |
=head2 ReserveSlip |
2027 |
|
2008 |
|
2028 |
ReserveSlip($branchcode, $borrowernumber, $biblionumber) |
2009 |
ReserveSlip($branchcode, $borrowernumber, $biblionumber) |
Lines 2047-2058
sub ReserveSlip {
Link Here
|
2047 |
# return unless ( C4::Context->boolean_preference('printreserveslips') ); |
2028 |
# return unless ( C4::Context->boolean_preference('printreserveslips') ); |
2048 |
my $patron = Koha::Patrons->find( $borrowernumber ); |
2029 |
my $patron = Koha::Patrons->find( $borrowernumber ); |
2049 |
|
2030 |
|
2050 |
my $reserve_id = GetReserveId({ |
2031 |
my $hold = Koha::Holds->search({biblionumber => $biblionumber, borrowernumber => $borrowernumber })->next; |
2051 |
biblionumber => $biblionumber, |
2032 |
return unless $hold; |
2052 |
borrowernumber => $borrowernumber |
2033 |
my $reserve = $hold->unblessed; |
2053 |
}) or return; |
|
|
2054 |
my $reserve = Koha::Holds->find($reserve_id) or return; |
2055 |
$reserve = $reserve->unblessed; |
2056 |
|
2034 |
|
2057 |
return C4::Letters::GetPreparedLetter ( |
2035 |
return C4::Letters::GetPreparedLetter ( |
2058 |
module => 'circulation', |
2036 |
module => 'circulation', |