2 # status of a Hold transaction
4 package C4
::SIP
::ILS
::Transaction
::Hold
;
9 use C4
::SIP
::ILS
::Transaction
;
11 use C4
::Reserves
; # AddReserve
12 use C4
::Members
; # GetMember
13 use C4
::Biblio
; # GetBiblioFromItemNumber GetBiblioItemByBiblioNumber
14 use parent
qw(C4::SIP::ILS::Transaction);
20 pickup_location
=> undef,
21 constraint_type
=> undef,
26 my $self = $class->SUPER::new
();
27 foreach my $element (keys %fields) {
28 $self->{_permitted
}->{$element} = $fields{$element};
30 @
{$self}{keys %fields} = values %fields;
31 return bless $self, $class;
36 return $self->item->hold_queue_position($self->patron->id);
41 unless ( $self->{patron
} ) {
42 $self->screen_msg('do_hold called with undefined patron');
46 my $borrower = GetMember
( 'cardnumber' => $self->{patron
}->id );
48 $self->screen_msg( 'No borrower matches cardnumber "' . $self->{patron
}->id . '".' );
52 my $bib = GetBiblioFromItemNumber
( undef, $self->{item
}->id );
54 $self->screen_msg( 'No biblio record matches barcode "' . $self->{item
}->id . '".' );
58 my $branch = ( $self->pickup_location || $self->{patron
}->branchcode );
60 $self->screen_msg('No branch specified (or found w/ patron).');
64 my $bibno = $bib->{biblionumber
};
65 AddReserve
( $branch, $borrower->{borrowernumber
}, $bibno, GetBiblioItemByBiblioNumber
($bibno) );
67 # unfortunately no meaningful return value
74 unless ($self->{patron
}) {
75 $self->screen_msg('drop_hold called with undefined patron');
79 my $borrower = GetMember
( 'cardnumber'=>$self->{patron
}->id);
81 $self->screen_msg('No borrower matches cardnumber "' . $self->{patron
}->id . '".');
85 my $bib = GetBiblioFromItemNumber
(undef, $self->{item
}->id);
88 biblionumber
=> $bib->{biblionumber
},
89 itemnumber
=> $self->{item
}->id,
90 borrowernumber
=> $borrower->{borrowernumber
}
99 unless ($self->{patron
}) {
100 $self->screen_msg('change_hold called with undefined patron');
104 my $borrower = GetMember
( 'cardnumber'=>$self->{patron
}->id);
106 $self->screen_msg('No borrower matches cardnumber "' . $self->{patron
}->id . '".');
110 my $bib = GetBiblioFromItemNumber
(undef, $self->{item
}->id);
112 $self->screen_msg('No biblio record matches barcode "' . $self->{item
}->id . '".');
116 my $branch = ($self->pickup_location || $self->{patron
}->branchcode);
118 $self->screen_msg('No branch specified (or found w/ patron).');
122 my $bibno = $bib->{biblionumber
};
123 ModReserve
({ biblionumber
=> $bibno, borrowernumber
=> $borrower->{borrowernumber
}, branchcode
=> $branch });