|
Lines 118-135
if (C4::Context->preference('SelfCheckoutByLogin') && !$patronid) {
Link Here
|
| 118 |
($resval, $patronid) = checkpw($dbh, $patronlogin, $patronpw); |
118 |
($resval, $patronid) = checkpw($dbh, $patronlogin, $patronpw); |
| 119 |
} |
119 |
} |
| 120 |
|
120 |
|
| 121 |
my ( $borrower, $patron ); |
121 |
my $patron; |
| 122 |
if ( $patronid ) { |
122 |
if ( $patronid ) { |
| 123 |
Koha::Plugins->call( 'patron_barcode_transform', \$patronid ); |
123 |
Koha::Plugins->call( 'patron_barcode_transform', \$patronid ); |
| 124 |
$patron = Koha::Patrons->find( { cardnumber => $patronid } ); |
124 |
$patron = Koha::Patrons->find( { cardnumber => $patronid } ); |
| 125 |
$borrower = $patron->unblessed if $patron; |
|
|
| 126 |
} |
125 |
} |
| 127 |
|
126 |
|
| 128 |
my $branch = $issuer->{branchcode}; |
127 |
my $branch = $issuer->{branchcode}; |
| 129 |
my $confirm_required = 0; |
128 |
my $confirm_required = 0; |
| 130 |
my $return_only = 0; |
129 |
my $return_only = 0; |
| 131 |
#warn "issuer cardnumber: " . $issuer->{cardnumber}; |
|
|
| 132 |
#warn "patron cardnumber: " . $borrower->{cardnumber}; |
| 133 |
if ($op eq "logout") { |
130 |
if ($op eq "logout") { |
| 134 |
$template->param( loggedout => 1 ); |
131 |
$template->param( loggedout => 1 ); |
| 135 |
$query->param( patronid => undef, patronlogin => undef, patronpw => undef ); |
132 |
$query->param( patronid => undef, patronlogin => undef, patronpw => undef ); |
|
Lines 222-228
elsif ( $patron && ( $op eq 'checkout' ) ) {
Link Here
|
| 222 |
$hold_existed = Koha::Holds->search( |
219 |
$hold_existed = Koha::Holds->search( |
| 223 |
{ |
220 |
{ |
| 224 |
-and => { |
221 |
-and => { |
| 225 |
borrowernumber => $borrower->{borrowernumber}, |
222 |
borrowernumber => $patron->borrowernumber, |
| 226 |
-or => { |
223 |
-or => { |
| 227 |
biblionumber => $item->biblionumber, |
224 |
biblionumber => $item->biblionumber, |
| 228 |
itemnumber => $item->itemnumber |
225 |
itemnumber => $item->itemnumber |
|
Lines 232-238
elsif ( $patron && ( $op eq 'checkout' ) ) {
Link Here
|
| 232 |
)->count; |
229 |
)->count; |
| 233 |
} |
230 |
} |
| 234 |
|
231 |
|
| 235 |
AddIssue( $borrower, $barcode ); |
232 |
AddIssue( $patron->unblessed, $barcode ); |
| 236 |
$template->param( issued => 1 ); |
233 |
$template->param( issued => 1 ); |
| 237 |
push @newissueslist, $barcode; |
234 |
push @newissueslist, $barcode; |
| 238 |
|
235 |
|
|
Lines 243-249
elsif ( $patron && ( $op eq 'checkout' ) ) {
Link Here
|
| 243 |
# Note that this should not be needed but since we do not have proper exception handling here we do it this way |
240 |
# Note that this should not be needed but since we do not have proper exception handling here we do it this way |
| 244 |
patron_has_hold_fee => Koha::Account::Lines->search( |
241 |
patron_has_hold_fee => Koha::Account::Lines->search( |
| 245 |
{ |
242 |
{ |
| 246 |
borrowernumber => $borrower->{borrowernumber}, |
243 |
borrowernumber => $patron->borrowernumber, |
| 247 |
debit_type_code => 'RESERVE', |
244 |
debit_type_code => 'RESERVE', |
| 248 |
description => $item->biblio->title, |
245 |
description => $item->biblio->title, |
| 249 |
date => $dtf->format_date(dt_from_string) |
246 |
date => $dtf->format_date(dt_from_string) |
|
Lines 265-289
elsif ( $patron && ( $op eq 'checkout' ) ) {
Link Here
|
| 265 |
} # $op |
262 |
} # $op |
| 266 |
|
263 |
|
| 267 |
if ( $patron && ( $op eq 'renew' ) ) { |
264 |
if ( $patron && ( $op eq 'renew' ) ) { |
| 268 |
my ($status,$renewerror) = CanBookBeRenewed( $borrower->{borrowernumber}, $item->itemnumber ); |
265 |
my ($status,$renewerror) = CanBookBeRenewed( $patron->borrowernumber, $item->itemnumber ); |
| 269 |
if ($status) { |
266 |
if ($status) { |
| 270 |
#warn "renewing"; |
267 |
#warn "renewing"; |
| 271 |
AddRenewal( $borrower->{borrowernumber}, $item->itemnumber, undef, undef, undef, undef, 1 ); |
268 |
AddRenewal( $patron->borrowernumber, $item->itemnumber, undef, undef, undef, undef, 1 ); |
| 272 |
push @newissueslist, $barcode; |
269 |
push @newissueslist, $barcode; |
| 273 |
$template->param( renewed => 1 ); |
270 |
$template->param( renewed => 1 ); |
| 274 |
} |
271 |
} |
| 275 |
} |
272 |
} |
| 276 |
|
273 |
|
| 277 |
if ($borrower) { |
274 |
if ($patron) { |
| 278 |
# warn "issuer's branchcode: " . $issuer->{branchcode}; |
275 |
my $borrowername = sprintf "%s %s", ($patron->firstname || ''), ($patron->surname || ''); |
| 279 |
# warn "user's branchcode: " . $borrower->{branchcode}; |
|
|
| 280 |
my $borrowername = sprintf "%s %s", ($borrower->{firstname} || ''), ($borrower->{surname} || ''); |
| 281 |
my $pending_checkouts = $patron->pending_checkouts; |
276 |
my $pending_checkouts = $patron->pending_checkouts; |
| 282 |
my @checkouts; |
277 |
my @checkouts; |
| 283 |
while ( my $c = $pending_checkouts->next ) { |
278 |
while ( my $c = $pending_checkouts->next ) { |
| 284 |
my $checkout = $c->unblessed_all_relateds; |
279 |
my $checkout = $c->unblessed_all_relateds; |
| 285 |
my ($can_be_renewed, $renew_error) = CanBookBeRenewed( |
280 |
my ($can_be_renewed, $renew_error) = CanBookBeRenewed( |
| 286 |
$borrower->{borrowernumber}, |
281 |
$patron->borrowernumber, |
| 287 |
$checkout->{itemnumber}, |
282 |
$checkout->{itemnumber}, |
| 288 |
); |
283 |
); |
| 289 |
$checkout->{can_be_renewed} = $can_be_renewed; # In the future this will be $checkout->can_be_renewed |
284 |
$checkout->{can_be_renewed} = $can_be_renewed; # In the future this will be $checkout->can_be_renewed |
|
Lines 320-326
if ($borrower) {
Link Here
|
| 320 |
patronpw => $patronpw, |
315 |
patronpw => $patronpw, |
| 321 |
waiting_holds_count => $waiting_holds_count, |
316 |
waiting_holds_count => $waiting_holds_count, |
| 322 |
noitemlinks => 1 , |
317 |
noitemlinks => 1 , |
| 323 |
borrowernumber => $borrower->{'borrowernumber'}, |
318 |
borrowernumber => $patron->borrowernumber, |
| 324 |
SuspendHoldsOpac => C4::Context->preference('SuspendHoldsOpac'), |
319 |
SuspendHoldsOpac => C4::Context->preference('SuspendHoldsOpac'), |
| 325 |
AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'), |
320 |
AutoResumeSuspendedHolds => C4::Context->preference('AutoResumeSuspendedHolds'), |
| 326 |
howpriority => $show_priority, |
321 |
howpriority => $show_priority, |
|
Lines 330-342
if ($borrower) {
Link Here
|
| 330 |
|
325 |
|
| 331 |
my $patron_messages = Koha::Patron::Messages->search( |
326 |
my $patron_messages = Koha::Patron::Messages->search( |
| 332 |
{ |
327 |
{ |
| 333 |
borrowernumber => $borrower->{'borrowernumber'}, |
328 |
borrowernumber => $patron->borrowernumber, |
| 334 |
message_type => 'B', |
329 |
message_type => 'B', |
| 335 |
} |
330 |
} |
| 336 |
); |
331 |
); |
| 337 |
$template->param( |
332 |
$template->param( |
| 338 |
patron_messages => $patron_messages, |
333 |
patron_messages => $patron_messages, |
| 339 |
opacnote => $borrower->{opacnote}, |
334 |
opacnote => $patron->opacnote, |
| 340 |
); |
335 |
); |
| 341 |
|
336 |
|
| 342 |
my $inputfocus = ($return_only == 1) ? 'returnbook' : |
337 |
my $inputfocus = ($return_only == 1) ? 'returnbook' : |
|
Lines 347-356
if ($borrower) {
Link Here
|
| 347 |
|
342 |
|
| 348 |
); |
343 |
); |
| 349 |
if (C4::Context->preference('ShowPatronImageInWebBasedSelfCheck')) { |
344 |
if (C4::Context->preference('ShowPatronImageInWebBasedSelfCheck')) { |
| 350 |
my $patron_image = Koha::Patron::Images->find($borrower->{borrowernumber}); |
345 |
my $patron_image = $patron->image; |
| 351 |
$template->param( |
346 |
$template->param( |
| 352 |
display_patron_image => 1, |
347 |
display_patron_image => 1, |
| 353 |
csrf_token => Koha::Token->new->generate_csrf( { session_id => scalar $query->cookie('CGISESSID') . $borrower->{cardnumber}, id => $borrower->{userid}} ), |
348 |
csrf_token => Koha::Token->new->generate_csrf( { session_id => scalar $query->cookie('CGISESSID') . $patron->cardnumber, id => $patron->userid } ), |
| 354 |
) if $patron_image; |
349 |
) if $patron_image; |
| 355 |
} |
350 |
} |
| 356 |
} else { |
351 |
} else { |
| 357 |
- |
|
|