Lines 432-437
if ( defined $sms ) {
Link Here
|
432 |
$nok = $nok || scalar(@errors); |
432 |
$nok = $nok || scalar(@errors); |
433 |
if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){ |
433 |
if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){ |
434 |
$debug and warn "$op dates: " . join "\t", map {"$_: $newdata{$_}"} qw(dateofbirth dateenrolled dateexpiry); |
434 |
$debug and warn "$op dates: " . join "\t", map {"$_: $newdata{$_}"} qw(dateofbirth dateenrolled dateexpiry); |
|
|
435 |
my $success; |
435 |
if ($op eq 'insert'){ |
436 |
if ($op eq 'insert'){ |
436 |
# we know it's not a duplicate borrowernumber or there would already be an error |
437 |
# we know it's not a duplicate borrowernumber or there would already be an error |
437 |
delete $newdata{password2}; |
438 |
delete $newdata{password2}; |
Lines 443-448
if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){
Link Here
|
443 |
push @messages, {error => 'error_on_insert_patron'}; |
444 |
push @messages, {error => 'error_on_insert_patron'}; |
444 |
$op = "add"; |
445 |
$op = "add"; |
445 |
} else { |
446 |
} else { |
|
|
447 |
$success = 1; |
446 |
add_guarantors( $patron, $input ); |
448 |
add_guarantors( $patron, $input ); |
447 |
$borrowernumber = $patron->borrowernumber; |
449 |
$borrowernumber = $patron->borrowernumber; |
448 |
$newdata{'borrowernumber'} = $borrowernumber; |
450 |
$newdata{'borrowernumber'} = $borrowernumber; |
Lines 505-536
if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){
Link Here
|
505 |
|
507 |
|
506 |
} elsif ($op eq 'save') { |
508 |
} elsif ($op eq 'save') { |
507 |
|
509 |
|
508 |
# Update or create our HouseboundRole if necessary. |
|
|
509 |
my $housebound_role = Koha::Patron::HouseboundRoles->find($borrowernumber); |
510 |
my ( $hsbnd_chooser, $hsbnd_deliverer ) = ( 0, 0 ); |
511 |
$hsbnd_chooser = 1 if $input->param('housebound_chooser'); |
512 |
$hsbnd_deliverer = 1 if $input->param('housebound_deliverer'); |
513 |
if ( $housebound_role ) { |
514 |
if ( $hsbnd_chooser || $hsbnd_deliverer ) { |
515 |
# Update our HouseboundRole. |
516 |
$housebound_role |
517 |
->housebound_chooser($hsbnd_chooser) |
518 |
->housebound_deliverer($hsbnd_deliverer) |
519 |
->store; |
520 |
} else { |
521 |
$housebound_role->delete; # No longer needed. |
522 |
} |
523 |
} else { |
524 |
# Only create a HouseboundRole if patron has a role. |
525 |
if ( $hsbnd_chooser || $hsbnd_deliverer ) { |
526 |
$housebound_role = Koha::Patron::HouseboundRole->new({ |
527 |
borrowernumber_id => $borrowernumber, |
528 |
housebound_chooser => $hsbnd_chooser, |
529 |
housebound_deliverer => $hsbnd_deliverer, |
530 |
})->store; |
531 |
} |
532 |
} |
533 |
|
534 |
if ($NoUpdateLogin) { |
510 |
if ($NoUpdateLogin) { |
535 |
delete $newdata{'password'}; |
511 |
delete $newdata{'password'}; |
536 |
delete $newdata{'userid'}; |
512 |
delete $newdata{'userid'}; |
Lines 540-563
if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){
Link Here
|
540 |
$newdata{debarredcomment} = $newdata{debarred_comment}; |
516 |
$newdata{debarredcomment} = $newdata{debarred_comment}; |
541 |
delete $newdata{debarred_comment}; |
517 |
delete $newdata{debarred_comment}; |
542 |
delete $newdata{password2}; |
518 |
delete $newdata{password2}; |
543 |
$patron->set(\%newdata)->store if scalar(keys %newdata) > 1; # bug 4508 - avoid crash if we're not |
|
|
544 |
# updating any columns in the borrowers table, |
545 |
# which can happen if we're only editing the |
546 |
# patron attributes or messaging preferences sections |
547 |
|
548 |
# should never raise an exception as password validity is checked above |
549 |
my $password = $newdata{password}; |
550 |
if ( $password and $password ne '****' ) { |
551 |
$patron->set_password({ password => $password }); |
552 |
} |
553 |
|
519 |
|
554 |
add_guarantors( $patron, $input ); |
520 |
eval { |
555 |
if (C4::Context->preference('EnhancedMessagingPreferences') and $input->param('setting_messaging_prefs')) { |
521 |
$patron->set(\%newdata)->store if scalar(keys %newdata) > 1; # bug 4508 - avoid crash if we're not |
556 |
C4::Form::MessagingPreferences::handle_form_action($input, { borrowernumber => $borrowernumber }, $template); |
522 |
# updating any columns in the borrowers table, |
|
|
523 |
# which can happen if we're only editing the |
524 |
# patron attributes or messaging preferences sections |
525 |
}; |
526 |
if ( $@ ) { |
527 |
warn "Patron modification failed! - $@"; # Maybe we must die instead of just warn |
528 |
push @messages, {error => 'error_on_update_patron'}; |
529 |
$op = "modify"; |
530 |
} else { |
531 |
|
532 |
$success = 1; |
533 |
# Update or create our HouseboundRole if necessary. |
534 |
my $housebound_role = Koha::Patron::HouseboundRoles->find($borrowernumber); |
535 |
my ( $hsbnd_chooser, $hsbnd_deliverer ) = ( 0, 0 ); |
536 |
$hsbnd_chooser = 1 if $input->param('housebound_chooser'); |
537 |
$hsbnd_deliverer = 1 if $input->param('housebound_deliverer'); |
538 |
if ( $housebound_role ) { |
539 |
if ( $hsbnd_chooser || $hsbnd_deliverer ) { |
540 |
# Update our HouseboundRole. |
541 |
$housebound_role |
542 |
->housebound_chooser($hsbnd_chooser) |
543 |
->housebound_deliverer($hsbnd_deliverer) |
544 |
->store; |
545 |
} else { |
546 |
$housebound_role->delete; # No longer needed. |
547 |
} |
548 |
} else { |
549 |
# Only create a HouseboundRole if patron has a role. |
550 |
if ( $hsbnd_chooser || $hsbnd_deliverer ) { |
551 |
$housebound_role = Koha::Patron::HouseboundRole->new({ |
552 |
borrowernumber_id => $borrowernumber, |
553 |
housebound_chooser => $hsbnd_chooser, |
554 |
housebound_deliverer => $hsbnd_deliverer, |
555 |
})->store; |
556 |
} |
557 |
} |
558 |
|
559 |
# should never raise an exception as password validity is checked above |
560 |
my $password = $newdata{password}; |
561 |
if ( $password and $password ne '****' ) { |
562 |
$patron->set_password({ password => $password }); |
563 |
} |
564 |
|
565 |
add_guarantors( $patron, $input ); |
566 |
if (C4::Context->preference('EnhancedMessagingPreferences') and $input->param('setting_messaging_prefs')) { |
567 |
C4::Form::MessagingPreferences::handle_form_action($input, { borrowernumber => $borrowernumber }, $template); |
568 |
} |
557 |
} |
569 |
} |
558 |
} |
570 |
} |
559 |
|
571 |
|
560 |
if ( $patron ) { |
572 |
if ( $success ) { |
561 |
if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) { |
573 |
if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) { |
562 |
C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes); |
574 |
C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes); |
563 |
} |
575 |
} |
564 |
- |
|
|