|
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', |